1. 项目概述:LQR直接自适应学习的数据驱动策略优化
这篇TAC顶刊论文的核心贡献在于提出了一种无需系统模型先验知识的LQR控制器设计方法。传统LQR控制需要精确知道系统矩阵A和B,而实际工程中这往往难以获取。作者通过数据驱动的方式,直接从输入输出数据中学习最优控制策略,实现了"边学习边控制"的自适应过程。
我在复现这篇论文时发现,其算法框架巧妙结合了强化学习中的策略优化思想和经典控制理论。整个过程可以分为三个阶段:首先通过初始激励收集系统响应数据,然后利用这些数据构建价值函数近似,最后基于近似结果迭代更新控制策略。这种思路特别适合无人机控制、机器人运动规划等难以精确建模的场景。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心算法原理拆解
2.1 LQR问题的标准形式
线性二次调节器(LQR)问题的标准表述为:
code复制min J = ∫(x'Qx + u'Ru)dt
s.t. x' = Ax + Bu
其中Q和R是设计者给定的权重矩阵。传统解法需要求解代数Riccati方程得到反馈增益矩阵K。
2.2 数据驱动的策略优化
论文的创新点在于避免了A、B矩阵的显式识别。其核心算法流程如下:
- 初始探索阶段:施加随机激励信号u收集状态轨迹
- 价值函数近似:利用收集的数据拟合Q函数
- 策略改进:基于近似Q函数更新控制策略
- 策略评估:验证新策略的性能指标
这个过程中最关键的数学工具是贝尔曼方程的离散形式:
code复制Q(x_k,u_k) = r(x_k,u_k) + γQ(x_{k+1},π(x_{k+1}))
通过最小化时序差分误差来更新Q函数参数。
3. Matlab实现详解
3.1 数据采集模块
matlab复制% 生成探索噪声
exploration_noise = 0.1*randn(T, nu);
% 收集状态轨迹
for k = 1:T-1
x(:,k+1) = A_true*x(:,k) + B_true*(u(:,k)+exploration_noise(k,:)');
y(:,k) = x(:,k); % 假设全状态可观测
end
注意:初始探索阶段需要保证激励信号满足持续激励条件,通常采用高斯白噪声或PRBS信号。
