MATLAB仿真实验全部.docx

上传人:b****7 文档编号:25362298 上传时间:2023-06-07 格式:DOCX 页数:19 大小:130.14KB
下载 相关 举报
MATLAB仿真实验全部.docx_第1页
第1页 / 共19页
MATLAB仿真实验全部.docx_第2页
第2页 / 共19页
MATLAB仿真实验全部.docx_第3页
第3页 / 共19页
MATLAB仿真实验全部.docx_第4页
第4页 / 共19页
MATLAB仿真实验全部.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

MATLAB仿真实验全部.docx

《MATLAB仿真实验全部.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真实验全部.docx(19页珍藏版)》请在冰豆网上搜索。

MATLAB仿真实验全部.docx

MATLAB仿真实验全部

实验一MATLAB及仿真实验(控制系统的时域分析)

一、实验目的

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

二、预习要点

1、系统的典型响应有哪些

2、如何判断系统稳定性

3、系统的动态性能指标有哪些

三、实验方法

(一)四种典型响应

1、阶跃响应:

阶跃响应常用格式:

1、

;其中

可以为连续系统,也可为离散系统。

2、

;表示时间范围0---Tn。

3、

;表示时间范围向量T指定。

4、

;可详细了解某段时间的输入、输出情况。

2、脉冲响应:

脉冲函数在数学上的精确定义:

其拉氏变换为:

所以脉冲响应即为传函的反拉氏变换。

脉冲响应函数常用格式:

(二)分析系统稳定性

有以下三种方法:

1、利用pzmap绘制连续系统的零极点图;

2、利用tf2zp求出系统零极点;

3、利用roots求分母多项式的根来确定系统的极点

(三)系统的动态特性分析

Matlab提供了求取连续系统的单位阶跃响应函数step、单位脉冲响应函数impulse、零输入响应函数initial以及任意输入下的仿真函数lsim.

四、实验内容

(一)稳定性

1.系统传函为

,试判断其稳定性

%Matlab计算程序

num=[32546];

den=[134272];

G=tf(num,den);

pzmap(G);

p=roots(den)

2.用Matlab求出

的极点。

%Matlab计算程序

%求取极点

num=[122];

den=[17352];

p=roots(den)

(二)阶跃响应

1.二阶系统

1)键入程序,观察并记录单位阶跃响应曲线

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

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

由图1-3及其相关理论知识可填下表:

=

实际值

理论值

峰值Cmax

峰值时间tp

过渡时间

ts

 

4)修改参数,分别实现

的响应曲线,并记录

5)修改参数,分别写出程序实现

的响应曲线,并记录

%Matlab计算程序

第1)题:

%单位阶跃响应曲线

clc

clear

num=[10];

den=[1210];

step(num,den);

title('StepResponseofG(s)=10/(s^2+2s+10)');

holdon

t=[0:

:

6];

y1=;

plot(t,y1)

第2)题:

%计算系统的闭环根、阻尼比、无阻尼振荡频率

num=[10];den=[1210];

G=tf(num,den);

[wn,z,p]=damp(G);

第4)题:

%kosi=1阶跃响应曲线

wn=sqrt(10);

kosi=1;

G=tf([wn*wn],[12*kosi*wnwn*wn]);

step(G);

title('StepResponseofkosi=1');

%kosi=2的阶跃响应曲线

wn=sqrt(10);

kosi=2;

G=tf([wn*wn],[12*kosi*wnwn*wn]);

step(G);

title('StepResponseofkosi=2');

第5)题:

%wn1=的阶跃响应曲线

w0=sqrt(10);

kosi=1/sqrt(10);

wn1=*w0;

G=tf([wn1*wn1],[12*kosi*wn1wn1*wn1]);

step(G);

title('StepResponseofwn1=');

%wn2=2w0的阶跃响应曲线

w0=sqrt(10);kosi=1/sqrt(10);wn2=2*w0;

G=tf([wn2*wn2],[12*kosi*wn2wn2*wn2]);

step(G);

title('StepResponseofwn2=2w0');

2.作出以下系统的阶跃响应,并与原系统响应曲线进行比较,作出相应的实验分析结果

(1)

,有系统零点的情况

(2)

,分子、分母多项式阶数相等

(3)

,分子多项式零次项为零

(4)

,原响应的微分,微分系数为1/10

%各系统阶跃响应曲线比较

G0=tf([10],[1210]);G1=tf([210],[1210]);G2=tf([110],[1210]);

G3=tf([10],[1210]);G4=tf([10],[1210]);

step(G0,G1,G2,G3,G4);

gridon;

title('实验StepResponse曲线比较');

3.单位阶跃响应:

求该系统单位阶跃响应曲线,并在所得图形上加网格线和标题

%单位阶跃响应

G=tf([25],[1425]);

step(G);

gridon;

title('实验StepResponseofG(s)=25/(s^2+4s+25)');

(3)系统动态特性分析

用Matlab求二阶系统

的峰值时间

上升时间

调整时间

超调量

%G1阶跃响应

G1=tf([120],[112120]);

step(G1);

gridon;

title('StepResponseofG1(s)=120/(s^2+12s+120)');

%G2单位阶跃响应

G2=tf([],[1]);

step(G2);

gridon;

title('StepResponseofG2(s)=(s^2++');、

实验二MATLAB及仿真实验(控制系统的根轨迹分析)

一实验目的

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

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

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

二预习要点

1.预习什么是系统根轨迹

2.闭环系统根轨迹绘制规则。

三实验方法

(一)方法:

当系统中的开环增益k从0到变化时,闭环特征方程的根在复平面上的一组曲线为根轨迹。

设系统的开环传函为:

,则系统的闭环特征方程为:

根轨迹即是描述上面方程的根,随k变化在复平面的分布。

(二)MATLAB画根轨迹的函数常用格式:

利用Matlab绘制控制系统的根轨迹主要用pzmap,rlocus,rlocfind,sgrid函数。

1、零极点图绘制

[p,z]=pzmap(a,b,c,d):

返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

[p,z]=pzmap(num,den):

返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

pzmap(a,b,c,d)或pzmap(num,den):

不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。

pzmap(p,z):

根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。

2、根轨迹图绘制

rlocus(a,b,c,d)或者rlocus(num,den):

根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。

开环增益的值从零到无穷大变化。

rlocus(a,b,c,d,k)或rlocus(num,den,k):

通过指定开环增益k的变化范围来绘制系统的根轨迹图。

r=rlocus(num,den,k)或者[r,k]=rlocus(num,den):

不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k,返回闭环系统特征方程1+k*num(s)/den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点。

或者同时返回k与r。

若给出传递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。

(正反馈系统或非最小相位系统)

3、rlocfind()函数

[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)

它要求在屏幕上先已经绘制好有关的根轨迹图。

然后,此命令将产生一个光标以用来选择希望的闭环极点。

命令执行结果:

k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。

不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。

4、sgrid()函数

sgrid:

在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线。

sgrid(‘new’):

是先清屏,再画格线。

sgrid(z,wn):

则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线。

四实验内容

1.

要求:

A.记录根轨迹的起点、终点与根轨迹的条数;

B.确定根轨迹的分离点与相应的根轨迹增益;

C.确定临界稳定时的根轨迹增益

%Matlab计算程序

z=[];p=[0-1-2];k=1;G=zpk(z,p,k);figure

(1);pzmap(G)

figure

(2);rlocus(G)

title('实验所作曲线');

%求临界稳定时的根轨迹增益Kgl

z=[];p=[0-1-2];k=1;G=zpk(z,p,k);

rlocus(G)

title('实验临界稳定时的根轨迹增益Kgl');

[k,p]=rlocfind(G)

%求取根轨迹的分离点与相应的根轨迹增益

z=[];p=[0-1-2];k=1;G=zpk(z,p,k);

rlocus(G)

title('实验根轨迹的分离点与相应的根轨迹增益曲线图');

[k,p]=rlocfind(G)

2.

要求:

确定系统具有最大超调量时的根轨迹增益;

解:

当Kg=时,系统具有最大超调量

=%,

%Matlab程序

num=*[13];den=[120];G0=tf(num,den);G=feedback(G0,1,-1);step(G)

title('实验系统阶跃响应曲线');

3.绘制下列各系统根轨迹图。

 

%Matlab计算程序

x1=[10];

x2=[14];

x3=[16];

x4=[141];

y1=conv(x1,x2);

y2=conv(x3,x4);

z=conv(y1,y2)

%绘制系统根轨迹图。

num=[124];den=[11465106240];G0=tf(num,den);

G=feedback(G0,1,-1);rlocus(G)

title('实验系统根轨迹图');

4.绘制下列各系统根轨迹图。

开环传递函数:

(1)

%Matlab计算程序

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

rlocus(G)

title('实验开环系统G(s)H(s)=k(s+/[s^2(s+]根轨迹图');

(2)

%Matlab计算程序

x1=[10];x2=[1];x3=[110];

y=conv(x1,x2);

z=conv(x3,y)

%绘制系统根轨迹图

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

rlocus(G)

title('实验开环系统G(s)H(s)=k/[s(s+(s^2++10)]根轨迹图');

5.试绘制下面系统根轨迹图

 

%Matlab计算程序

z=[1416];r=roots(z)

%绘制系统根轨迹图:

z=-1;p=[01+-];k=1;

G0=zpk(z,p,k);G=feedback(G0,1,-1);rlocus(G);

title('实验所求系统根轨迹图');

实验三MATLAB及仿真实验(控制系统的频域分析)

一实验目的

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

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

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

二预习要点

1.预习Bode图和Nyquist图的画法;

2.映射定理的内容;

3.Nyquist稳定性判据内容。

三实验方法

1、奈奎斯特图(幅相频率特性图)

对于频率特性函数G(jw),给出w从负无穷到正无穷的一系列数值,分别求出Im(G(jw))和Re(G(jw))。

以Re(G(jw))为横坐标,Im(G(jw))为纵坐标绘制成为极坐标频率特性图。

MATLAB提供了函数nyquist()来绘制系统的极坐标图,其用法如下:

nyquist(a,b,c,d):

绘制出系统的一组Nyquist曲线,每条曲线相应于连续状态空间系统[a,b,c,d]的输入/输出组合对。

其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。

nyquist(a,b,c,d,iu):

可得到从系统第iu个输入到所有输出的极坐标图。

nyquist(num,den):

可绘制出以连续时间多项式传递函数表示的系统的极坐标图。

nyquist(a,b,c,d,iu,w)或nyquist(num,den,w):

可利用指定的角频率矢量绘制出系统的极坐标图。

当不带返回参数时,直接在屏幕上绘制出系统的极坐标图(图上用箭头表示w的变化方向,负无穷到正无穷)。

当带输出变量[re,im,w]引用函数时,可得到系统频率特性函数的实部re和虚部im及角频率点w矢量(为正的部分)。

可以用plot(re,im)绘制出对应w从负无穷到零变化的部分。

2、对数频率特性图(波特图)

对数频率特性图包括了对数幅频特性图和对数相频特性图。

横坐标为频率w,采用对数分度,单位为弧度/秒;纵坐标均匀分度,分别为幅值函数20lgA(w),以dB表示;相角,以度表示。

MATLAB提供了函数bode()来绘制系统的波特图,其用法如下:

bode(a,b,c,d,iu):

可得到从系统第iu个输入到所有输出的波特图。

bode(a,求取系统对数频率特性图(波特图):

bode()

求取系统奈奎斯特图(幅相曲线图或极坐标图):

nyquist()b,c,d):

自动绘制出系统的一组Bode图,它们是针对连续状态空间系统[a,b,c,d]的每个输入的Bode图。

其中频率范围由函数自动选取,而且在响应快速变化的位置会自动采用更多取样点。

bode(num,den):

可绘制出以连续时间多项式传递函数表示的系统的波特图。

bode(a,b,c,d,iu,w)或bode(num,den,w):

可利用指定的角频率矢量绘制出系统的波特图。

当带输出变量[mag,pha,w]或[mag,pha]引用函数时,可得到系统波特图相应的幅值mag、相角pha及角频率点w矢量或只是返回幅值与相角。

相角以度为单位,幅值可转换为分贝单位:

magdb=20×log10(mag)

四实验内容

1.用Matlab作Bode图.要求:

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

(1)

(2)

%Matlab计算程序

sys=tf([25],[1425]);figure

(1);bode(sys);

title('实验BodeDiagramofG(s)=25/(s^2+4s+25)');

%Matlab计算程序

sys=tf([99],[190]);

figure

(1);

bode(sys);

gridon;

title('实验BodeDiagramofG(s)=9(s^2++1)/[s(s^2++9)]');

%Matlab计算程序(扩大坐标的Bode图)

sys=tf([99],[190]);w=logspace(-2,3,100);figure

(1);bode(sys,w);gridon;

title('实验BodeDiagramofG(s)=9(s^2++1)/[s(s^2++9)]');

2.用Matlab作Nyquist图.要求画对应Nyquist图,并加网格和标题.

%Matlab计算程序

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

figure

(1);

nyquist(sys);

gridon;

title('实验NyquistPlotofG(s)=1/(s^2++1)');

 

3.典型二阶系统

,试绘制

取不同值时的Bode图。

Matlab绘图

clear

closeall

clc

wn=6;

kosi=[:

:

];

%在对数空间上生成从10^(-1)到10^1共100个数据的横坐标

w=logspace(-1,1,100);

num=wn^2;

forkos=kosi

den=[12*kos*wnwn^2];

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

%注意mag的单位不是分贝,若需要分贝表示

%可以通过20*log10(mag)进行转换

subplot(211);

holdon;

semilogx(w1,mag)

%注意在所绘制的图形窗口会发现x轴并没有取对数分度

subplot(212);

holdon;

semilogx(w1,pha)

end

subplot(211)

gridon

title('bodeplot')

xlabel('frequency(w)')

ylabel('amplitude')

text,5,'kosi=')

text(2,,'kosi=')

subplot(212)

gridon

xlabel('frequency(w)')

ylabel('phasedeg')

text(5,-20,'kosi=')

text(2,-85,'kosi=')

holdoff

4.某开环传函为:

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

%绘制系统的Nyquist曲线

z=[];

p=[-52];

k=50;

sys=zpk(z,p,k);

figure

(1);

nyquist(sys);

gridon;

title('实验NyquistPlotofG(s)=50/[(s+5)(s-2)]');

%闭环系统单位脉冲响应

z=[];p=[-52];k=50;sys=zpk(z,p,k);sys2=feedback(sys,1,-1);impulse(sys2)

gridon;

title('实验闭环ImpulseResponseofG(s)=50/[(s+5)(s-2)]');

 

5.

%作波特曲线图

kosi1=2;kosi2=1;kosi3=;kosi4=;

num=;den1=[*kosi11];den2=[*kosi21];

den3=[*kosi31];den4=[*kosi41];

G1=tf(num,den1);G2=tf(num,den2);

G3=tf(num,den3);G4=tf(num,den4);

bode(G1,G2,G3,G4);gridon;

title('实验G(s)波特曲线簇');

6.

,要求:

(a)作波特图

(b)由稳定裕度命令计算系统的稳定裕度

,并确定系统的稳定性

(c)在图上作近似折线特性,与原准确特性相比

(a)

%作波特图

G=zpk([],[0-100-10],;bode(G);gridon;

title('实验G(s)=[s+1)+1)]Bode曲线图');

%计算系统的稳定裕度

G=zpk([],[0-100-10],;margin(G);gridon;

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

 

其中:

(1)

(2)

要求:

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

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

(a)

%Matlab计算程序

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('波特图曲线比较');

精心搜集整理,只为你的需要

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

当前位置:首页 > 自然科学 > 天文地理

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

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