一、线性化
从上一篇文章小车倒立摆物理建模与simulink仿真-CSDN博客 我们推导出了倒立摆小车的运动微分方程:
方程里包含了正弦,余弦运算,因此这个系统是非线性的,不容易控制。 我们的控制目标是把倒立摆直立在小车上(角度在0附近),因此可以在0附近对sin(θ),cos(θ)项进行优化。
考虑到这一项中,如果sin(θ)近似为θ,则存在与θ耦合的情况,因此对于这一项,sin(θ)近似为0,其余项,sin(θ)近似为θ。简化后得到:
取状态向量为:,将上述微分方程转换为状态空间方程的形式:
二、验证线性化结果的准确性
将重力g的数值改为-10,就可以将倒立摆的坐标切换到在小车底部角度为0(g为10时是以倒立垂直向上为0),给定初始角度,没给外力的情况下,小球角度便会在0附近摇摆。我们可以对比系统非线性微分方程与线性微分方程运动的曲线,检验线性化的过程是否正确。
初始角度为0.1rad时,非线性与线性的结果几乎一致。
初始角度设置为0.5rad时,两者就能看出相位和幅值上的差异。
以上两个实验可以说明线性化后的状态空间方程是符合预期的,在0附近结果与非线性的几乎一致。
三、状态空间方程离散化
直接带微分的状态空间方程是时间连续的,模拟元器件的状态空间方程如下表示:
但是在实际控制中,控制器的运作,传感器信号的采集都是固定周期离散化的,因此,需要将连续的状态空间方程离散化,转换为以下的形式:
离散化的方法主要有以下三种:
1、前向欧拉法
假设T为采样周期,则原来连续的状态方程可以如下表示:
移向后可得,I为单位矩阵:
则离散后的A,B,C,D矩阵如下:
2、后向欧拉法
假设T为采样周期,则原来连续的状态方程可以如下表示:
移向后整理可得,I为单位矩阵:
则离散后的A,B,C,D矩阵如下:
3、 双线性变换法
可以理解成是前向欧拉法和后向欧拉法的综合,理论上能提供更好的精度。
对于任意函数 (f(t)),其一阶导数可以通过双线性(梯形)近似为:
类似的近似应用到状态空间方程,可得:
整理后可得:
假设短时间内输入u(T+t)约等于u(t),则上式化简为:
求解方程,得:
四、三种离散方法效果对比
由上图可看到,前向欧拉法结果偏大,后向欧拉法结果偏小,双线性变换的离散结果与连续线性方程基本一致,因此,后续控制器,观测器的设计则使用双线性变换的离散结果。
关于仿真模型源码,如果有需要的,等这个专栏更新完了一并在某宝店 <极简车辆控制>里发布。