基于MATLAB的系统仿真实验指导书.docx

上传人:b****7 文档编号:11098374 上传时间:2023-02-25 格式:DOCX 页数:29 大小:373.60KB
下载 相关 举报
基于MATLAB的系统仿真实验指导书.docx_第1页
第1页 / 共29页
基于MATLAB的系统仿真实验指导书.docx_第2页
第2页 / 共29页
基于MATLAB的系统仿真实验指导书.docx_第3页
第3页 / 共29页
基于MATLAB的系统仿真实验指导书.docx_第4页
第4页 / 共29页
基于MATLAB的系统仿真实验指导书.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于MATLAB的系统仿真实验指导书.docx

《基于MATLAB的系统仿真实验指导书.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的系统仿真实验指导书.docx(29页珍藏版)》请在冰豆网上搜索。

基于MATLAB的系统仿真实验指导书.docx

基于MATLAB的系统仿真实验指导书

 

基于MATLAB的系统仿真实验

实验指导书

 

二○○八年三月

 

说明

MATLAB是MATrixLABoratory的缩写,是一种基于矩阵的数学与工程计算系统,可以用作动态系统的建模与仿真。

研究系统的结构和参数的变化对系统性能的影响可利用MATLAB强大的计算和作图功能,因此本实验采用MATLAB仿真研究连续控制系统和离散控制系统的性能分析过程。

通过该实验提高学生对控制系统的分析与设计能力,加深对《自动控制原理》课程内容的理解。

该实验教学大纲中只安排了两个学时,本实验的内容比较多,要求同学们参考有关MATLAB应用的书籍利用课后时间完成。

同时可以将MATLAB用于习题的验证和课程的学习中。

 

仿真实验基于MATLAB连续系统的仿真

一、实验目的

在研究系统的结构和参数的变化对系统性能的影响时,采用解析和作图的方法比较麻烦,而且误差也大,用MATLAB仿真实现则简单方便,精度高。

本实验采用MATLAB实现控制系统的数学描述、控制系统的时域分析及根轨迹和频率特性分析。

通过该实验,加深学生对系统阶次,型号,参数与系统性能的关系的理解。

二、实验环境

在计算机Windows环境下安装好MATLAB6.3以上版本后,双击MATLAB图标或成“开始”菜单打开MATLAB,即可进入MATLAB集成环境。

三、实验原理

三、MATLAB应用实例

1.拉氏变换和反变换

例求

的拉氏变换

键入symsst;

ft=t^2+2*t+2;

st=laplace(ft,t,s)

运行结果为st=

2/s^3+2/s^2+2/s

例求

的拉氏反变换

键入symsst;

Fs=(s+6)/(s^2+4*s+3)/(s+2);

ft=ilaplace(Fs,s,t)

运行结果为ft=

3/2*exp(-3*t)+5/2*exp(-t)-4*exp(-2*t)

2。

求根运算

例求多项式

的根,再由根建多项式。

键入p=[1304];

r=root(p)

运行结果为r=

-3.3553

0.1777+1.0773i

1.7777-1.0773i

键入p=poly(r)

运行结果为p=

1.00003.00000.000040000

例实现多项式相乘:

,并求

时的值。

键入p=[321];q=[14];

n=conv(p,q)

运行结果为n=

31494

键入vlaue=polyval(n,-5)

运行结果为value=

-66

3.微分方程求解

例解下列微分方程:

初始条件

键入y=dsolve('3*D2y+3*Dy+2*y=1','y(0)=0,Dy(0)=0')

运行结果为y=

1/2-1/2*exp(-1/2*t)*cos(1/6*15^(1/2)*t)-1/10*15^(1/2)*exp(-1/2*t)*sin(1/6*15^(1/2)*t)

4.传递函数

例求如图所示系统的传递函数。

键入numg=[1];deng=[50000];

numh=[11];denh=[12];

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

printsys(num,den)

运行结果为num/den=

s+2

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

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

其中,由函数printsys(num,den)打印出传递函数。

5。

系统输出响应及性能分析

例二阶系统闭环传递函数的标准形式为

确定,系统的瞬态响应和

的取值有关。

下面用MATLAB分析在不同的

值时,系统的单位阶跃响应。

所用的MATLAB程序如下:

%

=1

t=0:

0.1:

12;num=[1];

zeta1=0;den1=[12*zeta11];

zeta3=0.3;den3=[12*zeta31];

zeta5=0.5;den5=[12*zeta51];

zeta7=0.7;den7=[12*zeta71];

zeta9=1.0;den9=[12*zeta91];

[y1,x,t]=step(num,den1,t);

[y3,x,t]=step(num,den3,t);

[y5,x,t]=step(num,den5,t);

[y7,x,t]=step(num,den7,t);

[y9,x,t]=step(num,den9,t);

plot(t,y1,t,y3,t,y5,t,y7,t,y9,)

gridon;

运行结果见图。

例已知

,分别计算KA=200时,系统的性能指标tp,ts,

解MATLAB程序如下:

t=0:

0.01:

2;

num=[1000];

den=[134.51000];

[y,x,t]=step(num,den,t);

plot(t,y);

%求超调量

maxy=max(y);

yss=y(length(t));

pos=100*(maxy-yss)/yss;

%求峰值时间

fori=1:

1:

201

ify(i)==maxy,n=i;end

end

tp=(n-1)*0.01;

%求调节时间

fori=1:

1:

201

if(y(i)<1.05&y(i)>0.95),m=i;end

break;

end

ts=(m-1)*0.01;

计算结果为

tp=0.12s,ts=0.17s,

=12.93%

例系统闭环特征方程为

用MATLAB判系统稳定性。

键入den=[11224];

roots(den)

运行结果为ans=

-3.0000

1.000+2.6458i

1.0000-2.6458i

可见,系统有两个右根,故系统不稳定。

例求出下列系统

单位阶跃

响应及稳态误差。

MATLAB程序如下:

t=0:

0.1:

20;

[num1,den1]=cloop([1],[11]);

[num2,den2]=cloop([1],[110]);

[num3,den3]=cloop([41],[1100]);

y1=step(num1,den1,t);

y2=step(num2,den2,t);

y3=step(num3,den3,t);

subplot(311);

plot(t,y1);

subplot(312);plot(t,y2);

subplot(313);plot(t,y3);

er1=y1(length(t))-1;

er2=y2(length(t))-1;

er3=y3(length(t))-1;

运行结果见图。

在命令窗口可得

er1=-0.5000%0型系统的稳态误差

er2=2.4294e-005%Ⅰ型系统的稳态误差

er3=-3.3525e-004%Ⅱ型系统的稳态误差

例用SIMULINK对第七节中单闭环无静差调速系统进行仿真。

解在SIMULINK下建立系统仿真结构图如图3-46所示。

仿真的结果见图3-47。

6。

绘制系统的根轨迹图

例设一单位反馈系统如图4-31所示,试绘制该系统的根轨迹。

 

键入num=[1];

den=[1320];

rlocus(num,den)

运行结果见图4-32。

例已知系统前向通道传递函数为

,反馈通道传递函数为

,试绘出系统闭环根轨迹图。

键入Gc=tf(1,[15]);

Go=tf([11],[180]);

H=tf(1,[12]);

rlocus(Gc*Go*H);

v=[-1010;–1013];axis(v);

gridon

运行结果见图4-33。

图4-33例4-18系统根轨迹

7.绘制系统的频率特性图

例5振荡环节传递函数的标准形式为

确定时,系统的频率特性与

的取值有关。

用MATLAB绘出

时,在不同

取值下,系统的Bode图和Nyquist图。

解1)作Bode图程序:

num=[1];

zeta1=0.1;den1=[12*zeta11];

zeta3=0.3;den3=[12*zeta31];

zeta5=0.5;den5=[12*zeta51];

zeta7=0.7;den7=[12*zeta71];

zeta9=1.0;den9=[12*zeta91];

[mag1,phase1,w1]=bode(num,den1);

[mag3,phase3,w3]=bode(num,den3);

[mag5,phase5,w5]=bode(num,den5);

[mag7,phase7,w7]=bode(num,den7);

[mag9,phase9,w9]=bode(num,den9);

subplot(211);

semilogx(w1,20*log10(mag1),w3,20*log10(mag3),…

w5,20*log10(mag5),w7,20*log10(mag7),w9,20*log10(mag9));

subplot(212);

semilogx(w1,phase1,w3,phase3,w5,phase5,w7,phase7,w9,phase9);

运行结果见图。

2)作Nyquist图程序:

num=[1];

zeta1=0.4;den1=[12*zeta11];

zeta6=0.6;den6=[12*zeta61];

zeta8=0.8;den8=[12*zeta81];

[re1,im1]=nyquist(num,den1);

[re2,im2]=nyquist(num,den6);

[re3,im3]=nyquist(num,den8);

plot(re1,im1,re2,im2,re3,im3);

运行结果见图。

例已知系统的开环传递函数

,求开环对数频率特性曲线。

解MATLAB程序如下:

z=[-10];p=[0,-1/2];k=1/2;

h=zpk(z,p,k);

bode(h);

grid

运行结果见图。

例开环传递函数为

作出开环伯德图,并求系统的稳定裕量。

解命令窗口输入

h1=tf([2.33],[0.1621]);

h2=tf([1],[0.03681]);

h3=tf([1],[0.001671]);

h=h1*h2*h3;

[num,den]=tfdata(h);

[mag,phase,w]=bode(num,den);

subplot(211);

semilogx(w,20*log10(mag));grid;

subplot(212);

semilogx(w,phase);grid;

[gm,pm,wcg,wcp]=margin(mag,phase,w)

运行结果见图。

同时,在MATLAB命令窗口中可以得到系统的稳定裕量:

gm=53.9692

pm=93.6601

wcg=141.9068

wcp=11.6305

若要生成带有裕量标记的伯德图,则可将程序中最后一条改为

margin(mag,phase,w);

此时,所得图形见图。

8.系统性能的校正

例试用MATLAB对教材中例6-1中系统设计超前校正装置。

解如例6-1中所述,校正前系统的开环传递函数为

编写MATLAB程序如下:

num=20;den=[0.510];

[gm,pm,wcg,wcp]=margin(num,den);%求校正前系统的相位裕量pm

dpm=50-pm+5;%根据性能指标要求确定

phi=dpm*pi/180;

a=(1+sin(phi))/(1-sin(phi));%根据式(6-6)求

mm=–10*log10(a);%计算-10lg

幅值

[mu,pu,w]=bode(num,den);

mu_db=20*log10(mu);%在未校正系统的幅频特性上

wc=spline(mu_db,w,mm);%找到幅值为mm处的频率

T=1/(wc*sqrt(a));%根据式(6-11)求T

p=a*T;

nk=[p,1];dk=[T,1];%根据式(6-8)求校正装置

gc=tf(nk,dk);

printsys(nk,dk,'s');

可从命令窗口得到校正装置的传递函数为

0.2268s+1

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

0.0563s+1

再输入下面的命令

h=tf(num,den);h1=tf(nk,dk);

g=h*h1;

[gm1,pm1,wcg1,wcp1]=margin(g);

可以得到校正后系统的相位裕量

pm1=49.7706

满足设计要求。

例试用MATLAB对教材中例6-2中的系统设计滞后校正装置。

解如例6-2中所述,校正前系统的开环传递函数为

编写MATLAB程序如下:

num=5;

den=[0.51.510];

[gm,pm,wcg,wcp]=margin(num,den);%求校正前的相位裕量

dpm=-180+40+12;%求

[mu,pu,w]=bode(num,den);

wc=spline(pu,w,dpm);%在校正前曲线上找到与

对应的频率wc

mu_db=20*log10(mu);%将幅值转化成以dB为单位

m_wc=spline(w,mu_db,wc);%求未校正系统在wc处的幅值

beta=10^(-m_wc/20);%求

w2=0.2*wc;%求滞后校正网络的转折频率

T=1/(beta*w2);%求T

nk=[beta*T1];dk=[T1];%求校正网络的分子和分母系数

h1=tf(nk,dk);

printsys(nk,dk,'s');

可得校正装置的传递函数为

10.76s+1

-----------

102.3s+1

再输入下面的命令

h=tf(num,den);

g=h*h1;

[gm1,pm1,wcg1,wcp1]=margin(g);

可得校正后的相角裕量为

pm1=41.5141

四、实验内容

1.设典型二阶系统的闭环传递函数为

,改变系统的参数

,观察并记录输出响应曲线,并分析

的变化对系统性能的影响和性能

指标的变化。

2.设系统的闭环传递函数为

改变系统的参数

,观察并记录输出响应曲线,并求系统的时域性能指标,分析参数的变化对系统性能的影响和性能指标的变化。

3.绘制下列系统的根轨迹图,分析开环零极点对系统性能的影响。

(1)

(2)

(3)

(4)

4.绘制下列系统的伯德图和乃奎斯特图,并求系统的频域指标相位裕量和幅值裕量,

根据乃奎斯特图分析系统的稳定性,根据仿真结果分析系统的结构和参数与系统性能

的关系。

(1)

(2)

(3)

(4)

5.设系统的开环传递函数

,采用超前校正,使校正后系统速度误

差系数

,相位裕量

,用MATLAB设计校正装置的参数。

 

第二部分基于MATLAB离散系统的仿真

一、实验目的

本实验采用MATLAB实现对离散控制系统的性能分析。

通过该实验,加深学生对系统阶次,型号,参数与系统性能的关系的理解。

二、实验环境

在计算机Windows环境下安装好MATLAB6.3以上版本后,双击MATLAB图标或成“开始”菜单打开MATLAB,即可进入MATLAB集成环境。

三、MATLAB应用实例

1.z变换和z反变换

例求单位斜坡函数

的z变换

解命令窗口中键入

symstT;

ztrans(t*T)

运行结果为

ans=

T*z/(z-1)^2

即有

求表达式F的z反变换可用f=iztrans(F)

2.连续环节的离散化

例:

已知:

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

hd=c2d(h,1)

运行结果为:

Transferfunction:

0.3679z+0.2642

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

z^2-1.368z+0.3679

Samplingtime:

1

3.脉冲传递函数

例:

,试求两个环节串联的开环脉冲传递函数

用MATLAB编写程序如下:

h1=tf([10],[1-1],[]);

h2=tf([10],[1-0.368],[]);

h3=series(h1,h2)

运算结果:

Transferfunction:

z^2

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

z^2-1.368z+0.368

例:

,试求两个环节并联的开环脉冲传递函数。

用MATLAB编写程序如下:

h1=tf([10],[1-1],[]);

h2=tf([10],[1-0.368],[]);

h3=parallel(h1,h2)

运行结果如下:

Transferfunction:

2z^2-1.368z

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

z^2-1.368z+0.368

例设

键入MATLAB命令

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

c2d(sys,1)

运行结果为

Transferfunction:

0.3679z+0.2642

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

z^2-1.368z+0.3679

4.系统的输出响应

例如图所示的采样控制系统,设T=1s,单位阶跃输入,求系统的动态响应。

求得系统的闭环脉冲传递函数为

令输入形式为

MATLAB程序如下:

num=[0.632,0];den=[1,-0.736,0.368];

u=ones(1,51);k=0:

50;

y=filter(num,den,u);

plot(k,y),grid;

xlabel('k');ylabel('y(k)');

运行结果见图:

 

例系统结构如图所示,求系统的单位阶跃响应。

令输入为

MATLAB程序如下:

g=tf([1],[110]);%对象传递函数

d=c2d(g,1);%用零阶保持器离散化

cd=d/(1+d);%求闭环传递函数

cd1=minreal(cd);%传递函数约去公因子

[num,den]=tfdata(cd1,'v');%求得分子、分母系数

u=ones(1,51);k=0:

50;

y=filter(num,den,u);

plot(k,y),grid;

xlabel('k');ylabel('y(k)');

运行结果见图。

例系统脉冲传递函数为

求离散单位阶跃响应。

MATLAB命令窗口键入:

num=[0.36780.2644];

den=[1–10.6322];

dstep(num,den)

结果见图。

例设某单位反馈离散系统的开环传递函数为

运用SIMULINK进行仿真分析。

在SIMULINK环境下构建该系统的结构图如图所示:

仿真结果如图所示:

5.稳定性分析

例设控制系统的特征方程为

运用MATLAB判断系统的稳定性。

编写MATLAB程序如下

p=[45-117119-39];%特征方程系数多项式

r=roots(p);%求特征方程根r

x=[-1:

0.01:

1]';

y=sqrt(1-x.^2);

plot(x,y,x,-y);%绘制单位圆

hold,plot(r,'xr');%以红色的“×”表示特征方程根

程序运行结果见图:

由图可见,特征方程有两个根在z平面单位圆外,故系统为不稳定。

四、实验内容

1.根据下面给出的系统结构图,用MATLAB的语言实现连续系统的离散化。

求出系统的开环脉冲传递函数和闭环脉冲传递函数。

(1)T=1

(2)T=0.1

(3)T=0.5

(4)

(5)T=1

 

2.根据给出的系统结构图,用MATLAB语言或SIMULINK绘制出系统的单位阶跃响应曲线,

并分析零阶保持器对系统性能的影响。

(1)

(2)

(3)

(4)

(5)

(6)

 

3.根据给出的系统结构图,用MATLAB的语言实现系统的稳定性判断并分析零阶保持器对系统稳定性的影响。

(1)

(2)

(3)

(4)

 

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

当前位置:首页 > 工程科技 > 能源化工

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

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