基于matlab的状态空间相关实现
(1)配置极点,使超调量
,调节时间
该系统完全能控。
取符合条件的区域内,
为主导极点,另一个极点为
(如下图所示)
下面计算增益矩阵K
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[2,0,1]';
P=[-1.25+1i,-1.25-1i,-5]';
K=acker(A,B,P);
K=[1.8125 2.9375 0.8750]
下面是引入状态反馈的参考输入相应图
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[2,0,1]';
C=[1,0,0];
P=[-1.25+1i,-1.25-1i,-5]';
K=acker(A,B,P);
zuhe=[A,B;C,0];
[p,q]=size(zuhe);
answ=zeros(q,1);
answ(q)=1;
N=zuhe^(-1)*answ;
Nx=N(1:q-1);
Nu=N(q);
N1=K*Nx+Nu;
newA=A-B*K;
newB=B*N1;
G=ss(newA,newB,C,0);
[x1,x2,x3]=step(G,6);
hold on
grid on
plot(x2,x3(:,1),x2,x3(:,2),x2,x3(:,3))
从图中可以看出,所选取的几点符合要求。
(2)对称根轨迹。(选取两个
)
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[2,0,1]';
C=[1,0,0];
[num,den]=ss2tf(A,B,C,0);
number=length(num);
for i=1:number
if mod(i,2)==1
num1(i)=num(i);
den1(i)=den(i);
else num1(i)=-num(i);
den1(i)=-den(i);
end
end
num2=conv(num,num1);
den2=conv(den,den1);
G=tf(num2,den2);
rlocus(G)
grid on
取
,对应的左半平面的三个根为
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[2,0,1]';
root1=[-0.837+1.47i,-0.837-1.47i,-1.79];
K=acker(A,B,root1);
zuhe=[A,B;C,0];
[p,q]=size(zuhe);
answ=zeros(q,1);
answ(q)=1;
N=zuhe^(-1)*answ;
Nx=N(1:q-1);
Nu=N(q);
N1=K*Nx+Nu;
newA=A-B*K;
newB=B*N1;
G=ss(newA,newB,C,0);
[x1,x2,x3]=step(G,6);
hold on
grid on
plot(x2,x3(:,1),x2,x3(:,2),x2,x3(:,3))
得到在
下的引入全状态的参考输入响应
取
,对应的左半平面的三个根为
与上面的程序类似,得到在
下的引入全状态反馈的参考输入响应
两者阶跃响应对比:
从图中可以看出,
时的控制效果相对较好。
(3)观测器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
故系统完全能观。
一般观测器的极点实部取控制极点的实部的2~5倍。
以第一问中的极点
为控制极点,
取3倍
则观测器的主导极点为
,另一个极点为
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[1,0,0];
P=[-3.75+1i;-3.75-1i;-12];
Lt=acker(A',B',P);
L=Lt';
得到:
L =
16.5000
12.5625
-46.0938
下面进行simulink仿真
从图中可以看到观测器的跟踪效果比较好。
(4)降阶观测器设计。
由
得,系统的第一个状态
可以直接测量,即
。现在把系统的状态矩阵分成两部分:
其中:
不可测的状态变量的动态方程为:
而
EMBED Equation.3
整理得到:
设一个新的状态:
则降阶估计器为:
新估计器的极点选为
。
Abb=[-1,1;0,-1];
A1b=[-2,-2];
P=[-3.75+1i;-3.75-1i];
L1=acker(Abb',A1b',P);
L=L1';
得到L=
1.5313
-4.2813
得到不可直接测得的两个状态
的跟踪效果如下:
(5)控制器和观测器结合,引入全状态反馈的参考输入响应。
以观测器的状态作为反馈,送给控制器。
下面是对阶跃响应的结果:
从响应曲线可以看到,系统地超调量和调节时间满足第一问里面的要求。
(6)引入噪声
a.只有输入引入噪声时的响应:
b.输入输出都引入噪声时的响应:
(7)积分控制
对于输入扰动
,增加一个额外的状态
其中
+
,
设带积分器的系统四个极点分别为P=[-1.25+1i,-1.25-1i,-4,-4]'
估计器的极点为P1=[-3.75+1i,-3.75-1i,-12]
下面计算K与L
A=[-1,-2,-2;0,-1,1;1,0,-1];
B=[2,0,1]';
C=[1,0,0];
newA=[0,C;[0;0;0],A];
newB=[0;B];
P=[-1.25+1i,-1.25-1i,-4,-4]';
K=acker(newA,newB,P);
P1=[-3.75+1i,-3.75-1i,-12];
Lt=acker(A',C',P1);
L=Lt';
K=
-20.5000 -5.9687 8.7500 19.4375
L =
16.5000
12.5625
-46.0938
仿真如下:
对于同样的干扰,消除输入扰动的效果与不加积分器的对比如下:
加入积分器:
不加积分器:
两者比较可知,加入积分器,消除输入干扰的效果比较好,但是效果不是很明显,我觉得原因可能在于极点的选取。
_1334429992.unknown
_1334503035.unknown
_1334508791.unknown
_1334573740.unknown
_1334574667.unknown
_1334575051.unknown
_1334575070.unknown
_1334575078.unknown
_1334575043.unknown
_1334573833.unknown
_1334511923.unknown
_1334573318.unknown
_1334509056.unknown
_1334507416.unknown
_1334508129.unknown
_1334508161.unknown
_1334507677.unknown
_1334503577.unknown
_1334503671.unknown
_1334503377.unknown
_1334501881.unknown
_1334502805.unknown
_1334502887.unknown
_1334502913.unknown
_1334502847.unknown
_1334502749.unknown
_1334502777.unknown
_1334502607.unknown
_1334432995.unknown
_1334473526.unknown
_1334501801.unknown
_1334433137.unknown
_1334430756.unknown
_1334432816.unknown
_1334432886.unknown
_1334430788.unknown
_1334430127.unknown
_1334424078.unknown
_1334424398.unknown
_1334425680.unknown
_1334428667.unknown
_1334425630.unknown
_1334424255.unknown
_1334424291.unknown
_1334424173.unknown
_1334423693.unknown
_1334423725.unknown
_1334423330.unknown
_1334423559.unknown
_1334423585.unknown
_1334423498.unknown
_1334423229.unknown