自动控制原理matlab仿真实验实验严进宁.docx

上传人:b****5 文档编号:4831920 上传时间:2022-12-10 格式:DOCX 页数:37 大小:963.63KB
下载 相关 举报
自动控制原理matlab仿真实验实验严进宁.docx_第1页
第1页 / 共37页
自动控制原理matlab仿真实验实验严进宁.docx_第2页
第2页 / 共37页
自动控制原理matlab仿真实验实验严进宁.docx_第3页
第3页 / 共37页
自动控制原理matlab仿真实验实验严进宁.docx_第4页
第4页 / 共37页
自动控制原理matlab仿真实验实验严进宁.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

自动控制原理matlab仿真实验实验严进宁.docx

《自动控制原理matlab仿真实验实验严进宁.docx》由会员分享,可在线阅读,更多相关《自动控制原理matlab仿真实验实验严进宁.docx(37页珍藏版)》请在冰豆网上搜索。

自动控制原理matlab仿真实验实验严进宁.docx

自动控制原理matlab仿真实验实验严进宁

实验一系统的数学模型

一、实验目的和任务                   

1、 学会使用MATLAB的命令;                

2、 掌握MATLAB有关传递函数求取及其零、极点计算的函数。

 

3、 掌握用MATLAB 求取系统的数学模型 

二、实验仪器、设备及材料      

1、 计算机 2、 MATLAB软件 

三、实验原理 

1、 MATLAB软件的使用 

2、 使用MATLAB软件在计算机上求取系统的传递函数 

四、实验报告要求

1、将各实验内容的要求写入实验报告。

2、写出要求的实验程序。

3、记录各命令运行后的结果

五、实验内容

例1-3、设置传递函数

,时间延迟常数

方式1:

set(G,'ioDelay',4)%为系统的ioDelay属性设定值

G%显示传递函数

解:

该传递函数模型可以通过下面的语句输入到MATLAB工作空间为:

>>num=6*[1,5];

den=conv([1,3,1],[1,3,1]);

G=tf(num,den);

set(G,'ioDelay',4)

G

运行结果为:

Transferfunction:

6s+30

exp(-4*s)*------------------------------

s^4+6s^3+11s^2+6s+1

例1-4、已知传递函数

,提取系统的分子和分母多项式(实验)

解:

提取系统的分子和分母多项式程序为:

>>num=6*[1,5];

den=conv([1,3,1],[1,3,1]);

G=tf(num,den)

[numden]=tfdata(G,'v')

运行结果为:

Transferfunction:

6s+30

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

s^4+6s^3+11s^2+6s+1

num=

000630

den=

161161

例1-5例1-5 某系统的零极点模型为:

        

方法2:

利用算子(实验)

>>s=zpk('s')

G=6*(s+5)^2/((s+1)*(s+2)*(s+2+2)*(s+2-2))

运行结果为:

Zero/pole/gain:

6(s+5)^2

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

s(s+1)(s+2)(s+4)

例1-7已知系统传递函数

,求零极点及增益,并绘制系统零极点分布图。

(实验)

(1)零极点及增益:

〉〉num=[1,4,11];

den=conv([1,6,3],[1,2,0]);

G=tf(num,den)

[z,p,k]=zpkdata(G,'V')

运行结果为:

Transferfunction:

s^2+4s+11

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

s^4+8s^3+15s^2+6s

z=

+

-

p=

0

k=

1

(2)系统零极点分布图:

〉〉num=[1,4,11];

den=conv([1,6,3],[1,2,0]);

G=tf(num,den)

pzmap(G)

Transferfunction:

s^2+4s+11

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

s^4+8s^3+15s^2+6s

例1-11 给定零极点模型:

         

用MATLAB命令得出其等效的零极点传递函数模型。

输入程序的过程中要注意大小写。

〉〉den1=conv([132j],[13-2j]);

den2=conv(den1,[1]);

G=tf(conv([12],[17]),conv([10],den2))

运行结果为:

G=

s^2+9s+14

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

s^6+s^5+18s^4+s^3+4s^2+6s

实验内容:

1、特征多项式的建立与特征根的求取在命令窗口依次运行下面命令,并记录各命令运行后结果

>>p=[1,3,0,4]

p=

1304

>>r=roots(p)

r=

+

-

>>p=poly(r)

p=

2、求单位反馈系统的传递函数:

输入运行命令:

>>numg=[1];deng=[500,0,0];

numc=[1,1];denc=[1,2];

[num1,den1]=series(numg,deng,numc,denc);

[num,den]=cloop(num,den,-1);

printsys(num,den)

运行结果:

num/den=

s+1

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

500s^3+1000s^2+4s+4

3、传递函数零、极点的求取

在命令窗口依次运行下面命令,并记录各命令运行后结果:

>>num1=[6,0,1];

den1=[1,3,3,1];

z=roots(num1)

z=

0+

0-

>>p=roots(den1)

p=

+

-

>>n1=[1,1];n2=[1,2];d1=[1,2*i];d2=[1,-2*i];d3=[1,3];

num2=conv(n1,n2)

num2=

132

>>den2=conv(d1,conv(d2,d3))

den2=

13412

>>printsys(num2,den2)

num/den=

s^2+3s+2

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

s^3+3s^2+4s+12

>>num=conv(num1,den2);

den=conv(den1,num2);

printsys(num,den)

num/den=

6s^5+18s^4+25s^3+75s^2+4s+12

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

s^5+6s^4+14s^3+16s^2+9s+2

>>pzmap(num,den),title('零极点图')

4、求反馈联接系统的传递函数:

在命令窗口依次运行下面命令,并记录各命令运行后结果:

>>numg=[1];deng=[500,0,0];numc=[1,1];denc=[1,2];

numh=[1,1];denh=[1,2];

[num,den]=feedback(numg,deng,numh,denh)

运行结果:

num=

0012

den=

500100011

>>printsys(num,den)

num/den=

s+2

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

500s^3+1000s^2+s+1

5、自行利用MATLAB命令求取以下系统传递函数,并记录下结果。

>>G1=tf(2,[110]);

G2=tf([12],[13]);

Gp=feedback(G1,G2,1);

G3=tf(10,[11]);

Gs=series(G3,Gp);

H=tf([50],[168]);

Gc=feedback(Gs,H,-1)

Transferfunction:

20s^3+180s^2+520s+480

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

s^6+11s^5+43s^4+67s^3+118s^2+252s-32

实验二、典型环节的MATLAB仿真

一、实验目的:

  

1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。

 

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

 

3.定性了解各参数变化对典型环节动态特性的影响

二、 实验内容:

按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形。

(1)比例环节G1(s)=1和G1(s)=2;

Simulink图形实现:

示波器显示结果:

(2)惯性环节G1(s)=1/s+1和G2(s)=1/+1

Simulink图形实现:

示波器显示结果:

(3)积分环节G1(s)=1/s

Simulink图形实现:

示波器显示结果:

(4)微分环节G1(s)=s

Simulink图形实现:

示波器显示结果:

(5)比例+微分环节(PD)

1)、G1(s)=s+2

Simulink图形实现:

示波器显示结果:

2)、G2(s)=s+1

Simulink图形实现:

示波器显示结果:

(6)比例+积分环节

1)、G1

(1)=1+1/s

Simulink图形实现:

示波器显示结果:

1)G2(s)=1+1/2s

Simulink图形实现:

示波器显示结果:

 

实验三、控制系统的时域分析

一、实验目的

学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性。

二、实验内容

(一)稳定性

1.系统传函为

,试判断其稳定性

>>roots([1,4,25])

运行结果:

ans=

+

-

特征方程的根都具有负实部,因而该系统为稳定的。

2.用Matlab判断

的稳定性

>>roots([1,7,3,5,2])

运行结果:

ans=

+

+

-

+

特征方程的根不是全部都具有负实根,因而该系统是不稳定的。

(二)阶跃响应

1.二阶系统

1)键入程序,观察并记录单位阶跃响应曲线如图14所示。

>>G=tf([0,0,10],[1,2,10]);

t=0:

:

5;

c=step(G,t);

plot(t,c)

Css=dcgain(G)

Css=

1

图14MATLAB绘制的响应曲线

2)计算系统的闭环根、阻尼比、无阻尼振荡频率,并记录

>>num=[10];

den=[1,2,10];

G=tf(num,den);

roots(den)

wn=sqrt(num)

znb=2/(2*wn)

ans=

+

-

wn=

znb=

3)记录实际测取的峰值大小、峰值时间及过渡过程时间,并填表:

相关理论知识可填下表:

=

>>num=[10];

den=[1,2,10];

G=tf(num,den);

step(num,den);

grid

[y,t]=step(G);

[Y,k]=max(y);

cmax=Y

tp=t(k);

i=length(t);

C=dcgain(G);

while(y(i)>*C)&(y(i)<*C)

i=i-1;

end

time2=t(i)

while(y(i)>*C)&(y(i)<*C)

i=i-1;

end

time5=t(i)

cmax=

time2=

time5=

实际值

理论值

峰值Cmax

峰值时间tp

过渡时间

ts

4)修改参数,分别实现

的响应曲线,并记录

>>wn=sqrt(10);

znb=1;

num=[wn^2];

den=[1,2*znb*wn,wn^2]

G=tf(num,den);

step(G)

holdon

znb=2;

den=[1,2*znb*wn,wn^2]

G=tf(num,den);

step(G)

grid

title

den=

den=

(三)系统动态特性分析

用Matlab求二阶系统

的峰值时间

上升时间

调整时间

超调量

1.二阶系统

>>G=tf([120],[1,12,120]);

[y,t]=step(G);

[Y,K]=max(y);

tp=t(K)

c=dcgain(G);

n=1;

whiley(n)

n=n+1;

end

tr=t(n)

i=length(t);

while(y(i)>*c)&(y(i)<*c)

i=i-1;

end

ts=t(i)

ct1=(Y-c)/c*100%

结果:

tp=

tr=

ts=

ct1=

2.二阶系统

>>G=tf([],[1]);

[y,t]=step(G);

[Y,k]=max(y);

tp=t(k)

C=dcgain(G);

n=1;

whiley(n)

n=n+1;

end

tr=t(n)

i=length(t);

while(y(i)>*C)&(y(i)<*C)

i=i-1;

end

ts=t(i)

ct1=(Y-c)/c*100

显示结果:

tp=

tr=

ts=

+003

ct1=

实验四、控制系统的根轨迹分析

一、实验目的

1.利用计算机完成控制系统的根轨迹作图

2.了解控制系统根轨迹图的一般规律

3.利用根轨迹图进行系统分析

二、实验内容

1-1.

>>G=tf(1,[conv([1,2,2],[1,6,13]),0]);

rlocus(G);

grid

title('RootLocusPlotofG(s)=K/[s(s+2s+2)(s^2+6s+13)]')

[K,P]=rlocfind(G)

Selectapointinthegraphicswindow

结果显示:

selected_point=+

K=

P=

+

-

+

-

所以K的取值范围是:

0

1-2.

>>s=tf('s');

G=(s+12)/((s+1)*(s^2+12*s+100)*(s+10));

rlocus(G)

grid

title('G(s)=K(s+12)/[(s+10)(s^2+12*s+100)(s+10)]的根轨迹曲线')

[K,P]=rlocfind(G)

Selectapointinthegraphicswindow

selected_point=

+

K=

+003

P=

+

+

-

所以K值的取值范围是:

0

1-3.

>>s=tf('s');

G=+1)/(s**s+1)**s^2+*s+1));

rlocus(G)

grid

title('G(s)=K+1)/[s+1)^2++1)]的根轨迹曲线')

[K,P]=rlocfind(G)

Selectapointinthegraphicswindow

selected_point=

+

K=

P=

+

-

+

-

所以K值的取值范围是:

0

>>s=tf('s');

G=(s^2+2*s+4)/(s*(s+4)*(s+6)*(s^2+4*s+1));

G1=feedback(G,1);

rlocus(G1);

grid

title('RootLocusPlotofG(s)=K(s^2+2*s+4)/(s*(s+4)*(s+6)*(s^2+4s+1))')

[K,P]=rlocfind(G1)

Selectapointinthegraphicswindow

selected_point=

+

K=

P=

+

-

+

-

实验六、控制系统的频率分析

一、实验目的

1.利用计算机作出开环系统的波特图

2.观察记录控制系统的开环频率特性

3.控制系统的开环频率特性分析

二、实验内容

1.用Matlab作Bode图.要求:

画出对应Bode图,并加标题.

(1)

>>num=[25];

den=[1,4,25];

bode(num,den)

grid

title('BodeDiagramofG(s)=25/(s^2+4*s+25)')

显示伯德图如下所示:

(2)

>>num=9*[1,,1];

den=conv([1,0],[1,,9]);

bode(num,den)

grid

title('BodeDiagramofG(s)=9*(s^2+*s+1)/(s*(s^2+*s+9)')

显示伯德图如下所示:

 

2.某开环传函为:

,试绘制系统的Nyquist曲线,并判断闭环系统稳定性,最后求出闭环系统的单位脉冲响应。

(1)系统的Nyquist曲线

>>num=[50];

den=conv([1,5],[1,-2]);

nyquist(num,den)

grid

title('NyquistPlotofG(s)=50/[(s+5)*s-2]')

 

显示奈氏图如下所示:

2)判断闭环系统稳定性及单位脉冲响应

>>num=[50];

den=conv([15],[1-2]);

G=tf(num,den);

G1=feedback(G,1);

figure;

nyquist(num,den)

%v=[-2,2,-2,2];

%axis(v)

grid

title('′NyquistPlotofG(s)=50/(s+5)*(s-2)')

figure;

impulse(G1)

显示结果:

3.已知系统结构图如图所示:

其中:

(1)

(2)

要求:

(a)作波特图,并将曲线保持进行比较

>>Gc1=tf([1],[1]);

Gc2=tf([1],[110]);

G=tf([1],[110]);

G11=series(Gc1,G);

G22=series(Gc2,G);

sys1=feedback(G11,1,-1);

sys2=feedback(G22,1,-1);

bode(sys1,sys2);

gridon;

title('波特图')

(b)分别计算两个系统的稳定裕度值,然后作性能比较

(1)

>>G1=tf([1],[1]);

G3=tf([1],[110]);

Ga=series(G1,G3);

sys1=feedback(Ga,1,-1);

bode(sys1);

margin(sys1);

[Gm,Pm,Wcq,Wcp]=margin(sys1)

grid

title('lige')

Gm=

Inf

Pm=

90

Wcq=

Inf

Wcp=

(2)

>>num=[1];

den=conv([10],[11]);

G2=tf(num,den);

G3=tf([1],[110]);

Gb=series(G2,G3);

sys2=feedback(Gb,1,-1);

bode(sys2);

margin(sys2);

[Gm,Pm,Wcq,Wcp]=margin(sys2)

grid

title('lige')

gridon

Warning:

Theclosed-loopsystemisunstable.

In(line25)

InDynamicSystem/margin(line65)

Gm=

Inf

Pm=

Wcq=

NaN

Wcp=

(b)输入命令:

>>num=[1];

den=conv([1,0],[1,1]);

G1=tf(num,den);

G2=tf(1,1);

G3=series(G1,G2);

G=feedback(G3,1);

[Gm,Pm,Wcg,Wcp]=margin(G)

显示结果:

Gm=Inf

Pm=90

Wcg=Inf

Wcp=

实验七、数字PID控制

一、实验目的 

1.了解PID控制器中P、I、D三种基本控制作用对控制系统性能的影响。

 

2.进行PID控制器参数工程整定技能训练。

 

二、实验内容

(a)

(b)

(c)

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

当前位置:首页 > 高等教育 > 军事

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

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