380 likes | 713 Views
用 MAST 语言建立变压器模型. 通常情况下,变压器模型有两个或多个磁耦合的线圈,在本设计建立的变压器模型为两个此耦合线圈。但是在理想情况下,变压器存在如下关系. 建立理想变压器 MAST 模型的思路. 将理想变压器的特征方程转换为 MAST 的形式即完成了该变压器模型的建立。 对理想变压器的变比可以通过网表赋值确定,也可以通过对变压器线圈匝数来确定变比。 对于变压器变比的处理通常放在模板体中的参数段进行处理。. MAST 语言中的参数段.
E N D
用MAST语言建立变压器模型 • 通常情况下,变压器模型有两个或多个磁耦合的线圈,在本设计建立的变压器模型为两个此耦合线圈。但是在理想情况下,变压器存在如下关系
建立理想变压器MAST模型的思路 • 将理想变压器的特征方程转换为MAST的形式即完成了该变压器模型的建立。 • 对理想变压器的变比可以通过网表赋值确定,也可以通过对变压器线圈匝数来确定变比。 • 对于变压器变比的处理通常放在模板体中的参数段进行处理。
MAST语言中的参数段 • 参数段是一个操作段,它是用来处理参数。并不是在每个步长中都要处理该段,只是在仿真器读输入文件时,以及改变argument只时或进行monte carlo分析处理该段。对参数段的执行是从上到下逐条执行,这与C或fortran程序相似。参数段的关键词parameters,其定义规则为: • parameters{ • statements • }
理想变压器的MAST模型 • element template ideal_transformer p1 p2 s1 s2=ratio,n1,n2 • electrical p1,p2,s1,s2 • number ratio=1 • number n1=0 • number n2=0 • { • number ref • var i ip,is • val v vp,vs
理想变压器的MAST模型(1) • parameters{ • if(n1==0|n2==0) then ref=ratio • else ref=n1/n2 • } • values{ • vp=v(p1)-v(p2) • vs=v(s1)-v(s2) • } • equations{ • i(p1->p2)+=ip • i(s2->s1)+=is • ip: ip=is/ref • is: vp=vs*ref}
用结构的方式实现变压器模型 • 由于变压器的功能是线圈绕组的磁耦合实现的,而一个线圈绕组通常又可以用电感元件来实现,因此变压器可以采用电感元件和互感元件。 • 由于电感元件和互感元件都已经存在,因此在编写变压器模型是就可以直接调用这些器件。这就是在编写模板时采用的网表段。网表段没有关键词,它和网表在形式上完全一致,但网表段存在于模板体中,而在写网表时不存在模板体。 网表
线性变压器模板 • element template xformer p1 m1 p2 m2 = l1, l2, k • electrical p1, m1, p2, m2 • number l1, l2, k = 1 • { # start body of template • number m # local declaration • parameters { # start parameters section • if (k < -1 | k > 1) { • error("%:coupling factor must be between -1 and 1:k=%", • instance(), k) # if error, display message • # and terminate simulation • }
线性变压器模板(1) • else { • m = k * sqrt(abs(l1 * l2)) • # otherwise, compute mutual • # inductance • } • } • # Use following netlist to make a transformer from • # two mutually-coupled inductors • inductor.1 p1 m1 = l1 # inductor netlist entry • inductor.2 p2 m2 = l2 # other inductor netlist entry • mutind.12 i(inductor.1) i(inductor.2) = m • # mutual inductance netlist entry • } 网表 参数段 错误信息 总结
线性变压器模板的特点 • 在头定义中使用的是element template 而不是template。 • 在头说明中说明了两个电感的端点和三个参数,这三个参数分别说明两个电感器的电感和其间的忽感。 • 在模板体中使用了网表段,这表明了在建立模型的时候可以直接引用其它已经存在模板。
线性变压器模板的网表段局部定义 • inductor.1 p1 m1 = l1 • inductor.2 p2 m2 = l2 • mutind.12 i(inductor.1) i(inductor.2) = m 变压器模板
线性变压器模板的参数段 • 设置模板参数段可以减少仿真器的仿真时间。 • 模板参数段用来确定参数的有效性。 • 可以将从网表输入的参数转换为模板需要的参数。 • 在作统计分析和相关性分析时用于指定分析参数。
参数段的执行 • 在系统初始化的时候执行一次参数段。 • 在使用alter命令时要执行参数段。在使用very分析时要使用参数段。 • 参数段的结构和value段的结构是相似的,但它们的启动方式是不同的,同时可以在参数段中设置错误信号的发送。
参数段的定义 • 在定义参数段时,需要一个关键词parameters,在关键词后加一对括号{ },参数段中的内容就放在括号内。 • 参数段具有顺序的特性,也就是说在参数段中的程序是顺序执行的。 模板
错误和警告信息 • 在MAST语言中有一系列函数用来发送模板参数错误的信息,以此来提示用户改正错误。这些函数通常返回一个包含模板实例的全路径名,并且描述发生错误的情况。其中主要包括错误信息和警告信息。错误信息将报告模板不能工作的条件,而警告信息报告的是模板的非正常情况。
错误和警告信息的定义 • error(format) • format 为希望发出的信息,它是字符串,字符串要用“ ”,发出的信息是“ ”间的内容而不包括“ ”,在字符串中的%后的量为被取代的量,它将为该函数中的变量取代。 • error("%:coupling factor must be between -1 and • 1:k=%",instance(),k) • xformer.bad a b c d = 1m, 2m, 2 • xformer.bad:coupling factor must be • between -1 and 1:k=2
错误和警告信息的定义 • warning(format) • message(format )这两个函数的用法与error函数的用法相同,但是message函数将不对仿真有任何影响。 模板
变压器模型的总结 • 上述的实例都是建立变压器模型的实例,但是它们在建立变压器模型出发点不同,一个模型是以变压器本体的数学模型为基础,而另一个则是以变压器中元件的数学模型为基础,通过变压器中元件的组合来实现变压器的仿真模型。 • 一些比较复杂的对象,如果要获得对象本体的数学模型比较难,有时可能还不能获得,这时就可以建立对象器件的元件模型。
考虑铁心饱和的电抗器模型 • 电抗器的结构简图,为了不使整个程序过于复杂,在下面所建立的电抗器模型没有考虑线圈1,而只有一个线圈,同时不考虑铁心中的涡流和磁滞效益,只考虑铁心的饱和效益,同时对铁心的饱和效益也作简单的考虑。 • 铁心中的线圈也只考虑一段集中气隙。 模板头说明
器件的元件模型 • 在本电抗器的元件模型应包括铁心模型、气隙模型和线圈绕组模型,然后将这些器件组合在一起就构成了电抗器。 线圈模型 铁心模型 气隙模型 测试模型
线圈绕组模型 • 在SABER库中有一个线圈绕组模型,其图形表达方式如图所示。它有一对磁路节点和一对电气节点,将磁通路径与绕组的磁路节点相连,电流的路径与电气节点相连。当然这个线圈绕组不能反映电流在绕组中的分布情况。如果模型有进一步的要求,则需要自己建立线圈模型。 元件模型
电抗器铁心模型的要求 • 建立的铁心模型需要能够反映铁心的饱和情况,因此所建立的模型应该能用几何尺寸来描述,同时要能反映铁心的B-H曲线,当然这根B-H曲线的特性可以通过网表在使用时来确定。
铁心模块B-H曲线的简化 • 为了简单讲述其建模的过程,现对铁心的B-H曲线作如下简化。 • 通过网表设置曲线的开始饱和点(bsat),当H的绝对值小于bsat时认为整个磁化曲线为一根过零点的直线,当H值大于2倍bsat点对应的H值时,即认为已经进入深度饱和,也将磁化曲线简化为一根直线,在两直线之间用一根二次曲线来连接,磁化曲线本身和其一阶导数连续。
磁化曲线的描述 B=K1*H
铁心模板头和头说明 • element template core_bh_cont pm nm = slop1,slop2,bsat,area,len • magnetic pm,nm • number slop1=0.065/5 • number slop2=0.000166/5 • number bsat=1.67 • number area=0.12206 • number len=0.9 电抗器模型
铁心模板头和头说明(1) • var bsi bcore • var f fcore • val mmf mmfcore • val nu mmfval • val bsi bcore1 • number knee=bsat/slop1 • number a=(slop2-slop1)/(2*knee) • number b=slop1-2*a*knee • number c=bsat-a*knee**2-b*knee • number bl_1=4*knee**2*a+2*knee*b+c
铁心模板的value段 • values{ • mmfcore=mmf(pm)-mmf(nm) • mmfval=mmfcore/len #20 • if(abs(mmfval)<knee){ • bcore1=mmfval*slop1 • } • if(mmfval>2*knee){ • bcore1=bl_1+slop2*(mmfval-2*knee) • }
铁心模板的value段(1) • if((mmfval>=knee)&(mmfval<=2*knee)){ • bcore1=a*mmfval**2+b*mmfval+c • } #30 • if(mmfval<(-2*knee)){ • bcore1=-bl_1+slop2*(mmfval+2*knee) • } • if((mmfval<=(-knee))&(mmfval>=(-2*knee))){ • bcore1=-a*mmfval**2+b*mmfval-c • } • } 元件模型
铁心模板的方程段 • equations{ • f(pm->nm)+=fcore • fcore:fcore=bcore*area • bcore=bcore1 • }
气隙模板 • 磁路中的气隙就可以用一个恒磁阻模型来代替,因此建立一个恒磁阻模型就可以用来描述空气中的气隙。
气隙模板的MAST模型 • element template reluct pm mm = reluctance • magnetic pm,mm • number reluctance • { • var f flux • val mmf d • values{ • d=mmf(pm)-mmf(mm) • } • equations{ • f(pm->mm)+=flux • d=flux*reluctance • } • }
电抗器测试模型 • number amp=50,freq=1k,ph0=0 • vsine.v1 p:sea m:0=ph=ph0,f=freq,ampl=amp • number nwind=100,rwind=1 • wind.winda ep:sea em:0 mp:mmf_p mm:0=n=nwind,r=rwind • number area_cs=0.005*0.005 • number length=0.04 • number bsat_start=1 • number slope_lin=0.00804 • number slope_sat=slope_lin/1500 • core_bh_cont.core pm:mmf_p nm:core_end=area=area_cs,len=length,bsat=bsat_start,slop1=slope_lin,slop2=slope_sat • number gap_length=0.001 • number reluct=gap_length/(4*3.14*0.1u*area_cs) • reluct.air_gap pm:core_end mm:0=reluct
运放模板的几个问题 • 在通常情况下,将运放的放大系数确定为无穷大,而如果运放的放大系数不为无穷大时,在许多仿真器模型中是用不同的方程来描述不同的状态,而在本模板中是采用的一个非常来描述。 • Vout = A*Vin Vin = Vout/A • 运放为三端点器件,这就决定了不可能用之路电流这种方式来描述电流系统变量,要用到单节点来描述系统电流变量。
理想运放的MAST模型 • element template opamp ip im out = a • electrical ip, im, out # header declarations • number a = inf • { # start of template body • var i iout # local declarations • number x1, x2
理想运放的MAST模型1 • parameters { • if (a==inf | a==undef) { # if gain is infinite • x1=1; x2=0 # or undefined, then input • } # voltage is 0; • else { # otherwise, output voltage • x1=a; x2=1 # is gain times input voltage • } # end of parameters section • equations { # start of equations section • i(out) += iout # current contribution at output • iout: x1 * (v(ip) - v(im)) = x2 * v(out) • # equation associated with iout • } # end of equations section • }
理想运放的MAST模板的特点 • 该器件为一个三端电气端点,同时在头说明中用到来inf这个数字。inf 和 undef这两个符号在MAST中都是数。 • 在模板的方程段中定义了一个单节点电流。
模拟器件MAST模型的特点 • 比较复杂的模型通常都采用结构模式,所谓结构模式就是在模板体中设置各个段。在目前用到的段有方程段、values段、参数段、控制段和网表段。 • 模板中的方程段是模板的核心,模板体中的其它段都是为方程段服务的。