在之前直流电机控制仿真里有讲过状态控制的基本架构,有兴趣的同学可以再回去看看,链接如下好玩的直流电机调速实验、PID、极点配置、LQR、观测器;不讲大道理_lqr控制器观测器-CSDN博客
在专栏的前三篇文章
小车倒立摆物理建模与simulink仿真-CSDN博客
小车倒立摆系统线性化,离散化处理-CSDN博客
小车倒立摆系统能控和能观性分析-CSDN博客
我们建立的小车的状态空间方程,并且证明了系统是完全能观与完全可控的。
在我们的系统中,小车受到唯一外力F,我们的目标是:计算出恰当的F,使得小车能够运行到指定的任意x位置,并且倒立摆保持垂直直立(即θ为0)。
控制目标涉及到两个输出变量:水平位移x和旋转角度θ;传统的Pid适用于单输入单输出的系统,因此,为了实现控制目标,我们采用状态反馈控制。
只要A-Bk的特征值小于0,系统就能稳定收敛。关键就在于寻找合适的k,使得A-Bk收敛。
在matlab中,可以通过lqr,matlab能够根据设置的权重系数Q和R,计算出k的最优解。
%% 控制器设计
Q = [1 0 0 0;
0 1 0 0;
0 0 10 0;
0 0 0 100];
R = .0001;
K_lqr = dlqr(Ad_T,Bd_T,Q,R);
运行后结果如下:
初始角度不为0,小车先将初始角度调节到0位置,随后跟随x的阶跃需求,同时角度也维持在0。
运动动画等视频审核通过了再上传。