简介:设计两路交错BOOST变换电路,搭建Simulink仿真模型,并设计控制算法(常规PID与模糊控制PID)。基于德州仪器TMS320F280025单片机使用Matlab Code Generation Tools进行编程与实物测试。
电气系统建模与实践课程设计 福州大学 自动化系 黄宸贞 2024/3/28
指导教师:蔡逢煌 陈丹
软件环境:
Matlab R2023b
Simulink 23.2
TI controlSUITE 3.4.9
Code Composer Studio 12.2.0.00009
TI C2000Ware 4_03_00_00
硬件环境:
AMD Ryzen 9 8945HS(仿真模型)
C2000 TMS320F280025C(代码生成模型)
测试目标:输入9V,实现9~18V升压功能。
测试实物:
可重构全桥变换器主板
单片机控制板
上、电路仿真部分
见前一篇博客
基于模糊pid的两路交错boost变换器Simulink仿真及代码自动生成(上)电路仿真部分
下、代码生成实物测试部分
4. 环境配置与实物测试
*4.1安装硬件支持包
因为f280025是2021年发布的一款mcu,故只支持使用2021年以后的Matlab版本进行自动生成代码开发。使用前需要安装C2000硬件支持包,通过如下链接下载C2000硬件支持包:
下载完成后双击进行安装与配置。(需要登录MathWorks账号)
*Matlab R2023内置了C2000附加功能包,可略过该步骤。
*4.2配置硬件支持包
在C2000硬件支持包安装完成的提示窗口点击“立即设置”。也可在“管理附加功能”页面找到该硬件支持包进行配置。
*Matlab R2023后打开硬件设置页面的方式为:在Matlab命令行窗口输入“c2000setup”并回车。
在出现的硬件设置窗口内勾选TI F28002x系列MCUs。(其他系列可根据自身需要一并选择)。
安装代码生成工具,建议自动安装,如果选择手动安装,后续按要求输入并验证安装路径即可。
安装德州仪器公司的软件开发环境,如果未检测到下列所需软件,Download处会给出推荐版本的下载安装链接。也可自行提前安装,安装的软件Version高于推荐版本即可(Download处会提示“Upgrade not required”)。如果电脑中已经安装了所需软件,但版本老旧无法使用,无需卸载原有软件,直接安装新版本即可,两版本可共存。
验证前述安装的各项软件的路径。
如出现如下警报,仅代表软件版本未经测试,可忽略该警报直接进入下一步。(但仍建议使用推荐版本)
配置完成。
4.3代码生成模型配置
打开Simulink,创建空白模型,在库浏览器中打开Embedded Coder Support Package for Texas Instruments C2000-F28002x或C2000 Microcontroller Blockset-F28002x,即可使用对应单片机功能的模块。
打开模型设置-硬件实现,选择Hardware board为TI F28002x,设备供应商与设备类型会自动更改为德州仪器与C2000。展开Target hardware resources详细信息,选择Device Name为F280025C。
打开模型设置-求解器,选择求解器类型为定步长、离散。展开求解器详细信息,输入步长为1e-6。(部分电脑在该步长下无法烧录程序,可将步长改为1e-5)
打开模型设置-代码生成-优化,选择可重用子系统输出的传递方式为结构体引用。
打开模型设置-代码生成-报告,勾选“创建代码生成报告”与“自动打开报告”。
完成后,Simulink的顶部Dock会增加一栏“HARDWARE”。
使用GPIO DO模块,选择引脚为GPIO24或GPIO32,与输入的脉冲信号连接。
检查单片机控制板的R97处是否短接,此处未短接的单片机控制板无法烧录程序(图为已使用0欧电阻短接)。
将下载器与单片机控制板正确连接,控制板LED1处发出蓝色灯光。
点击“编译、部署和启动”。等待代码生成、编译并烧录后,弹出代码生成报告,控制板LED2处闪烁(因为使用了脉冲信号使LED2对应IO高低电平交替)。说明模型配置正确,代码成功生成并烧录成功,可进行下一步开发。
4.4开环控制代码生成模型
硬件电路由开关管Q1、Q2、Q3、Q4构成全桥,其中Q1/Q3构成一组半桥,Q2/Q4组构成另一组半桥,驱动信号Q1G/Q3G,Q2G/Q4G分别由DSP发出的PWM1A/PWM1B和PWM2A/PWM2B信号经驱动电路进行功率放大后生成。即由 PWM1A信号控制Q1的开关动作,由 PWM1B 信号控制Q3的开关动作,由PWM2A信号控制Q2的开关动作,由PWM2B信号控制Q4的开关动作。
选取ePWM模块(注意为F28002x/003x/001x),双击模块进入配置。
打开General详情页,选择Module为ePWM1。
输入Timer period为适合的PWM计数周期,此处以1200为例。因前文电路仿真使用等腰三角形作为载波波形,故将Counting mode设为增减计数模式(在计数器比较点与动作设置正确的前提下,使用其他计数模式同样可行)。
打开ePWMB(buck电路为ePWMA)详情页,将ePWM1B的动作设置为ZERO置位,CAU复位,CAD置位,PRD复位。
打开Counter Compare详情页,选择Specify CMPA via类型为输入端口,CMPA initial value初始化值为0,可见ePWM模块的外观多了一项输入。
将需要的占空比乘以Timer period后接入WA(以boost电路升压至18V为例,占空比为0.5)。
该桥式变换器电路中,左右半桥分别由1颗EG3012S进行驱动,其中上管单片机信号接入HIN,下管单片机信号接入LIN,HO驱动上管门极、LO驱动下管门极。
根据DCDC变换器的原理,全桥电路的上管(Q1、Q2)在boost电路中充当二极管,全桥电路的下管(Q3、Q4)在buck电路中充当二极管。上管与下管不能同时开通。可参考以下方法使上管关断(buck电路为下管关断)或使上下管互补(其实MOS驱动芯片EG3012S自带闭锁功能保护,上下两路本就无法同时使能)。
方法1:打开ePWMA详情页(buck电路为ePWMB),取消使能ePWMA。并将ePWMA对应的引脚置0(参考原理图寻找PWM模块对应引脚)。
打开Deadband unit详情页,勾选ePWMB(buck电路为ePWMA)死区生效,选择FED为ePWMxB(buck电路为ePWMxA),死区值为100(根据PWM的计数周期选择合适的死区值)。
此时烧录程序,将单片机控制板插入全桥变换器主板,将示波器两个通道的探针分别勾在Q1P与Q3P测试点。可见Q3P对应通道出现方波,Q1P对应通道无电平(buck电路现象相反)。
方法2:打开ePWMA详情页(buck电路为ePWMB),将其动作设置为与ePWMB互补。
打开Deadband unit详情页,勾选ePWMA与ePWMB死区生效,选择Deadband polarity为Active high complementary(AHC)。死区值为100(根据PWM的计数周期选择合适的死区值)。
此时烧录程序,将单片机控制板插入全桥变换器主板,将示波器两个通道的探针分别勾在Q1P与Q3P测试点。可见两通道出现互补方波。
此时已完成对开关管Q1与Q3的设置,对照上述设置方式依葫芦画瓢,设置开关管Q2与Q4(ePWM2模块)并连接输入。
完成ePWM2模块的参数设置后,因交错电路的两相需具有相位差,还需对ePWM2进行移相。
当ePWM1的时基计数到PRD时发出同步脉冲,此时,ePWM2接收到同步脉冲后将相位寄存器TBPHS中的值加载到时基计数器TBCTR中。也就是说,当ePWM1计数至PRD时,ePWM2此时从TBPHS寄存器中的值开始计数。因此,ePWM1和ePWM2实现了移相,改变TBPHS寄存器中的值可以改变移相控制的移相角。
打开ePWM1的General详情页,展开Synchronization output(SYNCO),勾选Enable the counter equals to zero (CTR=ZERO) event to set the SYNCO signal。选择Peripheral synchronization event (PWMSYNCSEL)为Counter equals to periods(CTR=PRD),在计时器为PRD时发出同步信号。
打开ePWM2的General详情页,选择Synchronization action为Set counter to phase value specifid via dialog。此时下方会新增Counting direction after phase synchronization与Phase offset value (TBPHS)两个配置项,将Counting direction after phase synchronization设为Count down after sync,将Phase offset value (TBPHS)设为Timer period的一半(前文以1200为例,故此处为600)。
此时烧录程序,将示波器两个通道的探针分别勾在Q3P与Q4P测试点,负端夹于GND测试点,可见两通道的波形相同,相位相差180。
将直流电源接入电路输入端,将示波器两个通道的探针分别勾在Q3G与Q4G测试点,负端夹于Q3S与Q4S测试点。(测试buck电路时,不可使用非隔离探头负端同时接于Q1S与Q2S测试点,否则会造成两片驱动悬浮地短路)。可见Q3P与Q4P的波形经驱动放大功率后控制开关管Q3、Q4门极,将电压表接于电路输出端,测得电压经boost电路升压至16.78V,符合电路仿真结果(须注意驱动芯片是否成功将G端PWM幅值放大至11V以上,否则无法控制开关管门极)。
4.5经典PID控制代码生成模型
参照开环方法配置ePWM模块,将模块输入WA由固定占空比改为PID控制器,PID控制器参数同上文电路仿真。
PID的输出还需进行限幅,经电路仿真测试与实物测试,该boost电路在占空比超过0.8后易失效,可将限幅上限设定于0.7~0.8间。
PID控制器使用反馈进行调节,boost电路使用Vin端子作为输出,对其进行采样作为反馈。
由电路原理图可知,Vin端子采样电路对应ADC引脚为A15,并可计算电压实际值与采样电路转换后的电压值之间关系。
则ADC输出值转换为实际电压值的关系式为:V=ADCResult*3.3/4096/0.05916。如图所示设置Simulink模型。
模型设置完成后烧录程序并接入9V直流电源,依照前述方法测试Q3P、Q4P、Q3G、Q4G等各处波形,并使用电压表测量电路输出。测得电压经boost电路升压至17.59V,符合电路仿真结果。
4.6模糊PID控制代码生成模型
将经典PID控制模型中的PID模块改为电路仿真中已打包好Fuzzy_pid子系统,重复前述测试。测得电压经boost电路升压至18.16V,符合电路仿真结果。
4.7结论
通过上述仿真与实物测试,可认为使用模糊PID控制的交错boost变换器具有更加优异的性能。
5. 其他重要问题
5.1 Boost电路的输入端滤波电容
需要自行在输入端并联大于1000uF的电容。
5.2 Buck电路的采样方法
全桥变换器主板Vout端具有差分采样与直接采样两种采样方式,差分采样是为DCAC电路采用,DCDC电路应使用直接采样,ADC通道选择A11或A5。
5.3 CCS调试方法
烧录程序至单片机控制板后,在诊断查看器中找到Open project in Code Composer Studio超链接并点击。
在CCS中打开工程后,重新编译并烧录程序。
随后在debug界面,将所需实时调试的结构体添加至Expressions,即可在程序运行过程中实时查看(Simulink自动生成工程的函数接口可于代码生成报告中查看)。
5.4同时测量上下管波形
当运行过程中需要同时测量上下管(以Q2与Q4为例)驱动波形时,不能同时使用非隔离探头测量,非隔离探头的负端在示波器侧是短接一起的,会造成上管的S极和下管的S极在示波器侧短路,损坏MOSFET。此时下管使用非隔离探头,上管应使用隔离探头。即用非隔离探头的负端接Q4S,正端接Q4G,然后再用隔离探头的负端接Q2S,正端接Q2G,便可同时测量出Q2和Q4的驱动波形。
5.5全桥电路共地
使用全桥变换器电路板前,应使用跳线帽将5、6、7、8脚短接,使电路两端共地。
5.6工作路径
使用Matlab Code Generation Tools时,所有路径(包括MATLAB的安装路径、Simulink模型保存路径、Ti开发环境安装路径)均不得包括空格(老版本MATLAB不能识别空格的遗留问题,会导致某些场合下MATLAB解析的路径错误或无法解析)与中文。
Simulink模型的保存路径还应添加至MATLAB工作路径中。
相关链接
TMS320F280025C数据表、产品信息和支持 | 德州仪器
EG3012S 60V半桥驱动芯片 | EGmicro
MOS管KIA3510A替代IRF540N-KIA3510A中文资料 原厂免费送样-KIA MOS管 | KIAIC
Embedded Coder Support Package for Texas Instruments C2000 Processors | MathWorks
C2000Ware 软件开发套件(SDK) | 德州仪器
Code Composer Studio™ IDE配置、编译器和调试器 | 德州仪器
ControlSUITE驱动程序和库 | 德州仪器
参考文献
[1] 蔡逢煌,王武,江加辉. 微控制器原理及应用——基于TI C2000实时微控制器[M]. 北京:机械工业出版社, 2022.
[2] 王兆安,刘进军. 电力电子技术(第5版)[M]. 北京: 机械工业出版社, 2021.
[3] 刘金琨. 先进PID控制MATLAB仿真[M]. 北京:电子工业出版社, 2016.
[4] 邓孝祥,刘钰,张伟杰.双闭环BOOST变换器系统模糊PID控制[J].黑龙江电力,2021,43(03):246-250.DOI:10.13625.
[5] CSDN@h(z)h.交错式升压DC-DC转换器(boost).[EB/OL].(2023-03-03)[2024-03-14]. https://blog.csdn.net/apple_51729737/article/details/129326020.
[6] 倪刚,金辉宇,兰维瑶. 基于Ziegler-Nichols规则的一阶线性自抗扰控制参数整定[C]//中国自动化学会控制理论专业委员会(Technical Committee on Control Theory, Chinese Association of Automation),中国自动化学会(Chinese Association of Automation),中国系统工程学会(Systems Engineering Society of China).第三十九届中国控制会议论文集(7).2020:5.DOI:10.26914/c.cnkihy.2020.039671.
[7] 李晓丹. 模糊PID控制器的设计研究[D].天津大学,2006.
标签:代码生成,Simulink,PID,pid,电路,boost,变换器,F280025 From: https://www.cnblogs.com/DiscreteWind/p/18353219