Matlab电路仿真软件包-simpowersystems
1.入门
1.1.SymPowerSystem是什么
1.1.1.介绍
在Matlab提供的simulink仿真环境下,与其他建模产品结合在一起,用于对电子、机械系统进行建模。要学会使用SymPowerSystem,应首先学会使用Simulink仿真。
1.1.
2.设计中的仿真的作用(略)
1.1.3.SymPowerSystem仿真库
你可迅速将SymPowerSystem投入使用。该库包含了许多典型的功率设备模型,例如,变压器、导线、机械、能源电子等。这些仿真模型来源于产品手册,基于工程实际。
SymPowerSystem包含一个主要的库:powerlib。powerlib库显示了所有包含的模块和模块名称。
1.1.4.SymPowerSystem中的非线性模块(略)
1.1.5.仿真时需要的环境:
Maltab 和Simulink
1.2.如何使用该指南
1.2.1.对于新用户
将学会如下知识和技能:
(1)使用该库创建和仿真电子电路模型
(2)将一个电子电路于simulink模块连接在一起
(3)分析电子电路的稳定状态和频率响应
(4)离散化模型,以便加快仿真速度
(5)使用矢量图仿真方法
(6)构建自定义的非线性仿真模型
1.2.2.对于经验丰富的模块用户(略)
1.2.3.所有用户(略)
1.3.创建和仿真简单的电路
1.3.1.介绍
SymPowerSystem允许你对包含线性或非线性的电子电路进行建模和仿真。在本章节中,您将学习到:
(1)浏览SymPowerSystems的powerlib库
(2)如何利用SymPowerSystem创建一个简单的电路
(3)如何将电路与simulink模块互联。
下述电路是即将创建的电路:
图1 要建模和仿真的电路
1.3.
2.使用powerlib创建电路
(1)使用如下命令打开powerlib:
powerlib
(2)从powerlib的文件菜单下,允许“新建”菜单命令,新建一个空白电路稳定,存为:circurt1
(3)打开Electrical Sources库,复制其中的AC Voltage Source模块到circuit1中
(4)双击AC Voltage Source,打开其属性设置对话框,按图1所示进行设置
(5)改模块的名称为“Vs”
(6)将elements库中的Parallel RLC Branch模块复制到circuit1中,按图1进行参数设置
(7)用同样的方法加入其他模块到电路中
(8)注意加入的传输线模块:传输线模块模型图如下(这是一段模型,一条导线通常有若干段,每一段参数都一样,如图1所示):
该模型是对参数分布一致的传输线的模拟。它能传输的电信号最大频率近似为:
fmax=Nv/(8l)
其中,N---PI节数,
v---导线传输速度,v=1/(sqrt(L*C))
l----导线长度。
关于Series RLC Load模块:
描述该模块的有如下参数:
normal voltage Vn(Vms):额定电压(有效值)
normal frequency(Hz):额定频率
active power(w):有效功率(有功功率)1
Inductive reactive power QL:感性无功功率
Capacitive reactive power QC:容性无功功率
(9)加一个电压测量模块(Voltage mesure block)到电路中,该模块位于mesurements 库中
然后将simulink中的scope模块添加到电路中,并将其与电压测量模块互联。
1.3.3.将电子电路与simulink连接起来
电压测量模块(Voltage mesure block)是SymPowerSystem模块与simulink模块直接的接口。对于上面的例子,你实现了一种从电路到simulink信号的接口。电压测量模块将电压转换成simulink信号。
类似的,电流测量模块(current mesure block)能将电流转换为simulink信号。
你也可以将simulink信号连接到电路中,例如,你也可以将受控电压源加入到电路中。如图2所示。
1电阻消耗的功率
图2
1.3.4.测量电压和电流
电压测量模块和电流测量模块有方向规定,标+为正向,规定的方向是从正到负,若电压值或电流值为+,则表示他们的方向与规定方向相同,否则,相反。
万用表模块(multimeter)则没有事先规定的方向,它是根据仿真结果仿真后才显示方向的。可以通过如下命令了解方向:
get_param(gcb,'Orientation')
1.3.5.连接电容和电感的基本原则
(1)理想电压源不能与纯电容并联
(2)理想电流源不能与纯电感串联。
违反上述原则,电路将无法仿真。必须修正。方法是在电容旁串联一个小电阻或在纯电感两端并联一个大电阻。
1.3.6.使用powergui模块仿真simpowersystem模型
powergui模块对于任何包含simpowersystems模块的simulink模型的仿真是必须的。他用于存储等价的simulink电路,这些电路用来表示simpowersystem模块的状态方程。当您在仿真中使用该模型,应遵循以下原则:
●将powergui模块置于仿真图的顶层用以优化性能。然而,你也可以把它置于任何
需要的地方。例如,在一个子系统中。这不会影响系统功能;
●其他(略)
1.4.简单电路分析
1.4.1.介绍
本节你将学习:
●使用power_analyze命令获取模型的状态空间描述
●使用powergui的图形用户接口计算电路的稳态电压和电流
●电路的频域分析
1.4.
2.电路状态变量
电路状态变量是与电路中的电感和电容元件有关的状态变量。许多模块中包含了电感或电容,如并联RLC模块,PI SectionLine模块,等等。
电路的状态变量有电路中各电容的两端电压和流经各电感的电流组成。电路状态变量的名称由系统自动产生,其命名规则如下:
●变量名由两部分组成:前导符_后缀。前导符和后缀之间用下划线隔开;
●前导符为Il或Uc(Il表示流经电感的电路,Uc表示电容器两端的电压)‘
●后缀为模块名称。
1.4.3.使用power_analyze进行状态空间描述
你可以使用power_analyze获取一个电路模型的状态空间描述,例如输入下面的命令,可以获取上面创建的简单电路的状态空间描述信息:
[A,B,C,D,x0,electrical_states,inputs,outputs]=power_analyze('circuit1')
x’=Ax+Bu
y=Cx+Du
要判定电路是否稳定,只要求A的特征值,看看A的特征值的实部是否都小于0,只有满足此条件,电路才是稳定的。
1.4.4.稳态分析
使用powergui的图形用户接口命令可以进行电路的稳态分析。
菜单命令:Analysis tools-->Steady-State Voltages and Currents
1.4.5.频率分析
powerlib包含了一个阻抗测量模块(Impedance Measurement),可以用于测量电路中任意两点间的阻抗。接下来,你将使用两种方法,利用该模块测量节点B2点的阻抗:
●基于状态空间模型进行计算
●使用阻抗测量模块和powergui模块进行测量
(1) 利用状态空间模型获取阻抗-频率之间的关系
注:下面已经假定你的电脑上已经安装了控制系统工具箱
要测量B2点的阻抗与频率间的关系,需要在B2处加入另一个电流源,打开前面绘制的仿真模型图,将AC Current Source 复制到电路中,最终如图3所示。
图3
接着,计算该电路的状态空间方程:
sys1 = power_analyze('circuit1','ss')
该方程描述的是电路的连续状态空间方程。
在laplace 域,B2点的阻抗定义为:由交流电流源注入的电流与U2测量的电压间的传递函数。
)
(2)(2)(2s I s U s Z 利用下面的命令获取状态空间方程中的输入输出变量的名称:
sys1.InputName
ans =
'U_Vs'
'I_AC Current Source'
sys1.OutputName
ans =
'U_U2'
'U_U1'
节点B2处的阻抗与该状态空间模型的输出2和输入1间的传递函数相关,对于0~1500Hz 频率围,阻抗可由下式计算并显示出来:
freq=0:1500;
w=2*pi*freq;
bode(sys1(1,2),w);
(2)利用阻抗测量模块(impedance mesurement )和powergui 模块求阻抗与频率关系 打开powerlib 的mesurement 库,将阻抗测量模块(impedance mesurement )复制到你的模型中,重命名为ZB2,将ZB2的两个输入分别连接到B2点和地(这样便可以测量B2点对地的阻抗)。
现在打开powergui 对话框,窗口中显示只有一个阻抗在测,命名为(ZB2,与模块名相
同),设置频率围为0:2:1500,Z幅度显示请选择对数刻度(logarithmic),选中“Save data when updated”复选框,并输入zData作为变量名用来保持阻抗-频率数据。单击“update”按钮,可以看到改变参数后的阻抗幅值-频率图、阻抗相位-频率图。
注:ZData的第1列是频率,第2列是阻抗(复数表示)。
1.5.指定电路初始状态
1.5.1.介绍
在这一节中,你将学习:
●包含有simpowersystems模块的simulink模型图的状态变量有哪些?
●设定状态变量的初始值
1.5.
2.状态变量
包含有simpowersystems模块的simulink模型图的状态变量由以下组成:
●与simpowersystems中的RLC支路模块类型有关的电路状态。他们在模型的状态空
间描述中被定义。
●SimPowerSystems的电气simulink模型的simulink状态,例如同步机械模块,饱
和变压器模块和三相动态负载模块
●你的模型中的其他模块的simulink状态
下图给出了包含上述三种模块的一个实例。
1.5.3.初始状态
所谓初始条件,是指仿真前应用在整个系统上的各状态变量的初始值,也称作初始状态。初始状态可以在模块中设定。大多数模块允许用户在设计时指定初始状态。对于电路模型,simpowersystems可自动设置模型的初始状态,并保证开始仿真时直接进入稳态。
然而,你可以自行设定电路中的电容和电感的初始状态。
使用power_init函数也可以设定初始状态
1.5.4.使用powergui设定电路初始状态
第1步:在Matlab命令行中键入power_transient,打开标题为Transient
Analysis of a Linear Circuits的SimPowerSystems实例。重命名其中RLC支路模块第2步:从powergui模块的分析工具菜单下,选择“初始状态设定”选项,5个电路状态变量的初始值已经设定,这些初始设定能使电路一开始仿真,就为稳态。
第3步:打开scope模块,并开始仿真。
第4步:返回到第2步,试着改变某些变量的初始值,再仿真,看看结果是否发生变化。若不懂,请看在线帮助。
1.6.仿真暂态过程
1.6.1.介绍
本节你将学习到:
●怎样创建电路子系统(subsystem)
●使用断路器进行电路的暂态过程仿真
●比较不同传输线模型下的时域仿真结果
●如何离散化电路并将其仿真结果与相应的连续的可变步长算法的仿真结果相比较
1.6.
2.使用开关仿真暂态过程
simpowersystems的一个重要功能是对电路的暂态过程进行仿真。可以在电路中加入机械开关或使用功率电子开关来完成暂态过程的仿真。
首先,打开前面创建的circuit1仿真模型,删除连接到B2节点上的电流源,将新的系统另存为circuit2。在接入开关前,最好修改一下电路,simpowersystems允许用户将多个元器件组合在一起形成一个电路子系统。这一特点能使复杂电路大大简化。
使用这一特点,将源阻抗转换到一个子系统中:
(1)框选标识为Rs_eq和Z_eq的两个模块,选择“Edit-->create subsystem”
菜单命令,这两个模块变成了一个子系统模块(subsystem)(2)选择“Edit > Mask subsystem”菜单命令,改变子系统图标,在封装编辑器中的icon选项中,输入下列命令:
disp('Equivalent\nCircuit')
subsystem上就会显示相应文字。
(3)选择“Format > Show drop shadow”菜单命令,给子系统模块设置阴影。
(4)双击子系统模块,可以查看其组成。
(5)插入电路断路器(a circuit braker)
断路器是理想开关与一个小电阻串联组成的模型。关于断路器的模型说明,请参考matlab相关帮助。
按如下设置断路器的参数:
(1)打开braker模块对话框,将其参数作如下设置:
Ron 0.001 Ω
Initial state 0 (open)
Rs inf
Cs 0
Switching times [(1/60)/4]
(2)按前面的图形连接各模块
(3)打开scope U2,单击参数图标,选择“Data History”选项卡,单击“Save data to workspace”按钮,指定变量名为U2来保存仿真结果,然后将U2的格式
(format)选项设为“array”,同时,去除“Limit rows to last”选项,以
便显示整个波形。
接着,便可以仿真系统了。
1.6.3.连续、变步长积分算法Continuous, Variable Time
Step Integration Algorithms
打开“PI section Line”对话框,确认sections的数目设为1,打开“Simulation > Simulation parameters”对话框,由于你的系统包含开关,故需要一个刚性的积分算法(a stiff integration algorithm)进行仿真。在“solver”面板,选择变步长刚性积分算法(a stiff integration algorithm)ode23t。
保留其他默认参数值(如相对误差1e-3),设置仿真结束时间(stop time)为0.02秒,打开示波器(scope),开始仿真。观察示波器U1和示波器U2上的波形。
一旦仿真结束,将U2的值保存给变量U2_1,即在工作空间中执行如下命令:
U2_1 = U2;
打开PI section Line对话框,将sections的数目设为10,再次仿真,仿真结束,把U2的值保存给变量U2_2。
在将电路修改为分布参数模型之前,将系统另存为circuit2_10pi,以便以后重复使用。
用分布参数线(distributed parameter line)模块替换图中的pi段线模块,设置其相(phase)数为1。将该系统保存为circuit2_dist.
重新仿真,将U2赋给变量U2_d。
现在可比较上面三种不同模型的仿真结果了。每一个变量U2_1,U2_10,U2_d是一个两列的矩阵,第1列是时间,第2列是对应的电压值。使用下列命令在同一幅图上打印出三个波形(如图5所示)。
plot(U2_1(:,1), U2_1(:,2), U2_10(:,1),U2_10(:,2),U2_d(:,1),U2_d(:,2));
1.6.4.离散化电路系统
simpowersystems的一个重要特征是,他不仅能用连续或变步长积分算法进行仿真,而且可以使用离散化电路系统的算法进行仿真。对于小系统,变步长算法一般要比固定步长算法快,因为它需要的积分的步长的数目较少;而对于包含了许多状态和非线性模块(如功率电子开关)的大型电路系统,离散化电路系统则具有较大的优势。
当你离散化系统时,仿真的精度由时间步长控制。若使用太大的时间步长,精度可能不够。确定时间步长是否合适的唯一方法是通过改变时间步长,反复仿真,比较仿真结果。通常,对于在50Hz或60Hz的功率系统上或使用了线性整流功率电子(line-commutated power enectronic)元件(如二极管、可控硅等)的系统上进行暂态仿真,取20us-50us的时间步长一般能取得较好的仿真效果。对于使用了强制整流功率电子开关的系统,必须减小时间步长。绝缘栅极双极性晶体管(insulated-gate bipolar transistor (IGBT)),场效应管(field-effect transistor,FET),门极关断晶闸管(gate-turnoff thyristor)等工作在很高的开关频率状态下。
例如,要仿真一个工作在8Hz的脉宽调制(pulse-width-modulated ,PWM)转换器,需要设置步长大约为8us。
现在学习怎样离散化你的系统并将仿真结果同连续和离散系统做比较。打开你在前面保
存的circuit2_10pi系统,该系统包含24个电路状态和一个开关。打开powergui然后选择
离散化电路模型(discretize electrical model)。设置采样周期25e-6s。重新开始仿真,功率系统将使用Tustin方法(相应于梯形积分)并以25us采样周期进行离散化。
打开“Simulation > Simulation parameters > Solver”对话框,设置仿真时间为0.2s。启动仿真。
注:一旦系统被离散化,电路系统再无连续状态了。因此,如果你不需要变步长积分方法进行仿真,在“Simulation > Simulation parameters > Solver”对话框中,可选择Fixed-step 和discrete选项,并设定固定步长为25us
为测量仿真时间,可运行下面的命令重新仿真:
tic; sim(gcs); toc
当仿真完成后,其间所经历的时间会显示在Matlab命令行窗口。
要返回连续仿真状态,打开powergui模块,选择“continuous”选项。如果比较一下
连续仿真和离散仿真,你会发现离散仿真比连续仿真将近快3.5倍。
要比较两种仿真方法的精度,请完成下列三个仿真:
(1)仿真连续系统,Ts=0
(2)仿真离散系统,Ts=25us
(3)仿真离散系统,Ts=50us
对于每一个仿真,将U2值保存到不同的变量中,相应的为U2c,U2d25,U2d50,使用
下列命令绘制U2波形:
plot(U2c(:,1), U2c(:,2), U2d25(:,1),U2d25(:,2),
U2d50(:,1),U2d50(:,2))
从上图中,可以看出,25us的离散化系统已经非常接近连续系统了,50us有较大误差。
1.7.矢量仿真方法简介
1.7.1.介绍
本节你将学会:
●将矢量仿真方法用于简单的线性电路中
●了解该方法的优点和局限性
到目前为止,你已经学会了两种仿真电路的方法:
●使用连续simulink求解器及变步长进行仿真
●用离散化方法及固定步长进行仿真
本节介绍的是第三种方法-矢量求解法进行仿真
1.7.
2.何时使用矢量求解法
矢量求解法主要用于研究功率系统的电子机械振荡,这类系统一般由大型的发电机和电动机组成。例如,可以使用这种方法对三相系统和机械类的多机械系统进行仿真。然而,该不方法不仅仅局限在机械的暂态稳定性研究领域,完全可以拓展应用到任何线性系统上。
在一个线性电路中,如果你所感兴趣的仅仅是当开关处于关或开的状态下所有电压和电流的幅值和相位,那么,就没有必要求解由电阻、电容和电感交互作用而带来的差分方程(也即状态空间模型)。你仅仅需要求解相对而言简单得多的与电压和电流相位有关的代数方程组,这正是矢量求解法所要解决的问题。顾名思义,该方法以矢量描述电压和电流。矢量是一个复数,可以用来表示特定频率下的正弦电压和电流。矢量既可以用笛卡尔坐标(Cartesian coordinates)表示(复数的实部与虚部),也可以用极坐标(polar coordinates)表示。在忽略电路状态的情况下,矢量求解法无需特定的求解器用于求解系统的电路部分。因此仿真速度要快得多。但应始终记住,这种快速求解技术只能给出某个特定频率下的结果。
1.7.3.电路暂态过程的矢量仿真
下面你将会把矢量求解法应用到一个简单的线性电路上。打开powerlib的演示实例库,打开通用演示库(General Demos library),选择名称为“暂态分析”的示例,一个名为power_transient的系统打开了,如下图所示:
可以通过各模块参数设置对话框,看看各模块设置的参数。
(1)激活powergui 中的矢量求解法
现在,你将使用矢量求解法仿真同样的电路。这种选项可以通过打开powergui 来设定,具体设置请参考在线帮助。设定该选项后,continues 变为phasors ,在启动仿真前,还需指定输出到示波器上的信号的格式。
(2) 选择矢量信号测量的格式
双击“Voltage Measurement ”模块或“Current Measurement ”模块,可以看到有一个菜单,通过该菜单可设置矢量信号的四种输出格式:complex (复数,默认),real-imag(实部-虚部),magnitude-angle(幅度-角度),magnitude (幅度)。当你要处理的信号为复数信号时,由于示波器(scope )只能观察信号幅度,因此,这里选择“magnitude ”。
重新启动仿真,60Hz 的电压和电流的幅度显示在示波器(scope )上。从连续仿真和矢量仿真得到的波形上,可以看出他们的波形是有区别的。但他们反映了统一规律。
注意到:连续仿真情况下,电路波形状态改变出现在断路器打开时电流的下一个0点位置。而对于矢量仿真,电路波形状态改变与断路器开关时刻是同步的。
(3) 处理电压和电流矢量
“complex ”格式允许运用复数运算和矢量处理,无需将实部和虚部分离。例如,假设你要计算负载的功耗(有功功率P 和无功功率Q ),而复数功率s 可通过下式计算:
*21I U jQ P S ??=
+= 这里的I *是电流矢量的共轭复数。1/2用于将电压和电流的幅度从峰值转换为有效值。
设置电压和电流的输出值均为“complex ”格式,利用来自Simulink Math 库的模块,实现功率的测量,如下图所示:
2.高级组件和技术
2.1.功率电子简介
2.2.仿真变速发动机的控制
2.3.三相系统和机械
2.4.构建和定制非线性模型
2.4.1.介绍
SimPowerSystems提供了大量非线性元器件模型。然而,有时,你可能需要定制自己的模型并将其与SimPowerSystems提供的标准器件模型相连。定制的模型可能是一种用来模拟一段电弧或变阻器的非线性电阻,也可能是可饱和的电感,一种新的类型的发电机或电动机等等。
在本节中,你将学习如何在simulink中定制自己的非线性模型。这里以一个简单的可饱和的非线性电感和非线性电阻为例来说明。
2.4.2.一个非线性电感的建模
考虑一个工作在额定频率为fnom=60Hz、额定电压Vnom=120V RMS的2H的电感。从0-120V RMS围,电感值为一个常数:2H,当电压超过其额定电压时,电感饱和,将为0.5H,下图绘制的是该电感的非线性特征曲线,电流量(current)和磁通量(flux)的刻度为每单位(per unit),额定电压和电流被选为每单位的基准值。
流经电感的电流是磁通量ψ的非线性函数,依次,磁通量是电感两端电压的非线性函数,该关系可用下列方程描述:
dt d dt di L v ψ=?
= 或 ?=vdt ψ )
(ψψL i = 因此,该电感的非线性模型可以用一个受控电流源来描述,电流i 是电压v 的非线性函数,如下图所示:
“非线性电感的实现”一节给出了一个包含2H 非线性电感的电路,该非线性电感与两个电压源(1个120V 、60Hz 的交流电压源和一个直流电压源)和一个5欧的电阻串联。
所有用于构建非线性电感的元件都被组合在一个名为非线性电感的子系统中,电感的两端标有“in ”和“out ”。注意,第2个输出返回的是磁通量ψ,也被加到子系统中,将该输出连接到scope 模块,可以观察磁通量的变化。
该非线性模型使用了两个powerlib 模块和两个simulink 模块。这两个powerlib 模块分别是电压测量模块(用于读取电感两端的电压)和控制电流源模块(controled current source ),根据模型上的标示,该电流的箭头方向是从输入到输出。如上图所示。
两个simulink 模块分别是积分模块(用来计算来源于电压输入的得到的磁通量),和一个查表模块(look_up table )(用来描述i 和ψ的关系特征)
powerl_extra的两个Fourier(傅里叶)模块用于分析电流的基本成分和直流成分。按上图建立仿真模型,为实现i=f( ),在查表模块中指定下列两个向量。
Vector of input values (flux) [-1.25 -1 1 1.25 ] *(120*sqrt(2)/(2π*60))
Vector of output values (current) [-2 -1 1 2]*(120*sqrt(2)/(4π*60))
将你的电路保存为circuit7,为两个电源设置下面的参数:
AC source
●Peak amplitude 120*sqrt(2)
●Phase 90 degrees
●Frequency 60 Hz
DC source
●Amplitude0 V
调整仿真时间为1.5s,选择ode33tb积分算法作为默认参数,并开始仿真。仿真结果与计算一致。
2.4.
3.定制自己的非线性模型
simulink提供了一种面板(mask)工具,来为你自定的模型创建对话框,你可以一个指定下列几个提示和变量:
Nominal voltage (Volts rms):Vnom
Nominal frequency (Hz):Fnom
Unsaturated inductance (H):L
Saturation characteristic [i1(pu) phi1(pu); i2 phi2; ...]:sat
最终的结果如下图所示:
下列代码在模板初始化时准备了两个向量,Current_vect 和 Flux_vect,以用于look_up table模块。
% Define base current and Flux for pu system
I_base = Vnom*sqrt(2)/(L*2*pi*fnom);
Phi_base = Vnom*sqrt(2)/(2*pi*fnom);
% Check first two points of the saturation characteristic
if ~all(all(sat(1:2,:)==[0 0; 1 1])),
h=errordlg('The first two points of the characteristic must
be [0 0; 1 1]','Error');
uiwait(h);
end
% Complete negative part of saturation characteristic
[npoints,ncol]=size(sat);
sat1=[sat ; -sat(2:npoints,:)];
sat1=sort(sat1);
% Current vector (A) and flux vector (V.s)
Current_vect=sat1(:,1)*I_base;
Flux_vect=sat1(:,2)*Phi_base;
打开查表模块对话框,输入如下两个变量名:
Vector of input values (flux) Flux_vect
Vector of output values (current) Current_vect
关闭对话框,重新开始仿真,可得到同样的系统。
2.4.4.非线性电阻的建模
非线性电阻的建模与非线性电感的建模类似。
一个典型的例子是金属氧化物电阻器具有下列伏安特征:
α
???
? ??=00V v I i
这里 v, i =瞬时电压和电流
Vo =保护电压
Io =参考电流
α =非线性特征指数 (典型值在10-50之间)
下图显示了非线性电阻的应用。
上面的方程是一个代数方程,其在状态空间中是一个代数循环,尽管simulink 也能完成循环运算,但是会减低仿真速度,为此,通常在不改变原始非线性特征的前提下在中间加入一个一阶传递函数环节1/(1+Ts),通常取T 为较小的值,如(T=0.01us )。使用工具封装该非线性电阻模块的参数。
2.4.5.创建自己的库
simpowersystems 允许用户创建自己的模块库,要创建自己的模块库,选择“file >new library ”,一个新的simulink :Untitled 的窗口打开了。将你创建的非线性电感模块和非线性电阻模块拷贝到该窗口中,保持该库就可用了。
2.4.6.将你的模型与别的非线性模型连接起来
应当考虑电流源不能与电流源串联,电流源不能与纯电感串联,若遇到此种情况,可用考虑在电流源旁边并联一个极大的电阻。
2.4.7.使用模型构建命令创建模型
通常,不建议这样做,有兴趣的,可以参考Matlab相关帮助,下面给出一个例子:add_block('powerlib/Elements/Pi Section Line','Mymodel/Block1');
add_block('powerlib/Measurements/Voltage Measurement',
'Mymodel/Block2');
set_param('Mymodel/Block1','position',[340,84,420,106]);
set_param('Mymodel/Block2','position',[520,183,545,207]);
Block1PortHandles = get_param('Mymodel/Block1','PortHandles');
Block2PortHandles = get_param('Mymodel/Block2','PortHandles');
add_line('Mymodel',Block1PortHandles.LConn(1),
Block2PortHandles.LConn(1));
add_line('Mymodel',Block1PortHandles.RConn(1),
Block2PortHandles.LConn(2));
writeDocFeedbackSurveyLink();
3.附录
3.1.常用模块
3.1.1.阻抗测量模块(impedance mesurement block)
(1)描述
阻抗测量模块用于测量线性电路中的两个节点间的阻抗,两节点间阻抗是频率的函数。将其输入分别接到电路上的两个节点,便可以使用powergui的分析工具计算两节点间的阻抗了。该模块不改变电路的特性。
3.1.2.断路器(breaker)
(1)描述
断路器实现了一种可以通过外部或部控制电路开、关时刻的电路。该模型包含了一个串联RC缓冲器电路,可以把它连接到电路断路器上。如果断路器刚好与感性电路、开路电路或电流源串联,就必须使RC缓冲器电路连到其中。
当断路器被设为外部控制模式(external control mode),一个simulink输入就会出现在断路器的图标上,控制信号必须为0或1(0表示开关断开,1表示开关闭合)。
当断路器设为部控制模式(internal control mode),开关时刻由其参数设置对话框设定。
当断路器处于闭合状态,其等效于一个电阻Ron。Ron可以被设为很小的值(典型值为10m欧),从而与外电阻比较而言可以忽略。当断路器处于断开状态,其等效于一个无穷大的电阻。
灭弧过程是通过在控制信号由1变为0后的第一个电流为0的时刻断开断路器来模拟的。条件如下表所示。
操作条件
断路器闭合控制信号变为1(对离散系统,控制信号保持为1的时间应至少为采样周期的
3倍)
断路器断开
控制信号变为0
流过断路器的电流为0
器件。