电力电子转换器是一种通过开关操作将一种形式的能量转换为另一种形式(如交流电转换为直流电)的电子电路。为了在电流和电压的振幅、频率或波形方面达到所需的结果,必须应用一种由算法决定的开关序列模式。
控制专家会根据输入和输出之间的数学关系编写程序,并在微控制器(MCU)上执行。与其直接根据公式编写程序,然后在实验装置中验证是否一切正常,不如使用为控制开发目的而设计的程序(MATLAB/Simulink、Scilab/Scicos、Plecs等)来仿真转换器的行为。
传统的工作流程包括:设计控制系统,进行仿真,然后手动编写MCU代码。显然,出错的概率会随着系统的复杂性而增加,因此能够根据控制器模型(算法)生成代码的方法或工具对开发人员来说是一种重要的帮助。在开发和测试控制算法时,自动代码生成工具非常有用。这些工具从模拟模型开始,生成C代码、编译并下载到要使用的MCU中。
在开发阶段,人们可以专注于更重要的控制方面,而不必考虑代码。自动代码生成有助于控制开发的不同阶段,并有助于缩短产品上市时间。例如,在最终硬件准备就绪之前,可以通过仿真、生成代码,然后将其下载到评估板上,从而应用快速原型开发方法。验证生成代码与仿真模型对应关系的自动工具也能保证最终代码相对于所需行为的正确性。这些工具的应用范围更为广泛,因为参与控制开发的每个人都可以从简化工作流程的环境中受益。例如,需要学习设计控制系统的学生即使不是编写嵌入式软件的专家,也可以创建工作原型。
在市场上的各种工具中,Plexim公司的Plecs是一种电力电子电路和动态系统的多域仿真器,具有对STM32-Nucleo等开发板进行编程的功能。下一节将举例说明如何在Nucleo-F303R3开发板上生成和运行程序。
使用Plecs为ST Nucleo自动生成代码
Plecs中除了电路元件外,还有代表子系统的模块,如带有一些输入和输出的方框。点击子系统,就可以打开它,查看里面的内容。通过这种方式,也可以仿真在外部硬件上执行的程序。TI或ST支持多种类型的硬件。在本文中,我们将提到基于STM32 MCU的Nucleo STM32F303RE。对于代表电路板的模块,输入和输出端口是电路板内使用的物理连接的抽象。为了仿真目的,可以在方案中将它们连接起来。延迟模块则用于避免模型中的代数循环。
图1:作为子系统的Nucleo开发板。
查看电路板模块的内部,可以看到一个可在Plecs中定义并在电路板上执行的基本程序示例:一些模块代表电路板的物理输入/输出,可连接到用于编程或仅用于仿真的“普通”Plecs模块,如“Scope”和类似模块。
图2:基于模型的程序。
图2显示了一个程序,其中PWM值设置为0.3,物理端口显示在MCU引脚(端口B,引脚8)或电路板引脚上——参考所使用的连接器和引脚(CN10-3);生成的正弦波被发送到引脚A4上的DAC。将从模拟和数字输入获得的信号发送到示波器,就可以在闪烁电路板之前仿真程序。
图2顶部显示了按下按钮时改变板载LED频率的程序,在每个触发事件时,通过循环选择具有不同频率的方波或“数字振荡器”。
完成算法并实现仿真后,就可以生成代码了:在“编码器”(Coder)菜单中,选择“编码器选项”(Coder Option),就会出现一个专用界面。选择“目标”(Target)选项卡,就可以设置电路板、芯片、系统时钟频率和编程接口(图3)。
图3:生成代码的界面。
如果一切正常(并且电路板已连接),就可以按下“编译”(Build)按钮,代码就会生成并下载到电路板。在这个过程结束时,程序将运行,并且可以使用外部仪器监控物理信号。
外部模式
有时,需要在主机上直接监控电路板上的信号,用于调试目的或以交互式控制过程,例如在快速控制原型开发中,在仿真后的实际过程中手动调整控制算法的参数。
Plecs等程序可以在所谓的“外部模式”下,在个人电脑(PC)和电路板之间交换数据:算法在电路板上运行,而信号则可以在仿真环境中的示波器模块上实现可视化。事实上,PC程序可以向电路板发送数据并从电路板接收数据。
查看图2,可以注意到与示波器连接的输入端:在外部模式下,当电路板充当输入/输出硬件接口(ADC或逻辑信号)时,可以像真正的示波器一样实现所应用信号的可视化。
例如,利用RC滤波器读取方案中PWM产生的平均值,将其连接到所选择的相应引脚即可(图4)。
图4:RC电路与电路板的连接。
由于示波器默认绘制与所测电压相对应的数据,因此如果要读取PWM值,则需要在DAC模块中加入比例因子。因此,可以修改占空比的值,RC滤波器输出的仿真信号将以接近实时的方式绘制。
图5显示了滤波器的仿真输出和两个ADC读取的PWM信号。
图5:示波器界面。
如何配置Plecs以探索此功能
按照代码生成的相同方法,使用界面中的“外部模式”选项卡:连接电路板,配置触发器和采集速率,然后点击“Build”(图6)。
图6:外部模式配置。
如果一切正常,就可以看到采集到的信号,并与电路板上运行的程序进行交互。
仿真程序对于分析和设计电源转换器及其控制算法非常有用。有些程序(例如Plecs)可以为评估板生成代码。通过这种方式,可以降低因手写错误而造成的风险,还可以监控与环境交换的信号,或修改某些参数以微调算法。
所有这些方面都有助于加快控制设计过程,并缩短产品上市时间。
(原文刊登于EE Times姊妹网站Power Electronics News,参考链接:Developing Control of Power Electronic Converters with Automatic Code Generation,由Franklin Zhao编译。)
本文为《电子工程专辑》2025年2月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里。
