APP下载

面向“自动控制原理”课程教学的仿真软件开发

2023-01-14程荣俊叶运生黄强先张连生

电气电子教学学报 2022年6期
关键词:自动控制原理功能模块自动控制

程荣俊 叶运生 方 可 黄强先 张连生

(1. 合肥工业大学 仪器科学与光电工程学院, 合肥 230009)(2. 合肥工业大学 测量理论与精密仪器安徽省重点实验室, 合肥 230009)

“自动控制原理”是仪器类、自动化和电子信息等专业的核心课程,其理论性、综合性较强[1-2]。该课程知识点多且较为抽象、不易理解,计算复杂,作图量大且要求一定的精确性,教师教学和学生学习都面临着巨大的挑战[3-4]。在新工科背景下,充分利用Matlab等计算机软件在教学领域中越发明显的优势来辅助“自动控制原理”课程教学与改革具有重要意义[5-6]。

目前,国内外研究机构基于Matlab GUI、Labview等平台开发了自动控制仿真教学软件[7-9]。然而,这些软件实现的功能相对单一,要么根据传递函数进行单纯的时域、频域分析,要么针对某些典型控制系统案例进行建模与分析。对于初学“自动控制原理”的学生而言,需要更加基础、全面且契合教材的教学软件平台来辅助学习课程重要章节内容,并有典型工程案例配合学习,以提高教学效果。

针对当前存在的问题,以邹伯敏教授主编的《自动控制理论》教材为依托,结合课程基本授课内容,利用Matlab GUI开发了仿真教学软件,具备良好的实用性和可移植性,能够协助教师进行课程讲授和学生自主学习。

1 仿真软件总体设计

面向“自动控制原理”课程教学的仿真软件主要包括时域分析法、根轨迹法、频率响应法和控制系统校正等典型功能模块以及直流调速系统工程实例应用模块,软件功能模块如图1所示。

图1 自动控制原理仿真教学软件功能结构图

为了使得界面清晰、便于操作,设计了如图2所示的软件主界面。该主界面通过插入图片的方式显示了一张校园风光的图片,图片显示算法如下:

axes(handles.picm);

image_main = imread(‘封面图片1.jpg’);

imshow(image_main);

图2 自动控制原理仿真软件主界面

仿真软件中的每个模块下包含多种功能,在程序算法中相应地需要多个子程序和多个操作界面。软件利用回调函数实现子程序的调用,对于每个子程序中的多个界面利用菜单编辑器来集成。软件主界面回调函数中的调用算法如下:

function push0106_Callback(hObject, eventdata, handles)

System_Analysis;

function push01_Callback(hObject, eventdata, handles)

close(gcf);

main;

2 软件典型功能模块的实现

由于仿真软件涵盖了“自动控制原理”课程的大部分内容,整体工程量较大。频率响应法是“自动控制原理”课程的重要章节,主要分析系统对不同频率正弦输入信号的响应能力。以控制系统频域分析模块为例,介绍软件典型功能模块的实现方法。

Bode图法是频率响应的一种重要图解方法,用于判别系统的稳定性及相对稳定性等性能,主要评价指标为幅值裕度Kg和相位裕度γ。仿真软件Bode图功能模块实现方法如下:

(1)获取控制系统模型和参数。编辑框中输入传递函数的分子和分母系数矩阵,算法中加入了数值判别机制,避免矩阵中混入了非数值元素,无法构建传递函数。主要算法如下:

num = str2num(get(handles.edit1,‘string’));

den = str2num(get(handles.edit2,‘string’));

if isempty(num) || isempty(den)

errordlg(‘输入非数值’,‘Error’);

end

(2)绘制系统Bode图和单位阶跃响应曲线,并计算系统性能指标。通过程序编写和函数调用即可实现,基于句柄对象的层次结构来修改线宽和线型。主要算法如下:

w = logspace(-2,3,400);

[mag,phase,w] = bode(num,den,w);

[mag_tmp,phase_tmp,w_tmp]=bode(num,den,w_tmp);

sys_close = feedback(sys,1);

step(sys_close);

grid on;

sline = get(handles.axes1,‘children’);

slinea = get(sline(i),‘children’);

set(slinea,‘linewidth’,2);

end

(3)判别闭环系统的稳定性。对于开环稳定系统,若幅值裕度和相位裕度均大于0,则系统稳定。对于开环不稳定系统,无法利用稳定裕度判别系统稳定性,此时需要借助于奈氏稳定判据。软件实现的思路如下:软件读取分子、分母系数矩阵并加以判断,若有效则计算系统开环极点并取其实部,判断各开环极点实部是否大于0,得到开环右半平面极点个数P;再计算系统的幅频、相频特性,考察幅频特性L(ω)=20lg|G(jω)|>0所对应的相频特性中的各元素,列成新数组A;考察A中的每一个元素,若某元素及其相邻元素满足关系A(i)≤-180且A(i+1)≥-180,则正穿越次数加1,若某元素及其相邻元素满足A(i)≥-180且A(i+1)≤-180,则负穿越次数加1;最后计算出系统闭环右半平面极点个数Z,从而判断系统稳定性。具体算法流程如图3所示。

图3 奈氏稳定判据判别系统稳定性的算法流程图

依据上述方法和步骤,所设计的仿真软件“频率响应法”功能模块界面如图4所示。

图4 Bode图法的仿真软件运行界面

该模块中可以通过输入分子多项式系数矩阵和分母多项式系数矩阵,从而构建系统的传递函数,绘制出系统的Bode图和时域响应曲线,并能计算系统的稳定裕度、相位交界频率和剪切频率等频域性能指标,以及判别控制系统的相对稳定性。

3 软件典型工程案例分析

双闭环直流调速系统是工程中常见的自动控制系统,受控对象为电机转速这一经典对象,涉及到电流环和速度环两个串联连接的控制器,能够充分体现自动控制原理的精髓[10]。仿真软件集成双闭环直流调速系统这一经典案例,开发“直流调速系统”仿真子程序,实现时域分析、根轨迹和频域响应三方面的系统性能分析,能够有效提高学生基础理论与工程实际相结合的能力。

为了直观显示控制过程中转速的变化情况,软件界面设计了转速表,其实现方法为将时域响应获得的转速值转化为转速表中的极角,再将极角转化为直角坐标。由于转速表的零刻度线位于极角180°的位置,所以对于不同的转速区域,转速与极角的对应关系也不相同,两者转化的算法如下:

if y(i) <= 1500 && y(i) >= -750

thetah1 = (1500-y(i))/1500*pi;

elseif y(i) > 1500 && y(i) <= 2000

thetah1 = -pi*(y(i)-1500)/1500;

elseif y(i) >2000

thetah1 = -pi/3;

elseif y(i) <-750

thetah1 = -pi/2;

end

仿真软件在计算出时域响应后,根据曲线上每一采样点对应的转速,绘制一帧转速表的图像,并停留一小段时间。基于人眼视觉暂留效应,多帧图像不断变化就形成了转速表动画,从而直观地显示控制过程中转速的变化规律。仿真软件“直流调速系统”显示界面如图5所示。

图5 “直流调速系统”子程序界面

考虑到教学学时以及程序实现问题,程序设计中直接给出双闭环直流调速系统的结构框图,电机参数与控制参数由学生自行推导给出,程序根据该模型及参数对设定的直流调速系统进行实时仿真,运行弹出新的窗口显示控制系统的时域响应、根轨迹曲线和Bode图,如控制系统时域响应反应了电机输出转速变化曲线,如图6所示。该案例便于学生灵活利用多种方法分析直流调速系统的控制原理,从而掌握不同分析方法在工业控制中的实际应用。

图6 “直流调速系统”子程序中的转速-时间曲线

4 结语

利用Matlab GUI软件平台,开发了面向“自动控制原理”课程教学的仿真软件,具有功能齐全、易于理解和展示等优点。通过将课程中某些复杂图形的绘制与原理验证等功能通过软件实时显示结果,给教师教学带来了便利,同时使学生能够更直观地理解“自动控制原理”课程中复杂、抽象的内容,提高教学效果。

猜你喜欢

自动控制原理功能模块自动控制
电力拖动系统的自动控制和安全保护
M2W中波发射机自动控制天线倒换系统
三本院校自动控制原理课程教学改革之探讨
“问题驱动+能力提升”卓越课程建设与实践
基于ASP.NET标准的采购管理系统研究
唐钢热轧1810线工艺润滑改造自动控制的实现
输电线路附着物测算系统测算功能模块的研究
功能模块的设计与应用研究