1
电力电子转换器(Power Electronics Converter)指的是主要通过开关器件和其他电路的组合将一种形式的电源转化成另外一种形式的电源。如下图所示,电力电子转换器可以将交流电转换成直流电,也可以将直流电转换成交流电,或者用来调节输出电压和频率。
例如:电力电子转换器可以用在新能源汽车上,将动力电池的直流电转换成可变频率的交流电,用来驱动电机。在风力发电机上,电力电子转换器将可变频率的风电转换成固定频率的交流电,送到千家万户。在汽车LED大灯上,通过直流电压的转换(DC/DC) 来控制大灯的亮度。
让我们来看一个汽车LED大灯DC/DC的例子:
TI DC/DC LED Developer's Kit 的硬件采用了SEPIC(single endedprimary inductor converter)。它是DC/DC一种形式。硬件中有一个控制芯片,Simulink可以直接生成代码运行在芯片上,并控制输出电压。输出电压的高低将影响LED的亮度。PWM的频率为100Hz。
这里是系统最终运行结果:
Simulink通过仿真找到PID控制器的最优参数,然后产生代码到控制器,通过external mode去控制输出电压,从而调节LED的亮度。
在这个简单的例子中,我们可以用Simulink来解决如下问题:
通过电路仿真,确定电子元器件件的取值,并理解不同模式下的工作行为。
对非线性电子元器件建模,并理解电路的动态热效应。
基于时频域需求,设计并优化控制器的参数。
实现控制器代码,编译、链接、下载到控制芯片。
电路仿真
Simscape 是Simulink的物理仿真平台,里面提供了机械、电子电气、液压等多种物理建模环境。基于DC/DC的等效电路,我们可以用Simscape快速搭建电路仿真模型,并通过仿真选择合适的诸如电容、电感、电阻的值。
DC/DC运行在连续导通模式(CCM)时,通过电路方程的计算,可以获取电路电子器件的大致取值。由于我们已经有了参考设计电路,将参考电路中各种器件的值输入到Simscape的电路中,可以看到仿真一切正常(PWM占空比为0.5)。当然,我们也可调整电子器件的数字,来达到获取最优解的目的。
例如,我们将电感L1的取值从470µH调整到10µH,观察发现,输出电压不再取决于PWM的占空比,有其他更多的因素决定输出电压的高低。此时,观察电流发现DCDC运行在非连续导通模式(DCM)。
非线性电子元器件建模
上例中,开关器件我们选择的是“ideal switch”,即“理想开关”。其中很多实际的开关器件的非线性因素,例如开关时间等,没有被考虑进去。
下面是真实电路设计中的MOSFET的datasheet:
在Simscape中,可以选择N-Channel MOSFET然后将datasheet中的动态参数手动输入。
那么真实的MOSFET和我们导入的MOSFET有没有差异呢?我们可以通过对比仿真看到:Gate Charge、Steady State、Transfer Characteristics等指标高度吻合。
将“真实”的MOSFET替换掉先前电路中的“理想”开关,并且打开它的ThermalPort -- 不但可以仿真电路的动态行为,还可以观察热损失动态。
控制器设计和仿真
在电子线路仿真完成后,开始设计控制部分。整个控制回路如下图所示:
控制量是输出电压,被控对象是电子线路。控制的核心部分是经典的PID控制。
控制的要求是:在0.4s内将12伏的输出电压变换为27伏的输出电压。经过初期的仿真,看到输出电压并未达到控制的精度要求:
显然,PID的参数并未调整好。Simulink有个很好用的功能: PID tuner ——可以半自动化地辅助调整PID 参数。
首先,PID tuner试图去自动线性化被控对象。由于系统中有非连续性的开关器件,所以自动线性化并不成功。在新版本的Simulink中,系统辨识工具箱可通过Simulink仿真的输入输出辨识出一个新的线性化被控对象。有了线性化的被控对象,在PID tuner中可以根据控制设计需求,可视化地调整PID 参数。
让我们看一段动图:Simulink用一个高度从0.5 duty cycle 到0.9 duty cycle的阶跃响应作为输入。在右上角的示意图中,可以看到PID被临时删除,而阶跃响应被输入到被控对象中,这样可以辨识出一个线性化的被控对象传递函数。
系统辨识工具箱可以提供多种选项去选择合适形式的传递函数,比如“underdamped pair”。系统辨识工具箱可以自动根据所选选项构造符合仿真数据的传递函数。下面的动图展示了这个过程:
有了线性化的被控对象后,PID tuner就可以发挥作用了,如下面动图所示:设计人员可以交互式地拖动图标,找到最优的PID参数,以求达到控制性能和速度的最佳平衡。
控制器代码生成
控制策略设计完成后,自动代码生成是非常简单的一步了。这时候,用户有两个选择:
如果硬件有合适的硬件支持包, 例如TI C2000系列。在下载支持包后,驱动层和I/O层都有相应的Simulink图标,例如:
将这些连接好后,可以自动化的编译链接并一键生成生成代码到芯片上。
如果没有硬件支持包,可以让Simulink生成控制部分的代码,手动和底层去做集成,这也是常用的办法。
全部0条评论
快来发表一下你的评论吧 !