自控与现控的区别于联系1

             

 

                        自控

                     现控
一、主要数学模型

传递函数:描述系统输出与输入的拉斯变换之比

求取传递函数:将描述系统的常系数微分方程进

      行拉式变换,或者由结构图、信号流图等获

状态空间:不仅能反映系统输出与输入之比

      更重要的是反映系统中各个中间变量(Xi)

      与输入(u)之间的关系。

求取状态空间表达式:由常系数微分方程将系

      统分为无零点、有零点两类,具体参考

      [1]刘豹.现代控制理论[M].北京:机械工业出版社,2006:22-29.

二、主要研究目的

通过对系统开环传递函数的分析,确定系统闭环

单位负反馈的稳定性

通过对系统矩阵A,B,C,D分析,确定系统的能控

性、能观性,进而完成最小实现、极点配置、状

态观测器的设计等

三、分析方法

1、根轨迹:开环传函的参数K确定闭环系统的极

点位置,全在左半平面时系统稳定

2、频域分析:令S=jω

   幅相图:横轴为实部,纵轴为虚部

         奈奎斯特稳定判据:Z=P-N

               P:开环传函正实部极点个数(非最小相位环节)

                    N:半闭合曲线逆时针包围临界点(-1,j0)的圈数

    伯德图:稳定裕度(反应系统的相对稳定性)

         相角裕度:γ=180°+∠(G(jωc)H(jωc))

                 含义:如果开环相频特性在滞后γ度,系统临界稳定

            幅值裕度:h=1/|G(jωx)H(jωx)|

                 含义:如果开环幅频特性再增大h倍,系统临界稳定

3、系统矫正 :当系统的结构、参数等确定以后

传递函数就确定了,但此时的系统一般不能满足

我们对于稳定性的要求,还需要串联一个控制器

构成串联超前(滞后)矫正等,进而获得一个新

开环传递函数,再利用之前的稳定性判据对系

统重新分析

1、能控性:不同的输入u能够控制各个状态变量

Xi到达任一状态;

    能观性:通过输出y能够知道每个状态变量Xi

此时的状态

2、状态反馈与极点配置:与单位负反馈做对比

状态反馈是将各个状态变量(Xi)的值引入输入端

构成闭环系统,求出[A-BK]的特征值

|λI-(A-BK)|=0结合期望的极点确定反馈

阵K的值(对比根轨迹法)

3、系统解耦

      将多输入多输出系统转变为一 一对应关系

即一个输入控制一个输出,且一个输出仅受一个

输入控制

4、状态观测器(分离特性)

      并非所有的状态变量都是可观测的;

       以u为输入,(y-y1)为反馈信号输入,使x1趋近于x,

y1趋近于y,构造新的状态空间表达式:

           x1=(A-GC)x+Gy+Bu

四、其他

传递函数只能反映系统中能控且能观子系统的动

力学行为,即一个传递函数阵描述了无穷多个内

部结构不同的系统,其中维数最小的一类系统就

最小实现(能控且能观)

分析工具:MATLAB

G1=tf([1],[1 10]);
G2=tf([1],[1 1]);
G3=tf([1 0 1],[1 4 4]);
numg4=[1 1];deng4=[1 6];G4=tf(numg4,deng4);
H1=zpk([-1],[-2],1);
numh2=[2];denh2=[1];H3=1;
nh2=conv(numh2,deng4);dh2=conv(denh2,numg4);
H2=tf(nh2,dh2);
sys1=series(G3,G4);
sys2=feedback(sys1,H1,+1);
sys3=series(sys2,G2);
sys4=feedback(sys3,H2,-1);
sys5=series(G1,sys4);
sys6=feedback(sys5,H3)
zeta=0.707;
num=[16]; den=[1 8*zeta 16];
sys=tf(num,den);
p=roots(den)
t=0:0.01:3;
figure(1)
impulse(sys,t);grid
xlabel('t');ylabel('c(t)');title('impulse response');
figure(2)
step(sys,t);grid
xlabel('t');ylabel('c(t)');title('step response');
figure(3)
u=t;
lsim(sys,u,t,0);grid
xlabel('t');ylabel('c(t)');title('ramp respose');
G=tf([1 4],[1 4 20]);
figure(1)
pzmap(G);
figure(2)
rlocus(G);
G=tf([1280 640],[1 24.2 1604.81 320.24 16]);
figure(1)
margin(G);

figure(2)
nyquist(G);
axis equal
K=1/0.1;
G0=zpk([],[0 -1],K)
[h0,r,wx,wc]=margin(G0);
wm=4.4;
L=bode(G0,wm);
Lwc=20*log10(L);
a=10^(-0.1*Lwc);
T=1/(wm*sqrt(a));
phi=asin((a-1)/(a+1));
Gc=(1/a)*tf([a*T 1],[T 1]);
Gc=a*Gc
G=G0*Gc;
bode(G,'r',G0,'b--');grid;
[h,r,wx,wc]=margin(G);

sys1=feedback(G0,1)
sys2=feedback(G,1)
t=0:0.01:10;
figure(2)
step(sys1,t);grid
figure(3)
step(sys2,t);
A=[-2 2 -1;0 -2 0;1 -4 0]; b=[0 1 1]'; c=[1 0 1]; d=0;       %系统矩阵A、B、C、D
N=size(A);n=N(1);
Q=eye(n);                 %选定n*n的单位阵Q
P=lyap(A',Q);             %求对称阵P;当P的各阶顺序主子行列式>0,P正定,系统稳定
e1=eig(P);                %利用特征值判断对称阵P是否正定;特征值全>0与P正定等价???
e2=eig(A);                %计算系统的特征根;系统的特征根==矩阵A的特征值|λI-A|=0中λ的值==系统的极点???
                          %特征根全部为负即极点全部位于左半平面,系统稳定,取代第2~5行
sys=ss(A,b,c,d);          %建立系统的状态空间模型
[y,t,x]=initial(sys,[1 -2 3]');        %计算系统的零输入响应;[1 -2 3]'系统的初始状态
figure(1)
plot(t,x);grid            %绘制系统零输入响应状态曲线
xlabel('t(s)');ylabel('x(t)');title('initial response');
figure(2)
plot(t,y);grid            %绘制系统零输入响应输出曲线
xlabel('t(s)');ylabel('y(t)');title('initial response');
[num,den]=ss2tf(A,b,c,d); %将系统状态空间模型转换为传递函数模型

S=ctrb(A,b);              %计算可控性矩阵S;即判断能控性时构造的矩阵,判断是否满秩
f=rank(S);                %通过rank命令求可控性矩阵的秩
if f==n                   %判断系统的可控性
    disp('system is controlled')
else
    disp('system is no controlled')
end

V=obsv(A,c);              %计算可观测性矩阵V;同上
m=rank(V);                %求可观测性矩阵的秩
if m==n                   %判断系统的可观测性
    disp('system is observable')
else
    disp('system is no observable')
end

S1=inv(S);                %通过inv命令求矩阵的逆S-?
T=[S1(3,:);S1(3,:)*A;S1(3,:)*A^2];  %求变换矩阵T
sys1=ss2ss(sys,T);        %通过相似变换矩阵T将系统化为可控标准型
[A1,b1,c1,T1]=obsvf(A,b,c)    %系统可观测性分解???并非表达式里面不含y就是不可观的
[A2,b2,c2,T2]=ctrbf(A,b,c)    %系统可控性分解???并非表达式里面不含u就是不可控的
sysr=minreal(sys)             %求系统的最小实现???
A=[-2 -2.5 -0.5;1 0 0;0 1 0];b=[1 0 0]';c=[1 4 3.5];d=0;
N=size(A);n=N(1);
sys0=ss(A,b,c,d);                      %建立系统状态空间模型
S=ctrb(A,b);                           %求{A,b}可控性判别矩阵
f=rank(S);                             %求可控性判别矩阵的秩
if f==n                                %判断系统的可控性
    disp('system is controlled')
else
    disp('system is no controlled')
end
V=obsv(A,c);                           %求{A,c}可观测性判别矩阵
m=rank(V);                             %求可观测性判别矩阵的秩
if m==n                                %判断系统的可观测性 
    disp('system is observable')
else
    disp('system is no observable')
end

P_s=[-1 -2 -3];                        %系统期望配置的极点
k=acker(A,b,P_s)                       %计算系统的反馈增益向量K;充要条件是系统可控
P_o=[-3 -5 -7];                        %观测器的期望配置极点
h=(acker(A',c',P_o))'                  %计算观测器输出反馈向量h;全维状态观测器
sys1=ss(A-b*k,b,c,d)                     
e1=eig(A-b*k)                          %利用状态反馈实现极点配置

A1=[A -b*k;h*c A-b*k-h*c];b1=[b;b];c1=[c zeros(1,3)];d1=0;
sys2=ss(A1,b1,c1,d1)                   %建立复合系统动态模型;分离定理P488
e2=eig(A1);e3=eig(A-h*c);e4=eig(A-b*k-h*c);  %验证极点配置结果
x0=[1 -0.75 0.4]';x10=[0 0 0]';
t=0:0.01:4;
[y,t,x]=initial(sys2,[x0;x10],t);      %计算系统的零输入响应
figure(1)
plot(t,x(:,1:3));grid                  %零输入响应系统状态曲线
xlabel('t(s)');ylabel('x(t)');
x1=x(:,1:3);
figure(2)
plot(t,x(:,4:6));grid                  %零输入响应观测状态曲线
xlabel('t(s)');ylabel('x(t)');
figure(3)
plot(t,(x(:,1:3)-x(:,4:6)));grid       %零输入响应状态误差曲线
xlabel('t(s)');ylabel('e(t)');

 

posted @ 2018-10-24 12:34  永,在路上  阅读(3316)  评论(0)    收藏  举报