MATLAB控制系统各种仿真例题包括simulink解法.docx

上传人:b****7 文档编号:11209170 上传时间:2023-02-25 格式:DOCX 页数:35 大小:363.73KB
下载 相关 举报
MATLAB控制系统各种仿真例题包括simulink解法.docx_第1页
第1页 / 共35页
MATLAB控制系统各种仿真例题包括simulink解法.docx_第2页
第2页 / 共35页
MATLAB控制系统各种仿真例题包括simulink解法.docx_第3页
第3页 / 共35页
MATLAB控制系统各种仿真例题包括simulink解法.docx_第4页
第4页 / 共35页
MATLAB控制系统各种仿真例题包括simulink解法.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

MATLAB控制系统各种仿真例题包括simulink解法.docx

《MATLAB控制系统各种仿真例题包括simulink解法.docx》由会员分享,可在线阅读,更多相关《MATLAB控制系统各种仿真例题包括simulink解法.docx(35页珍藏版)》请在冰豆网上搜索。

MATLAB控制系统各种仿真例题包括simulink解法.docx

MATLAB控制系统各种仿真例题包括simulink解法

一、控制系统的模型与转换

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)

num=[0,7.1570,-6.4875];

den=[1,-2.2326,1.7641,-0.4966];

sysd=tf(num,den,0.05,'variable','z^-1')

Transferfunction:

7.157z^-1-6.487z^-2

-----------------------------------------

1-2.233z^-1+1.764z^-2-0.4966z^-3

Samplingtime:

0.05

二、线性系统分析

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1