关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于Matlab的PMSM电机控制系统虚拟开发平台设计

基于Matlab的PMSM电机控制系统虚拟开发平台设计

作者:时间:2016-10-10来源:网络收藏

摘要:针对传统的设计开发中测试验证阶段只能在完成原型样机之后才能进行,前期资全投入,查错及修正费用大,造成潜在市场风险等问题。文章以Mutlab为设计平台,通过Simulink,Stateflow搭建完整的PMSM系统模型,并在此模型基础上开发人机接口系统,实现了设计开发全程算法的验证和性能测试,且便于系统性能和参数改进以及后期的扩展。

本文引用地址:http://www.eepw.com.cn/article/201610/306778.htm

在高效伺服电机控制系统传统的设计开发中,开发人员根据需求分析和技术规范文档用文字,方程等方式来描述系统,但是工程师们不可避免地存在对需求分析和技术文档的理解差异,埋下失败的伏笔。以及测试验证阶段之前需要打造硬件平台,前期资金投入大。基于以上传统电机控制设计开发过程存在的问题,本文基于设计PMSM电机控制系统虚拟,实现算法的早期验证和性能测试。

1 PMSM电机控制系统虚拟结构

整个PMSM电机控制虚拟由上位机人机接口和PMSM电机控制系统模型两部分组成,如图1所示。上位机CUI人机接口系统主要功能有两部分:1)接收用户命令,修改并显示系统控制参数,对控制系统模型发送电机控制命令。2)接收并显示控制系统的运动状态及故障报警信息。PMSM电机控制系统模型由/SimulinkStateflow采用模块化方式搭建,包括系统输入模块,嵌入式处理器模块,逆变器和电机本体模块,系统输出分析模块。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

2 PMSM电机控制系统模型

本文基于/Simulink,Stateflow建立了完整的伺服电机控制仿真模型,采用模块化方式建模,如图2所示。整个完整的系统包括系统输入模块,嵌入式处理器模块,逆变器及电机本体模块,系统输出分析模块,本文主要介绍嵌入式处理器模块。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

嵌入式处理模块包括控制算法模块和外围设备驱动模块,控制算法模块主要包括控制模式调度系统模块(Mode Schedule)和电机磁场定向控制器模块(Motor Control);基于Matlab/Srateflow建立了控制模式调度系统,如图3所示。其作用为根据系统输入命令判别控制系统特定阶段的运行方式,有等待模式,起动开环控制模式,双闭环控制模式和停止减速模式;控制算法起始于等待模式,不断等待输入命令(Motor_ on)起动电机,一旦接收到起动命令,系统进入起动开环控制,给电机一恒定的加速度起动。通过正交编码得到电机一个确定的位置信号时,系统进入双闭环控制模式实现输入跟随给定。当接收停止电机命令时,电机进入停止减速模式直到转速为零,最后返回到等待模式。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

电机磁场定向控制器模块采用最简单的id=0转子磁场定向控制方式,逆变器的驱动控制采用空间电压矢量控制方式(SVPWM),其各功能模块框图,如图4所示。基于此功能框图搭建Matlab电机控制模块,电机运行时检测到三相定子电流,通过坐标变换分解㈩定子旋转磁场中与转子磁场对齐的分量(直轴电流id)和产生转矩的分量(交轴电流iq);通过正交编码实时检测转子位置,计算得到转速与给定转速进行比较,通过转速PI控制器输出电流环给定iq*,与上述得到的交轴电流iq比较,再经PI控制得到Uq;设定另一个电流环给定值id=0,实现磁场定向控制。Uq,Ud通过坐标反变换输入Ua和UB,经过SVPWM发生模块生成控制三相逆变器的脉宽调制信号,最终得到所需三相电流控制电机旋转。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

3 上位机人机接口

上节已建立了完整的PMSM电机控制系统模型,但在算法验证和测试过程中需不断改变系统给定值,电机参数以及系统控制参数,并查看相应仿真结果。为了完善整个虚拟开发平台,方便测试人员调试和验证,基于Matlba/GUI建立了图形用户界面。

3.1 GUI的制作及程序的设计

MATLAB设计图形用户界面有两种方法:1)使用程序(M文件)编写的方式建立CUI;2)利用GUIDE设计图形用户界面。第一种方法在调整图形组件位置时需要花费较长的时间,文中采用第二种方法。

3.2 PMSM电机控制系统GUI界面设计

文中中,MATLAB界面设计主要是解决CUI界面控制Simulink仿真及仿真结果的动态显示。

3.2.1 GUI控制Simulink仿真

GUI界面控制simulink仿真实现的功能是改变系统的给定输入,如电机转速,电机负载转矩;还可调整电机本体的参数,如定子相电阻Rs,极对数等等,界面亦可以调整系统控制器的参数,如速度环K(P),电流环K(P)等等。其功能主要实现步骤如下。

1)通过“打开模型”按钮打开模型文件:

调用open_system(‘sys’)函数,‘sys’是Matlab路径上的模型名称。

2)通过编辑框或是滑动条设置用户给定值以及模型中各模块的参数:

首先调用get()函数得到所需修改参数值,如valuel=get(handles.editl,‘string’);接着通过set_param(‘obj’,‘paramet erl’,valuel)。其中,‘obj’模块的路径名,‘parameterl’,valuel为要设置的参数及数值。

3)通过“执行”按钮启动仿真过程:

调用sim(model,timespan)函数;model为模型名称,timespan为仿真的开始时间和结束时间。

3.2.2 GUI动态显示Simulink仿真结果及数据保存

1)显示电机转速,直轴电流,交轴电流,电磁转矩波形通过判断listbox的value值,采用Switch语句实现不同波形的显示功能。将simu link波形输出信号经过“to Workspace”模块,保存数据至Matlab的基本工作空间,通过evalin函数将数据传递到回调函数中,接着采用背景擦除的方法,动态的划线,采用for循环或者定时器来动态改变坐标系XData,YData值,即set (p,‘XData’,t1(1,:),‘YData’,m1(1,:))。

2)保存仿真数据至Excle

可通过“保存数据”按钮可将Simulink仿真数据储存在Excle中,方便开发人员进行数据分析和处理。“保存数据”按钮的回调函数主要功能程序如下:

[FileName,PathName]=uiputfile({‘*.xls’),‘Savc as’);%打开文件保存对话框

xlswrite(strl,r1(1:50000,1:3),‘Rotor Velocities(RPM)’);%将数据存至Excle中

4 虚拟开发平台运行测试验证

PMSM电机控制虚拟开发平台GUI主界面如图5所示。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

通过CUI界面设定电机转速为1000RPM,负载转矩为0.2 oz-in,设置好电机参数及系统参数,如图6。打开模型按下“执行”按钮,仿真系统开始运行,表盘不断显示电机转速和电流。按下“停止”按钮,系统停止运行。可通过列表框查看仿真过程中各性能参数波形,并能保存参数数据和波形。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

转速波形图如图7所示,系统响应速度快,没有出现超调,调节时间ts为0.115 s;

基于Matlab的PMSM电机控制系统虚拟开发平台设计

直轴电流Id波形如图8所示,Id值基本围绕Id=0波动,符合PMSM转子磁场定向控制方式要求,验证了PMSM电机控制系统模型的正确性。

基于Matlab的PMSM电机控制系统虚拟开发平台设计

5 结论

文中基于Matlab搭建了PMSM电机控制系统虚拟开发平台,文中详述了PMSM电机控制系统模型的建立及人机接口的设计,并通过实验操作验证了电机控制系统模型的正确性,及人机接口各个控件的功能。可实现PMSM电机控制开发设计算法的早期验证和性能测试,方便系统性能和参数改进以及后期扩展。



评论


相关推荐

技术专区

关闭