1 / 37

用 MAST 语言建立变压器模型

用 MAST 语言建立变压器模型. 通常情况下,变压器模型有两个或多个磁耦合的线圈,在本设计建立的变压器模型为两个此耦合线圈。但是在理想情况下,变压器存在如下关系. 建立理想变压器 MAST 模型的思路. 将理想变压器的特征方程转换为 MAST 的形式即完成了该变压器模型的建立。 对理想变压器的变比可以通过网表赋值确定,也可以通过对变压器线圈匝数来确定变比。 对于变压器变比的处理通常放在模板体中的参数段进行处理。. MAST 语言中的参数段.

zeal
Download Presentation

用 MAST 语言建立变压器模型

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 用MAST语言建立变压器模型 • 通常情况下,变压器模型有两个或多个磁耦合的线圈,在本设计建立的变压器模型为两个此耦合线圈。但是在理想情况下,变压器存在如下关系

  2. 建立理想变压器MAST模型的思路 • 将理想变压器的特征方程转换为MAST的形式即完成了该变压器模型的建立。 • 对理想变压器的变比可以通过网表赋值确定,也可以通过对变压器线圈匝数来确定变比。 • 对于变压器变比的处理通常放在模板体中的参数段进行处理。

  3. MAST语言中的参数段 • 参数段是一个操作段,它是用来处理参数。并不是在每个步长中都要处理该段,只是在仿真器读输入文件时,以及改变argument只时或进行monte carlo分析处理该段。对参数段的执行是从上到下逐条执行,这与C或fortran程序相似。参数段的关键词parameters,其定义规则为: • parameters{ • statements • }

  4. 理想变压器的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

  5. 理想变压器的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}

  6. 用结构的方式实现变压器模型 • 由于变压器的功能是线圈绕组的磁耦合实现的,而一个线圈绕组通常又可以用电感元件来实现,因此变压器可以采用电感元件和互感元件。 • 由于电感元件和互感元件都已经存在,因此在编写变压器模型是就可以直接调用这些器件。这就是在编写模板时采用的网表段。网表段没有关键词,它和网表在形式上完全一致,但网表段存在于模板体中,而在写网表时不存在模板体。 网表

  7. 线性变压器模板 • 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 • }

  8. 线性变压器模板(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 • } 网表 参数段 错误信息 总结

  9. 线性变压器模板的特点 • 在头定义中使用的是element template 而不是template。 • 在头说明中说明了两个电感的端点和三个参数,这三个参数分别说明两个电感器的电感和其间的忽感。 • 在模板体中使用了网表段,这表明了在建立模型的时候可以直接引用其它已经存在模板。

  10. 线性变压器模板的网表段局部定义 • inductor.1 p1 m1 = l1 • inductor.2 p2 m2 = l2 • mutind.12 i(inductor.1) i(inductor.2) = m 变压器模板

  11. 线性变压器模板的参数段 • 设置模板参数段可以减少仿真器的仿真时间。 • 模板参数段用来确定参数的有效性。 • 可以将从网表输入的参数转换为模板需要的参数。 • 在作统计分析和相关性分析时用于指定分析参数。

  12. 参数段的执行 • 在系统初始化的时候执行一次参数段。 • 在使用alter命令时要执行参数段。在使用very分析时要使用参数段。 • 参数段的结构和value段的结构是相似的,但它们的启动方式是不同的,同时可以在参数段中设置错误信号的发送。

  13. 参数段的定义 • 在定义参数段时,需要一个关键词parameters,在关键词后加一对括号{ },参数段中的内容就放在括号内。 • 参数段具有顺序的特性,也就是说在参数段中的程序是顺序执行的。 模板

  14. 错误和警告信息 • 在MAST语言中有一系列函数用来发送模板参数错误的信息,以此来提示用户改正错误。这些函数通常返回一个包含模板实例的全路径名,并且描述发生错误的情况。其中主要包括错误信息和警告信息。错误信息将报告模板不能工作的条件,而警告信息报告的是模板的非正常情况。

  15. 错误和警告信息的定义 • 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

  16. 错误和警告信息的定义 • warning(format) • message(format )这两个函数的用法与error函数的用法相同,但是message函数将不对仿真有任何影响。 模板

  17. 变压器模型的总结 • 上述的实例都是建立变压器模型的实例,但是它们在建立变压器模型出发点不同,一个模型是以变压器本体的数学模型为基础,而另一个则是以变压器中元件的数学模型为基础,通过变压器中元件的组合来实现变压器的仿真模型。 • 一些比较复杂的对象,如果要获得对象本体的数学模型比较难,有时可能还不能获得,这时就可以建立对象器件的元件模型。

  18. 考虑铁心饱和的电抗器模型 • 电抗器的结构简图,为了不使整个程序过于复杂,在下面所建立的电抗器模型没有考虑线圈1,而只有一个线圈,同时不考虑铁心中的涡流和磁滞效益,只考虑铁心的饱和效益,同时对铁心的饱和效益也作简单的考虑。 • 铁心中的线圈也只考虑一段集中气隙。 模板头说明

  19. 器件的元件模型 • 在本电抗器的元件模型应包括铁心模型、气隙模型和线圈绕组模型,然后将这些器件组合在一起就构成了电抗器。 线圈模型 铁心模型 气隙模型 测试模型

  20. 线圈绕组模型 • 在SABER库中有一个线圈绕组模型,其图形表达方式如图所示。它有一对磁路节点和一对电气节点,将磁通路径与绕组的磁路节点相连,电流的路径与电气节点相连。当然这个线圈绕组不能反映电流在绕组中的分布情况。如果模型有进一步的要求,则需要自己建立线圈模型。 元件模型

  21. 电抗器铁心模型的要求 • 建立的铁心模型需要能够反映铁心的饱和情况,因此所建立的模型应该能用几何尺寸来描述,同时要能反映铁心的B-H曲线,当然这根B-H曲线的特性可以通过网表在使用时来确定。

  22. 铁心模块B-H曲线的简化 • 为了简单讲述其建模的过程,现对铁心的B-H曲线作如下简化。 • 通过网表设置曲线的开始饱和点(bsat),当H的绝对值小于bsat时认为整个磁化曲线为一根过零点的直线,当H值大于2倍bsat点对应的H值时,即认为已经进入深度饱和,也将磁化曲线简化为一根直线,在两直线之间用一根二次曲线来连接,磁化曲线本身和其一阶导数连续。

  23. 磁化曲线的描述 B=K1*H

  24. 铁心模板头和头说明 • 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 电抗器模型

  25. 铁心模板头和头说明(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

  26. 铁心模板的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) • }

  27. 铁心模板的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 • } • } 元件模型

  28. 铁心模板的方程段 • equations{ • f(pm->nm)+=fcore • fcore:fcore=bcore*area • bcore=bcore1 • }

  29. 气隙模板 • 磁路中的气隙就可以用一个恒磁阻模型来代替,因此建立一个恒磁阻模型就可以用来描述空气中的气隙。

  30. 气隙模板的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 • } • }

  31. 电抗器测试模型 • 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

  32. 理想运放的结构

  33. 运放模板的几个问题 • 在通常情况下,将运放的放大系数确定为无穷大,而如果运放的放大系数不为无穷大时,在许多仿真器模型中是用不同的方程来描述不同的状态,而在本模板中是采用的一个非常来描述。 • Vout = A*Vin Vin = Vout/A • 运放为三端点器件,这就决定了不可能用之路电流这种方式来描述电流系统变量,要用到单节点来描述系统电流变量。

  34. 理想运放的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

  35. 理想运放的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 • }

  36. 理想运放的MAST模板的特点 • 该器件为一个三端电气端点,同时在头说明中用到来inf这个数字。inf 和 undef这两个符号在MAST中都是数。 • 在模板的方程段中定义了一个单节点电流。

  37. 模拟器件MAST模型的特点 • 比较复杂的模型通常都采用结构模式,所谓结构模式就是在模板体中设置各个段。在目前用到的段有方程段、values段、参数段、控制段和网表段。 • 模板中的方程段是模板的核心,模板体中的其它段都是为方程段服务的。

More Related