本笔记将通过一个具体的一维动态规划问题,展示如何利用逆向递推和最优化原理来求解最优控制策略。
一、 问题定义
我们的目标是找到一组最优控制输入 ,使得一个动态系统在特定时间范围内(例如,从 到 )的总代价函数 最小。
系统模型(状态方程)
系统状态随时间变化的规律由以下线性差分方程描述:
其中, 是系统在时刻 的状态, 是在时刻 施加的控制输入。
代价函数 (Cost Function)
我们需要最小化的目标是二次型代价函数 ,它由过程中的状态和控制输入的平方和以及最终状态的平方构成:
这个函数旨在惩罚较大的状态误差和过大的控制能量消耗。
边界条件
- 初始状态: 系统从一个已知的初始状态开始,在本例中为 。
- 时间范围: 本案例求解一个 的问题,即从 到 。
二、 动态规划求解方法
动态规划的核心思想是最优化原理 (Principle of Optimality):一个最优策略的子策略也必须是最优的。基于此,我们采用逆向递推 (Backward Recursion) 的方法,从最后一步开始,反向推导出每一步的最优决策。
步骤 1:求解最后一个阶段 (k=1) 的最优控制
我们首先考虑从时刻 到终点 的代价,也称为**"未来代价" (Cost-to-Go)**,记为 。
将状态方程 代入上式:
为了找到使 最小的 ,我们对 求偏导数并令其为零:
解得在时刻 的最优控制 与状态 的关系为:
将 代回 ,得到从时刻 开始的最小未来代价 :
步骤 2:求解前一个阶段 (k=0) 的最优控制
现在,我们向前递推一步,考虑从 到终点的总代价 。根据最优化原理,总代价可以分解为当前阶段的代价和后续阶段的最优代价之和:
将 和 代入:
为了找到使 最小的 ,我们对 求偏导数并令其为零:
解得在时刻 的最优控制 与状态 的关系为:
三、 求解结果
根据上述推导,我们可以计算出完整的 dla 最优控制序列和状态轨迹。
最优控制策略
- :
- :
最优状态轨迹与控制序列
- 初始状态:
- 计算 :
- 计算 :
- 计算 :
- 计算 :
最小总代价
将 和 代入总代价函数 :