基于CCS-Simulink的永磁同步电机控制器设计及联合仿真

2020-04-23 07:21黄新成简炜陈宇峰杨成李艺仁高云王志虎
湖北汽车工业学院学报 2020年1期
关键词:控制算法代码电机

黄新成,简炜,陈宇峰,杨成,李艺仁,高云,王志虎

(1.湖北汽车工业学院 电气与信息工程学院,湖北 十堰442002;2.东风商用车有限公司,湖北 十堰442000)

永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)以其体积小、损耗低和效率高等特点使得其控制算法的研究成为目前交流电机控制领域中的热点[1]。现代嵌入式系统的开发中,DSP芯片凭借其高效的运算处理能力广泛应用于信号处理领域。目前大多数电机控制系统都是基于DSP实现的[2]。传统的DSP 开发分为4个阶段:需求定义、设计程序算法、硬件实现以及验证测试。在设计控制算法时,首先需要在Matlab/Simulink中对系统进行仿真,然后在DSP的开发环境CCS中进行程序代码设计,最后将执行结果与仿真结果进行比对从而微调程序。整个过程中,下一个阶段必须在前一个阶段结束后才能开始,使得整个开发流程无法有机结合,引发种种问题,影响项目的开发效率[3]。针对上述问题,文中提出一种基于模型设计(Model Based Design,MBD)的方法进行电机控制系统的设计。MBD 是一种高效的DSP 代码开发方式,利用Simulink 和CCS 联合仿真并能自动生成代码的特点,缩短开发周期。在Simulink工具箱中将各种型号DSP的底层驱动都封装成模块,各种函数库都表现出其对电机控制代码开发的强大支持[4]。

1 MBD实现方案

在MBD 的开发过程中,模型是整个控制系统设计的核心部分。图1 为电机控制系统模型设计开发流程。首先根据项目的要求制定需求文件,然后在确定电机控制方案后根据电机的数学模型建立一个系统模型,作为整个项目开发过程中可执行的技术规范;在模型经过Model Advisor 工具检查后,利用开发测试套件进行模型仿真,对模型进一步查漏补缺;再根据硬件设计对算法模型进行底层驱动配置,并将浮点模型转换为定点模型,以满足硬件精度要求;生成完整的电机控制代码模型自动代码,并在CCS 开发环境中对代码进行编译、运行和测试[5]。Model Advisor 、Design Verifier 、Poly Space等测试工具在整个开发期间都会进行测试和分析,包括后期的软件行为测试(MIL、SIL、PIL)和硬件验证(HIL)。验证和测试活动在整个开发流程中非常重要,既保证了软件的可靠性,又能发现每个环节的种种问题,让工程师及早修复和改正,提高开发效率[6]。

图1 电机控制系统模型设计开发流程

2 矢量控制与联合仿真

2.1 id = 0控制

在众多PMSM 矢量控制策略中,id= 0 控制方法简单易实现,所以应用最为广泛。控制框图如图2所示,控制系统采用id= 0转速电流双闭环控制,nref为给定期望转速,整个系统由电流环调节器ACR、转速环调节器ASR、坐标变换、SVPWM模块、逆变器、传感器和目标电机构成。在Simulink平台搭建好控制系统模型后可进入联合仿真流程。

图2 id = 0矢量控制框图

2.2 联合仿真

DSP在嵌入式系统控制方面有较好的性能,对采集到的电量参数进行数学运算后输出电压信号。Simulink 模型动态仿真时,Matlab 将仿真步长的实时电量参数通过CCSLink 传递到CCS 和DSP,DSP经过运算后输出控制信号回到模型中,作为下一步长的控制量。使用CCSLink 工具连接CCS 和Matlab/Simulink,联合仿真交互接口关系见图3。CCSLink 工具提供3 个接口组件,即CCS IDE 连接对象、实时数据交互(RTDX)和嵌入式对象[7]。CCS IDE 接口作为Matlab 和DSP 的连接中介;RTDX 接口实现双方的实时数据通信;嵌入式对象在Matlab中创建、访问和修改目标代码中的变量。

图3 联合仿真交互接口

3 系统模型设计及仿真

3.1 电机控制算法建模

基于MBD 的电机控制系统开发中,建模阶段初期主要分为3 个部分:硬件电路模型、信号处理转换模型和控制算法模型。硬件电路模型主要包括逆变器和电机物理模型,通过SimPowerSystems工具箱使用集成模块快速建立模型。信号处理转换模型主要用于将控制算法模型与硬件电路模型的信号接口相互对接,防止因两者之间数据类型以及格式的不同而无法编译成功。控制算法模型主要是基于id= 0双闭环控制模型,文中使用的微处理器型号为TMS320F28335。调用在Embedded Coder 工具箱C2833x 中的各种外设驱动模块以及C28x DMC和IQmath库模块完成算法模型的建立。

根据图3 在Simulink 平台建立矢量控制系统模型,基本功能模块示意图如图4所示。PI调节器采用DMC库PID集成模块,ref输入为参考数值,fdb输入为实际数值,如图4 a~4 b所示。图4 c为坐标变换和SVPWM 部分,ia和ib为ADC 采集到的三相电流中的两相,position为电机转子角位移;SVGenDQ模块集成了SVPWM算法,将所有算法步骤封装,输入电压矢量Ua和Ub,得到逆变器开关状态切换时刻Ta、Tb、Tc,构成三相调制波。

图4 基本功能模块示意图

3.2 整体系统仿真模型

为增强电机控制算法模型的通用性,提高程序代码的可移植性,同时防止数据的溢出,大部分电机控制算法都会采用标幺化处理[8],并在控制模型中使用强制数据类型转换模块,采用32 位定点化IQ 格式,提高程序代码在定点处理器中的运行速度。如图5 所示,将矢量控制算法模型、硬件电路模型和信号处理模块的信号一一对接,便得到整个控制系统的仿真模型。

图5 控制系统仿真图

3.3 早期仿真验证

系统仿真模型建立后,利用Model Advisor等工具检查和验证。根据测试报告检查模型中的隐患和冗余部分,适当改进后进行后续工作。选择适当的电机参数和PI控制参数对系统模型进行动态仿真,当t为2 s时,负载转矩为2 N·m,仿真结果如图6所示:电机具有较快的动态响应速度和较好的抗干扰能力。当仿真结果满足要求之后,再次检查系统模型,以提高后续自动生成的代码效率。

图6 仿真结果波形图

4 系统在环测试

4.1 代码生成模型

通过前期验证后,设置底层硬件驱动,配置少数相关的寄存器,将其与控制算法模型进行集成得到电机控制代码模型。代码生成模型只需保留控制算法模型以及相关驱动模块,设置好代码生成类别、DSP选型、DSP引脚功能等参数配置,运行仿真无误后进行代码生成,代码模型如图7所示。

图7 电机控制代码生成模型

4.2 硬件总体结构

电机控制系统硬件平台由个人PC、驱动电路、电机控制器、目标电机和驱动电源组成,如图8 所示。利用PC机上的MATLAB/Simulink平台进行整个系统模型的搭建并进行实时仿真,不断验证算法的可靠性。计算机通过JTAG 仿真器与DSP 连接进行通信,将MATLAB/Simulink平台中的系统仿真模型生成C 代码并下载到DSP 板中运行。功率驱动系统包含电机的硬件驱动模块、电机数据的实时采集电路和一些故障保护电路。利用增量式光电编码器测量电机运行时转子的速度和位置。

图8 硬件总体结构图

4.3 测试结果分析

代码模型检查无误后,将PC与目标板连接,点击“编译”后自动打开CCS 进行代码生成。不同功能模块的代码会生成在不同的子程序,文件中的代码有详细注释。测试采用以CAN总线为基础调试方法,通过CAN总线将数据波形显示在电脑上,让用户更直观地观察目标电机的运行状态。使用杰美康公司生产的42JSF630AS—1000 型号电机,将代码烧写进DSP后运行电机,运行结果见图9。

图9 运行结果图

永磁同步电机初始启动时,以低转速确定转子位置,见图9 a。目标电机额定转速为1 000 r·min-1,在模型中对速度进行标幺化设定。首先将速度设为0.1,当电机开始转动,由编码器确定电机角度零点后,电机设定速度变为0.8,从图9a中可看到,电机的实际速度在40 ms 左右便达到设定速度,在200 ms内对速度超调部分进行调节,使其稳定在设定速度,有良好的动态响应能力。图9b 是电机在运行时电机侧的线电压。由于电机处于实际运行状态,三相电压的波形和实际转速有一定的波动,但实验结果满足控制要求,充分说明了以MBD 方式进行电机控制开发的可行性和高效性。

5 结语

通过以CCS 和Simulink 互联的方式设计出PMSM 控制系统,从仿真和实验结果可以看出,电机控制算法的控制性能较好、鲁棒性较强。相比于传统的开发方式,通过基于模型设计的方式避免了在设计算法程序阶段代码实现时可能存在的问题,将时间花在了设计与测试应用上面,节省了人力成本,提高了代码执行效率及安全性,使整个项目的开发过程更专注于算法设计。

猜你喜欢
控制算法代码电机
《防爆电机》期刊
基于模型预测控制算法的智能密度控制系统在选煤厂的应用
泵用电机水润滑轴承选择与应用
关于电机滚动轴承的选择与计算
瞻望电机的更新换代
创世代码
创世代码
创世代码
创世代码
高精度位置跟踪自适应增益调度滑模控制算法