太原理工大学控制系统仿真技术实验报告
控制系统的数学模型及其仿真
1.用 MATLAB 描述下列系统的传递函数模型,并将其转化为状态空间表达式
%传函到状态空间表达式
num=4*conv([1 2],[1 6 6]);
den=conv([1 0],conv([1 1],conv([1 1],conv([1 1],[1 3 2 5]))));
G=tf(num,den)
[A,B,C,D]=tf2ss(num,den)
%ss状态空间 tf传函 zp零极点,zp()[Z,P,K],Z是零点,P是极点,K是增益
2.设系统的状态空间表达式如下,用 MATLAB 语句表示,并将其转化为传递函数模型。
%状态空间表达式到传函
A=[0 0 1;-3/2 -2 -1/2;-3 0 -4];B=[1 -1;-1 -1;-1 -3];
C=[1 0 0;0 1 0];
D=zeros(2);
S=ss(A,B,C,D)
[num1,den1]=ss2tf(A,B,C,D,1)
- 利用 MATLAB 求该系统的传递函数。
%求方块图的传函num
num1=[3];den1=[1];num2=[1];den2=[1 1];num3=[1 0];den3=[1 0 2];
num4=[1];den4=[1 0 0];num5=[4 2];den5=[1 2 1];num6=[50];den6=[1];
num7=[1 0 2];den7=[1 0 0 14];
[num8,den8]=series(num2,den2,num3,den3);
[num9,den9]=feedback(num4,den4,num6,den6);
[num10,den10]=feedback(num8,den8,num5,den5);
[num11,den11]=series(num10,den10,num9,den9);
[num12,den12]=feedback(num11,den11,num7,den7);
[num13,den13]=series(num12,den12,num1,den1);
G=tf(num13,den13)
%parallel并联
%[num,den]/[A B C D]=c2dm(num,den,T,'选项'),连续形式到离散形式,
%printsys(num,den,'s')
4.下图所示为直流拖动电机方框图,求以 r(t)和 M(t)为输入,n(t)为输出的两个传递函数模型。
%符号传函反馈函数
%ex2_14_1
function GB=ex2_14_1(G,H,sign)
if nargin==2
sign=-1;
end
GB=G/(sym(1)-sign*G*H);
GB=simplify(GB);
%符号传函主函数
%纯自控分析,连乘合并
%ex2_14_2
syms Ka Kr c1 c2 c Ra T1 T2 Km Kb s
Ga=ex2_14_1(1/Ra/(T1*s+1)*Km*1/c/(T2*s+1),Kb);
G1=c1*ex2_14_1(Ka*Kr*Ga/s,c2);G1=collect(G1,s)
G2=ex2_14_1(1/c/(T2*s+1)/s,Km/Ra/(T1*s+1)*(Kb*s+c2*Kr*Ka));G2=collect(G2,s)