非线性模型器件的建立

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

非线性模型器件的建立理想二极管的工作特性•二极管的工作过程是当二极管在正向电压情况下处于导通状态,当二极管在反向电压情况下处于截至状态。要实现上述过程的方案有很多,在不同的情况下可以使用不同的方案。•用二极管的i-v特性曲线来描述二极管的特性就是实现二极管的一个方案。电阻方案伏安曲线方案最简单二极管的MAST模型•elementtemplatediodepm•electricalp,m•{•valvvpm•variid•staterrdiode•statenua,b•numberron=1u•numberroff=100meg•when(dc_domain|time_init){•schedule_event(time,rdiode,roff)•}•values{•vpm=v(p)-v(m)•}最简单二极管的MAST模型1•when(threshold(id,0,a,b)){•if((a==1|a==0)&b==-1){•schedule_event(time,rdiode,roff)•schedule_next_time(time)•schedule_next_time(time+1n)•}•}•when(threshold(vpm,1,a,b)){•if((a==-1|a==0)&b==1){•schedule_event(time,rdiode,ron)•schedule_next_time(time)•schedule_next_time(time+1n)•}•}最简单二极管的MAST模型2•equations{•i(p-m)+=id•id:vpm=id*rdiode•}•}返回理想二极管的特性曲线•图为二极管典型的伏安特性曲线,从图可以看出,该设备为一个非线性设备,起特征方程为•id=is•(e(vd•q)/k•T-1))•式中is与二极管型号有关的常量、q、k都是常数,T为绝对温度二极管的MAST模型•1elementtemplatediodepm=is,ic#templateheader•2electricalp,m#headerdeclarations•3numberis=1e-16,•4ic=undef•5externalnumbertemp•{#startoftemplatebody•7numberk=1.318e-23,#localdeclarations•8qe=1.602e-19,•9vt•10valvvd•11valiid•12struc{•13numberbp,inc;#Newtonsteps•14}nvd[*]=[(0,.001),(2,0)]•15parameters{#startofparameterssection•16vt=k*(temp+273.15)/qe#computethermalvoltage•17}头说明参数段局部定义牛顿步长二极管的MAST模型(1)•18values{#startofvaluessection•19vd=v(p)-v(m)#diodevoltage•20id=is*(limexp(vd/vt)-1)#diodecurrent•21}#endofvaluessection•22control_section{#startofcontrolsection•23newton_step(vd,nvd)#Newtonstepsassignedtovd•24initial_condition(vd,ic)•25start_value(vd,0.6)•26device_type(diode,example)•27small_signal(vd,voltage,p-mvoltage,vd)•28}#endofcontrolsection•29equations{#startofequationssection•30i(p-m)+=id#currentcontribut.ofdiode•31}#endofequationssection•32}初始化小信号线性化头说明•在头说明中,定义了器件的连接点和argument,其argument量为is和ic,is是器件特征方程中的量,而ic是器件的初始值。•在头说明中还出现量另一个变量,就是temp变量,该变量描述的是器件工作的环境温度,而这个温度在本模块中不能找到,该变量设置为external。返回参数段•由于temp变量获得的温度参数为0c,本模板的参数段的主要作用就是将获得的温度转换为绝对温度,用专门的参数段来处理将不会增加仿真时间,影响仿真的速度。返回局部定义•在模板体中定义量三个数值型变量和一个结构体,其中有两个数值型变量为二极管特征方程中的常量,而另一个为中间变量。定义的结构体为两个数值型成员,在定义该结构体时就对该结构体初始化。定义该结构体的目的就是要对仿真步长进行控制。返回牛顿步长控制的必要性牛顿步长的控制•采用牛顿步长控制的目的就是在跌代过程中要对特征方程中自变量的变化量进行控制,牛顿步长控制的参数都定义为一个结构体,其中的两个成员通常表示breakpoint和increment。•12struc{•13numberbp,inc;•14}nvd[*]=[(0,0.001),(2,0)]•newton_step(vd,nvd)牛顿步长的控制1•ndv[*]定义的是一个数组,该数组中的元素不确定,但其中的每一个元素都是一个结构数据。在本模板中,在定义该数组时就初始化了,因此该数组的元素为两个,每一个都是一个结构数据。•对于ndv数组和控制段中的牛顿步长控制就可以得出如下结果:当自变量在vd在0到2之间变化时,需要控制该变量的步长,其步长增益为0.001。返回二极管模板的初始化•在控制段中采用了两个初始化命令,它们是initial_condition和start_value。这两个函数的用法是相似的。initial_condition(vd,ic)和start_value(vd,ic),它们的作用都是将初始条件ic赋给变量vd,但是它们也有区别。•仿真器在作DC分析时,默认情况下是将系统中的每个节点电压赋值为0,但是如果器件中使用了start_value函数,则在作DC分析时与该器件连接的节点将满足start_value函数确定值的要求。而initial_condition函数确定的值将在整个DC分析时满足该条件。返回小信号参数•在本模板的控制段使用了小信号参数。小信号参数主要用于ssp命令提取的参数。其中的device_type(“diode”,“example”)为提取报告的名称,而small_signal为小信号提取的参数。其语法定义为:small_signal为关键词,通常情况下它是由4栏组成(也可以是5栏,在这里只讲4栏的情况)。•small_signal(ParameterNameClassificationValue)返回指数函数•在saber中有两个指数函数,一个是exp(x)函数,另一个是limexp(x)函数。Exp(x)的定义与数学上的指数函数的定义相同,而在saber中linexp(x)的定义如下:6limexp()(79)*exp()8088limexp()(110)(88)*exp(88)8888.7limexp()exp(88.7)88.7xxxxxxxxx返回非线性器件的线性化•从前面的模型可以看出,对于模拟器件的仿真而言其仿真过程就是解方程的过程,但是我们知道,如果描述器件特征的方程是非线性方程,在数学中还没有很好的有效的办法来解非线性微分方程组,在通常情况下都是将模型线性化。对于saber仿真器而言也不例外,对于非线性模型的线性化方法将作简单的讲述。非线性模型的线性化方法1•通常的方法就是给出特征方程中的点和在该点的斜率的方法。使用该方法就需要特征方程本身和特征方程的一阶导数,同时要求特征方程和其一阶导数必须连续,否则该方法可能不能发挥作用。但是对于有些模型而言,要满足这个条件是比较困难的,例如限幅模型等。非线性模型的线性化方法2•另一种解决非线性化模型的方法就是建立折线模型,用折线模型来近似的代替曲线模型。解这种方程通常只需要方程本身连续而不需要方程的一解导数连续。但是该方法建立的模型就是一个近似模型,仿真的精度完全取决于建立模型的精度,不能在仿真中提高精度非线性模型的线性化方法3•折线线性化估算模型。saber中采用的就是这个模型。它解决问题的思路与方法2相似,也是用近似的折线模型,因此它需要的是方程本身连续而不需要其一阶导数连续,但是它克服方法2中缺点。它在建立的模型时候采用的是曲线模型(精确模型)和采样点,但是它是仿真器根据精度的需要来线性化该模型。建立vsqr模型•vsqr模型可以作为一个电压源模型,其输出电压为输入电压的平方,因此这个模型是一个典型的非线性模型。vsqr的MAST模型•elementtemplatevsqripimopom•electricalip,im,op,om#headerdeclarations•{•variiout#localdeclarations•valvvin,vout•#samplepointsdefined•struc{numberbp,inc;}svin[*]=\•[(-100k,1),(-1k,.1),(10,.01),\•(0,.01),(10,.1),(1k,1),(100k,0)]•values{•vin=v(ip)-v(im)#inputvoltage•vout=v(op)-v(om)#outputvoltage•}#endofvaluessectionvsqr的MAST模型1•control_section{•sample_points(vin,svin)#samplepointsassociated•#withinputvoltage•}#endofcontrolsection•equations{•i(op-om)+=iout#currentcontribution•iout:vout=vin*vin•}#endofequationssection•}头、value段和方程段控制段小结模板的头和value段和方程段•在本模板的头中定义了4个连接点,4个连接点均为电气型,该模板中没有argument。•在模板中的value段中,定义了该模板的输入端电压和输出端电压,而其端电压变量均定义为val型变量。•该模板的方程段与其它电压型器件完全相同。但是该模板的方程段没有完全描述该器件的特征,它需要采样点。返回模板的控制段•在本模板的控制段中采用了sample_points(variable,sa_points)这种形式,这就是指定变量并且指定采样点的形式。该语法的关键词为sample_points,其中需要指定采样点的变量为variable,变量的采样值为sa_points,sa_points通常为一个数组,数组中的元素为一个结构。•采样点的指定:struc{numberbp,inc;}svin[*]其中的bp为breakpoint,而inc为breakpoint间的增量。采样点的指定规则•struc{numberbp,inc;}svin[*]=\•[(-100k,1),(-1k,.1),(-10,.01),(0,.01),\•(10,.1),(1k,1),(100k,0)]•在指定采样点时,其breakpoint点必须要过0点,并且其采样点要以0点对称。•上述svin的变化范围在-100k到100k之间,在其间增加了一些breakpoint,这主要是在各个变化区间其增益不同。采样密度•在建立模型时虽然已经指定了某个变量的采样点,但是如果在仿真时发现每个模型的精度不够或精度过于而仿真时间过长,可以在不修改模型的情况下修改其采样点,这就是修改density参数。这个参数的修改将改变采样点中的增益项,实际的增益为设置的增益/density的值。但它不会改变breakpoint的值。但

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功