北理工自动控制实验报告.docx
- 文档编号:11190782
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:35
- 大小:425.87KB
北理工自动控制实验报告.docx
《北理工自动控制实验报告.docx》由会员分享,可在线阅读,更多相关《北理工自动控制实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
北理工自动控制实验报告
本科实验报告
实验名称:
控制理论基础实验
课程名称:
实验时间:
任课教师:
实验地点:
实验教师:
实验类型:
□原理验证
■综合设计
□自主创新
学生姓名:
学号/班级:
组号:
学院:
同组搭档:
专业:
成绩:
实验1控制系统的模型建立
一、实验目的
1.掌握利用MATLAB建立控制系统模型的方法。
2.掌握系统的各种模型表述及相互之间的转换关系。
3.学习和掌握系统模型连接的等效变换。
二、实验原理
1.系统模型的MATLAB描述
系统的模型描述了系统的输入、输出变量以及内部各变量之间的关系,表征一个系统的模型有很多种,如微分方程、传递函数模型、状态空间模型等。
这里主要介绍系统传递函数(TF)模型、零极点增益(ZPK)模型和状态空间(SS)模型的MATLAB描述方法。
1)传递函数(TF)模型
传递函数是描述线性定常系统输入-输出关系的一种最常用的数学模型,其表达式一般为
在MATLAB中,直接使用分子分母多项式的行向量表示系统,即
num=[bm,bm-1,…b1,b]
den=[an,an-1,…a1,a0]
调用tf函数可以建立传递函数TF对象模型,调用格式如下:
Gtf=tf(num,den)Tfdata
函数可以从TF对象模型中提取分子分母多项式,调用格式如下:
[num,den]=tfdata(Gtf)返回cell类型的分子分母多项式系数
[num,den]=tfdata(Gtf,'v')返回向量形式的分子分母多项式系数
2)零极点增益(ZPK)模型
传递函数因式分解后可以写成
式中,
称为传递函数的零点,
⋯称为传递函的极点,k为传递系数(系统增益)。
在MATLAB中,直接用[z,p,k]矢量组表示系统,其中z,p,k分别表示系统的零极点及其增益,即:
z=[
];
p=[
];
k=[k];
调用zpk函数可以创建ZPK对象模型,调用格式如下:
同样,MATLAB提供了zpkdata命令用来提取系统的零极点及其增益,调用格式如下:
返回cell类型的零极点及增益
返回向量形式的零极点及增益
函数pzmap可用于求取系统的零极点或绘制系统得零极点图,调用格式如下:
在复平面内绘出系统模型的零极点图。
返回的系统零极点,不作图。
3)状态空间(SS)模型
由状态变量描述的系统模型称为状态空间模型,由状态方程和输出方程组成:
其中:
x为n维状态向量;u为r维输入向量;y为m维输出向量;A为n×n方阵,称为系统矩阵;B为n×r矩阵,称为输入矩阵或控制矩阵;C为m×n矩阵,称为输出矩阵;D为m×r矩阵,称为直接传输矩阵。
在MATLAB中,直接用矩阵组[A,B,C,D]表示系统,调用ss函数可以创建ZPK对象模型,调用格式如下:
Gss=ss(A,B,C,D)
同样,MATLAB提供了ssdata命令用来提取系统的A、B、C、D矩阵,调用格式如下:
[A,B,C,D]=ssdata(Gss)。
它返回系统模型的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.系统模型的连接
在实际应用中,整个控制系统是由多个单一的模型组合而成,基本的组合方式有串联连接、并联连接和反馈连接。
图1-2分别为串联连接、并联连接和反馈连接的结构框图和等效总传递函数。
在MATLAB中可以直接使用“*”运算符实现串联连接,使用“+”运算符实现并联连接。
反馈系统传递函数求解可以通过命令feedback实现,调用格式如下:
T=feedback(G,H)
T=feedback(G,H,sign)
其中,G为前向传递函数,H为反馈传递函数;当sign=+1时,GH为正反馈系统传递函数;当sign=-1时,GH为负反馈系统传递函数;默认值是负反馈系统。
三、实验内容
1.已知控制系统的传递函数如下
试用MATLAB建立系统的传递函数模型、零极点增益模型及系统的状态空间方程模型,并绘制系统零极点图。
代码:
num=[21840];
den=[1586];
Gtf=tf(num,den);
Gzpk=zpk(Gtf);
pzmap(Gzpk);
gridon;
Gss=ss(Gzpk);
实验结果:
零极点图:
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];
G1=tf(num1,den1);
num2=[141];
den2=[1980];
G2=tf(num2,den2);
num3=conv(conv([13],[17]),[05]);
den3=conv(conv([11],[14]),[16]);
G3=tf(num3,den3);
G=G1*G2*G3;
实验结果:
4.已知如图E2-1所示的系统框图
试用MATLAB求该系统的闭环传递函数。
代码:
num1=1;
den1=[11];
G1=tf(num1,den1);
num2=1;
den2=[0.51];
G2=tf(num2,den2);
num3=3;
den3=[10];
G3=tf(num3,den3);
G=(G1+G2)*G3;
T=feedback(G,G2);
U=G/(1+G2*G);
实验结果:
5.已知如图E2-2所示的系统框图
试用MATLAB求该系统的闭环传递函数。
代码:
num1=10;
den1=[11];
G1=tf(num1,den1);
num2=2;
den2=conv([10],[11]);
G2=tf(num2,den2);
num3=[13];
den3=[12];
H1=tf(num3,den3);
num4=[50];
den4=[168];
H2=tf(num4,den4);
T1=feedback(G2,H1,1);
G=G1*T1;
T=feedback(G,H2);
实验结果:
四.实验收获与心得
经过上学期的MATLAB实验,对MATLAB软件已经有一定的了解了。
这次比较简单的几个实验让我学到了怎么将传递函数通过MATLAB来表达,怎么画传递函数的零极点,怎么设置软件比较容易看。
倒腾了半天,最大的收获是知道了conv函数是怎么用的,以及有三个因式的该怎样书写。
实验2控制系统的暂态特性分析
一、实验目的
1.学习和掌握利用MATLAB进行系统时域响应求解和仿真的方法。
2.考察二阶系统的时间响应,研究二阶系统参数对系统暂态特性的影响。
二、实验原理
1.系统的暂态性能指标
控制系统的暂态性能指标常以一组时域量值的形式给出,这些指标通常由系统的单位阶跃响应定义出来,这些指标分别为:
(1)延迟时间td :
响应曲线首次到达稳态值的 50%所需的时间。
(2)上升时间tr :
响应曲线从稳态值的 10%上升到 90%所需要的时间长,对于欠阻尼系统,通常指响应曲线首次到达稳态值所需的时间。
(3)峰值时间tp :
响应曲线第一次到达最大值的时间。
(4)调整时间ts :
响应曲线开始进入并保持在允许的误差(±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(…)该调用格式不绘出响应波形,而是返回响应的数值向量及其对应的时间向量。
系统的暂态性能指标可以根据上述定义,在响应曲线上用鼠标读取关键点或通过搜索曲线对应的数值向量中关键点来确定。
2.LTIViewer工具
在MATLAB中提供了线性是不变系统仿真的工具LT Viewer,可以方便地观察系统的响应曲线和性能指标。
在命令窗口中键入litview即可启动LTIViewer。
这里简要介绍 LTI Viewer 工具。
1)【File】菜单
Import 选项:
可以从Workspace或文件中导入系统模型。
Export选项:
将当前窗口中的对象模型保存到Workspace或文件中。
Toolboxpreferences选项:
属性设置功能,可以设置控制系统中得各种属性值。
PageSetup选项:
页面设置功能,可以对打印输出和显示页面进行设置。
2)【Edit】菜单
PlotConfiguration选项:
对显示窗口及显示内容进行配置。
LineStyle选项:
线型设置功能,可以对输出响应曲线的线型进行设置。
ViewerPreferences选项:
对当前窗口的坐标、颜色、字体、响应曲线的特性参数等属性进行设置。
3)右键菜单
在运行界面上点击鼠标右键,将会弹出一个弹出式菜单,菜单上个选项的功能分别为:
PlotTypes:
选择绘制的系统曲线类型,可选的类型有单位阶跃响应、单位冲击响应、波特图、奈奎斯特图、零极点图等。
System:
选择需要仿真的系统。
Characteristic:
系统的性能指标选项。
Grid:
显示和关闭网格。
Normalize:
正常显示模式。
Full View:
满界面显示模式。
Properties:
性能编辑器选项,可以设置画面的标题、坐标标志、坐标范围、线型、颜色、性能指标等。
三、实验内容
1.已知单位负反馈系统前向通道的传递函数为
试用MATLAB绘制系统的单位阶跃响应曲线。
代码:
num1=80;
den1=[120];
G1=tf(num1,den1);
T=feedback(G1,1);
step(T);
实验结果:
2.已知二阶系统
(1)ζ=6.0,ωn=5,试用MATLAB绘制系统单位阶跃响应曲线,并求取系统的暂态性能指标。
代码:
Wn=5;
E=0.6;
num1=Wn^2;
den1=[12*E*Wnnum1];
G=tf(num1,den1);
step(G);
由图中可以看到:
上升时间tr:
响应曲线上升到90%所需要的时间为0.371s。
峰值时间tp:
响应曲线第一次到达最大值的时间为0.787s。
调整时间ts:
响应曲线开始进入并保持在允许的误差范围内所需要的时间为1.19s。
超调量σ:
响应曲线的最大值和稳态值只差的百分比为σ=9%
(2)ωn=1 ,ζ 从 0 变化到 2,求此系统的单位阶跃响应。
代码:
实验结果:
(3)ζ=5 . 0 ,ωn 从0变化到 1(ωn ≠0) ,求此系统的单位阶跃响应。
代码:
实验结果:
(4)观察上述实验结果,分析这两个特征参数对系统暂态特性的影响。
由上面的两个图可以看到,ζ参数主要影响系统的稳定性,超调量,上升时间。
ζ越大,上升时间,峰值时间变长,而超调量变小。
ωn参数主要影响时间,ωn越大,上升时间,峰值时间越小,而对超调量等其他因素近似没有影响。
四、实验心得
通过这个实验,对二阶系统的ωn,ζ对系统的影响有更深的理解,也知道怎么系统更稳定,达到稳定的时间更短,更快,更好,对以后的实际电路有深远的影响。
实验3根轨迹分析
一、实验目的
1.学习和掌握利用 MATLAB 绘制根轨迹图的方法。
2. 学习和掌握利用系统根轨迹图分析系统的性能。
二、实验原理
1.根轨迹分析的 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’) 先清除当前的图形,然后绘制出栅格线,并将坐标轴属性设置成 hold on。
sgrid(z,Wn) 指定阻尼系数 z 和自然频率 Wn。
sgrid(z,Wn,’new’) 指定阻尼系数 z 和自然频率 Wn,在绘制栅格线之前清除当前的图形并将坐标轴属性设置成 hold on.
2.Rltool工具
MATLAB 提供了一个根轨迹设计工具Rltool, 在命令窗口输入 rltool命令即可启动该工具,也可输入rltool(sys)命令打开带系统模型 sys 的根轨迹设计器,运行界面如图 3‐1 所示。
Rltool 工具既可以分析系统根轨迹也能对系统进行设计, 具体使用方法请参考 MATLAB帮助或查阅相关资料。
三、实验内容
1.已知系统开环传递函数为
(1)使用MATLAB 绘制系统的根轨迹图。
代码:
实验结果:
(2)求根轨迹的两条分支离开实轴时的 K 值,并确定该 K 值对应的所有闭环极点。
代码及结果:
分析可得:
k=3.3812;
poles=-11.7575,-2.1213-0.0007i,-2.1213+0.0007i。
(3)以区间[‐40,‐5]之间的值替代 12 − = s处的极点,重新绘制根轨迹图,观察其对根轨迹图的影响。
代码:
fori=5:
5:
40
num=[15];
den=conv(conv([11],[13]),[1i]);
G=tf(num,den);
zpk1=zpk(G);
rlocus(zpk1);
holdon;
end
实验结果:
从图中可以看到,轨迹的分支数并没有增加或减少,渐进线也并没变化,极值越大,轨迹分离之后趋近于无穷大的时间越快,分离点没有变化。
2.已知系统开环传递函数为
(1)使用 MATLAB 绘制系统的根轨迹图。
代码:
实验结果:
(2)计算两条分支进入右半平面和两条分支复数极点出发在实轴相交处的 K 值。
代码及结果:
代码及结果:
(3)以区间[‐20,‐1]之间的值替代零点的位置,重新绘制根轨迹图,观察其对根轨迹图的影响。
代码:
结果:
分析:
零点绝对值越大,左半支汇合点越靠近左边,绝对值越大。
3.已知单位负反馈系统的开环传递函数为
(1)使用MATLAB绘制系统的根轨迹图。
代码:
结果;
(2)分析使系统稳定的K 值范围和使系统无超调的 K 值范围, 并通过观察系统的单位阶跃响应曲线加以验证。
代码:
结果:
分析:
由上图可以看出,使得系统稳定的K值范围为:
0 代码: 结果: 分析: 由上图可以看出,使得系统无超调的K值范围为: 0 四、实验心得 刚刚学的自控的根轨迹画法,由于用手画,开始觉得根轨迹其实不是那么的好用,但是通过这次试验,通过用MATLAB试验快速准确的画出根轨迹之后,发现可以很直观的看出使系统具有各种各样的性质需要的K值范围,从而可以很快的找到符合要求的值。 实验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(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=conv([132],[15]); G=tf(num,den); nyquist(G); 结果: 分析: 系统没有开环正实部极点,但是上图在(-1,j0)左边有负穿越,所以系统不稳定。 2.已知系统的开环传递函数为 (1)绘制系统的零极点图,根据零极点分布判断系统的稳定性。 代码: num=conv([1.251.251],[010]); den=conv(conv(conv([200],[10/31]),[0.2/31]),[1/401]); G=tf(num,den); G1=zpk(G); pzmap(G1); margin(G); 结果: 分析: 从上图可以看出,系统在虚轴上有极点,属于临界稳定,但是实际中这样的稳定状态很难达到,所以视为不稳定。 (2)绘制系统Bode图,求出幅度裕度和相位裕度,判断闭环系统的稳定性。 结果: 分析: 由图可知,系统的相位裕度是52.2°,幅度裕度是-10.3dB。 因为系统的幅值裕度小于0,所以闭环系统不稳定。 3.已知系统的开环传递函数为 分别判断当开环放大系数K=5和K=20时闭环系统的稳定性,并求出幅度裕度和相位裕度。 代码: K=input(''); num=K; den=conv(conv([10],[11]),[0.11]); G=tf(num,den); margin(G); 当K=5时: 分析: 从上图可知: 幅值裕度: 6.85dB,相位裕度: 13.6°。 因为系统的相位裕度和幅值裕度都大于0,所以闭环系统稳定。 当K=20时: 分析: 从上图可知: 幅值裕度: -5.19dB,相位裕度: -9.66°。 因为系统的相位裕度和幅值裕度都小于0,所以闭环系统不稳定。 四、实验心得 掌握一门新技能,可以通过Nyquist图和波特图来看系统的稳定性。 今天刚学的Nyquist图,通过实验非常直观的看出图形和稳定性的关系。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北理工 自动控制 实验 报告