易映萍 侯文 蒋玲 谢明
摘 要: 为了快速验证电力电子控制系统中的控制算法,提高控制算法的效率,处理器在环测试(PIL)将生成的代码运行到目标处理器上,以验证代码和模型是否一致,并获得算法在实际控制器上的最长运行时间。本文以电力电子能量转换器三相半桥DC/AC为例,在Simulink环境下构建了离散仿真模型,让学生很快学会三相半桥DC/AC的工作原理、主回路设计以及控制系统设计,然后通过学会处理器在环仿真去验证测试软件和模型的一致性。通过相同的方法,学生很快能完成电力电子技术课程中的其他能量转换电路控制系统的设计,并在实验之前验证、分析结果,以防因控制算法设计不当在实验过程中出现损坏实验器件的现象。
关键词: 电力电子技术;处理器在环仿真;课程教学
中图分类号: TP391.41 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.07.026
【Abstract】: To fast verify the control strategies in the power electronic control systems and improve the efficiency of the control strategies, the processor-in-the-loop (PIL) will run the code in the target processor to verify whether codes agree with models and acquire the longest operation time of the algorithms on the actual controllers. This paper takes three-phase half-bridge DC/AC power electronics energy converter as an example and builds a discrete simulation model in Simulink to let students learn the principles of the three-phase half-bridge DC/AC converter and the design of the main circuit and control system. Then, students will learn how to use PIL to verify the consistency of the software and the model. Through the same method, students can complete the design of the control systems of other kinds of energy converters in the power electronics course quickly. Besides, they can verify and analyze the results before the experiments, which can prevent the damage to the experimental equipment during the experiment due to the improper design of the control algorithms.
【Key words】: Power electronics technology; Processor-in-the-loop; Course teaching
0 引言
用戶通过Matlab软件,采用基于模型设计的方法进行建模仿真,来学习电力电子转换器的工作原理,进行对主回路以及控制系统的设计[1]。利用Matlab中Simulink工具进行模型设计,然后将设计好的控制模型模块运用目标代码直接生成功能,转换为数字程序,再联合CCS进行联合仿真对控制模型进行验证,最后将联合仿真验证正确的控制算法程序下载到平台的DSP芯片中,再次验证所设计的电路及控制算法的正确性[2-3]。
将Matlab软件与CCS软件成功安装之后,在Matlab/Simulink环境下搭建目标代码直接生成模型之前,需要下载C2000系列的硬件支持包;对模型进行编译生成工程文件和烧录文件之前,需要将Matlab软件与CCS软件进行链接,使 Matlab在编译过程中能顺利调用CCS软件,以便于生成工程文件和烧录文件[4]。
1 离散仿真模型的搭建
在Matlab/Simulink中搭建三相半桥DC/AC的仿真模型[5-6],其中仿真模型中主电路模型如图1 所示。
PIL仿真模型如图2所示,其中Controller模块是电流内环闭环控制器;Rate Transition为采样频率转换器,由于DSP芯片控制频率与Matlab仿真步长频率不一致,在做PIL仿真时需要对仿真频率进行转换,Rate Transition1为输入侧,设置的数值由
做PIL仿真时DSP芯片所需控制频率决定,若DSP控制频率为10 K,则该模块的设置值为1e-4,该值的设置决定了在PIL仿真时单位时间内DSP执行生成代码的频率;Rate Transition2为输出侧,设置的数值由模型的仿真步长决定,其设置值应与仿真步长相同;数据转换模块Single和Double是Matlab/ Simulink和DSP芯片进行数据交换的纽带,在Simulink环境下,存储数据和计算数据一般都为Double类型,而Matlab与DSP芯片进行通讯时,传输数据的位宽要求不高于32位,因此从Matlab输入的数据必须由Double类型转换成Single类型,从模块输出到Matlab的数据由Single类型转换到Double类型,两者在进行数据交换时需要进行数据转换才能保证PIL仿真的正常运行[7-12]。
打开图2中的Controller模块,其搭建的控制策略的模型如图3所示。
为了实现了逆变器的控制,需要研究合适的控制算法,图3中电流内环模型的搭建如图4所示。通过Park变换将所测的逆变器侧电流由三相静止坐标下的交流量变为同步旋转坐标下的直流量,再 通过PI控制器构成的负反馈系统实现对Id和Iq的 控制。
将Id_ref的大小设置为0.7 A,进行仿真,得到Iabc的波形如下所示,电流幅值最终稳定在0.7 A左右。如图5所示。其仿真结果实现了对三相半桥DC/AC仿真搭建的验证。
2 处理器在环(PIL)仿真
所谓处理器在环(PIL)仿真,就是基于模型的设计而自动生成的C代码,可以将其直接下载至控制板中运行。为了进一步验证基于模型的设计而自动生成的代码的可行性,可以通过Matlab和DSP控制器间的联合仿真进行处理器在环测试,在该测试中,除了控制器是实物,其它均为虚拟硬件[13-16],这是对系统的一种半实物仿真。利用上节所搭建的三相半桥DC/AC的仿真模型来做处理器在环仿真,以验证所设计的控制策略的正确性,以及处理器在环仿真的可行性。其处理器在环仿真步骤如下:
(1)将USB转TTL通讯模块与DSP板进行连接,并在电腦设备管理器上查看通讯口为COM几,并在属性中设置波特率;
(2)在Matlab命令栏中输入命令,串口号根据设备管理器中的查看得到的串口一致;
(3)配置Configuration中的Solver,其中Fixed-step size的设置根据仿真步长决定;
(4)配置Hardware implementation,其中CCS configuration根据自己的配置文件所在路径进行设置,不要使用默认选项,否则程序有可能出现下载不成功的现象。将Groups中的External mode界面中参数进行配置,注意COM串口要与步骤(1)中查看的COM口一致;
(5)配置Verification参数,将Advanced parameters的Create block选择为PIL;
(6)将想要生成代码的控制算法封装成一个子系统,如图6所示,搭建的仿真模型中的Controller。
(7)右键子系统模块,点击C/C++ Code中的Deploy this Subsystem to Hardware,再点击跳出窗口里的Build,会在新的窗口里生成PIL模型;
(8)将生成的PIL模块移植至原来搭建的离散模型中,替换被生成代码的子系统;
(9)将电脑和DSP芯片的下载线和通讯模块连接好,将DSP板通电,点击仿真按钮即可进行PIL仿真,在PIL仿真中换流器的输出电流的波形如图7所示。
由图7可知,换流器输出电流的幅值也控制为0.7A,其整体波形也与之前Simulink仿真波形一致,证明了DSP中的算法能够实现闭环控制,生成的代码没有错误。
3 结论
控制算法的实现需要编写相关代码,然后下载至相关控制器中实现相应功能。手编控制代码不仅费时和容易出错,而且不便于校验和维护。Matlab为嵌入式处理器应用程序的开发提供了强大的功能,利用MathWorks公司和TI公司联合开发的MATLAB Link for CCS Development Tools工具箱,可以实现对DSP芯片的可视化编程,像操作Matlab变量一样来操作DSP器件的存储器和寄存器,使得用户在Matlab环境下完成对DSP的操作,能够极大提高DSP应用系统的开发进程。
本文以电力电子能量转换器三相半桥DC/AC为例,在Simulink环境下构建了离散仿真模型,利用处理器在环仿真将生成的代码运行到目标处理器上,以验证代码和模型是否一致,仿真结果正确良好,验证了所搭建的三相半桥DC/AC模型与所生成的代码一致性。因此可以通过相同的方法,学生很快能完成电力电子技术课程中的其他能量转换电路控制系统的设计,并在实验之前验证、分析结果,以防因控制算法设计不当在实验过程中出现损坏实验器件的现象。
参考文献
[1] 黄忠霖. 电力电子技术的MATLAB实践[M]. 北京: 国防工业出版社. 2009.
[2] 钱振天, 徐晓轶, 谌平平, 姚文熙. 基于Matlab/Simulink的软件在环仿真技术研究[J]. 电力电子技术, 2016, 50(10): 5-7.
[3] 渠博岗, 易映萍. 基于CCS与MATLAB/Simulink联合仿真平台的构建与实现[J]. 电子技术应用, 2016, 42(04): 106-110.
[4] 张雄伟, 陈亮, 曹铁. DSP芯片的原理与开发应用(第3版)[M]. 北京: 电子工业出版社. 2009.
[5] 雒明世, 张倩琳. 基于MATLAB 的OFDM 系统仿真与教学研究[J]. 软件, 2015, 36(6): 152-157.
[6] 王巧明, 李中健, 姜达郁. Matlab平台DSP自动代码生成技术研究[J]. 现代电子技术, 2012, 35(14): 11-13.
[7] 何舜, 张建文, 蔡旭. 风电变流器的RT-LAB硬件在环仿真系统设计与实现[J]. 电力系统保护与控制, 2013, 41(23): 43-48.
[8] 李艳. 基于Matlab-GUI单相全控桥整流电路仿真设计[J]. 软件, 2012, 33(8): 84-85.
[9] 徐安平. 基于电流的电机驱动系统逆变器故障检测方法研究[D]. 电子科技大学, 2015.
[10] 李拓, 杜庆楠. 基于 TMS320F28335 的三相感应电机矢量控制系统的研究[J]. 软件, 2018, 39(3): 130-135.
[11] 陈鹏伟, 刘向军, 刘洋. 基于Simulink的无刷直流电机自抗扰控制系统的仿真[J]. 软件, 2012, 33(9): 81-84.
[12] 郭元彭, 卢子广, 杨达亮. 基于DSP代码自动生成的实时控制平台[J]. 电力电子技术, 2010, 44(10): 65-67.
[13] 宋璐雯. 基于DSP平台的JPEG2000 EBCOT-Tier2算法实现及优化[J]. 软件, 2018, 39(5): 139-143.
[14] 林渭勋. 现代电力电子技术[M]. 北京: 机械工业出版社, 2006.
[15] 李献, 骆志伟. 精通MATLAB/Simulink系统仿真[M]. 北京: 清华大学出版社, 2015.
[16] 刘和平. DSP原理及电机控制应用[M]. 北京: 北京航空航天大学出版社. 2006.