控制理论下的simulink和matlab使用
- 根轨迹
- LQR控制器简单使用
- 状态观测器设计
根轨迹
z = [-1]; %开环传递函数的零点
p = [0 -2 -3 -4]; %开环传递函数的系统极点
k = 1; %开环传递函数的系数,反映在比例上
g = zpk(z,p,k); %生成开环传递函数%生成的传递函数如下
% (s+1)
% -------------------
% s (s+2) (s+3) (s+4)
rlocus(g); %生成根轨迹图
闭环传递函数的极点随着闭环传递函数转化而来的开环传递函数带的比例系数K从0->∞的轨迹
LQR控制器简单使用
LQR:线性二次型调节器
假设状态向量为 z ( t ) \bold{z(t)} z(t),状态矩阵为 A \bold{A} A,输入矩阵为 B \bold{B} B,输出矩阵为 C \bold{C} C,直接传递矩阵为 D \bold{D} D,整个状态空间方程如下:
d z ( t ) d t = A z ( t ) + B u ( t ) y ( t ) = C z ( t ) + D u ( t ) \frac {\large d \bold{z}(\rm t)} {\large d \rm t} = \bold{Az(\rm t)} + \bold{Bu(\rm t)} \\ \bold{y}(\rm t) = \bold{C}\bold{z}(\rm t) + \bold{Du}(\rm t) dtdz(t)=Az(t)+Bu(t)y(t)=Cz(t)+Du(t)
只考虑状态方程,
d z ( t ) d t = A z ( t ) + B u ( t ) \frac {\large d \bold{z}(\rm t)} {\large d \rm t} = \bold{Az(\rm t)} + \bold{Bu(\rm t)} dtdz(t)=Az(t)+Bu(t)
引入线性状态反馈控制,令 u ( t ) = − K z ( t ) \bold {u} (\rm t) = \bold {-Kz}(t) u(t)=−Kz(t),则此时 d z ( t ) d t = A z ( t ) − B K z ( t ) = ( A − B K ) z ( t ) \frac {\large d \bold{z}(\rm t)} {\large d \rm t} = \bold{Az(\rm t)} - \bold{BKz(\rm t)} \\ = \bold {(A- BK)z}(\rm {t}) dtdz(t)=Az(t)−BKz(t)=(A−BK)z(t)
下面给出两个矩阵 Q \bold Q Q和 R \bold R R,作为 z ( t ) \bold{z}(\rm t) z(t)中两个状态变量的权重占比和 u ( t ) \bold{u}(\rm t) u(t)输入的权重占比
A = [0 1;10 0];
B = [0;-1];Q = [100 0;0 1]; %Q代表状态变量z(t)的权重占比
R = 0.01; %R代表输入u(t)的权重占比K = lqr(A,B,Q,R); %根据Q和R计算出最优的状态反馈矩阵
下图就是在matlab中计算的最佳K值