Matlab在自动控制原理中的应用

时间:2022-02-14 08:57:43

Matlab在自动控制原理中的应用

摘 要:把MATLAB控制系统工具箱(control systems toolbox)和仿真环境SIMULINK运用到《自动控制原理》的教学中,很好的解决了这门课中实际的数据计算、图形绘制、性能指标求取以及系统校正与设计等技术问题,把学生从繁琐的数学计算过程中解放出来,用图形表示系统动态响应过程和稳态响应过程,结果直观易于分析,提高学生对该门课的兴趣,加深学生对自动控制系统工作原理的理解和领会,为以后专业课程的学习打下坚实的基础。

关键词:MATLAB;自动控制系统;系统响应;系统设计

0 引言

高职院校的学生重在强化职业技能的培养,而《自动控制原理》这门课程中除了讲解控制系统的工作原理外,控制系统的模型是一个非常重要的环节,对控制系统性能进行定量的计算和分析,离不开控制系统的数学模型,涉及到对微分方程数学模型的求解,用到Laplace变换及反变换,对系统响应超调量、上升时间、调节时间、峰值的求取,都要用到繁琐的数学计算,对系统时域或者频域稳定性的分析,绘制Naquist曲线和Bode图以及系统的校正与设计,如果全靠手工计算数据,手工绘图的话,费时费力,有时还得不到准确的数据和图像。

MATLAB是Mathworks公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算应用软件。MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。

1 MATLAB在控制系统建模中的应用

MATLAB是国际控制界目前使用最广的工具软件,几乎所有的控制理论与应用分支中都有MATLAB工具箱。这里结合自动控制理论的基本内容,采用控制系统工具箱(Control Systems Toolbox)和仿真环境(Simulink),体会MATLAB的应用。

1.1 用MATLAB建立传递函数模型

1.1.1 反馈系统结构图模型

图1 反馈系统结构图

设反馈系统结构图如图1所示。控制系统工具箱中提供了feedback()函数,用来求取反馈连接下总的系统模型,该函数调用格式为:G=feedback(G1,G2,sign)。

1.1.2 Simulink建模方法

在一些实际应用中,如果系统的结构过于复杂,不适合用前面介绍的方法建模。在这种情况下,功能完善的Simulink程序可以用来建立新的数学模型。

典型二阶系统的结构图如图2所示。用SIMULINK对系统进行仿真分析。

图2 典型的二阶系统结构图

将画出的所有模块按图2用鼠标连接起来,构成一个原系统的框图描述如图3所示。

图3 二阶系统的simulink实现

利用MATLAB命令plot(tout,yout),可将结果绘制出来,如图4所示。比较图4和图5,可以发现这两种输出结果是完全一致的。

图4 仿真结果示波器 图5 MATLAB命令得出

显示图 的系统响应曲线

2 利用MATLAB进行时域分析

2.1 线性系统稳定性分析

系统的零极点模型可以直接被用来判断系统的稳定性。另外,MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。

2.1.1 直接求特征多项式的根

设p为特征多项式的系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内的解v,该函数的调用格式为:v=roots(p)

利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。

2.1.2 系统动态特性分析

已知传递函数为:

利用以下MATLAB命令可得阶跃响应曲线如图6所示。

图6 MATLAB绘制的响应曲线

>>num=[0,0,25];den=[1,4,25];step(num,den) grid

title(1Unit-Step Response of G(s)=25/(s^2+4s+25

)1)

2.1.3 求阶跃响应的性能指标

已知二阶系统传递函数为:

利用下面的stepanalysis.m程序可得到阶跃响应如图 7及性能指标数据。

>> G=zpk([ ],[-1+3*i,-1-3*i ],3);

% 计算最大峰值时间和它对应的超调量。

C=dcgain(G) [y,t]=step(G);plot(t,y) grid;[Y,k]=max(y);timetopeak=t(k)

percentovershoot=100*(Y-C)/C% 计算上升时间。

n=1;

while y(n)

n=n+1;

end

risetime=t(n) % 计算稳态响应时间。

i=length(t);

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

i=i-1;

end

setllingtime=t(i)

运行后的响应图如图6,命令窗口中显示的结果为

C=0.3000 timetopeak=1.0491

percentovershoot=35.0914 risetime=0.6626

setllingtime=3.5337

图7 二阶系统阶跃响应

2.1.4 利用MATLAB绘制系统根轨迹

控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹。

已知系统的开环传递函数模型为:

利用MATLAB命令可容易地验证出系统的根轨迹如图8所示。

3 利用MATLAB进行频域分析

3.1 用MATLAB作奈魁斯特图

虑二阶典型环节:

图8 系统的根轨迹

利用下面的命令,可以得出系统的奈氏图,如图9所示。

>> num=[0,0,1];den=[1,0.8,1];nyquist(num,den)% 设置坐标显示范围

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

axis(v)

grid

title(′Nyquist Plot of G(s)=1/(s^2+0.8s+1)′)

图9 二阶环节奈氏图

3.2 用MATLAB作伯德图图

给定单位负反馈系统的开环传递函数为:

利用以下MATLAB程序,可以直接在屏幕上绘出伯德图如图10。

>> num=10*[1,1];den=[1,7,0];bode(num,den)grid

title(′Bode Diagram of G(s)=10*(s+1)/[s(s+7)] ′)

该程序绘图时的频率范围是自动确定的,从0.01弧度/秒到30弧度/秒,且幅值取分贝值,ω轴取对数,图形分成2个子图,均是自动完成的。

图10 自动产生频率点画出的伯德图

4 利用MATLAB进行频域法串联校正

利用MATLAB可以方便的画出Bode图并求出幅值裕量和相角裕量。通过反复试探不同校正参数对应的不同性能指标,能够设计出最佳的校正装置。

给定系统如图11 所示,试设计一个串联校正装置,使系统满足幅值裕量大于10分贝,相位裕量≥45o。

为了满足上述要求,我们试探地采用超前校正装置Gc(s),使系统变为图12的结构。

图11 校正前系统

图12 校正后系统

引入一个串联超前校正装置:

我们可以通过下面的MATLAB语句得出校正前后系统的Bode图如图13,校正前后系统的阶跃响应图如图14。其中ω1、γ1、ts1分别为校正前系统的幅值穿越频率、相角裕量、调节时间,ω2、γ2、ts2分别为校正后系统的幅值穿越频率、相角裕量、调节时间。

>> G1=tf(100,[0.04,1,0]); % 校正前模型

G2=tf(100*[0.025,1],conv([0.04,1,0],[0.01,1])) % 校正后模型

% 画伯德图,校正前用实线,校正后用短划线。

bode(G1) hold bode(G2, ′――′)%画时域响应图,校正前用实线,校正后用短划线。

Figure G1_c=feedback(G1,1) G2_c=feedback(G2,1) step(G1_c) hold step(G2_c, ′――′)

图13 校正前后系统的Bode图

图14 校正前后系统的阶跃响应图

可以看出,在这样的控制器下,校正后系统的相位裕量由28o增加到48o,调节时间由0.28s减少到0.08s。系统的性能有了明显的提高,满足了设计要求。

5 结论

通过MATLAB在建模、时域分析、频域分析、系统校正中的应用可以看到,MATLAB工具箱在自动控制原理课中的应用无处不在,MATLAB不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能,从而很好地帮助老师和学生解决《自动控制原理》这门课中实际的数据计算、图形绘制、性能指标求取以及系统校正与设计等技术问题。

参考文献:

[1]黄中霖.控制系统MATLAB计算及仿真[M].北京:国防工业出版社,2001.

[2]王正林,王胜开,陈国顺.Matlab/Simulink与控制系统仿真[M].北京:电子工业出版社,2005.

[3]尹瑞竹.Matlab软件在自动控制原理教学中的应用[J].学术论坛,2007.

[4]刘卫国,陈昭平,张颖.MATLAB程序设计与应用[M].北京:高等教育出版社,2002.

[5] 薛定宇.控制系统仿真与计算机辅助设计[M].北京:机械工业出版社,2005.

[6] 李玉梅,马伟明,张波涛.PSB――基于simulink的一种新型电力系统仿真工具[J].电气应用,2001,12(8):5-7.

本文由南京交通职业技术学院基金项目――“Matlab在自动控制原理中应用”(JY1110)支持。

上一篇:PE“争食”中概股私有化,获利之路仍遥远 下一篇:辽宁中小企业产品问题调研分析