在高效伺服电机控制系统传统的设计开发中,开发人员根据需求分析和技术规范文档用文字,方程等方式来描述系统,但是工程师们不可避免地存在对需求分析和技术文档的理解差异,埋下失败的伏笔。以及测试验证阶段之前需要打造硬件平台,前期资金投入大。基于以上传统电机控制设计开发过程存在的问题,本文基于Matlab设计PMSM电机控制系统虚拟开发平台,实现算法的早期验证和性能测试。
1 PMSM电机控制系统虚拟开发平台结构
整个PMSM电机控制虚拟开发平台由上位机GUI人机接口和PMSM电机控制系统模型两部分组成,如图1所示。上位机CUI人机接口系统主要功能有两部分:1)接收用户命令,修改并显示系统控制参数,对控制系统模型发送电机控制命令。2)接收并显示控制系统的运动状态及故障报警信息。PMSM电机控制系统模型由Matlab/SimulinkStateflow采用模块化方式搭建,包括系统输入模块,嵌入式处理器模块,逆变器和电机本体模块,系统输出分析模块。
2 PMSM电机控制系统模型
本文基于Matlab/Simulink,Stateflow建立了完整的伺服电机控制仿真模型,采用模块化方式建模,如图2所示。整个完整的系统包括系统输入模块,嵌入式处理器模块,逆变器及电机本体模块,系统输出分析模块,本文主要介绍嵌入式处理器模块。
嵌入式处理模块包括控制算法模块和外围设备驱动模块,控制算法模块主要包括控制模式调度系统模块(Mode Schedule)和电机磁场定向控制器模块(Motor Control);基于Matlab/Srateflow建立了控制模式调度系统,如图3所示。其作用为根据系统输入命令判别控制系统特定阶段的运行方式,有等待模式,起动开环控制模式,双闭环控制模式和停止减速模式;控制算法起始于等待模式,不断等待输入命令(Motor_ on)起动电机,一旦接收到起动命令,系统进入起动开环控制,给电机一恒定的加速度起动。通过正交编码得到电机一个确定的位置信号时,系统进入双闭环控制模式实现输入跟随给定。当接收停止电机命令时,电机进入停止减速模式直到转速为零,最后返回到等待模式。
电机磁场定向控制器模块采用最简单的id=0转子磁场定向控制方式,逆变器的驱动控制采用空间电压矢量控制方式(SVPWM),其各功能模块框图,如图4所示。基于此功能框图搭建Matlab电机控制模块,电机运行时检测到三相定子电流,通过坐标变换分解㈩定子旋转磁场中与转子磁场对齐的分量(直轴电流id)和产生转矩的分量(交轴电流iq);通过正交编码实时检测转子位置,计算得到转速与给定转速进行比较,通过转速PI控制器输出电流环给定iq*,与上述得到的交轴电流iq比较,再经PI控制得到Uq;设定另一个电流环给定值id=0,实现磁场定向控制。Uq,Ud通过坐标反变换输入Ua和UB,经过SVPWM发生模块生成控制三相逆变器的脉宽调制信号,最终得到所需三相电流控制电机旋转。
3 上位机GUI人机接口
上节已建立了完整的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所示。
通过CUI界面设定电机转速为1000RPM,负载转矩为0.2 oz-in,设置好电机参数及系统参数,如图6。打开模型按下“执行”按钮,仿真系统开始运行,表盘不断显示电机转速和电流。按下“停止”按钮,系统停止运行。可通过列表框查看仿真过程中各性能参数波形,并能保存参数数据和波形。
转速波形图如图7所示,系统响应速度快,没有出现超调,调节时间ts为0.115 s;
直轴电流Id波形如图8所示,Id值基本围绕Id=0波动,符合PMSM转子磁场定向控制方式要求,验证了PMSM电机控制系统模型的正确性。
5 结论
文中基于Matlab搭建了PMSM电机控制系统虚拟开发平台,文中详述了PMSM电机控制系统模型的建立及人机接口的设计,并通过实验操作验证了电机控制系统模型的正确性,及人机接口各个控件的功能。可实现PMSM电机控制开发设计算法的早期验证和性能测试,方便系统性能和参数改进以及后期扩展
上一篇:基于PLC技术的自动缝制单元设计
下一篇:基于PLC的电机基本控制电路设计
推荐阅读最新更新时间:2024-05-02 23:07
- ADI有奖下载活动之24:ADI公司医疗X射线成像解决方案
- 【抢楼有奖】聊聊对光电子的认识!
- 快来访问泰克高速串行通信专题 配置您的专属解决方案 赢好礼!
- 闯关集卡|轻型电动车与电动工具正当时,英飞凌邀你上道!
- 【备战国赛】干货文集限时免积分下载,别错过哦~
- 答题抽奖:Mentor Tessent Automotive相关测试解决方案(奖品池还剩不少奖品哟)
- 有奖直播:迈来芯消费级超低功耗位置传感器,简化设计降低成本
- ADI有奖下载活动之19:ADI可编程逻辑控制器(PLC)解决方案(更新版)
- 有奖问答|ADI技术直通车——电化学传感测量与气体检测
- 【XILINX 主题分享月】 设计工具资料大搜集!!!