- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 2 为用本文算法仿真电路瞬态过程 ( 起动过 程 ) 的波形( f s = 1kHz) 。图 3 示出用本文算法仿真所 得的稳态时状态变量的纹波 ( 实线波形 , 一周期内仿 真 151 个点) , 图中虚线波形为文献[ 9] 计算前三次谐 波所得。 可以看出 , 本文所得结果与文献[ 9] 中给出的 相应的数值仿真波形相一致 , 也与文献[ 10] 中的符号 仿真结果相一致。因此 , 本文方法是可信的。
′
段连续的特性 , 也即状态变量的值在电路从一个阶段 进入另一阶段时不能突变, 将上一阶段结束时各状态 变量的值作为下一阶段各相应状态变量的初值, 调用 程序开始执 RKF 45 仿真子程序, 进行该阶段的仿真。 行时各状态变量的初值可以定为电路开始工作时各 状态变量的实际值。将初值定为 0, 则可以仿真电路 工作时的起动过程。 仿真周期数可根据实际功率电子 电路起动时所需时间而大致确定。 ( 3) 稳据电路周期性变化的特点, 当一周期开始和 结束时各状态变量的值相等时( 或二者之差的绝对值 在误差允许范围内 ) , 即认为电路已达到‘ 稳态’ 。 ( 4) 稳态直流解的计算。 虽然 MAT L AB 语言提 供了一个求数据平均值的函数 mean ( ) , 但其前提是 在一周期内计算点均匀分布。 由于我们采用的是变步 长 RKF 算法 , 各点的分布并非均 匀的, 所以不能使 用这一函数来求取状态变量的稳态直流解。 本算法中 采用的方法是 : 根据状态变量的稳态直流解是其达到 稳态时在一周期内的平均值这一概念 , 用矩形法实现 连续函数积分的数字化求解。即 : 设在一开关周期内 时间采样点向量及其所对应的状态变量的值分别为: t= [ t1 , t2, t3, …, tn ] , X = [ X 1, X 2, X 3, … , X n ] 设 tj = t j + 1 - tj , j = 1, 2, …, n - 1 则 X = 1 T
其纹波电压波形的局部折线形状表明该方法的误差 比本文方法的误差要大。
( a) 电感电流 ( b) 电容电压
图 4 P SP ICE 5 仿真纹波形
3 讨论
( a ) 电感电流 ( b ) 电容电压
图 2 起动过程仿真波形
通常 , 功率电子电路仿真方法的误差来源于两部 分: 一是模型误差: 二是方法本身的误差。 本文的仿真 方法利用理想开关模型进行数值验证 , 但它也可推广 到更为准确的开关模型。 本文方法的算法误差取决于 RKF 45 的精度, 其误差对于一般工程设计是可忽略 的。 RKF 45 算法在编程实现时设定了一个截断误差 限 tol ; 在判定电路是否到达稳态时我们设定了一个 误差限 ! . ! 和 tol 的选取将直接影响程序运行的速度
引言
功率电子电路计算机仿真所用的方法主要有基 于节点分析法的 SP ICE 通用电路仿真程序和基于状 态微分方程的数值仿真方法。 SPICE 的特点是直接 由电路仿真, 不必列写电路方程。但它在仿真功率电 子系统时存在效率低、 费机时及不易收敛等问题 。 功率电子电路本质上是一个离散的非线性系统 , 因而 更精确的仿真方法是离散时域数值仿真法。文献[ 1] 基于 T aylo r 级数展开式提出的“ 查表法” 具有较好的 计算速度和精度。 文献 [ 2] 以电路节点法为基础 , 用牛 顿法确定边界条件。文献 [ 3] 采用 Cheby shev 级数展 开法来求解系统每个拓扑的状态微分方程。 这些方法 一个共同缺点是不易实现变步长仿真。而文献 [ 4] 建 立电路中非线性元件的分段线性模型 , 本质上是一种 基于电路的仿真方法, 具有同 SP ICE 相类似的缺点。 Runge -Kuna 法是一种在工程 上应用得极为广 泛的方法[ 7] 。文献 [ 5] 利用其四阶算法对电路进行了 仿真。 一般认为, 四阶已具有足够的精度, 但当变步长 时 , 四阶 算 法存 在 耗时 长等 缺 点。而 四五 阶 算法 ( RKF45) 则解决了此问题 , 因而比较适于功率电子 电路这类刚性系统的状态微分方程的求解。
图 4 为用 PSPICE5. 0 仿真所得的稳态时状态变 量的纹波波形( f s = 1kHz, 一周期内仿真 1000 个点) ,
80 桂林电子工业学院学报 2000 年 3 月
第 20 卷 第 1 期 2000 年 3 月
桂 林 电 子 工 业 学 院 学 报
JOURNAL OF GUIL IN INSTITUTE OF ELECTRONIC TECHNOLOGY
Vo l. 20, N o . 1 M a r. 2000
用 M AT L A B 语言实现功率电子电 路数值仿真的一种方法
∫
T
X dt ≈ 1 ∑X j . tj . 1 T j= 1
n- 1
2 实例仿真分析
第 1 期 陈艳峰 等 : 用 M A T L A B 语言 实现功率 电子电路数 值仿真的 一种方法 79
( a) 基本电路 ( b) S T 通 S D 断时子拓扑 ( c) S T 断 S D 通时子拓扑
( a) 电感电流 ( b ) 电容电压
图 3 稳态纹波仿真波形
和稳态直流解的精度。以例 1 CCM Boost 电路在 f s = 1kHz 为例, 比较不同的 t ol 和 ! 值时程序的运行情 况见表 2. 由表 2 数据可见 , 取 tol = le - 6, != le - 2 比较合适。
[ 7] [ 6]
MAT L AB 是一种流 行于国际控制界的具有强 大矩阵运算功能的高性能数学工具[ 8] , 它的应用使四 五阶变步长龙格- 库塔算法的实现变得容易 , 编程效 率大为提高。
1 功率电子电路的分段数值仿真方法
分段仿真方法可于分析电路的过渡过程和稳态 过程。 1. 1 阶段的划分 功率电子电路中是一个离散的周期性系统, 在一 个工作周期内可根据各开关器件的通断状态将电路 划分为若干个顺序相连的子阶段。在每个子阶段中, 各开关器件的导通或截止的状态不变 , 只要有某一个 开关器件的状态发生了变化 , 则系统的电路拓扑形式 将发生改变, 从而由一个阶段进入另一个阶段。 1. 2 各阶段数学模型的确立 在各阶段内将半导体开关器件视为理想开关 , 即 导通的器件视为短路 , 截止的器件视为开路, 则可得 到等效的线性电路子拓扑。选择合适的状态变量 ( 电
图 1 连续电流模式的 Boo st 电路
表 1 稳态直流解仿真结果
开关频率 f s = 10kHz f s = 1kHz f s = 500Hz 本文方法 V c= 48. 6547( V ) I L = 2. 1637( A ) V c= 48. 0163( V ) I L = 2. 1139( A ) V c= 45. 8735( V ) I L = 1. 9772( A ) 文献 [ 13] 符号算法 V c= 48. 66( V ) I L = 2. 16( A ) V c= 48. 08( V ) I L = 2. 11( A ) V c= 46. 32( V ) I L = 1. 89( A )
广东省自然科学基金和国家教委高校博士点专项基金资助项目 1999- 09- 21 收稿, 1999- 10- 30 修改定稿 第一作者 女 29 岁 在读博士 广州 510641
78 桂林电子工业学院学报 2000 年 3 月 感电流和电容电压) , 即可列写出电路的常系数状态 微分方程, 一般可写为 : A = A X + BU ( 1) 式中: X 为电路的状态向量; A , B 为同电路参数有关 的系数矩阵 : U 为电路中输入电源向量。( 1) 式可用 M AT L AB 编制一子程序‘ abu. m ’ 用于数值计算 , 其 形式非常简单 , 仅两条语句 , 如下 : f unct io n xdot = abu( t , x, A , B, U) Xdo= Ax+ Bu . 1. 3 RKF45 算法的 M AT LAB 实现 变步长方法即是当解变化较快时采用较小的步 长 , 而当解变化较慢时则采用较大的步长 , 这样既可 保证一定的精度 , 又可具有较高的速度 , 其步长的大 小以截断误差来控制。 Runge-Kut t a 算法是由 T aylo r 级数展开法导出的一类精度较高单步法 , 其四/ 五阶 Runge-Kut ta-F el hberg ( RKF45) 算法在每一个计算 步长内对函数进行六次求值, 定义了六个变量, 以保 证更高的精度和数值稳定性。 其具体算法及计算公式 详见文献[ 7] . 根据文献 [ 7] 提供 的算法, 我 们以 M AT IAB 语 言编程实现了 ( 1) 式带参数常微分方程组的数值求解 子程序为 RKF 45, 调用时带参数, 即 [ t, x ] = RKF45( ‘ 系统函 数名’ , t0 , t final , X 0 , A , B , U, tol ) t 为返回的时间变量, x 为返回的状态变量的仿 真值。 其中所用到的系统函数名为描述系统状态方程 的 M 函数的名称 ( 在此即为‘ abu’ ) 。t 0 和 t f inal 分别 为用户指定的起始和终止仿真时间 , X 0 为系统状态 变量的初始值 ; A , B , U 的含义如( 1) 式。为了限定变 步长仿真的精度, 用户还可有选择地添加一个附加参 数 - 局部截断误差界 tol , 由它来指定变步长仿真中 的期望的解的精度 , 如果不指定 , 则取默认值 10- 6 . 需注意的是 , 在编程时 , 算法中各系数及变量均 以向量或矩阵形式表示。 1. 4 仿真过程 ( 1) 初始化。 输入电路各元件参数值及电路各阶 段了拓扑状态微分方程的系数矩阵。 ( 2) 瞬态过程仿真。 仿真是根据电路在一个周期 内工作阶段的划分以周期为单位而进行的。 当电路由 一个状态进入另一个状态时 , 其相应的状态方程的系 数矩阵改变, 将新的系数矩阵作为参数 , 根据电路分 图 1 为工作在电感电流连续模式下的 Boo st 电 路及其在一个周期内的两个子拓扑。 写出电路的分段 线性状态微分方程如下 : x = A i x + B i E x = [ iL v c ] i= 1, 2 - RL / L 0 A1= 0 - 1/ RC - RL / L - 1/ L 1/ L A2= 1/ C - 1/ RC 0 1/ L B1 = B2 = 0 选取 参数如 下: L = 6mh, C = 45 F , R = 30 , RL = 0. 46 , E = 37. 5v , D = 0. 25, f s 取 10kHz , 1kH 及 500kHz , 用本文算法仿真所得的稳态直流解同用文 献 [ 13] 的等效小参量法所得结果比较见表 1. 由表中 数据可见二者是非常接近的。