SABER 环路计算,补偿和仿真
- 格式:pdf
- 大小:969.81 KB
- 文档页数:18
Saber 软件简介Saber软件主要用于外围电路的仿真模拟,包括SaberSketch和SaberDesigner两部分。
SaberSketch用于绘制电路图,而SaberDesigner 用于对电路仿真模拟,模拟结果可在SaberScope和DesignProbe中查看。
Saber的特点归纳有以下几条:1.集成度高:从调用画图程序到仿真模拟,可以在一个环境中完成,不用四处切换工作环境。
2.完整的图形查看功能:Saber提供了SaberScope和DesignProbe 来查看仿真结果,而SaberScope功能更加强大。
3.各种完整的高级仿真:可进行偏置点分析、DC分析、AC分析、瞬态分析、温度分析、参数分析、傅立叶分析、蒙特卡诺分析、噪声分析、应力分析、失真分析等。
4.模块化和层次化:可将一部分电路块创建成一个符号表示,用于层次设计,并可对子电路和整体电路仿真模拟。
5.模拟行为模型:对电路在实际应用中的可能遇到的情况,如温度变化及各部件参数漂移等,进行仿真模拟。
第一章用SaberSketch画电路图在SaberSketch的画图工具中包括了模拟电路、数字电路、机械等模拟技术库,也可以大致分成原有库和自定义库。
要调用库,在Parts Gallery中,通过对库的描述、符号名称、MAST模板名称等,进行搜索。
画完电路图后,在SaberSketch界面可以直接调用SaberGuide对电路进行模拟,SaberGuide的所有功能在SaberSketch中都可以直接调用。
➢启动SaberSketchSaberSketch包含电路图和符号编辑器,在电路图编辑器中,可以创建电路图。
如果要把电路图作为一个更大系统的一部分,可以用SaberSketch将该电路图用一个符号表示,作为一个块电路使用。
启动SaberSketch:▲UNIX:在UNIX窗口中键入Sketch▲Windows NT:在SaberDesigner程序组中双击SaberSketch图标下面是SaberSketch的用户界面及主要部分名称,见图1-1:退出SaberSketch用File>Exit。
世纪电源网一位版主“拒绝变帅”的帖子,基本拓扑在saber中的仿真,旨在让大家扎实基础,对全面找工作不无帮助。
先从BUCK谈起吧,如图所示:输入20V,占空比0.5,CCM模式。
基本的:开关导通时,输入电源给电感充电,同时也提供一部分能量给负载。
开关断开时,电感的能量向负载释放,此时没Vin什么事了。
仿真结果图:输出电压纹波:仿真文件:buck.rar时间:5ms 步长:1us给这个图是为了与交错buck的输出纹波进行比较。
交错的好处:1,减小输入输出纹波;2,热量分散开,易于散热;3,可以用小容量的MOS和小体积的磁芯;4,减小输出端电容;5,。
(大家补充)下面同时仿了下交错buck,两路驱动信号相位相差180°。
电路图:输出电压纹波比较:上为交错的,下为单路的,很明显,交错之后,在同样的输出电容下,具有更小的纹波,也可以看作与原来同样纹波的情况下,可以减小输出电容。
电感电流波形:从图上可以看出,电感电流波形是错开的,起到相互抵消的作用。
也相当于使纹波频率加倍,这样有利于EMI滤波器的设计,所以说交错对EMI也是好处。
交错buck仿真文件:buck2.rarbuck比较简单,也不涉及到难的问题,就先到这里。
上面仿真我取的占空比是0.5,开环仿真,这里提两个问题供讨论:1,占空比与输出纹波有什么关系?2,闭环仿真中,交错的两路是否可以共用一个控制回路,也就是说仅在产生的PWM后作处理去驱动另一路,前面共用误差放大器和比较器?下面继续BOOST电路~BOOST电路:开关NO:此时电感储能,输出电容向负载功能。
开关OFF:此时Vin和电感共同向负载提供能量。
在OFF期间,Vin也提供能量,这个是boost 与后面要说的buck-boost的关键区别。
下面是仿真,参数:Vin=20V,D=0.5,f=100kHZ,CCM模式。
输出纹波大小:上面boost的仿真原文件:boost.rar下面看看交错boost的效果,前面已介绍了交错的好处,这里不再说明了。
功率变换器计算机仿真与设计题目BUCK变换器电路设计学生姓名学号学院专业电气工程及自动化班级指导教师2013年 10月 20日一、设计要求1.1 设计指标:设计一个BUCK直流变换器,主电路拓扑如图1.1(参数需重新设置),使得其满足以下性能要求:高压侧蓄电池输入电压V in:30-60V(额定电压48V)低压侧直流母线输出电压V out:24V输出电压纹波V out(p-p):25mV输出电流I out:2A开关频率f s:200kHz电感电流临界连续时I G:0.1A12图1.1二、开环参数计算及仿真2.1 主电路参数计算:(1)高压侧输入电压V in 变化范围为30-60V ,低压侧输出电压V out 为24V ,则占空比:8.03024min max ===in out V V D 4.06024max min ===in out V V D5.04824===innom out nom V V D (2)由于输出电流I out 为2A ,故负载电阻:12outoutV R I ==Ω (3)根据电感电流临界连续时I G :0.1A ,可由下式计算得滤波电感感值:H T I U L U T I LOFF o o CCM o μμ3605)4.01(2.0242max min )min(=⨯-⨯--==⇒=∆∆(4)根据输出电压纹波V out (p-p )为25mV ,可由下式计算得滤波电容容值:uF f V I C I T C idt C V p p out ripple o p p out T 510200102582.082211133)(0)(2=⨯⨯⨯⨯==⇒==---⎰ 取F C f μ10=,其中开关频率f 为200KHZ 。
在实际器件中,电容存在寄生电阻,因此实际器件仿真时,电容的选取如下:Ω====∆⨯⨯=∙∆=∆-m 125ESR ,600C ,u 520C 25,10652.0min max pp 6uF F mVV CESR I V 取而 2.2 开关管及二极管应力计算:(1)开关管的选取功率管承受的最大电压为60V ,流过开关管电流最大值为2A ,开关管电压电流降额系数均为0.5,则开关管电压要大于或等于120V ,电流最大值要大于4A 。
第一章 SABER的建模方法研究一、前言:SABER仿真软件中的器体模型库很丰富,各种器件模型多达1万个,但它们均是一些通用的器件模型,可以满足大多数情况下的仿真需求。
但在下列三种情况下,就要自已建立模型进行仿真。
1、SABER提供的仿真模型不能满足一些特殊要求,如在进行参数扫描仿真分析时,不能将几个参数同时变化扫描进行仿真。
2、在对控制策略和系统进行仿真时,对于特定的控制算法或调节器通用软件本身不会提供现成的算法模型,此时就必须进行建模。
3、SABER提供的模型本身存在缺陷,仿真不能真实地反映电路或系统的工作情况。
如果遇到上述情况之一,为了取得较好的仿真结果和现实指导意义,建立仿真模型将不可避免。
通常建立仿真模型的方法有两种,一种是基于SABER模型库中已有的模型进行组合,将由多个器件组成的电路打包成一个器件,这种方法也称之为电路等级建模法;另一种是用MAST语言进行编写,对器件的行为进行描述,这在研究控制算法中应用较多。
下面列举实例,从这两个方面进行具体介绍建模的操作方法和思路。
二、基于电路基本器件的建模方法:电路等级建模法。
实例:在进行三相对称电路仿真时,在三相输入或输出的三根相线中串联三个电抗器La、Lb、Lc和并联三个电容进行滤波,并需要三个电抗器的电感值或三个电容值同时变化进行参数扫描分析,为了简化电路和仿真分析,可将它们组合成一个电路符号,并对三个电感和电容进行归一化处理。
1、画电路图:在SaberSketch中,将三个电感和电容接成如图1-1所示的电路。
图1-1、三相滤波电路图2、定义与外电路相连的接线端口和参数:在SABER的器件库界面下,利用关键词hierarchical查找,可以查找出四种接线端:Hierarchical Analog、Hierarchical Bidirection、Hierarchical Input、Hierarchical Output四个接线端口,它们均可放入电路图中与接线端相连,分别适用于模拟、双向、输入和输出端口。
1,知道了传递函数,如何得出bode图?2,如何测量波形的THD、PF值以及各次谐波?3,测电压、电流各种方法小结。
4,实现变压器的功能:耦合电感的用法。
(技巧分享就到此了,有什么问题可留言,推荐去看看107楼的内容)刚才Q上有人问我关于混合仿真的,这里增加个:5,控制系统与模拟系统下的混合仿真。
比如说现在要画下面传递函数的bode图:首先,在saber的搜索栏里输入“tf_rat”,出来如下图:可以选择第一个:两个串联即可,如下图:这样就实现了上面的传递函数。
这里的source需要用到控制系统下的,可搜“c_sin”,选择第一个,如下:当然了,不一定非要这个,因为可以通过接口转换来实现,这是后话。
关于tf_rat的设置如下:这样就实现了函数:1/(s+1)最后的连接图:先netlist再DC分析然后小信号分析,看下面设置:最后的bode图:至此,bode图已经画出来了,很简单哈,剩下的就是自己去分析了~这里附上上面仿的附件,方便下载。
双击轴线,AXIS ATTRIBUTE对话框里的GRID increment可以调制轴线等分间距!!路径中不能有中文,要在全英文下看波形可以放大的,选中托一下即可。
要恢复回来,按下面按钮:不错,既然你仿出来了,你再试试这个传递函数哈:怎么跟上图差不多呢关于区别,你看看:这样看就出来区别了,哈哈怎么把两个波形放在同一个图中的?讲讲波形计算器吧,比如如何把某一个电流扩大十倍,电压扩大十倍便找个简单的电流扩大十20倍的小例子这是一个电流波形,点出计算器来点击图形右侧的电流标号i(l.lr),标号呈现白色表示选中,然后在计算器光标处左键按一下,右键再按一下,至此i(l.lr)添加到计算器中了。
其次在光标处输出20*,再次输入内容的话,以前的内容自动清除,从而计算器自动生成了i(l.lr)*20,这样计算器完成了计算。
计算其中delete为删除键。
最后点击Δ左边的绿色波形图,电流扩大十倍后如下图所示在saber,常用的电容就一种,可以不分极性的,如下:,如何测量波形的THD、PF值以及各次谐波在PFC的仿真以及并网逆变中,经常需要测量波形的THD,PF值,看各次谐波的大小。
Saber软件仿真流程:今天来简单谈谈Saber软件的仿真流程问题。
利用Saber软件进行仿真分析主要有两种途径,一种是基于原理图进行仿真分析,另一种是基于网表进行仿真分析。
前一种方法的基本过程如下:a.在SaberSketch中完成原理图录入工作;b.然后使用netlist命令为原理图产生相应的网表;c.在使用simulate 命令将原理图所对应的网表文件加载到仿真器中,同时在Sketch中启动SaberGuide界面;d.在SaberGuide界面下设置所需要的仿真分析环境,并启动仿真;e.仿真结束以后利用CosmosScope工具对仿真结果进行分析处理。
在这种方法中,需要使用SaberSketch和CosmosScope两个工具,但从原理图开始,比较直观。
所以,多数Saber的使用者都采用这种方法进行仿真分析。
但它有一个不好的地方就是仿真分析设置和结果观察在两个工具中进行,在需要反复修改测试的情况下,需要在两个窗口间来回切换,比较麻烦。
而另一种方法则正好能弥补它的不足。
基于网表的分析基本过程如下:a. 启动SaberGuide环境,即平时大家所看到的Saber Simulator图标,并利用load design 命令加载需要仿真的网表文件;b. 在SaberGuide界面下设置所需要的仿真分析环境,并启动仿真;c. 仿真结束以后直接在SaberGuide环境下观察和分析仿真结果。
这种方法要比前一种少很多步骤,并可以在单一环境下实现对目标系统的仿真分析,使用效率很高。
但它由于使用网表为基础,很不直观,因此多用于电路系统结构已经稳定,只需要反复调试各种参数的情况;同时还需要使用者对Saber软件网表语法结构非常了解,以便在需要修改电路参数和结构的情况下,能够直接对网表文件进行编辑。
Sketch的使用:1.今天讨论Saber Sketch的使用。
如果我们采样基于原理图的仿真方式,那么Sketch是我们在整个仿真过程中主要操作的一个界面。
BUCK 电路的环路计算,补偿和仿真Xia Jun 2010-8-14 本示例从简单的BUCK 电路入手,详细说明了如何进行电源环路的计算和补偿,并通过saber 仿真验证环路补偿的合理性。
一直以来,环路的计算和补偿都是开关电源领域的“难点”,很多做开关电源研发的工程师要么对环路一无所知,要么是朦朦胧胧,在产品的开发过程中,通过简单的调试来确定环路补偿参数。
而这种在实验室里调试出来的参数真的能满足各种实际的使用情况吗?能保证电源产品在高低温的情况下,在各种负载条件下,环路都能够稳定吗?能保证在负载跳变的情况下收敛吗?太多的未知数,这是产品开发的大忌。
我们必须明明白白的知道,环路的稳定性如何?相位裕量是多少?增益裕量是多少?高低温情况下这些值又会如何变化?在一些对动态要求非常严格的场合,我们如何折中考虑环路稳定性和动态响应之间的关系?有的放矢,通过明确的计算和仿真,我们的产品设计才是科学的,合理的,可靠的。
我们的目标是让产品经得起市场的检验,让客户满意,让自己放心。
一切从闭环系统的稳定性说起,在自动控制理论中,根据乃奎斯特环路稳定性判据,如果负反馈系统在穿越频率点的相移为180°,那么整个闭环系统是不稳定的。
很多人可能对这句话很难理解,虽然自动控制理论几乎是所有大学工科学生的必修课,可大部分是是抱着应付的态度的,学完就忘了。
那就再给大家讲解一下吧。
等式:V out=[Vin-V out*H(S)]*G(S)公式:Vout Vin G S ()1G S ()H S ()⋅+G(S)/(1+G(S)*H(S))就称之为系统的闭环传递函数,如果1+G(S)*H(S)=0,那么闭环系统的输出值将会无限大,此时闭环系统是不收敛的,也即是不稳定的。
G(S)*H(S)是系统的开环传递函数,当G(S)*H(S)=-1时,以S=j ω带入,即获得开环系统的频域响应为G(j ω)*H(j ω)=-1,此时频率响应的增益和相角分别为:gain =‖-1‖=1angle=tan -1(0/-1)=180°从上面的分析可以看出,如果扰动信号经过G(S)和H(S)后,模不变,相位改变180°,那么这个闭环系统就是不稳定的。
但是,别忘了,这是负反馈系统,信号经过H(S)之后,本身就有180°的相移,所以,针对负反馈的闭环系统而言,其描述为:如果扰动信号经过系统主电路和反馈系统之后,其模不变,相位也不变,那么这个系统是不稳定的。
为什么相位也不变?因为G(S)*H(S)造成的180°相移和负反馈本身造成的180°相移,两者叠加之后是360°,所以等于相位不变。
什么是穿越频率?G(S)*H(S)对应的增益为1(即幅值不变)的频率即为穿越频率。
换算为dB 单位:20log1=0dB 。
理论上来说,在穿越频率点上,只要相移不是180°,那么系统就是稳定的。
但是由于模拟系统的离散性(即所有器件的特性都不是固定不变的,随时间和温度在不断的变化),如果相移很接近180°,这时闭环系统是条件稳定的,即有可能进入不稳定状态。
所以为了避免这种情况,要求在穿越频率点上,开环传递函数G(S)*H(S)的相移应该与180°保持足够的裕量。
这个裕量选取多少比较合适呢?目前在工程应用上通常选取45°,即要求传递函数G(S)*H(S)的相移应该小于135°,这是兼顾考虑环路稳定性和动态响应速度的折中值,理论上来说裕量越大越好,但过大的相位裕量会导致动态响应变慢(过阻尼特性)。
为了保证足够的相位裕量,我们希望开环传递函数的增益曲线以-1的斜率穿越0dB线。
如果开环传递函数的增益曲线在穿越频率点的斜率为-2,那么意味着有接近180°的相移,这将导致相位裕量明显不足,而如果斜率为-1,那么通常意味着相位有45°以上的裕量。
增益曲线的斜率是如何来的?主电路或反馈补偿电路中,每产生一个极点,开环传递函数的增益曲线斜率在该极点的转折频率点上就会增加-1,相反的,每产生一个零点,开环传递函数的增益曲线斜率在该零点的转折频率点上就会增加+1。
不同斜率下的相位裕量如下图所示:从上图可以看出,如果开环传递函数以-2的斜率穿越0dB线,那么相移接近180°,如果以-1的斜率穿越0dB线,那么相移接近90°。
从上图也可以看出,如果两者的穿越频率(fc)相同,那么在0Hz频率点上,-2斜率下降的开环传递函数的增益远远大于-1斜率下降的开环传递函数,这有什么意义呢?这就是静态增益,决定了输出值与给定值之间的静态误差。
假如给定值是10V,希望输出也是10V,以-1斜率下降的开环传递函数的静态增益是20dB,以-2斜率下降的开环传递函数的静态增益是40dB,两者的输出静态误差分别为:10V*(1/10)=1V,10V*(1/100)=0.1V,可见静态误差相差是多么巨大!所以,我们期望静态增益越大越好。
除此之外,开环传递函数的斜率还对动态响应有巨大影响。
假如穿越频率fc依然相同,一个开环传递函数的斜率为-1,另外一个为-2,负载从90%突然跳变到10%,那么此时的输出电压必然会从一个稳态值变化到另外一个稳态值,这中间的暂态过程称之为动态响应。
对动态响应影响最大的是穿越频率fc,我们希望fc越大越好,当然为了避免开关频率对控制环路的影响,fc必须远小于开关频率,一般取fc小于1/6的开关频率,一般的开关电源对于动态响应要求并不十分苛刻,通常fc都小于开关频率的1/10。
那么开环传递函数的斜率对于动态响应有什么影响呢?如下图所示:从上图我们看到,开环传递函数斜率为-2的情况下,输出电压呈现明显的欠阻尼振荡,输出电压快速达到下一个稳态值并过冲,随后围绕稳态值阻尼振荡。
开环传递函数斜率为-1的情况下,输出电压呈现明显的过阻尼特性,从一个稳态值缓慢的变化到下一个稳态值。
过阻尼的缓慢变化和欠阻尼的多次振荡都不是我们想要的情况,我们希望动态发生时,输出能够快速变化到稳定值,同时又不会产生反复的震荡。
那么我们可以结合上面的两种情况,对开环传递函数的斜率做出适当的变化,以达到较快的动态响应速度。
如下图所示:从上图可以看出,在(1/2)fc频率处,开环传递函数的斜率由-2变成-1,可以达到较快的动态响应,由于传递函数以-1的效率穿越0dB线,也可以获得足够的相位裕量。
同时由于从0Hz~(1/2)fc之间,开环传递函数以-2斜率衰减,可以获得很高的静态增益,从而使得静态误差非常的小。
在这里需要说明的是,考核相位裕量,只需在穿越频率点的相位裕量足够就可以了,在fc之前的相位裕量不必严格满足裕量要求。
通过上面的分析,我们已经对环路稳定性,相位裕量,动态响应有了初步的了解,下面我们就要进入实例,来初步理解如何进行环路补偿的计算和仿真。
还是从最简单的拓扑——buck电路入手吧。
CCM情况下控制(占空比d)到输出(电压V o)的小信号传递函数:这个公式是怎么来的?大多数的教材上都有推导过程,我们不需要知道如何去推导主电路的传递函数,这些已经被研究的很透彻了,我们只需要拿过来用就可以了。
在此推荐一下张兴柱博士的公司网站:,张老师已经把常用拓扑的传递函数都推导出来并放在网站上面了。
下面开始计算,mathcad,不会用的请举手,同志们,时代在进步,要跟上潮流啊!做简单的设定,输入Vg=20V,占空比0.5,输出10V,负载电阻1Ω,其他设定如下:这是一个典型的低通滤波器,低频时增益保持不变,在LC产生的双极点处(频率为1.16kHz),增益曲线以-2的斜率衰减,在电解电容的ESR产生的零点处(频率为4.5kHz),增益曲线的斜率由-2变成-1。
那么相位的变化情况如何呢?看起来还不错,电容ESR引起的零点部分抵消了LC双极点导致的相移,使得在穿越频率点上还保持足够的相位裕量:从上面的计算中,可以获得主电路传递函数G(S)的穿越频率为7.2kHz,相位裕量为62.4°。
看来我们不需要做补偿啊,穿越频率够大,在穿越频率点上传递函数增益曲线的斜率为-1,相位裕量也大于45°,只要让H(S)=1就可以保证开环传递函数G(S)*H(S)获得足够的相位裕量。
可是,静态增益实在太低了,只有26dB,我们要消除静态误差,就必须使得增益曲线从0Hz开始就以-1或-2的斜率下降,补偿是不可避免的。
下面就几种典型的补偿方式做一下介绍:1. 单极点补偿3. 单零单极补偿5. 单零双极补偿6. 双零双极补偿根据以上的各种补偿电路,我们应该选择哪一个呢?为了提高静态增益,我们需要在原点处产生一个极点,所以如果要做最简单的补偿,我们应该采用单零单极补偿电路。
假如我们希望开环传递函数G(S)*H(S)的穿越频率为10kHz,而前面计算的G(S)的穿越频率为7.2kHz,那么H(S)将把整体的穿越频率往后推延2.8kHz。
H(S)由两部分组成,一部分是我们需要设计的补偿环节K(S),另一部分是PWM的调制比,即占空比与调制锯齿波电压幅值之间的比例,称之为Fm,如下图所示:当V E=V P时,占空比为1,所以Fm=1/V P。
H(S)=K(S)*Fm,所以开环传递函数为:G(S)*K(S)*Fm。
K(S)*Fm在10kHz频率点的增益为20log(R2*Fm/R1),而G(S)在10kHz频率点的增益为:,即-3.573dB。
所以有:20log(R2*Fm/R1)=3.573假定V P=5V。
设定反馈分压电阻为Rf1=3kΩ,Rf2=1kΩ,如下图所示:在小信号分析时,运放的正极接地,由于运放正负极之间的虚短特性,运放的负极等效于接地,此时R f2被短接,R f1即为补偿网络的电阻R1,即R1=3kΩ。
据此可以求出:R2=22.6 kΩ希望补偿电路的零点频率为1/2fc,即可求出C1=4.425nF,取标准值4.7nF。
计算完成之后,让我们来看看补偿的效果吧:根据计算结果,穿越频率为10.08kHz,相位裕量为60.6°。
OK,计算完成了,结果是相当完美的,完全达到了我们的设计要求,那么仿真的情况会如何呢?会与计算吻合吗?下面就让我们通过saber的环路仿真来体验一下环路测试的效果吧。
不幸的是,我还无法实现闭环仿真来验证开环传递函数G(S)*H(S)的增益和相位曲线,幸运的是,开环仿真还是可以进行的,我们可以分别对Fm*G(S)和K(S)进行开环仿真,与计算结果进行对比和相互验证。
要实现频域的环路仿真,就必须用到saber中的环路扫描仪tdsa,它能够向环路注入频率可变的正弦波信号,通过测试反馈信号,获得两者之间的增益和相位关系。