octave中的LQR调用

代码如下:

1 pkg load control;                %导入控制需要的包
2
3 A=[0 1 0 0; 0 0 -1 0; 0 0 0 1; 0 0 9 0];
4 B=[0; 0.1; 0; -0.1];
5 C=[0 0 1 0];
6 D=0;
7 Q=[1 0 0 0; 0 1 0 0; 0 0 10 0; 0 0 0 10];
8 R=0.1;
9 K=lqr(A,B,Q,R);
10 Ac=A-B*K;
11 x0=[0.1; 0; 0.1; 0];
12 t=0:0.05:20;
13 u=zeros(size(t));
14
15 %[y,x]=lsim(Ac,B,C,D,u,t,x0);      %matlab中这行代码是可以的,octave中必须是下一行,需要转换下
16 [y,x]=lsim(ss(Ac,B,C,D),u,t,x0);
17
18 plot(t,y);

图形如下:

我这里需要执行下:graphics_toolkit('fltk')

posted @ 2024-11-25 15:04  叕叒双又  阅读(2)  评论(0编辑  收藏  举报