halo2world
2023/04/10阅读:31主题:默认主题
mpc控制器推导
运动模型建模
考虑如下车辆运动模型:
该运动模型推导参见[[多车辆运动学公式推导]]。其中
其中
运动模型线性化
定义系统状态
运动状态方程离散化
采用前向欧拉法对上述线性方程进行离散化。
问题一:是否意味着输入的trajectory上的点也是时间均匀的
solution 1: 将路径点上的速度设置为相同(比如1m/s)
solution 2: 在路径点上带上时间点信息(这样就知道dt了)
问题二: 线性化传递函数离线性化点越远,则偏差越大此时A矩阵是否为变值
优化目标函数推导
形式一(Condensed Format)
定义未来p个周期(预测步长)内预测的系统状态为:
定义到达未来p个周期内预测的系统输入为:
则由上述离散状态转移方程可以写出未来p个状态的状态转移方程:
将上式写为矩阵形式:
定义预定的控制目标(步长为p)为:
定义优化目标代价函数为:
将上面的
其中:
上式可调用线性求解器进行求解析解,对
TODO: 这种类型的实现目前还不多,可以尝试自己封装一个库。
形式二(Non-Condensed Format), 构造法
参考
-
MPC cast to osqp -
osqp求解器 该形式直接利用
其中
如果考虑也可以将
中的 , 为上一步的控制序列的求解结果,当做已知量即可以根据后文很方便地进行构造,为了说明的方便此处省略该项的代价。
其中
注意: 形式二中的代价函数将
作为求解器要优化的变量,而形式一则只优化 序列。
构造代价函数为OSQP求解形式
下面将上述优化目标
上面的式子便为osqp求解器要求的形式。
约束矩阵的构建
事实上,约束矩阵即为(2)式中的约束条件的矩阵表达,其中值得注意的是其中等式约束的表达也采用了不等式的形式:
构造的约束矩阵
优化目标求解
对于形式一,可以利用线性求解器求得解析解。
对于形式二, 可以利用QP(Quadratic Programming)问题求解器求最优解(本质为凸优化问题)
分类:
其他标签:
其他作者介绍