APP下载

“自动控制原理”虚拟实验系统开发

2011-08-09莉,陈

电气电子教学学报 2011年4期
关键词:自动控制原理数组功能模块

王 莉,陈 虹

(扬州大学 能源与动力工程学院,江苏 扬州 225009)

“自动控制原理”是工科专业一门重要专业基础课程,需要学生掌握系统参数变化对系统性能的影响,达到分析系统、设计系统的目的[1]。课程除了理论教学外,实验教学也是其中不可缺少的环节。为了克服自动控制实验教学存在的问题,我们开发了虚拟实验台实现计算机的模拟演示来作为硬件实验前的补充[2]。过去的实验教学大多都是基于Matlab和虚拟仪器开发平台LabVIEW[5]的共同开发,可以弥补两者之间缺点,我们利用它和Matlab两者混合开发编程后,可以获得显著优点。因为LabVIEW的显示效果很好,容易使用及操作,可以弥补 Matlab的不足。而且,Matlab在 LabVIEW中被调用时其功能可完全实现,从而可避免在Lab-VIEW中的复杂的设计[3-5]。

1 控制系统仿真总体功能设计

本文设计的虚拟实验系统实验界面简单,参数改变方便。基于自动控制原理实验,参考计算机控制技术实验。实现的7个功能包括线性系统的时域分析设计、线性系统的频域分析设计、线性系统的根轨迹分析设计、线性离散系统的分析设计、PID超前(滞后)校正的设计、某汽车的运动仿真设计和某飞机的运动仿真设计。系统整合前面版包括一个子面板,一个确定按钮,一个停止按钮和功能选单。功能选单包括上面提到的7个功能子模块,当选定一个功能模块后,点击确定键,子面板上将显示相应的功能模块前面板。图1为该实验平台的总体框架,图2为每个子模块主要构成。

图1 总体程序框图

图2 子模块程序框图

2 各模块实现功能设计

2.1 线性系统的时域分析模块

本功能模块能够实现如下功能:①以两种形式输入闭环传递函数,有多种输入信号类型可供选择进行实验;②显示响应曲线,时间和幅值上限参数可调;③计算并显示系统的动态性能指标,包括超调量、延迟时间、上升时间、峰值时间和调节时间;④判断系统的稳定性,并计算出闭环方程特征根进行验证。

线性系统时域分析功能模块的前面板设计如图3所示,此图为单位阶跃信号的响应结果。

图3 线性系统时域分析功能模块的前面板

输入信号类型选择包括阶跃信号、脉冲信号、斜坡信号和加速度信号。通过对时间、幅值上限进行调整,可以清楚看出信号响应的变化规律。系统的响应参数能够显示系统的动态与稳态性能(除了稳态误差,其它的响应参数均只在阶跃信号输入时有效)。闭环方程特征根能够用来判断系统的稳定性,可以结合图形验证。响应曲线图将显示输入传递函数响应曲线,当选择不同类型的输入信号时,左上角的标签名称将自动变成对应的输入型号类型。该功能模块仅当点击运行按钮后才会刷新数据,这样就避免了输入数据还没有修改完毕系统就已经刷新导致的错误。

2.2 线性系统的频域分析模块

本功能模块能够实现如下功能:①能够以两种形式输入传递函数;②选择频率响应曲线类型,包括波特图,奈奎斯特图和尼科尔斯图。在显示不同类型的频率响应曲线时,显示图表的坐标系将变为对应的曲线类型;③计算并显示系统的幅值裕度、相角裕度、相角穿越频率和截止频率等参数。

本模块和时域分析模块一样,运算部分均由Matlab脚本节点完成,只要调用对应的函数即可完成运算。不同的是,由于本模块的XY图属性需要经常变化,故使用了大量属性节点来改变包括图是否可见、标签的修改、XY轴名称的修改和平面类型的选择。线性系统的频域分析模块如图4所示,此图为奈奎斯特图的仿真结果。

图4 奈奎斯特图的仿真结果

2.3 线性系统的根轨迹分析模块

本功能模块够实现如下功能:①计算开环极点和开环零点;②调整实轴和虚轴的标尺范围;③显示根轨迹图形。

线性系统根轨迹分析功能模块的前面板包括传递函数输入模块、坐标轴上下线设置、开环传递函数零极点显示、跟轨迹图显示和运行按钮。图5为根轨迹分析模块的前面板。

图5 根轨迹的仿真结果

此模块在编程时需要注意以下问题:用Matlab计算当需要产生3条曲线时,Matlab就将其变为了一个有3列的二维数组。而LabVIEW在读取这些数据时是按行读取,然后转为一维数组,此时将出现错误,无法得到正确图像。所以,必须考虑如何将二维数组转化为一维数组,否则LabVIEW是不能够显示的。

2.4 线性离散系统的分析模块

图6为线性离散系统分析功能模块的前面板,目前显示为脉冲响应仿真结果。

图6 脉冲响应仿真结果

本功能模块能够实现如下功能:①输入传递函数,包括时域函数和频域函数;②改变采样周期和采样长度;③选择响应类型,包括脉冲响应和阶跃响应;④计算系统的特征根并显示;⑤判断系统的稳定性;⑥对一个时域或频域函数进行Z变换,并显示出变换结果;⑦显示Z变换波形。

2.5 PID超前(滞后)校正分析模块

本功能模块能够实现如下功能:①输入传递函数;②选择输入类型,包括阶跃输入和任意函数输入;③修改PID参数;④计算并显示动态性能参数;⑤显示PID控制波形。

PID超前(滞后)校正模块的设计难点在于,如何能够计算系统对于任意输入函数的响应。在这里,使用了Matlab中的lsim函数,它可以计算我们需要的响应。但在使用lsim函数时,它的参数为系统的传递函数G,输入信号的时域函数u和时间信息t,而且要求u和t的长度一致,这就需要将t的值代入到u式中进行计算。这个问题在纯Matlab环境下,只要先输入t,再输入u即可解决,但在需要外部传递输入函数是却不能这么解决。为了解决这个问题,我们使用了eval函数,它可以将一个符号表达式转化成与t同维的矩阵。

2.6 某汽车的运动仿真模块

本模块能够实现如下功能:①输入传递函数;②显示速度变化波形图,位移变化波形图和运动轨迹波形图;③逐点显示波形数据,以反映速度及位移变化的快慢情况。且逐点显示时间间隔可调。

该模块的设计难点在于:①速度变化图和位移变化图采用的是waveform chart显示,所以前一次显示的数据仍会保留在屏幕上,需要手动清空;②运动轨迹图由于同时需要x方向和y方向的位移信息,所以只能使用XY图显示,而XY图不能保存前一次的显示数据,如果像waveform chart一样使用,每次就只能显示一个点的数据。在下一次点下运行按钮之后,还要将XY图的数据清零。

对于难点①的解决方案,采用了数组初始化节点,将waveform chart的历史数据清零。难点②的解决方案是采用移位寄存器,将每次的数据和以前的数据构成数组,同时判断移位寄存器中数组大小与此次运算总点数的关系,当数组大于等于总点数时,就将移位寄存器数组初始化。

2.7 某飞机的运动仿真模块

本模块实现的功能与汽车运动类似,唯一不同就是运动轨迹是三维曲线图。这里我们增加了是否开启投影功能,即运动轨迹在XY平面、XZ平面和YZ平面的运动投影。

3 结语

控制系统仿真是随着虚拟仪器和控制理论等的发展而不断进步的,它在工业开发生产等领域的作用是不可替代的。同时,人们也开始认识到仿真技术在教育领域的应用价值,它除了可以辅助高校的科研工作,在实验教学方面也具有如利用率高,易维护等诸多优点。

本仿真平台充分利用了LabVIEW在软件化测量编程和Matlab在数据处理方面的优势,通过混合编程将两者合理地结合,最终完成了控制系统仿真平台的设计。该仿真平台适用于课堂教学,能够将书本上的公式和理论转化成直观的图形,也能够加深学生对书本知识的理解。

[1] 胡寿松.自动控制原理[M].北京:科学出版社,2008

[2] 程 鹏.自动控制原理实验教程[M].北京:清华大学出版社,2008.

[3] 张若青,罗学科,王民.控制工程基础及Matlab实践[M].北京:高等教育出版社,2008

[4] 杨乐平,李海涛,杨磊.LabVIEW 程序设计与应用(第 2版)[M].北京:电子工业出版社,2005

[5] 陈飞,陈惠侠.基于LabVIEW 和Matlab的自动控制虚拟实验系统[J].四川:实验科学与技术2009.02

猜你喜欢

自动控制原理数组功能模块
JAVA稀疏矩阵算法
JAVA玩转数学之二维数组排序
三本院校自动控制原理课程教学改革之探讨
自主学习驱动的自动控制原理研究性教学方法
“问题驱动+能力提升”卓越课程建设与实践
自动控制原理的仿真实验教学设计
基于ASP.NET标准的采购管理系统研究
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
寻找勾股数组的历程