一、 控制系统的模型与转换1. 请将下面的传递函数模型输入到matlab 环境。
]52)1)[(2(24)(32233++++++=s s s s s s s G )99.02.0)(1(568.0)(22+--+=z z z z z H ,T=0.1s >> s=tf('s');G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5)); GTransfer function:s^3 + 4 s + 2 ------------------------------------------------------ s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3>> num=[1 0 0.56];den=conv([1 -1],[1 -0.2 0.99]); H=tf(num,den,'Ts',0.1)Transfer function: z^2 + 0.56 ----------------------------- z^3 - 1.2 z^2 + 1.19 z - 0.992. 请将下面的零极点模型输入到matlab 环境。
请求出上述模型的零极点,并绘制其位置。
)1)(6)(5()1)(1(8)(22+++-+++=s s s s j s j s s G )2.8()6.2)(2.3()(1511-++=----z z z z z H ,T=0.05s>>z=[-1-j -1+j]; p=[0 0 -5 -6 -j j];G=zpk(z,p,8)Zero/pole/gain: 8 (s^2 + 2s + 2) -------------------------- s^2 (s+5) (s+6) (s^2 + 1)>>pzmap(G)>> z=[0 0 0 0 0 -1/3.2 -1/2.6]; p=[1/8.2];H=zpk(z,p,1,'Ts',0.05)Zero/pole/gain:z^5 (z+0.3125) (z+0.3846) ------------------------- (z-0.122)Sampling time: 0.05>>pzmap (H )二、 线性系统分析1. 请分析下面传递函数模型的稳定性。
221)(23+++=s s s s G 13)50600300(13)(22+++++=s s s s s s G>> num=[1];den=[1 2 1 2]; G=tf(num,den); eig(G)' ans =-2.00000.0000 - 1.0000i 0.0000 + 1.0000i可见,系统有两个特征根在虚轴上,一个特征根在虚轴左侧,所以系统是临界稳定的。
>> num=[3 1];den=[300 600 50 3 1];G=tf(num,den); eig(G)' ans =-1.9152 -0.14140.0283 - 0.1073i 0.0283 + 0.1073i可见,有两个特征根在虚轴右侧,所以系统是不稳定的。
2. 请判定下面离散系统的稳定性。
)05.025.02.0(23)(23+--+-=z z z z z H)34039.804.10215.20368.791.1576.1112.2)(1234512-++--++=-------z z z z z z z z H>> num=[-3 2];den=[1 -0.2 -0.25 0.05]; H=tf(num,den,'Ts',0.1); [eig(H) abs(eig(H))] ans =-0.5000 0.5000 0.5000 0.50000.2000 0.2000可以看出,由于各个特征根的模均小于1,所以可以判定闭环系统是稳定的。
>> z=tf('z',0.1);H=(2.12*z^-2+11.76*z^-1+15.91)/…;(z^-5-7.368*z^-4-20.15*z^-3+102.4*z^-2+80.39*z-1-340);[eig(H) abs(eig(H))] ans =0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4.1724 4.1724 0.3755 + 0.1814i 0.4170 0.3755 - 0.1814i 0.4170 -0.5292 0.5292 -0.2716 0.27160.1193 0.1193可以看出,由于4.1724这个特征根的模大于1,所以可以判定闭环系统是不稳定的。
3. 设描述系统的传递函数为4032010958411812467284224494536546364032018576022208812266436380598251418)(2345678234567+++++++++++++++=s s s s s s s s s s s s s s s s G ,假定系统具有零初始状态,请求出单位阶跃响应曲线和单位脉冲响应曲线。
>> num=[18 514 5982 36380 122664 22088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320]; G=tf(num,den)Transfer function:18 s^7 + 514 s^6 + 5982 s^5 + 36380 s^4 + 122664 s^3 + 22088 s^2 + 185760 s + 40320 -----------------------------------------------------------------------------------------s^8 + 36 s^7 + 546 s^6 + 4536 s^5 + 22449 s^4 + 67284 s^3 + 118124 s^2 + 109584 s + 40320>> step(G ,10) >> impulse(G ,10)单位阶跃响应:单位脉冲响应:三、线性系统Simulink仿真应用1. 请分析下面传递函数模型阶跃响应。
221)(23+++=s s s s G利用Simulink 建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:2. 请分析下面离散系统的脉冲响应。
13)50600300(143)(2223++++++=s s s s s s s G利用Simulink 建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的脉冲响应如下:3. 对离散采样系统进行分析,并求出其阶跃响应。
其中:2373)(23++++=s s s s s G利用Simulink 建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:4. 设计控制器,使得下列系统稳定。
)2.1)(2)(3()3.2)(1()(+-+++=s s s s s s G利用Simulink 建模,未连入控制器时,仿真模型和响应如下:利用Simulink 建模,设计控制器:从响应输出图形可以看出,连入控制器后系统稳定,性能明显提高。
以下只做了解四、 基于MATLAB 的PID 控制器设计设计题目:1. 应用Ziegler — Nichols 算法设计PID 控制器,实现系统的闭环稳定,并比较对各个系统的控制效果。
3)1s (1G(s)+=未连入PID 控制器时的系统仿真及其性能指标如下:可见,未调节时的系统性能有待提高,需设计PID控制器连入。
输入:>> num=1;den=conv( [1,1],conv( [1,1],[1,1] ));Step(num,den);K=dcgain (num,den)得出:K =1根据图形,得出:L=1.86 T=4.4利用自定义的Ziegler_std函数求出Kp、Ti、Td输入:>> K=1;L=1.86;T=4.4;[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])得出:num =2.6400 2.8387 1.5262den =10Kp =2.8387Ti =3.7200Td =0.9300根据得出的Kp 、Ti 、Td 值,设计PID 控制器,并利用利用Simulink 仿真建模。
仿真模型及其响应如下:可见,加入PID 控制器调节后,系统性能明显改善。
5)1s (1G(s)+=未连入PID 控制器时的系统仿真及其性能指标如下:输入:>> num=1;den=conv([1,1],conv([1,1],…;conv( [1,1],conv( [1,1],[1,1] ))));Step(num,den);K=dcgain (num,den)得出:K = 1根据图形,得出:L=3.4 T=6.8利用自定义的Ziegler_std函数求出Kp、Ti、Td输入:>> K=1;L=3.4;T=6.8;[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])得出:num =4.0800 2.4000 0.7059den =1 0Kp =2.4000Ti =6.8000Td =1.7000根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。
仿真模型及其响应如下:可见,加入PID控制器调节后,系统性能明显改善。
3)1 s(1-1.5s G(s)++=利用Simulink建模,未连入控制器时,仿真模型和响应如下:输入:>>num=[-1.5 1];den=conv( [1,1],conv( [1,1],[1,1] ));Step(num,den);K=dcgain (num,den)得出:K =1根据图形,得出:L=1.8 T=5.7利用自定义的Ziegler_std函数求出Kp、Ti、Td输入:>> K=1;L=1.8T=5.7;[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])得出:num =3.4200 3.8000 2.1111den =10Kp =3.8000Ti =3.6000Td =0.9000根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。