simpowersystem非标准教程 联系客服

发布时间 : 星期五 文章simpowersystem非标准教程更新完毕开始阅读780a664bcf84b9d528ea7a16

如果选择了相量法,状态空间模型被特定频率下输入输出的复转移矩阵 H(jω)代替,这个矩阵定义了网络的代数方程。

3.搭建起电路模型的Simulink模型,将其存储于Powergui模块中。

5.2线性与非线性模块互联方式

Simulink模型使用一个S-Function模块来建模电路的线性部分。预定义的库中的

Simulink模型用来仿真非线性器件。非线性模型和线性模型的连接方式如下图所示:

非线性模型部分作为反馈模块连接到线性部分的电压输出和电流输入之间。

5.3初始化之后

完成初始化之后,仿真正式开始。现在可以通过scope来观察波形了;可以通过LTI viewer获得系统中任意一对输出输入间的传递函数了;可以通过FFT得到某一信号的频谱了。确切的说,以后的各种分析工作,已近不是“工作机制”的犯愁了。

第六章 连续积分算法1

“我可以问你两个问题吗?” “可以,请问第二个吧!”

请回忆前面提到的积分算法的说法,但是我们提到了,大体上分为连续、离散和相量方法三种。现在我们就深入研究一下连续积分算法。

6.1初探ODE

什么是ODE?其实就是常微分方程的意思,是Ordinary Differential Equation的缩写。在这里我们更侧重于用它来指解微分方程的方法。主要分为两类:

1)非刚性算法。如果模型中的所有变量都变化很慢或者很快,就可以考虑使用非刚性算法了。主要有:45,23,113。

2)刚性算法。如果模型中的变量既有变化快的又有变化慢的,最好就要选用刚性算法了。主要有:15s, 23s, 23t, 23tb。

6.2深入ODE

简单介绍各个算法,看看这个名字是怎么来的,以及各自的优缺点。

ode45,基于显式Runge-Kutta (4,5)公式,即Dormand-Prince对。这是一个一步求解算法——在求解y(tn)时只需前一点的值y(tn-1)。一般来说,ode45可以解决大多数问题。因此,第一次仿真不妨先使用本算法试试再说。

ode23 ,是显式Runge-Kutta (2,3)即Bogacki- Shampine对的一个实现。在粗略容差( crude tolerances )和中等刚性的情况下要比45更为有效。和45一样,它也是一个一步求解算法。

ode113,是一个可变阶Adams-Bashforth-Moulton PECE求解算法。在强约束容差情况下它要比45更为有效。它是一个多步求解算法——求解当前点时需要前面的多个点。 ode15s ,基于数值微分公式NDFs。像113一样,它也是一个可变阶多步求解算法。在45失败或效率非常低下以及你怀疑求解问题是刚性的时候试一下15s。

ode23s,基于改进的2阶Rosenbrock公式。由于它是一个一步求解算法,因而在粗略容差下比15s更为高效。它可以解决一些15s不是很高效的刚性问题。

ode23t,是使用自由插值的梯形法则(trapezoidal rule)的一个实现。这是一个中等刚性的算法。

ode23tb,是TR-BDF2的一个实现,即第一级使用梯形法则第二级使用2阶倒向差分公式的显式Runge-Kutta公式。在解刚性问题时,如果是粗略容差,效果要比15s高效。

6.3进一步深入ODE

在上面的各种算法中,如果是线性问题,45无疑就足够了;碰到非线性呢?官方推荐ode23tb。文档中说,无论是线性问题还是非线性问题,23tb在速度和精度上都表现出色。

1

本节涉及数学内容比较多

说了半天,在哪里设置?依次点击菜单simulation->configuration parameters或者使用快捷键Ctrl+E。出现:

我们这里讨论的主要就是solver options这一栏的设置。 一般,绝对容差(absolute tolerance)和最大步长(maximum step size)选择自动(auto)就行了。然而某些情况下你可能会不得不限制最大步长和绝对容差,但是太小的容差会显著的拖慢仿真的速度。

例如,如果你仿真的是一个大功率电路,电压、电流都是几千伏特、安培,那么绝

对容差设为0.1乃至1.0都是可以接受的。然而,如果电路和使用单位控制信号(在1附近变化)的控制系统是相连的,容差设定将主要取决于控制状态。这种情况下,选择绝对容差为1e-3是合适的。另一个极端,如果你仿真的是一个小功率电路,电压电流也就几毫伏、毫安,绝对容差设定为1e-6也不为过。

选中23tb算法后,会有一栏Solver reset method(求解程序复位方法),默认为fast,此时的仿真表现一般是最好的。如果系统中含有高度非线性的部分,还是最好选为robust。仿真时,不放两个参数都试一下,如果两者差异不大的话还是将它改成fast为好,速度快!

6.4仿真开关和电力电子器件

开关和电力电子器件的连续仿真有三种类型:

i)纯电阻开关——作为电流源建模,是线性电路的一部分。在开关的每一次开合时刻电路的状态空间模型都要被计算一次。这种开关和电感元件相连时需要加一个缓冲器。

ii)理想开关——使用理想开关器件1进行建模。在开关的每一次开合时刻电路的状态空间模型都要被计算一次。和上面不同,和电感元件相连不用缓冲器。

iii)感应开关——开关包括一个串联的电感(Lon > 0的二极管和晶闸管, IGBT, MOSFET,或GTO)。这种开关仿真时被看做电压驱动电流源。

1

参见6.5

6.5使用理想开关器件方法

将开关视为电流源进行建模意味着开关通态电阻Ron不能为零。用电流源建模也意味着不能直接将电感、另一个开关、电流源和开关串联连接1。这种情况下,必须给开关并联一个R或者RC,从而使其断态阻抗有一个有限值。如果不想要缓冲器,你至少必须使用高阻值的电阻缓冲器以便引入一个可以忽略的漏电流。引入高阻抗缓冲器的缺点是通态和组态的开关阻抗有显著的不同,产生一个刚性的状态空间模型。例如,一个1H电感通过开关连到电压源上。开关通态电阻Ron=0.001Ohm,缓冲器电阻Rs=1e+6Ohm,那么此一阶电路的时间常数L/R在开关闭合时是1000s,在开关断开时是1 μs。此时要使用连续求解方法,如此大的时间常数波动要求使用变步长刚性算法,比如23tb。模型的刚性也会显著的影响仿真的速度。如果缓冲电阻很大,求解速度会非常慢,甚至可能根本不能求解!若使用离散模型,如果你的采样时间过大你会观察到多个数值振荡。

如果使用理想开关器件,以上由必须加缓冲器带来的问题是不存在的,确切的说,缓冲器不是必须的。使用这个方法,必须简单配置一下: 1. 打开Powergui选择进入Configure parameters。

2. 在Solver标签中,选择Simulation type为Continuous ,勾选Enable use of ideal switching devices。

这就基本完成了。在勾选了Enable use of ideal switching devices之后,会出现几个选项2:不使用缓冲器(disable snubbers in switching devices)、使通态电阻为零(disable on resistance in switching devices)等。

如果你想使全部的开关都不使用缓冲器,就选择Disable snubbers in switching

devices,很方便;如果只是某些开关不想使用缓冲器,就要到单独的模块中修改了,

改法是设定它的Rs=inf。要是同时勾选了禁用Ron和Vf,你仿真的就是纯粹理想开关了!

去掉缓冲器降低了电路的刚性,这时就可以使用非刚性求解算法,达到一个正确的结果和较好的仿真速度。

6.6理想开关器件方法的再讨论

必须使用连续求解算法。理想开关器件方法不支持离散模型。

开发这个方法的最初目的是不伴随开关使用缓冲器;然而如果你使用了缓冲器它也能工作。

对于离散模型,也可以使用本方法。将 Simulation type改为Continuous,勾选Enable use of ideal switching devices,接下来选择一种连续求解算法3。

Vf>0时对Ron的规范。在某些电路中,使用Vf>0 && Ron=0参数的开关会导致仿真停止!为了避免这个问题,给Ron一个小值。

6.7理想开关器件方法的示例

下面的例子是一个双半波整流器,实战上面的理论。

123

为什么?看看《电路原理》。

自己点开看一下。图前面有,就不再给了。 推荐:oed23tb,相对容差1e-4

1.在命令行中敲power_fullwaverectifier,打开了一个电路。但是,命令行里也输出了一些消息,大致是说,没找到和输入完全匹配的电路,但是找到了一个大小写不敏感的另一个电路来代替。没错,我们找的就是它,不过它的法定名字是power_FullWaveRectifier。看图:

2.原理就不介绍了。图中的电源、地、变压器、二极管、电压电流测量、RLC部件都很熟悉了。