MATLAB控制系统仿真.docx
- 文档编号:7905647
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:32
- 大小:356.63KB
MATLAB控制系统仿真.docx
《MATLAB控制系统仿真.docx》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真.docx(32页珍藏版)》请在冰豆网上搜索。
MATLAB控制系统仿真
一、控制系统的模型与转换
1.请将下面的传递函数模型输入到matlab环境。
,T=0.1s
>>s=tf('s');
G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5));
G
Transferfunction:
s^3+4s+2
------------------------------------------------------
s^11+5s^9+9s^7+2s^6+12s^5+4s^4+12s^3
>>num=[100.56];
den=conv([1-1],[1-0.20.99]);
H=tf(num,den,'Ts',0.1)
Transferfunction:
z^2+0.56
-----------------------------
z^3-1.2z^2+1.19z-0.99
2.请将下面的零极点模型输入到matlab环境。
请求出上述模型的零极点,并绘制其位置。
,T=0.05s
>>z=[-1-j-1+j];
p=[00-5-6-jj];
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=[00000-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)
Samplingtime:
0.05
>>pzmap(H)
二、线性系统分析
1.请分析下面传递函数模型的稳定性。
>>num=[1];
den=[1212];
G=tf(num,den);
eig(G)'
ans=
-2.0000
0.0000-1.0000i
0.0000+1.0000i
可见,系统有两个特征根在虚轴上,一个特征根在虚轴左侧,所以系统是临界稳定的。
>>num=[31];
den=[3006005031];
G=tf(num,den);
eig(G)'
ans=
-1.9152
-0.1414
0.0283-0.1073i
0.0283+0.1073i
可见,有两个特征根在虚轴右侧,所以系统是不稳定的。
2.请判定下面离散系统的稳定性。
>>num=[-32];
den=[1-0.2-0.250.05];
H=tf(num,den,'Ts',0.1);
[eig(H)abs(eig(H))]
ans=
-0.50000.5000
0.50000.5000
0.20000.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=
00
00
00
00
00
00
00
00
00
00
00
00
4.17244.1724
0.3755+0.1814i0.4170
0.3755-0.1814i0.4170
-0.52920.5292
-0.27160.2716
0.11930.1193
可以看出,由于4.1724这个特征根的模大于1,所以可以判定闭环系统是不稳定的。
3.设描述系统的传递函数为
,假定系统具有零初始状态,请求出单位阶跃响应曲线和单位脉冲响应曲线。
>>num=[185145982363801226642208818576040320];
den=[1365464536224496728411812410958440320];
G=tf(num,den)
Transferfunction:
18s^7+514s^6+5982s^5+36380s^4+122664s^3+22088s^2+185760s+40320
-----------------------------------------------------------------------------------------
s^8+36s^7+546s^6+4536s^5+22449s^4+67284s^3+118124s^2+109584s+40320
>>step(G,10)
>>impulse(G,10)
单位阶跃响应:
单位脉冲响应:
三、线性系统Simulink仿真应用
1.请分析下面传递函数模型阶跃响应。
利用Simulink建模,建立系统仿真模型如下:
单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:
2.请分析下面离散系统的脉冲响应。
利用Simulink建模,建立系统仿真模型如下:
单击启动仿真按钮,双击示波器得到系统的脉冲响应如下:
3.对离散采样系统进行分析,并求出其阶跃响应。
其中:
利用Simulink建模,建立系统仿真模型如下:
单击启动仿真按钮,双击示波器得到系统的阶跃响应如下:
4.设计控制器,使得下列系统稳定。
利用Simulink建模,未连入控制器时,仿真模型和响应如下:
利用Simulink建模,设计控制器:
从响应输出图形可以看出,连入控制器后系统稳定,性能明显提高。
四、基于MATLAB的PID控制器设计
设计题目:
1.应用Ziegler—Nichols算法设计PID控制器,实现系统的闭环稳定,并比较对各个系统的控制效果。
未连入PID控制器时的系统仿真及其性能指标如下:
可见,未调节时的系统性能有待提高,需设计PID控制器连入。
输入:
>>num=1;
den=conv([1,1],conv([1,1],[1,1]));
Step(num,den);
K=dcgain(num,den)
得出:
K=1
根据图形,得出:
L=1.86T=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.64002.83871.5262
den=
10
Kp=2.8387
Ti=3.7200
Td=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.4T=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.08002.40000.7059
den=
10
Kp=
2.4000
Ti=
6.8000
Td=
1.7000
根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。
仿真模型及其响应如下:
可见,加入PID控制器调节后,系统性能明显改善。
利用Simulink建模,未连入控制器时,仿真模型和响应如下:
可见,未调节时的系统性能有待提高,需设计PID控制器连入。
输入:
>>num=[-1.51];
den=conv([1,1],conv([1,1],[1,1]));
Step(num,den);
K=dcgain(num,den)
得出:
K=1
根据图形,得出:
L=1.8T=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.42003.80002.1111
den=
10
Kp=
3.8000
Ti=
3.6000
Td=
0.9000
根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。
仿真模型及其响应如下:
可见,加入PID控制器调节后,系统性能明显改善。
五、模糊控制器设计
设计任务:
试设计一个模糊控制器,实现对室内温度的控制的模拟。
参考输入:
(1)温度18-40℃范围内分为七个论域,NBNMNSZEPSPMPB;隶属度函数满足高斯分布;
(2)温度变化率-2~2℃范围内分为七个论域,NBNMNSZEPSPMPB;隶属度函数满足高斯分布;
参考输出:
变频空调输出的控制信号。
在一定范围内分为七个论域,NBNMNSZEPSPMPB,隶属度函数为常数1。
模糊推理过程,output=输入隶属度函数值*输出论域的中心值。
注:
本模糊程序采用PAM控制方式的压缩机,则其输出的转速范围为:
0~10500转/分。
控制规则:
%%ifinputisNBanderrorinputisNB,thenoutputisNB;
%%ifinputisNBanderrorinputisNM,thenoutputisNB;
%%ifinputisNBanderrorinputisNS,thenoutputisNB;
%%ifinputisNBanderrorinputisZE,thenoutputisNM;
%%ifinputisNBanderrorinputisPS,thenoutputisNM;
%%ifinputisNBanderrorinputisPM,thenoutputisNM;
%%ifinputisNBanderrorinputisPB,thenoutputisNS;
%%ifinputisNManderrorinputisNB,thenoutputisNB;
%%ifinputisNManderrorinputisNM,thenoutputisNM;
%%ifinputisNManderrorinputisNS,thenoutputisNM;
%%ifinputisNManderrorinputisZE,thenoutputisNM;
%%ifinputisNManderrorinputisPS,thenoutputisNM;
%%ifinputisNManderrorinputisPM,thenoutputisNS;
%%ifinputisNManderrorinputisPB,thenoutputisNS;
%%ifinputisNSanderrorinputisNB,thenoutputisNM;
%%ifinputisNSanderrorinputisNM,thenoutputisNS;
%%ifinputisNSanderrorinputisNS,thenoutputisNS;
%%ifinputisNSanderrorinputisZE,thenoutputisNS;
%%ifinputisNSanderrorinputisPS,thenoutputisNS;
%%ifinputisNSanderrorinputisPM,thenoutputisZE;
%%ifinputisNSanderrorinputisPB,thenoutputisZE;
%%ifinputisZEanderrorinputisNB,thenoutputisNS;
%%ifinputisZEanderrorinputisNM,thenoutputisZE;
%%ifinputisZEanderrorinputisNS,thenoutputisZE;
%%ifinputisZEanderrorinputisZE,thenoutputisZE;
%%ifinputisZEanderrorinputisPS,thenoutputisZE;
%%ifinputisZEanderrorinputisPM,thenoutputisPS;
%%ifinputisZEanderrorinputisPB,thenoutputisPS;
%%ifinputisPSanderrorinputisNB,thenoutputisZE;
%%ifinputisPSanderrorinputisNM,thenoutputisPS;
%%ifinputisPSanderrorinputisNS,thenoutputisPS;
%%ifinputisPSanderrorinputisZE,thenoutputisPS;
%%ifinputisPSanderrorinputisPS,thenoutputisPS;
%%ifinputisPSanderrorinputisPM,thenoutputisPM;
%%ifinputisPSanderrorinputisPB,thenoutputisPM;
%%ifinputisPManderrorinputisNB,thenoutputisPS;
%%ifinputisPManderrorinputisNM,thenoutputisPS;
%%ifinputisPManderrorinputisNS,thenoutputisPM;
%%ifinputisPManderrorinputisZE,thenoutputisPM;
%%ifinputisPManderrorinputisPS,thenoutputisPM;
%%ifinputisPManderrorinputisPM,thenoutputisPM;
%%ifinputisPManderrorinputisPB,thenoutputisPB;
%%ifinputisPBanderrorinputisNB,thenoutputisPS;
%%ifinputisPBanderrorinputisNM,thenoutputisPM;
%%ifinputisPBanderrorinputisNS,thenoutputisPM;
%%ifinputisPBanderrorinputisZE,thenoutputisPM;
%%ifinputisPBanderrorinputisPS,thenoutputisPB;
%%ifinputisPBanderrorinputisPM,thenoutputisPB;
%%ifinputisPBanderrorinputisPB,thenoutputisPB;
1.输入为:
程序为:
>>x1=(18:
0.1:
40)';
y0=gaussmf(x1,[118]);
y1=gaussmf(x1,[121]);
y2=gaussmf(x1,[125]);
y3=gaussmf(x1,[129]);
y4=gaussmf(x1,[133]);
y5=gaussmf(x1,[137]);
y6=gaussmf(x1,[140]);
plot(x1,[y0y1y2y3y4y5y6])
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.50]);
y4=gaussmf(x1,[0.50.7]);
y5=gaussmf(x1,[0.51.3]);
y6=gaussmf(x1,[0.52]);
plot(x1,[y0y1y2y3y4y5y6])
3.程序为;
x=35;
ex=-0.8;
%defineinputtypeinfuzzyzone
y0=gaussmf(x,[118]);
y1=gaussmf(x,[121]);
y2=gaussmf(x,[125]);
y3=gaussmf(x,[129]);
y4=gaussmf(x,[133]);
y5=gaussmf(x,[137]);
y6=gaussmf(x,[140]);
a=[y0y1y2y3y4y5y6];
b=max(a);
%caculateinputinfuzzyzone,getinput_typeandinput_authorityvalue
ifx<=40&x>=18
ifb==a
(1)
type='NB';
authorityvalue=y0;
elseifb==a
(2)
type='NM';
authorityvalue=y1;
elseifb==a(3)
type='NS';
authorityvalue=y2;
elseifb==a(4)
type='ZE';
authorityvalue=y3;
elseifb==a(5)
type='PS';
authorityvalue=y4;
elseifb==a(6)
type='PM';
authorityvalue=y5;
elseifb==a(7)
type='PB';
authorityvalue=y6;
end
else
ifx>40
type='PB';
authorityvalue=1;
elseifx<18
type='NB';
authorityvalue=1;
end
end
type
authorityvalue
%errorcalculate.
ey0=gaussmf(x,[0.5-2]);
ey1=gaussmf(x,[0.5-1.3]);
ey2=gaussmf(x,[0.5-0.7]);
ey3=gaussmf(x,[0.50]);
ey4=gaussmf(x,[0.50.7]);
ey5=gaussmf(x,[0.51.3]);
ey6=gaussmf(x,[0.52]);
a=[ey0ey1ey2ey3ey4ey5ey6];
b=max(a);
%caculateinputinfuzzyzone,getinput_typeandinput_authorityvalue
ifx<=2&x>=-2
ifb==a
(1)
etype='NB';
eauthorityvalue=y0;
elseifb==a
(2)
etype='NM';
eauthorityvalue=y1;
elseifb==a(3)
etype='NS';
eauthorityvalue=y2;
elseifb==a(4)
etype='ZE';
eauthorityvalue=y3;
elseifb==a(5)
etype='PS';
eauthorityvalue=y4;
elseifb==a(6)
etype='PM';
eauthorityvalue=y5;
elseifb==a(7)
etype='PB';
eauthorityvalue=y6;
end
else
ifx>2
etype='PB';
eauthorityvalue=1;
elseifx<-2
etype='NB';
eauthorityvalue=1;
end
end
etype
eauthorityvalue
%caculateoutputby
iftype=='NB'&etype=='NB'
out=authorityval
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 控制系统 仿真