我的问题的实质如下:我有一个包含两个 ODE 的系统。一个具有初始值约束,另一个具有最终值约束。这可以被认为是一个单一系统,其中一些变量具有初始值约束,而其他变量具有最终值约束。
以下是详细信息:
我正在尝试使用连续时间有限水平 LQR 控制器来驱动线性动力系统。我想继续使用 Python 生态系统。
系统形式为,服从
LQR 解决方案生成矩阵,使得最优控制输入 u(t),与成线性关系,为。
其中
而是连续时间 Riccati 微分方程的解(注意这个是一个矩阵)
服从
, , , , , ,都给出了。
用英语:你有一些从状态开始的动态系统。LQR 控制器生成一个在时间和之间使用的反馈矩阵(通常称为问题的时间范围)
请注意,这两个 ODE 仅在一个方向上耦合——的解不依赖于。因此,解决该问题的一种方法是反转 Riccati 方程,以便将终值问题转化为初值问题,并使用标准 ODE 积分器和然后我可以使用这个数值解来找到。这让我很担心,因为 x(t) 的数值 ODE 求解器不一定会在与 $P(t) 的数值解中的时间相同的时间对 ODE 进行采样。也许有一些聪明的方法来执行这一点。
我预见的解决问题的另一种方法是一起解决系统,但我不知道如何处理初始值和最终值约束的混合。这些问题的计算量大吗?我可以用 SciPy / Python 做吗?