MATLAB在控制系统中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号:1006-5342(2002)06-0050-03

MATLAB 在控制系统中的应用

徐武雄

(咸宁师范高等专科学校 物理系,湖北 咸宁 437005)

摘 要:MATLAB 作为一种计算机辅助设计工具日益受到人们的重视,文章以几个典型的实例来说明MATLAB 在控制系统中的应用 关键词:MATLAB;控制系统;计算机辅助设计中图分类号:TP273 文献标识码:A 0 引言

控制理论自20世纪40年代作为一门独立的学科出现以来,在工业、农业和国防等领域的应用已经越来越广泛 由于最初的控制系统大多比较简单,利用纸笔等工具就可以计算和设计出来 随着控制理论的迅速发展,控制效果要求越来越高,控制算法越来越复杂,控制器的设计也越来越困难,这样光利用纸笔以及计算器等简单运算工具难以达到预期效果,计算机技术的迅猛发展使人们很自然想到利用计算机来辅助设计控制系统[1] 目前,国际上在控制领域最流行的软件当属MAT -LAB 借助MATLAB 可以使复杂的控制系统设计变得简单、直观和可靠,减少了劳动强度,提高了工作效率 本文以几个典型的问题来说明MATLAB 在控制领域中的应用 1 MATLAB 简述

MATLAB 是一种面向科学和工程计算的高级语言,现已成为国际公认的最优秀的科技界应用软件,在世界范围内广为流行和使用 MATLAB 在许多学科领域中成为计算机辅助设计与分析、算法研

究和应用开发的基本工具和首选平台[2]

该软件

的特点可以归纳为以下几点[3]

:

(1)简单易用 MATLAB 是一门编程语言,其语法规则与一般的结构化高级编程语言(如C 语言)大同小异,而且不需定义变量和数组,使用更方便

(2)代码短小高效 由于MATLAB 已经将具体的算法编成了具体的函数,用户只需熟悉算法的特点、使用场合、函数的调用格式和参数意义等,通过调用函数很快解决问题

(3)计算功能非常强大 具有强大的矩阵计算功能,利用一般的符号和函数就可以对矩阵进行加、减、乘、除的运算以及转置和求逆运算 此外,

该软件现有的六十多个工具箱可以解决数学和工

程领域的绝大多数问题

(4)强大的图形表达功能 不仅可以绘制一维、二维和三维图形,还可以绘制工程特性较强的特殊图形

(5)可扩展性 用户可以自己编写M 文件,组成自己的工具箱

2 MATLAB 在控制系统中的应用

借助MATLAB 及其控制系统工具箱和SI MULINK 的强大功能,可以迅速解决大量的数字计算、特殊图形绘制、动态系统建模、系统仿真和分析 下面以几个典型问题来说明其在控制系统中的应用

2 1根轨迹的绘制

用手工绘制根轨迹是一件很麻烦的事,所绘图形是一个大致形状,而且不是很美观 利用MAT -LAB 绘制就可以克服这些缺点 下面用MATLAB 绘制根轨迹[2]:

已知传递函数:G H (s)=K (s +8)/[s (s +2)(s 2

+8s +32)],绘制根轨迹并求下面两种情形下的K 值:(i)两条分支进入右半平面(ii)两条分支从复数极点出发在实轴相交

解决以上问题很简单,只需几条语句即可完成,源程序如下:

den=conv([120],[1832]) %分母有四个极点G=tf([18],den) %定义分子并创建G(s)Gzp=zpk(G) %显示G(s)的零点、极点和增益rlocus(G) %计算根轨迹

axis([-155-1010]) %调整绘制区域

[kk,clroots]=rlocfind(G) %计算增益值和极点

MATLAB 绘制的根轨迹如图1所示 画出了根轨迹后,我们可以交互的使用rlocfind 命令来确定用户点击鼠标所选的根轨迹上任意点所对应的

收稿日期:2002-07-23

第22卷第6期 咸 宁 师 专 学 报 Vol.22,No.62002年12月 Journal of X ianning Teachers C ollege Dec.2002

K 值,K 值所对应的所有闭环极点值也可以使用形如[kk,clroots]=rlocfind(G)的命令来显示 本例中所要求的K 值利用以上方法很容易就可以求出:K 50时,从实数极点上出发的两条分支穿入右半平面;k 2070时,从复数极点出发的两条分支到达实轴

2 2 阶跃性能分析

利用MATLAB 来计算系统性能指标,了解控制器的参数对其性能的影响也是一件很容易的事情.考虑图2中的反馈系统[2],其中G p (s )=1/[(s +0.01)(s +1)(s +20)],G c (s )=50,H (s )=1,当d(t )=0时,求单位阶跃输入作用下系统的响应曲线,并求出M O ,t p ,t r ,t s 2和e ss 再对r (t)=0时由单位阶跃扰动作用引起的响应曲线,并求稳态值 解决本题的源程序如下:

denGp=conv(conv([10.01],[11],[120]) %对象模型Gp=tf(1,denGp)

Gcp=50*Gp %控制器和对象

Tr=feedback(Gcp,1.0) %单位反馈t=[0 0.05 20] %

时间向量

yr=step(Tr,t) %闭环阶跃响应

figure(1);plot(t,yr);grid %绘制响应曲线[M 0,tp,tr,ts2,ess]=tstats(t,yr,1) %性能指 标

[numTr,denTr]=tfdata(Tr, v ) %提取分子 分母多项式

[resS,polS,otherS]=residue(num Tr,[denTr0]) %部分分式展开式

Td=feedback(Gp,50) %计算Td(s)yd=step(Td,t) %扰动响应

figure(2);plot(t,yd);grid %扰动响应曲线运行以上程序后,我们可得响应曲线如图3和图4所示,对单位阶跃响应使用函数tstats,我们可求得下列性能指标:上升时间t r =0.83s;在t p =2 1s 时,最大超调量M 0=39.5%;2%的调节时间t s 2=9.0s;稳态误差为e ss =0.4% 扰动响应的稳态值为0.02

2 3 动态系统的建模和仿真

MATLAB 在工程技术方面另外一个令人振奋的应用是它的强大的系统建模和仿真能力.MAT -LAB 提供的Simulink 是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统[4] 下面以一个实例来说明它在这方面的应用

建立一个如图5所示的典型PID 控制系统模

型,其中G p (s)=(s 3+7s 2+24s +24)/(s 4+10s 3+35s 2+50s +24),R (s )为单位阶跃输入,绘制出系

统的仿真曲线[1]

利用Simulink 解决以上问题变得很容易.

51

第6期 徐武雄 MATLAB 在控制系统中的应用

相关文档
最新文档