北理工控制原理基础实验.docx
- 文档编号:5581926
- 上传时间:2022-12-28
- 格式:DOCX
- 页数:41
- 大小:454.44KB
北理工控制原理基础实验.docx
《北理工控制原理基础实验.docx》由会员分享,可在线阅读,更多相关《北理工控制原理基础实验.docx(41页珍藏版)》请在冰豆网上搜索。
北理工控制原理基础实验
实验1控制系统的模型建立
一、实验目的
1、掌握利用MATLAB建立控制系统模型的方法。
2、掌握系统的各种模型表述及相互之间的转换关系。
3、学习和掌握系统模型连接的等效变换。
二、实验原理
1、系统模型的MATLAB描述
系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。
这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。
1)传递函数(TF)模型
传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为
在MATLAB中,直接使用分子分母多项式的行向量表示系统,即
调用tf函数可以建立传递函数TF对象模型,调用格式如下:
tfdata函数可以从TF对象模型中提取分子分母多项式,调用格式如下:
前者返回cell类型的分子分母多项式系数,后者返回向量形式的分子分母多项式系数。
2)零极点增益(ZPK)模型
传递函数因式分解后可以写成
式中,z称为传递函数的零点,p称为传递函数的极点,k称为传递系数(系统增益)。
即:
调用zpk函数可以创建ZPK对象模型,调用格式如下:
同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:
函数pzmap可用于求取系统的零极点或绘制系统的零极点图,调用格式如下:
3)状态空间(SS)模型
由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:
其中:
x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n×n方阵,称为系统矩阵;B为n×r矩阵,称为输入矩阵或控制矩阵;C为m×n矩阵;D为m×r矩阵,称为直接传输矩阵。
在MATLAB中,直接用矩阵组表示系统,调用ss函数可以创建SS对象模型,调用格式如下:
同样,MATLAB提供了ssdata命令用来提取系统的A,B,C,D矩阵,调用格式如下:
4)三种模型之间的转换
上述三种模型之间可以相互转换,MATLAB实现方法如下:
TF模型→ZPK模型:
zpk(SYS)或tf2zp(num,den)
TF模型→SS模型:
ss(SYS)或tf2ss(num,den)
ZPK模型→TF模型:
tf(SYS)或zp2tf(z,p,k)
ZPK模型→SS模型:
ss(SYS)或zp2ss(z,p,k)
SS模型→TF模型:
tf(SYS)或ss2tf(A,B,C,D)
SS模型→ZPK模型:
zpk(SYS)或ss2zp(A,B,C,D)
2、系统模型的连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。
在MATLAB中可以直接使用“*”运算实现串联连接,使用“+”运算实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
其中,G为前向传递函数,H为反馈传递函数;当sign=+1时,GH为正反馈系统传递函数;当sign=-1时,GH为负反馈系统传递函数;默认是负反馈系统。
三、实验内容
1、已知控制系统的传递函数如下:
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统的零极点图。
代码及结果:
>>num=[21840];
>>den=[1586];
>>Gtf=tf(num,den)
>>Gzpk=zpk(Gtf)
>>Gss=ss(Gtf)
>>pzmap(Gzpk);
>>gridon;
传递函数模型:
零极点模型:
状态空间方程模型:
零极点图:
2、已知控制系统的状态空间方程如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
代码及结果:
>>A=[0100;0010;0001;-1-2-3-4];
>>B=[0;0;0;1];
>>C=[10200];
>>D=[0];
>>Gss=ss(A,B,C,D)
>>Gtf=tf(Gss)
>>Gzpk=zpk(Gss)
>>pzmap(Gzpk);
>>gridon;
传递函数模型:
零极点模型:
状态空间方程模型:
零极点图:
3、已知三个系统的传递函数分别为
试用MATLAB求上述三个系统串联后的总传递函数。
代码及结果:
>>num1=[265];
>>den1=[1452];
>>Gtf1=tf(num1,den1);
>>num2=[141];
>>den2=[1980];
>>Gtf2=tf(num2,den2);
>>k=[5];
>>z=[-3-7];
>>p=[-1-4-6];
>>Gzpk=zpk(z,p,k);
>>Gtf3=tf(Gzpk);
>>Gtf=Gtf1*Gtf2*Gtf3
总传函:
4、已知如下图所示的系统框图
试用MATLAB求该系统的闭环传递函数。
代码及结果:
>>num1=[1];
>>den1=[1,0];
>>num2=num1;
>>den2=[0.5,1];
>>num3=[3];
>>den3=[1,0];
>>Gtf1=tf(num1,den1);
>>Gtf2=tf(num2,den2);
>>Gtf3=tf(num3,den3);
>>H=Gtf2;
>>G=(Gtf1+Gtf2)*Gtf3;
>>Y=feedback(G,H,-1)
闭环传函:
5、已知如下图所示的系统框图
试用MATLAB求该系统的闭环传递函数。
代码及结果:
>>num1=[10];
>>den1=[11];
>>G1=tf(num1,den1)
>>num2=[2];
>>den2=[110];
>>G2=tf(num2,den2)
>>num3=[1,3];
>>den3=[1,2];
>>H2=tf(num3,den3)
>>num4=[5,0];
>>den4=[168];
>>H1=tf(num4,den4)
>>Gg=G1*feedback(G2,H2,1)
>>G=feedback(Gg,H1,-1)
结果:
实验2控制系统的暂态特性分析
一、实验目的
1、学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。
2、考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
二、实验原理
1、系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:
(1)延迟时间:
响应曲线首次达到稳态值的50%所需的时间。
(2)上升时间:
响应曲线从稳态值的10%上升到90%所需要的时间,对于欠阻尼系统,通常指响应曲线首次达到稳态值的时间。
(3)峰值时间:
响应曲线第一次达到最大值的时间。
(4)调整时间:
响应曲线开始进入并保持在允许的误差(±2%或±5%)范围内所需要的时间。
(5)超调量:
响应曲线的最大值和稳态值之差,通常用百分比表示
其中y(t)为响应曲线。
在MATLAB中求取单位阶跃响应的函数为step,其使用方法如下:
step(sys)在默认的时间范围内绘出系统响应的时域波形
step(sys,T)绘出系统在0-T范围内响应的时域波形
step(sys,ts:
tp:
te)绘出系统在ts-te范围内,以tp为时间间隔取样的响应波形
[y,t]=step(…)该调用格式不绘出响应波形,而是返回响应的数值向量及对时间的响应向量。
系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。
三、实验内容
1、已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
代码及结果
>>num=[80];
>>den=[1,2,0];
>>Gtf=tf(num,den);
>>sys=feedback(Gtf,1,-1)
>>step(sys)
2、已知二阶系统
(1)试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态指标。
(2)𝜔𝑛不变,𝜉从0变化到2,求此系统的单位阶跃响应。
(3)𝜉不变,𝜔𝑛从0变化到1,求此系统的单位阶跃响应。
(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
代码及结果:
>>e1=0.6;
>>wn=5;
>>num=[wn^2];
>>den=[1,2*wn*e1,wn^2];
>>Gtf=tf(num,den);
暂态指标如下:
延迟时间:
0.272s;上升时间:
0.554s;峰值时间:
0.796s;调整时间:
2%1.19s5%1.04s;超调量:
9.48%
(2)𝜔𝑛不变,𝜉从0变化到2,求此系统的单位阶跃响应。
>>e1=0
>>wn=1
>>e1=0.5
>>wn=1
>>e1=1
>>wn=1
>>e1=1.5
>>wn=1
>>e1=2
>>wn=1
(3)𝜉不变,𝜔𝑛从0变化到1,求此系统的单位阶跃响应。
>>e1=0.5
>>wn=0.2
>>e1=0.5
>>wn=0.4
>>e1=0.5
>>wn=0.6
>>e1=0.5
>>wn=0.8
>>e1=0.5
>>wn=1
(4)结论
由上述实验结果易知,当𝜔𝑛一定时,
𝜉越大,超调量越小,说明系统稳定性更好,而趋于稳定时间基本保持不变。
当𝜉一定时,𝜔𝑛越大,系统趋于稳定所需时间越少,说明系统快速性较好。
而超调量基本保持不变。
说明其只与𝜉有关。
实验3根轨迹分析
一、实验目的
1、学习和掌握利用MATLAB绘制根轨迹图的方法。
2、学习和掌握利用系统根轨迹图分析系统的性能。
二、实验原理
根轨迹分析的MATLAB实现
根轨迹是指系统某一参数变化时,闭环特征根在s平面上运动的轨迹。
在MATLAB中,提供了用于根轨迹分析的专门函数。
1)rlocus函数
该函数的使用方法如下:
rlocus(sys)绘制单输入单输出LTI系统的根轨迹图。
rlocus(sys,k)使用用户指定的根轨迹增益k来绘制系统的根轨迹图。
[r,k]=rlocus(sys)返回根轨迹增益值和闭环极点值,不绘制根轨迹图。
2)rlocfind函数
该函数的使用方法如下:
[k,poles]=rlocfind(sys)计算鼠标选取点处的根轨迹增益值和闭环极点值,可在图形窗口根轨迹图中显示出十字光标,当用户选择其中一点时,相应的增益值和极点值记录在k和poles中。
[k,poles]=rlocfind(sys,p)计算最靠近给定闭环极点p处的根轨迹增益。
3)sgrid函数
该函数的使用方法如下:
sgrid可在连续系统根轨迹或零极点图上绘制出栅格线,栅格线由等阻尼系数和等自然频率线构成。
sgrid(‘new’)先清除当前的图形,然后会指出栅格线,并将坐标轴属性设置成holdon。
sgrid(z,Wn)指定阻尼系数z和自然频率Wn。
sgrid(z,Wn,’new’)指定阻尼系数z和自然频率Wn,在绘制栅格线之前清除当前的图形并将坐标轴属性设置成holdon。
三、实验内容
1、已知系统开环传递函数为
(1)试用MATLAB绘制系统的根轨迹图。
(2)求根轨迹的两条分支离开实轴时的K值,并确定该K值对应的所有闭环极点。
(3)以区间[-40,-5]之间的值替代s=-12处的极点,重新绘制根轨迹图,观察其对根轨迹图的影响。
代码及结果
>>z=[-5];
>>p=[-1-3-12];
>>k=[1];
>>sys1=zpk(z,p,k)
>>rlocus(sys1);
(2)
可知此时增益K为3.38。
>>z=[-5];
>>p=[-1-3-12];
>>k=[1];
>>sys1=zpk(z,p,k)
>>rlocus(sys1);
>>[a,pole]=rlocfind(sys1)
(3)
>>z=[-5];
>>p=[-1-3-30];
>>k=[1];
>>sys1=zpk(z,p,k)
>>rlocus(sys1);
根轨迹:
1.p=[-1-3-30];
2.p=[-1-3-5];
3.p=[-1-3-20];
4.p=[-1-3-40];
2、已知系统开环传递函数为
(1)试用MATLAB绘制系统的根轨迹图。
(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的K值。
(3)以区间[-20,-1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。
代码及结果
>>z1=[-8];
>>p1=[0-2-4+4*i-4-4*i];
>>k1=[1];
>>sys1=zpk(z1,p1,k1)
>>rlocus(sys1)
根轨迹:
(2)
与实轴分离时,K=2070
进入右半平面时,K=53.4
(3)
>>z1=[-1];
>>z1=[-5];
>>z1=[-10];
>>z1=[-15];
>>z1=[-20];
3、已知单位负反馈系统的开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
(2)分析是系统稳定的K值范围和使系统无超调的K值范围,并通过观察系统的单位阶跃响应曲线加以验证。
代码及结果
>>z1=[];
>>p1=[0-2+i-2-i];
>>k1=[1];
>>sys1=zpk(z1,p1,k1)
>>rlocus(sys1)
根轨迹:
(2)
1.临界稳定:
K=20
对应的阶跃响应图:
2.K=10(稳定)
3.K=30(不稳定)
4.临界超调:
K=2.04
5.K=1.8(未超调)
6.K=2.5(超调)
实验4系统的频率特性分析
一、实验目的
1、学习和掌握利用MATLAB绘制系统Nyquist图和Bode图的方法。
2、学习和掌握利用系统的频率特性分析系统的性能。
二、实验原理
系统的频率特性是一种图解方法,分析运用系统的开环频率特性曲线,分析闭环系统的性能,如系统的稳态性能、暂态性能常用的频率特性曲线有Nyquist图和Bode图。
在MATLAB中,提供了绘制Nyquist图和Bode图的专门函数。
1、Nyquist图
Nyquist函数可以用于计算或绘制连续时间LTI系统的Nyquist频率曲线,其使用方法如下:
nyquist(sys)绘制系统的Nyquist曲线。
nyquist(sys,w)利用给定的频率向量w来绘制系统的Nyquist曲线。
[re,im]=nyquist(sys,w)返回Nyquist曲线的实部re和虚部im,不绘图。
2、Bode图
bode函数可以用于计算或绘制连续时间LTI系统的Bode图,其使用方法如下:
bode(sys)绘制系统的bode图。
bode(sys,w)利用给定的频率向量w来绘制系统的bode图。
[mag,phase]=bode(sys,w)返回bode图数据的幅度mag和相位phase,不绘图。
3.幅度和相位裕度计算
margin函数可以用于从频率响应数据中计算出幅度裕度、相位裕度及其对应的角频率,其使用方法如下:
margin(sys)
margin(mag,phase,w)
[Gm,Pm,Wcg,Wcp]=margin(sys)
[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)
其中不带输出参数时,可绘制出标有幅度裕度和相位裕度值的Bode图,带输出参数时,返回幅度裕度Gm、相位裕度Pm及其对应的角频率Wcg和Wcp。
三、实验内容
1、已知系统开环传递函数为
绘制系统的Nyquist图,并讨论其稳定性。
代码及结果:
>>num=[1000];
>>den=[181710];
>>sys1=tf(num,den)
>>nyquist(sys1)
图形:
稳定性:
>>num=[1000];
>>den=[181710];
>>sys1=tf(num,den)
>>margin(sys1)
可见相位裕度小于0,因而不稳定。
2、已知系统的开环传递函数为
(1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。
(2)绘制系统Bode图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。
代码及结果:
>>num2=10*[25/165/41];
>>den2=conv([100],conv([10/31],conv([0.2/31],[1/40,1])));
>>sys2=tf(num2,den2)
>>sys=feedback(sys2,1);
>>pzmap(sys);
图形:
极点均在实轴负半轴,因而稳定。
(2)
>>num2=10*[25/165/41];
>>den2=conv([100],conv([10/31],conv([0.2/31],[1/40,1])));
>>sys2=tf(num2,den2)
>>sys=feedback(sys2,1);
>>margin(sys2)
图形:
得相位裕度、幅度裕度和对应角频率:
Gm=
0.1198
Pm=
60.6660
Wcg=
0.6614
Wcp=
4.3878
裕度均大于0,故系统稳定。
3.已知系统的开环传递函数为
分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。
代码及结果:
(1)K=5
代码:
>>num3=[5];
>>den3=conv([10],conv([11],[0.11]));
>>sys3=tf(num3,den3)
>>[Gm1,Pm1,Wcg1,Wcp1]=margin(sys3);
运行结果:
Gm1=
2.2000
Pm1=
13.5709
Wcg1=
3.1623
Wcp1=
2.1020
裕度大于0,系统稳定。
(2)K=20
代码:
>>num3=[20];
>>den3=conv([10],conv([11],[0.11]));
>>sys3=tf(num3,den3)
>>[Gm1,Pm1,Wcg1,Wcp1]=margin(sys3)
运行结果:
Gm1=
0.5500
Pm1=
-9.6566
Wcg1=
3.1623
Wcp1=
4.2337
相位裕度小于0,因而K=20时,系统不稳定。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理工 控制 原理 基础 实验