陈凤祥
摘要:论文根据一些现行自动控制原理教材中控制工具箱的使用情况,结合实际教学过程学生的疑问,完善了控制工具箱一些函数的使用方法:对tf/zpk对象属性的使用,解决了各类传递函数形式的准确显示;引入bodeplot函数,完善了非最小相位系统相频图绘制;引入sumblk/connect函数,解决了前馈+反馈系统结构的表达。最后各类函数的使用均给出了相关示例。
关键词:自动控制;Matlab;控制系统工具箱
中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2017)03-0204-03
Matlab的Control System Toolbox(控制系统工具箱)提供了许多用于控制系统的仿真和分析的函数与模块,这给控制系统的仿真和控制器的设计带来了极大的方便。对于相关的命令,不少现行教材[1,2]均有说明,但仅仅利用书上给定的命令,往往是不方便的,甚至无法实现一些教材中常见控制架构的仿真和分析。如在Matlab中:(1)如何将一给定传递函数表示成形式4(见表1),以便于Bode图手工绘制;(2)如何准确绘制非最小相位系统的Bode图;(3)如何将前馈+反馈的系统结构互联起来。这些都是控制理论学习过程中常见的问题,但鲜有相关教材能针对这类问题给出相关的例子或者函数介绍。在本科教学过程中,本人时有发现一些学生期望能够利用现成的Matlab命令用于解决上述三个问题。为此下文根据这些问题给出了相应的解决方案。
一、传递函数表示
在自动控制原理教材中[1,2],共有四种类型的传递函数表达形式(如表1所示),每种形式都是为了解决不同的控制问题所给出。当前的教材在介绍Matlab控制系统工具箱函数时往往只介绍了传递函数形式1和形式2的表达方式,而比较重要的形式3,形式4则未曾给出,这导致很多学生还需用手工将形式2转化到形式3或4,从而感觉十分不便。
在介绍zpk命令时,诸多教材[1,2]忽略了如何通过Matlab将形式2的传递函数转换成形式3或形式4,甚至在Matlab2010b帮助文件中也未曾对此给出描述。但在自动控制中这形式3和形式4的使用又是十分常见的。在教学实践过程中本人发现zpk函数所建立的LTI对象中有一个属性:DisplayFormat,通过对其设置合适的参数就可以改变传递函数的显示形式。其默认参数为roots,传递函数显示为形式2;参数为
time constant则显示为形式3;参数为frequency则显示为形式4。
G=(1-2*s)/(1+4*s);bode(G),执行后得到的结果如图1所示。G(s)的相位是滞后的,但是图1显示是超前的,和真实结果正好相差360°。
若采用bodeplot后h=bodeplot(G);其结果依然同图1所示;但如果对该bode图的属性PhaseMatching设置为
on后则其结果变成如图2所示,具体命令如下:p=getoptions(h);p.PhaseMatching=on;setoptions(h,p)。图1和图2具有相同传递函数,但相位差了360°。初学者更容易接受图2的结果,图1则容易被误认为是相位超前环节。
三、系统互联
在传递函数互联过程中除了串联(series)、并联(parallel)和反馈(feedback)等基本函数外,还有两个函数sumblk和connect十分重要。利用这2个函数可以实现复杂控制系统的互联,如可以实现教材中的前馈+反馈的控制结构(如图3所示)、实现对外部扰动的分析等。sumblk和connect具体使用说明如下:
S=sumblk(output,input1,…,inputN,SIGNS)
该命令将返回LTI对象S,其中输出为output,N个输入为input1,…,inputN,且满足
output=input1+…+inputN。SIGNS为字符串+,或-的组合用以指定每个输入的方向。
sys=connect(sys1,sys2,...,inputs,outputs)
该命令用于将sys1,sys2,…等多个系统互联。鉴于每个系统都有输入输出,互联时将各子系统输入、输出的名字相同时则建立连接。互联后的系统的输入为inputs,输出为outputs。下面针对图3的控制拓扑结构利用上述命令将其生成,具体如下:
B1=sumblk(e,r,y,+-);%%实现e=r-y,返回对象B1实际上也是一个线性系统。
B2=sumblk(u,u1,u2);%%实现u=u1+u2,返回对象B2实际上也是一个线性系统。
C1.InputName=r;C1.OutputName=u2;
C2.InputName=e;C2.OutputName=u1;G.InputName=u;G.OutputName=y;%%指定系统C1,C2和G的输入输出名字。
T=connect(C1,C2,B1,B2,G,r,y);%%将系统C1,C2,B1,B2,G互联,并以r为输入,y为输出。
论文通过对Matlab控制工具箱中传递函数构建,Bode图绘制,系统互联的深入介绍,完善了现行教材中控制工具箱中命令的使用。
参考文献:
[1]孔祥东,王益群.控制工程基础[M].第3版.北京:机械工业出版社,2008.
[2]胡寿松.自动控制原理[M].第5版.北京:科学出版社,2007.
User Guide of Matlab Control System Toolbox Function for Automatic Control
CHEN Feng-xiang1,2
(1.School of Automotive Studies,Tongji University,Shanghai 201804,China;
2.Clean Energy Automotive Engineering Center,Tongji University,Shanghai 201804,China)
Abstract:Based on the usage of Matlab control system toolbox introduced in the textbooks of automatic control,and the students' questions raised during the class,some functions in Matlab control system toolbox has been appended as following:(1) using tf/zpk object attribute to make the transfer function display accurately;(2) introducing the bodeplot function to plot the phase frequency graph for non-minimum phase system;(3) introducing sumblk/connect functions to establish the feedforward + feedback control structure. The usage and examples are given for each functions introduced in the paper.
Key words:automation control;Matlab;control system toolbox