电力电子技术的核心之一是功率开关器件。通过 Simscape(基础库)和 Simscape Electrical(高级库)对电物理域建模进行支撑,工具主要分为单相和三相电,可以进行大到系统级,小到器件级别的建模、仿真和控制设计。今天我们和大家一起探讨和分享 Simscape Electrical 中提供的四种不同精度等级的开关模型,以及其适用场景。
什么是精度等级?
示例介绍:直流-直流升压变换器
四种精度等级模型仿真对比
如果您想要进一步了解电力电子和永磁同步电机的建模、仿真和控制设计,也可以拖至文末点击“阅读原文”,注册报名我们的培训课程:Simulink 和 Simscape 电力电子控制设计”。
◆ ◆ ◆ ◆
实际上这里就蕴含着模型精度的概念,我们在本文中说的模型都是对真实物理世界中的系统进行一定程度的简化抽象得来的,精度的高低指的是模型与真实系统的接近程度,精度越高越接近真实系统。
通常,低精度模型仿真速度快,特征参数也少,而高精度模型特征参数更多,仿真速度也更慢。针对我们的变换器建模,可能影响精度的因素包括:开关动力学、寄生损失、热效应、非理想电源和噪声等,我们挑选其中最为重要的开关模型来探讨精度等级的影响。
◆ ◆ ◆ ◆
为方便说明,我们选择经典的升压斩波电路作为示例,该变换器能够将直流电从 250V 升压至 400V,下图是电路拓扑,由电感,功率开关器件,二极管和电容等组成。
首先一起来分析下这个电路,考虑开关导通和关断时的两种稳态状态:
通常,开关是由 PWM 来控制的,PWM 是一种方波信号,当为高电平时,开关导通,当为低电平时,开关关断。在周期性的 PWM 中,高电平持续时间占整个周期的百分比称为占空比,因为电感两端电压取决于充电时间的长短,也就是开关导通的时间,也就是占空比,所以控制占空比,可以控制输出端的电压,也就是升压效果。输出电压理论计算公式如下:
我们要把 250V 升压至 400V,按照这个公式,占空比应为 37.5%,为了建模方便,占空比取 40%。下面的模型中我们选择周期性的 PWM,开关频率为 10kHz,即周期为 100us。
从图上,我们看到有两个周期的定义,第一个是 PWM 本身的周期,即开关周期,另一个是 PWM 信号的采样周期,也就是求解器的仿真步长,如果我们希望仿真的时候,能够仿的准,一般要把采样频率设置为 100 倍的开关频率。当然这也不是绝对的,具体来说,如果希望仿真速度快,同时兼顾仿真精度,可以设置为 20-50 倍开关频率,如果希望仿真精度高,可以设置为 100-200 倍开关频率。
◆ ◆ ◆ ◆
我们都知道开关过程是一个高度非线性的过程,而且各种文献上关于开关器件有很多数学模型来描述这一过程,在 Simscape Electrical中,开关动力学可以分为四种精度等级,分别是:
Average-value(均值):均值模型不涉及任何具体的开关特性,就比如上面的理论计算公式,可以根据占空比直接算出输出电压,这种模型精度等级最低,通常用于系统级仿真。
Averaged-switch(均值开关):平均开关模型也不考虑开关事件,不过这里使用时间平均的 PWM 和简化的等效电路计算输出电压,这种模型精度等级比均值模型稍高,适用于子系统级仿真。
Piecewise-linear(分段线性):虽说开关过程高度非线性,但是具体到某一段时又表现出近似线性性,分段线性模型就是利用这个特点来仿真开关事件,这种精度等级已经不错,常用于组件级别仿真。
Nonlinear(非线性):非线性模型是最高精度等级,用于器件级仿真。
打开 Simscape Electrical->Semiconductors & Converters 子库,在外围库里,都是一些分立的半导体器件,精度等级为分段线性和非线性,即包含开关过程和开关事件,而在下一层的 Converters 子库中,则是一些预建好的各种常见变换器组件,精度等级为:均值,平均开关和分段线性,不包括非线性模型。
我们先直接用预建的 Converter 来搭建模型,研究均值,平局开关和分段线性三种精度的差异,接着我们再探讨非线性模型对系统性能的影响。
均值模型使用简单的代数关系式计算输入和输出电压之间的关系,所以它只能表达最最基本的升压行为,精度等级最低,当然仿真速度飞快,用来做系统级别仿真还是很不错的,我们一起来搭建均值模型,如下图所示:
从仿真结果可以看到,输出电压是一条直线,这也表明输入输出电压之间只是简单的代数关系,并不包含变换器任何动力学特性。
平均开关模型使用一个电感电容等效电路来类比变换器的动力学特性,但是仍然不考虑开关事件,变换器的输出是通过考虑时间平均的 PWM 信号和等效电路的响应来计算的,平均开关模型仿真速度也很快,同时一定程度的考虑了变换器的动力学特性,适用于系统子系统级别的仿真。
从仿真结果来看,变换器的动力学特性得到了体现,不过我们放大结果之后,并没有看到锯齿状的开关效应,表明开关事件没有考虑。另外,变换器模块的接口 G,我们之前说过平均开关变换器使用的是时间平均的 PWM 信号,所以最简单的可以给一个占空比,这时要求仿真步长要小于等于开关周期,如果是 PWM 信号,当然也可以。
分段线性开关模型使用分段线性的方程来分别描述导通和关断状态,而开关事件会产生不连续性。我们都知道本身开关周期就很小了,而仿真步长一般是开关周期的百分之一,已经更小了,如果还要考虑不连续性,大家想一想,如果采用的是 Simulink Solver 中的变步长求解器,求解器使用过零检测技术处理不连续性,那么会在不连续点附近加塞一些更更小的步长。关键是,在一次仿真中开关动作不计其数,可以想象这些加塞的小小步长会显著拖慢仿真速度。这时候因为整个物理网络被当成离散系统处理,那么当然不会有过零检测的事情,如果没有过零检测,想达到很好的仿真精度,只能把离散系统的步长设置的足够小,同样也会导致仿真速度变慢。在 Semiconductors & Converters 库里,那些带有 Ideal/Ideal Switching/Piecewise Linear 字样的模块都使用分段线性开关模型,此外,Converters 子库中很多预建的变换器组件都支持分段线性开关模型。
分段线性开关模型需要PWM信号驱动,在 Control->Pulse Width Modulation 子库里有很多 PWM 生成模块可供使用。仿真模型,可以发现速度不像之前那么快了,另外放大电压的仿真结果,可以观察到很多开关事件,继续不断放大,我们还能看到这些导通和关断之间都是线段直来直往。
非线性模型使用非线性方程来刻画导通和关断状态,特别是相比分段线性,导通和关断直接的切换过程虽然看着仍然很陡峭,其实已经被圆滑掉了(连续可导),也就是说现在不存在不连续性了,而且每一段也都是非线性的,虽然看着近似线性。
显而易见的,现在方程变得更复杂了,计算量会更大,所以仿真速度会更慢,在 Semiconductors & Converters 子库里,带有 N-Channel(N沟道)/P-Channel/NPN/PNP 字样的模块都是用非线性开关模型,我们也只能使用这些基本的开关器件进行建模。在真实的电路里,这些开关器件不是直接由 MCU 的 PWM 信号驱动的,而是经由 Gate Driver(门级或栅极驱动器芯片)来实现,在 Semiconductors & Converters 子库里就有 Gate Driver 模块。
这些器件参数非常多,同时还可能涉及到不同的非线性模型,那么我们平时工作的时候该如何设置这些参数呢?最直接的做法就是找到厂商的 datasheet 来进行填充,对于有些 datasheet 中找不到的参数,可以通过理论计算获得,或者根据 datasheet 里抠图得到的数据使用 Parameter Estimation 的方式获得。另外帮助文档搜索 Device Characteristics Assessment 里面有小工具可以帮助大家确定器件特性参数。我们还可以右击模块,打开 Basic characteristics 查看器件的伏安特性曲线。
仿真模型,我们这次可以明显感受到,仿真速度更慢了,另外放大电压的仿真结果,可以观察到很多开关事件,继续不断放大,相比分段线性模型,我们能看到这些导通和关断之间都是圆滑过渡的。最后,我们使用 Simulation Data Inspector 来进行仿真结果可视化分析,在各个精度等级的模型配置项设置:Simscape->Log Simulation Data为All,勾选 Record data in Simulation Data Inspector,记录仿真结果。可以发现四种模型结果接近,即使是最简单的均值模型也能表达输出电压和输入电压之间的关系,还是那句话,适合的才是最好的。
通过上述四种不同的开关模型介绍,希望大家对精度等级的概念有更新的认识。