📄 kalman lqg.txt
字号:
%%设计LQG控制系统,最小方差控制系统
A=[-1 -6.25;16 0];
B=[2 0]';
C=[0 3.125];
D=0;
sys=ss(A,B,C,D);%%生成状态空间模型
clsys0=feedback(sys,1);
t=0:0.01:0.8;
u1=25+t*0;
N=length(t);
u2=idinput(N,'rgs');%%产生输入信号
G=[3 0]';
H=0.1;
BG=[B G];
DH=[D H];
LQGsys=ss(A,BG,C,DH);
[kest,L,p]=kalman(LQGsys,1,0.01); %%产生kalman最优状态估计,以及kalman估计器增益kest,系统噪声为1,量测噪声为0.01,
K=lqry(sys,10,1); %%设计最优控制(LQ)调节器,设计系统的最优反馈增益矩阵K( [K,S,E] = LQRY(SYS,Q,R,N)中R,N的设置???)
LQGF=lqgreg(kest,K); %%根据kalman估计器增益和状态反馈建立LQG调节器
feedin=[1];
feedout=[1];
ressys=feedback(LQGsys,LQGF,feedin,feedout,1);
clsys=feedback(sys,LQGF,1); %%LQG(FLQG调节器)作用于系统sys
u=[u1;u2'];
figure
y1=lsim(ressys,u,t);%%具有白噪声干扰的系统阶跃响应
plot(y1)
grid
figure
step(clsys0,10) %%计算系统clsys0的阶跃响应
grid
figure
plot(u2) %%系统白噪声干扰信号u2
grid
figure
y2=lsim(clsys,u1,t); %%LQG控制器的闭环系统阶跃响应
plot(y2)
grid
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -