方 环,华 华,彭小龙,陈家新
(东华大学 信息科学与技术学院,上海 201620)
在高效伺服电机控制系统传统的设计开发中,开发人员根据需求分析和技术规范文档用文字,方程等方式来描述系统,但是工程师们不可避免地存在对需求分析和技术文档的理解差异,埋下失败的伏笔。以及测试验证阶段之前需要打造硬件平台,前期资金投入大[1]。基于以上传统电机控制设计开发过程存在的问题,本文基于Matlab设计PMSM电机控制系统虚拟开发平台,实现算法的早期验证和性能测试。
整个PMSM电机控制虚拟开发平台由上位机GUI人机接口和PMSM电机控制系统模型两部分组成[1],如图1所示。上位机GUI人机接口系统主要功能有两部分:1)接收用户命令,修改并显示系统控制参数,对控制系统模型发送电机控制命令。2)接收并显示控制系统的运动状态及故障报警信息。PMSM电机控制系统模型由Matlab/SimulinkStateflow采用模块化方式搭建,包括系统输入模块,嵌入式处理器模块,逆变器和电机本体模块,系统输出分析模块。
本文基于Matlab/Simulink,Stateflow建立了完整的伺服电机控制仿真模型,采用模块化方式建模,如图2所示。整个完整的系统包括系统输入模块,嵌入式处理器模块,逆变器及电机本体模块,系统输出分析模块.本文主要介绍嵌入式处理器模块[2]。
嵌入式处理模块包括控制算法模块和外围设备驱动模块,控制算法模块主要包括控制模式调度系统模块(Mode Schedule)和电机磁场定向控制器模块(Motor Control);基于Matlab/Stateflow建立了控制模式调度系统,如图3所示。其作用为根据系统输入命令判别控制系统特定阶段的运行方式,有等待模式,起动开环控制模式,双闭环控制模式和停止减速模式;控制算法起始于等待模式,不断等待输入命令(Motor_on)起动电机,一旦接收到起动命令,系统进入起动开环控制,给电机一恒定的加速度起动。通过正交编码得到电机一个确定的位置信号时,系统进入双闭环控制模式实现输入跟随给定。当接收停止电机命令时,电机进入停止减速模式直到转速为零,最后返回到等待模式[3]。
图1 PMSM电机控制开发平台构图Fig.1 Structureofdevelopmentplatform forPMSMmotorcontrolsystem
图2 PMSM电机控制仿真模型主界面Fig.2 Themian interface of simulationmodel
电机磁场定向控制器模块采用最简单的id=0转子磁场定向控制方式,逆变器的驱动控制采用空间电压矢量控制方式(SVPWM).其各功能模块框图,如图4所示。基于此功能框图搭建Matlab电机控制模块,电机运行时检测到三相定子电流,通过坐标变换分解出定子旋转磁场中与转子磁场对齐的分量(直轴电流id)和产生转矩的分量(交轴电流iq);通过正交编码实时检测转子位置,计算得到转速与给定转速进行比较,通过转速PI控制器输出电流环给定iq*,与上述得到的交轴电流iq比较,再经PI控制得到Uq;设定另一个电流环给定值id=0,实现磁场定向控制。Uq,Ud通过坐标反变换输入Ua和Uβ,经过SVPWM发生模块生成控制三相逆变器的脉宽调制信号,最终得到所需三相电流控制电机旋转[4]。
图3 控制模式调度系统Fig.3 System of contralmode schedule
图4 SVPWM控制框图Fig.4 Structure diagram of SVPWM control
上节已建立了完整的PMSM电机控制系统模型,但在算法验证和测试过程中需不断改变系统给定值,电机参数以及系统控制参数,并查看相应仿真结果。为了完善整个虚拟开发平台,方便测试人员调试和验证,基于Matlba/GUI建立了图形用户界面。
MATLAB设计图形用户界面有两种方法:1)使用程序(M文件)编写的方式建立GUI;2)利用GUIDE设计图形用户界面。第一种方法在调整图形组件位置时需要花费较长的时间,文中采用第二种方法。
文中中,MATLAB界面设计主要是解决GUI界面控制Simulink仿真及仿真结果的动态显示。
3.2.1 GUI控制Simulink仿真
GUI界面控制simulink仿真实现的功能是改变系统的给定输入,如电机转速,电机负载转矩;还可调整电机本体的参数,如定子相电阻Rs,极对数等等.界面亦可以调整系统控制器的参数,如速度环K(P),电流环K(P)等等。其功能主要实现步骤如下[5]。
1)通过“打开模型”按钮打开模型文件:
调用 open_system(‘sys’)函数,‘sys’是 Matlab 路径上的模型名称。
2)通过编辑框或是滑动条设置用户给定值以及模型中各模块的参数:
首先调用get()函数得到所需修改参数值,如value1=get(handles.edit1, ‘string’); 接 着 通 过 set_param (‘obj’,‘parameter1’,value1)。 其 中 , ‘obj’ 模 块 的 路 径 名 ,‘parameter1’,value1为要设置的参数及数值。
3)通过“执行”按钮启动仿真过程:
调用 sim (model,timespan) 函数;model为模型名称,timespan为仿真的开始时间和结束时间。
3.2.2 GUI动态显示Simulink仿真结果及数据保存
1)显示电机转速,直轴电流,交轴电流,电磁转矩波形[6]
通过判断listbox的value值,采用Switch语句实现不同波形的显示功能。将simulink波形输出信号经过“to Workspace”模块,保存数据至Matlab的基本工作空间,通过evalin函数将数据传递到回调函数中,接着采用背景擦除的方法,动态的划线,采用for循环或者定时器来动态改变坐标系 XData,YData 值 , 即 set (p,'XData',t1(1,:),'YData',m1(1,:))。
2)保存仿真数据至Excle
可通过“保存数据”按钮可将Simulink仿真数据储存在Excle中,方便开发人员进行数据分析和处理。“保存数据”按钮的回调函数主要功能程序如下:
[FileName, PathName]=uiputfile ({'*.xls'},'Save as');%打开文件保存对话框
xlswrite(str1,r1(1:50000,1:3),'Rotor Velocities (RPM)');%将数据存至Excle中
PMSM电机控制虚拟开发平台GUI主界面如图5所示。
图5 虚拟开发平台GUI主界面Fig.5 Themian interface of GUI
通过GUI界面设定电机转速为1000RPM,负载转矩为0.2 oz-in,设置好电机参数及系统参数,如图6。打开模型按下“执行”按钮,仿真系统开始运行,表盘不断显示电机转速和电流。按下“停止”按钮,系统停止运行。可通过列表框查看仿真过程中各性能参数波形,并能保存参数数据和波形。
图6 系统参数设置界面Fig.6 Interface of setting parameter
转速波形图如图7所示,系统响应速度快,没有出现超调,调节时间ts为 0.115 s;
图7 转速波形界面Fig.7 Interface of rotation rate scope
直轴电流Id波形如图8所示,Id值基本围绕Id=0波动,符合PMSM转子磁场定向控制方式要求,验证了PMSM电机控制系统模型的正确性。
图8 直轴电流Id界面Fig.8 Interface of Id scope
文中基于Matlab搭建了PMSM电机控制系统虚拟开发平台,文中详述了PMSM电机控制系统模型的建立及人机接口的设计,并通过实验操作验证了电机控制系统模型的正确性,及人机接口各个控件的功能。可实现PMSM电机控制开发设计算法的早期验证和性能测试,方便系统性能和参数改进以及后期扩展。
[1]李永东.交流电机数字控制系统[M].北京:机械工业出版社,2002.
[2]刘杰,翁公羽,周宇博.基于模型的设计-MCU篇[M].北京:北京航天航空大学出版社,2011.
[3]JeffC.Jensen.Elemets of Model-Bsed Design.Department of Electrical Engineering & ComputerScience of Berkeley Journal,2010,2(15):2-3.
[4]李军政,吕敬高,孙良友.永磁同步电动机磁场定向矢量控制[J].船电技术,2005(4):4-6.LI Jun-zheng,LV Jing-gao,SUN Liang-you.Field-Oriented vector control of permanent magnet synchronous motor[J].Marine Electric&Electronic Engineering,2005(4):4-6.
[5]罗华飞.Matlab GUI设计学习手记[M].北京:北京航天航空大学出版社,2011.
[6]刘焕进,王辉,李鹏.Matlab N个实用技巧[M].北京:北京航天航空大学出版社,2011.