《MATLAB控制系统仿真计算(共25页).doc》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真计算(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一、 控制系统的模型与转换1 请将下面的传递函数模型输入到matlab环境。 ,T=0.1s s=tf(s); G=(s3+4*s+2)/(s3*(s2+2)*(s2+1)3+2*s+5); G Transfer function: s3 + 4 s + 2-s11 + 5 s9 + 9 s7 + 2 s6 + 12 s5 + 4 s4 + 12 s3 num=1 0 0.56; den=conv(1 -1,1 -0.2 0.99); H=tf(num,den,Ts,0.1) Transfer function: z2 + 0.56-z3 - 1.2 z2 + 1.1
2、9 z - 0.992 请将下面的零极点模型输入到matlab环境。请求出上述模型的零极点,并绘制其位置。 ,T=0.05sz=-1-j -1+j; p=0 0 -5 -6 -j j; G=zpk(z,p,8) Zero/pole/gain: 8 (s2 + 2s + 2)-s2 (s+5) (s+6) (s2 + 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:z5 (z+0.3125) (z+0.3846)- (z-0.122) Sampling time: 0.05pzm
3、ap(H)二、 线性系统分析1. 请分析下面传递函数模型的稳定性。 num=1;den=1 2 1 2;G=tf(num,den);eig(G)ans =-2.0000 0.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. 请判定下面离散系统的稳定性。
4、 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 0 0 0 0 0 0 0 0 0 0 0 0
5、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.2716 0.1193 0.1193 可以看出,由于4.1724这个特征根的模大于1,所以可以判定闭环系统是不稳定的。3. 设描述系统的传递函数为,假定系统具有零初始状态,请求出单位阶跃响应曲线和单位脉冲响应曲线。 num=18 514 5982 36380 22088 40320; den=1 36 546 4536 22449 67284 40320; G=tf(num,de
6、n) Transfer function: 18 s7 + 514 s6 + 5982 s5 + 36380 s4 + s3 + 22088 s2 + s + 40320-s8 + 36 s7 + 546 s6 + 4536 s5 + 22449 s4 + 67284 s3 + s2 + s + 40320 step(G,10) impulse(G,10)单位阶跃响应:单位脉冲响应:三、 线性系统Simulink仿真应用1. 请分析下面传递函数模型阶跃响应。 利用Simulink建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:2. 请分析下面离散系统的脉冲响应。
7、 利用Simulink建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的脉冲响应如下:3. 对离散采样系统进行分析,并求出其阶跃响应。 其中:利用Simulink建模,建立系统仿真模型如下:单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:4. 设计控制器,使得下列系统稳定。 利用Simulink建模,未连入控制器时,仿真模型和响应如下:利用Simulink建模,设计控制器:从响应输出图形可以看出,连入控制器后系统稳定,性能明显提高。四、 基于MATLAB的PID 控制器设计设计题目:1. 应用Ziegler Nichols算法设计PID控制器,实现系统的闭环稳定,并比较对各
8、个系统的控制效果。 未连入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 =1 0Kp =2.
9、8387Ti =3.7200Td =0.9300根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。仿真模型及其响应如下:可见,加入PID控制器调节后,系统性能明显改善。未连入PID控制器时的系统仿真及其性能指标如下: 可见,未调节时的系统性能有待提高,需设计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、
10、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控制器调节后,系统性能明显改善。利用Simulink建模,未连入控制器时,仿真模型和响应如下:可见,未调节时的系统性能有待提高,需设计PID控制器连入。输入:num=-1.5 1; den=conv( 1,
11、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.8 T=5.7; num,den,Kp,Ti,Td=Ziegler_std (3,K,L,T)得出:num = 3.4200 3.8000 2.1111den =1 0Kp =3.8000Ti =3.6000Td =0.9000根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。仿真模型及其响应如下:可见,加入PID控制器调节
12、后,系统性能明显改善。五、 模糊控制器设计设计任务:试设计一个模糊控制器,实现对室内温度的控制的模拟。参考输入:(1)温度18-40范围内分为七个论域,NB NM NS ZE PS PM PB;隶属度函数满足高斯分布;(2)温度变化率-2 2范围内分为七个论域,NB NM NS ZE PS PM PB;隶属度函数满足高斯分布;参考输出:变频空调输出的控制信号。在一定范围内分为七个论域,NB NM NS ZE PS PM PB,隶属度函数为常数1。模糊推理过程,output=输入隶属度函数值*输出论域的中心值。注:本模糊程序采用PAM控制方式的压缩机,则其输出的转速范围为:010500转/分。控
13、制规则:% % if input is NB and errorinput is NB, then output is NB;% % if input is NB and errorinput is NM, then output is NB;% % if input is NB and errorinput is NS, then output is NB;% % if input is NB and errorinput is ZE, then output is NM;% % if input is NB and errorinput is PS, then output is NM;%
14、 % if input is NB and errorinput is PM, then output is NM;% % if input is NB and errorinput is PB, then output is NS;% % if input is NM and errorinput is NB, then output is NB;% % if input is NM and errorinput is NM, then output is NM;% % if input is NM and errorinput is NS, then output is NM;% % if
15、 input is NM and errorinput is ZE, then output is NM;% % if input is NM and errorinput is PS, then output is NM;% % if input is NM and errorinput is PM, then output is NS;% % if input is NM and errorinput is PB, then output is NS;% % if input is NS and errorinput is NB, then output is NM;% % if inpu
16、t is NS and errorinput is NM, then output is NS;% % if input is NS and errorinput is NS, then output is NS;% % if input is NS and errorinput is ZE, then output is NS;% % if input is NS and errorinput is PS, then output is NS;% % if input is NS and errorinput is PM, then output is ZE;% % if input is
17、NS and errorinput is PB, then output is ZE;% % if input is ZE and errorinput is NB, then output is NS;% % if input is ZE and errorinput is NM, then output is ZE;% % if input is ZE and errorinput is NS, then output is ZE;% % if input is ZE and errorinput is ZE, then output is ZE;% % if input is ZE an
18、d errorinput is PS, then output is ZE;% % if input is ZE and errorinput is PM, then output is PS;% % if input is ZE and errorinput is PB, then output is PS;% % if input is PS and errorinput is NB, then output is ZE;% % if input is PS and errorinput is NM, then output is PS;% % if input is PS and err
19、orinput is NS, then output is PS;% % if input is PS and errorinput is ZE, then output is PS;% % if input is PS and errorinput is PS, then output is PS;% % if input is PS and errorinput is PM, then output is PM;% % if input is PS and errorinput is PB, then output is PM;% % if input is PM and errorinp
20、ut is NB, then output is PS;% % if input is PM and errorinput is NM, then output is PS;% % if input is PM and errorinput is NS, then output is PM;% % if input is PM and errorinput is ZE, then output is PM;% % if input is PM and errorinput is PS, then output is PM;% % if input is PM and errorinput is
21、 PM, then output is PM;% % if input is PM and errorinput is PB, then output is PB;% % if input is PB and errorinput is NB, then output is PS;% % if input is PB and errorinput is NM, then output is PM;% % if input is PB and errorinput is NS, then output is PM;% % if input is PB and errorinput is ZE,
22、then output is PM;% % if input is PB and errorinput is PS, then output is PB;% % if input is PB and errorinput is PM, then output is PB;% % if input is PB and errorinput is PB, then output is PB;1.输入为:程序为: x1 = (18:0.1:40);y0 = gaussmf(x1, 1 18);y1 = gaussmf(x1, 1 21);y2 = gaussmf(x1, 1 25);y3 = gau
23、ssmf(x1, 1 29);y4 = gaussmf(x1, 1 33);y5 = gaussmf(x1, 1 37);y6 = gaussmf(x1, 1 40);plot(x1,y0 y1 y2 y3 y4 y5 y6)2.误差图:程序为: x1 = (-2:0.1:2);y0 = gaussmf(x1, 0.5 -2);y1 = gaussmf(x1, 0.5 -1.3);y2 = gaussmf(x1, 0.5 -0.7);y3 = gaussmf(x1, 0.5 0);y4 = gaussmf(x1, 0.5 0.7);y5 = gaussmf(x1, 0.5 1.3);y6 =
24、gaussmf(x1, 0.5 2);plot(x1,y0 y1 y2 y3 y4 y5 y6)3.程序为;x=35;ex=-0.8;% define input type in fuzzy zoney0 = gaussmf(x, 1 18);y1 = gaussmf(x, 1 21);y2 = gaussmf(x, 1 25);y3 = gaussmf(x, 1 29);y4 = gaussmf(x, 1 33);y5 = gaussmf(x, 1 37);y6 = gaussmf(x, 1 40);a=y0 y1 y2 y3 y4 y5 y6;b=max(a);% caculate inp
25、ut in fuzzy zone,get input_type and input_authorityvalueif x=18 if b=a(1) type=NB; authorityvalue=y0; elseif b=a(2) type=NM; authorityvalue=y1; elseif b=a(3) type=NS; authorityvalue=y2; elseif b=a(4) type=ZE; authorityvalue=y3;elseif b=a(5) type=PS; authorityvalue=y4;elseif b=a(6) type=PM; authority
26、value=y5;elseif b=a(7) type=PB; authorityvalue=y6;endelse if x40 type=PB; authorityvalue=1; elseif x18 type=NB; authorityvalue=1; endend type authorityvalue%error calculate.ey0 = gaussmf(x, 0.5 -2);ey1 = gaussmf(x, 0.5 -1.3);ey2 = gaussmf(x, 0.5 -0.7);ey3 = gaussmf(x, 0.5 0);ey4 = gaussmf(x, 0.5 0.7
27、);ey5 = gaussmf(x, 0.5 1.3);ey6 = gaussmf(x, 0.5 2);a=ey0 ey1 ey2 ey3 ey4 ey5 ey6;b=max(a);% caculate input in fuzzy zone,get input_type and input_authorityvalueif x=-2 if b=a(1) etype=NB; eauthorityvalue=y0; elseif b=a(2) etype=NM; eauthorityvalue=y1; elseif b=a(3) etype=NS; eauthorityvalue=y2; els
28、eif b=a(4) etype=ZE; eauthorityvalue=y3; elseif b=a(5) etype=PS; eauthorityvalue=y4; elseif b=a(6) etype=PM; eauthorityvalue=y5; elseif b=a(7) etype=PB; eauthorityvalue=y6; endelse if x2 etype=PB; eauthorityvalue=1; elseif x-2 etype=NB; eauthorityvalue=1; endend etype eauthorityvalue% caculate outpu
29、t by if type=NB& etype=NB out=authorityvalue*0.001; % if input is NB and errorinput is NB, then output is NB; elseif type=NB& etype=NM out=authorityvalue*0.001; % if input is NB and errorinput is NM, then output is NB; elseif type=NB& etype=NS out=authorityvalue*0.001; % if input is NB and errorinpu
30、t is NS, then output is NB; elseif type=NB& etype=ZE out=authorityvalue*1750; % if input is NB and errorinput is ZE, then output is NM; elseif type=NB& etype=PS out=authorityvalue*1750; % if input is NB and errorinput is PS, then output is NM; elseif type=NB& etype=PM out=authorityvalue*1750; % if i
31、nput is NB and errorinput is PM, then output is NM; elseif type=NB& etype=PB out=authorityvalue*3500; % if input is NB and errorinput is PB, then output is NS; elseif type=NM& etype=NB out=authorityvalue*0.001; % if input is NM and errorinput is NB, then output is NB; elseif type=NM& etype=NM out=au
32、thorityvalue*1750; % if input is NM and errorinput is NM, then output is NM;elseif type=NM& etype=NS out=authorityvalue*1750; % if input is NM and errorinput is NS, then output is NM;elseif type=NM& etype=ZE out=authorityvalue*1750; % if input is NM and errorinput is ZE, then output is NM;elseif typ
33、e=NM& etype=PS out=authorityvalue*1750; % if input is NM and errorinput is PS, then output is NM;elseif type=NM& etype=PM out=authorityvalue*3500; % if input is NM and errorinput is PM, then output is NS;elseif type=NM& etype=PB out=authorityvalue*3500; % if input is NM and errorinput is PB, then ou
34、tput is NS;elseif type=NS& etype=NB out=authorityvalue*1750; % if input is NS and errorinput is NB, then output is NM;elseif type=NS& etype=NM out=authorityvalue*3000; % if input is NS and errorinput is NM, then output is NS;elseif type=NS& etype=NS out=authorityvalue*3000; % if input is NS and erro
35、rinput is NS, then output is NS;elseif type=NS& etype=ZE out=authorityvalue*3000; % if input is NS and errorinput is ZE, then output is NS;elseif type=NS& etype=PS out=authorityvalue*3000; % if input is NS and errorinput is PS, then output is NS;elseif type=NS& etype=PM out=authorityvalue*5250; % if
36、 input is NS and errorinput is PM, then output is ZE;elseif type=NS& etype=PB out=authorityvalue*5250; % if input is NS and errorinput is PB, then output is ZE;elseif type=ZE& etype=NB out=authorityvalue*3500; % if input is ZE and errorinput is NB, then output is NS;elseif type=ZE& etype=NM out=auth
37、orityvalue*5250; % if input is ZE and errorinput is NM, then output is ZE;elseif type=ZE& etype=NS out=authorityvalue*5250; % if input is ZE and errorinput is NS, then output is ZE;elseif type=ZE& etype=ZE out=authorityvalue*5250; % if input is ZE and errorinput is ZE, then output is ZE;elseif type=ZE& etype=PS out=authorityvalue*5250; % if input is ZE and errorinput is PS, then output is ZE;elseif type=ZE& etype=PM out=authorityvalue*7000; % if input is ZE and errorinput is PM, then output is PS;elseif type=ZE& etype=PB out=authorityvalue*7000; % if input is ZE an