电力电子器件开关周期很短,要想精确模拟开关过程,需要特别小的仿真步长,而小步长会导致仿真变慢,仿真速度与精度的权衡在电力电子仿真中尤为重要。《电力电子设计之如何选择功率器件开关模型》一文中介绍到开关器件的几种不同精度模型,通过合理的选择模型精度可以在帮我们从仿真模块选择的角度选择精度和速度。在选定后建模精度后,我们还可以通过合理的 Solver 设置进一步优化仿真速度和精度。《电力电子设计之如何选择功率器件开关模型》文中介绍到 Simscape Electrical 中有多种精度的 IGBT 模型,Average-value(均值开关)、Averaged-switch(均值开关)、Piecewise-linear(分段线性)和Nonlinear(非线性)。本文以实际仿真中应用较多的 Piecewise-linear(分段线性)模型为例,介绍 Solver对电力电子仿真结果的影响。本文包括如下内容:
Solver 介绍
定步长与变步长对电力电子仿真的影响
ode23t 和 odeN 的对比
示例概述本文以 Boost 电路为例,下图是仿真模型截图,图中电力电子器件为 IGBT 的分段线性模型。该 Boost 电路通过控制 IGBT 的开关断将 250V 的电压升压至 400V,模型中没有考虑负载变化,设置 IGBT 的占空比为 40%。IGBT 的开关频率为 10kHz,即下图中 PWM Generator 的 Timer period 设为 1e-4s。本例中未涉及输出电压闭环,仅以开环控制为例介绍 Solver 对电路的影响。
首先我们来看一下该电路最终的工作效果,下图中仿真开始后电压迅速上升,最高至 500V,随后回落稳定至约 400V 左右。由于负载为纯阻性负载,负载电流与电压波形相似。
放大上升阶段波形,同时观测 PWM 信号。从电压波形和 PWM 波形的对比可看出,每次电压的上升发生在 PWM 信号为零时,即 IGBT 关断状态。Boost 电路的原理是通过 IGBT 的开通时电感蓄能,当 IGBT 关断时电感电压与电源电压叠加为负载侧供电,从而将输出端电压抬高。可见 PWM 和 IGBT 的开关断过程对仿真结果影响至关重要。
Solver 的种类当我们使用 Simscape Electrical 进行仿真时,有三个 Solver 需要考虑:Simulink Configuration 中的 Simulink Solver、Simscape Solver(图一中的f(x)=0模块)和 Powergui。Simulink Solver 决定整个 Simulink 的解算方式,而 Simscape Solver 和 Powergui 分别对应 Simscape Electrical 和 Specialized Power Systems 电气模型的解算方式。当然如果 Simscape Solver 中的 ‘Use local solver’没有被选择的话,Simscape Electrical 电气模型将按 Simulink Solver 设置进行解算。同理当 Powergui的‘Simulation type’被设置成 Continuous时,Specialized Power Systems 电气模型将按 Simulink Solver 设置进行解算。本文采用 Simscape Electrical 进行建模,因而只探讨 Simulink Solver 和 Simscape Solver。Simulink Solver 分变步长和定步长两类,以下是 Solver 设置页面的截图。
当模型被设置成变步长 Solver,仿真过程中 Solver 根据仿真误差运行值自动调节步长;而定步长时Simulink将不判断误差,只按设定步长运行。理论上仿真步长越小,仿真结果越精确,但实际使用过程中过小的仿真步长会导致仿真缓慢。变步长 Solver 通过步长自动调节方法,实现速度与精度的平衡。仿真运行过程中当系统内状态变化过快或过零点等事件时,Solver 会自动降低步长来保证精度;当系统内状态变量变化平缓时,Solver 会增大步长以提高仿真速度,保证良好的速度体验。关于变步长 Solver 的详细选择问题,可以查下帮助文档中的《Variable Step Solvers in Simulink》一节。https://ww2.mathworks.cn/help/simulink/ug/variable-step-solvers-in-simulink-1.html 精度的保证 - 变步长 Solver在电力电子仿真中常用的变步长 Solver 是 ode23t,我们将模型设置成变步长 ode23t 后能保证模型的仿真精确,并且速度体验也还好。通过 Simulink 提供的 Solver profiler 我们可以观察仿真过程中步长的变化,仿真步长在 5e-5s ~ 10e-20s 之间变化。
下图是仿真步长的放大图,其中蓝色的点横线为 Step Size,每个蓝色点表示该时刻为计算时刻。当发生降步长时,一段时间内会有多个步长都是以非常小的步长进行计算的,直至系统平稳才恢复到较大步长。
如果我们将仿真步长与电压、电流和 PWM 信号对比,我们将发现步长变小的情况通常发生在 PWM 电平信号变化的时刻。
这是因为 PWM 信号变化,即 IGBT 的工作模式变化,会导致整个系统相关的状态变量发生较大的改变,同时会有过零点等事件发生,此时 Solver 需要将步长减小以保证仿真精度。因而对于电力电子系统,系统中开关变化越多,Solver 减小步长的可能性越大。随之而来的问题是,若开关频率较高或开关器件的较多,仿真会变得缓慢。如进行三相两电平、三电平或 MMC结构系统仿真时,速度会逐步下降。速度和精度的权衡 – 定步长 Solver在实际项目中,仿真精度的需求会随着研究对象和阶段而变化,仿真速度和精度往往是相互矛盾的,他们之间的权衡需要工程师根据实际情况进行调节。为了解决随着开关器件增加仿真变慢的问题,Simulink Solver 和 Simscape Solver 提供定步长解决方案。
在定步长模式下,工程师可以根据经验设置相应的步长,以达到仿真速度和精度的平衡。在使用定步长进行仿真时,建议使能 Simscape Solver 中的 Use local solver 选项,这样在仿真时电气模型部分按照针对物理模型优化的定步长方法进行计算。在该模块中主要设置项有 Solver type、Sample time 和 iterations 等设置,下图为 Simscape Solver Configuration 设置页面截图。详细说明请见帮助文档《Solver Configuration》页面。
电力电子仿真中 PWM 至关重要,仿真步长的设置以捕获 PWM 过程为目标,如 Boost 电路中我们设置的开关频率为 10kHz,设置的步长应能很好的捕获 10kHz 载波与调制波比较的瞬间,一般经验为仿真步长为开关周期频率的 1/10~1/100,根据仿真结果逼真度需求可适当调节。使能‘Use local solver’,并使用不同步长(1us、10us、50us 和 ode23t)进行仿真,得到下图结果。三种定步长运行的结果与变步长结果的趋势一致。
将电压上升阶段的波形进行放大,可见下图。仔细看几种步长呈现的结果有细微差别,总的来说步长越小得到的结果越接近变步长结果。
细微的差别来源于 PWM 信号的捕获精确度,下图为PWM捕获过程的示意图,第一幅为载波和调制波信号,第二幅图为理论 PWM 信号,第三幅图为 1u s采样步长采样所得的 PWM 信号,由于 1us 步长相对 10kHz 开关周期已经实现了 100 倍的采样,所以大的趋势看不出差别。
当我们对图进行放大后,可以发现两种之间有一定的偏差,定步长并不能很好的捕获 PWM 变化的准确位置,正是这个偏差导致仿真结果不一致。当采样步长增大后仿真偏差也会越来越大,直至系统不稳定。
变步长可以提供很好的精度保证,但在开关器件数量多时会损失速度。通过合理选择定步长模式下的步长,在系统开关器件数量增多的情况下人能一定程度兼顾速度和精度,但当步长较大时则会存在仿真准确或不收敛的情况。两种Solver都有相应的优缺点,odeN 集合二者的优点,提供一个中间的方法。兼顾定步长和变步长的优势 – odeNodeN 在 Simulink Solver 变步长 Solver 选项下,它以定步长方式运行,但当系统发生过零点时会自动在过零点处插入一个步长,捕获变化瞬间。这样我们在仿真中可以得到固定步长的速度优势,同时能获得变步长的精度优点。在 ode23t 模式下,仿真步长始终变化,且在过零点附近有多个很小的步长,计算所需的步数增加,从而影响仿真速度。将 Solver 由 ode23t 改成 odeN 后系统的仿真步长变化如下图所示,在 odeN 的作用下,模型大多数时候以设定的 10us 步长运行,只有当发生过零点时才会降低步长,而且只插入一个步长点,这样就可以减少计算步数,减少仿真时间。
由于 odeN 具有部分变步长的特性,在实际使用时可以将设定步长增大,同时通过 odeN 自动插步的特性保证精度。下图是 ode23t 和 odeN 在 10us 和 50us 步长下的对比,三条曲线没有明显的差异。
将图进行放大,三者仍然保持较高的重合度,从精度上看可以认为 odeN 与 ode23t 在同一水平上。
根据 odeN 的工作原理,我们可以推测在实际仿真中一定时间的仿真所需的仿真步数会一定程度地减少,步数的减少决定最终 odeN 在仿真速度上有一定的优势。下面两幅图分别是 Boost 模型仿真 10s 后统计出的 ode23t 和 odeN 所需的仿真步数和时间,从图中可以得出结论:odeN 在仿真速度上有一定的优势。
当模型设置为 ode23t 时,模型运行时 Solver 自动判断最大步长约 25us,odeN 在最大仿真步长 10us 的情况仿真速度已经超过了 ode23t。得益于 odeN 的定步长特性,可以进一步将最大步长设成 50us,获得更快的仿真速度。
通过以上几种 Solver 的设置,Boost 模型的仿真精度得到了保证,且在速度上实现了较大的优化,可见 Solver 在仿真中至关重要。除了以上特性外,Simulink Solver、Simscape Solver 和本文没有涉及的 Powergui 中有更多的特性能帮我们做好电力电子仿真。
原文标题:电力电子设计之 Solver 设置
文章出处:【微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
全部0条评论
快来发表一下你的评论吧 !