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')
人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。