基于PID控制方式10A开关电源MATLAB仿真研究.doc

基于PID控制方式10A开关电源MATLAB仿真研究.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于PID控制方式10A开关电源MATLAB仿真研究

基于PID控制方式的10A开关电源MATLAB 仿真研究 学院:电气与光电工程学院 专业:电气工程及其自动化 班级: 一、绪论 Buck变换器最常用的变换器,工程上常用的拓扑如正激、半桥、全桥、推挽等也属于Buck族,其优点有输出电流纹波小,结构简单,变比可调,实现降压的功能等。然而其输出电压纹波较大,buck电路系统的抗干扰能力也不强。为了使某个控制对象的输出电压保持恒定,需要引入一个负反馈。 就一个实际系统而言,对于负载的突变、输入电压的突升或突降、高频干扰等不同情况,需要系统能够稳、准、快地做出合适的调节,这样就使问题变得复杂了。所以,开关调节系统设计要同时解决稳、准、快、抑制干扰等方面互相矛盾的稳态和动态要求,这就需要一定的技巧,设计出合理的控制器,用控制器来改造控制对象的特性。 常用的控制器有比例积分(PI)、比例微分(PD)、比例-积分-微分(PID)等三种类型。PD控制器可以提供超前的相位,对于提高系统的相位裕量、减少调节时间等十分有利,但不利于改善系统的控制精度;PI控制器能够保证系统的控制精度,但会引起相位滞后,是以牺牲系统的快速性为代价提高系统的稳定性;PID控制器兼有二者的优点,可以全面提高系统的控制性能,但实现与调试要复杂一些。本次设计就采用PID控制方式。 二、Buck变换器主电路设计 2.1技术指标图 输入直流电压(VIN):10V; 输出电压(VO):5V; 输出电流(IN):10A; 输出电压纹波(Vrr):50mV; 基准电压(Vref):1.5V; 开关频率(fs):100kHz. 设计主电路以及校正网络,使满足以上要求。 2.2 电容参数计算 输出电压纹波只与电容C和电容等效电阻有关 趋于常数,约为,此处取 可得: 2.3 电感参数计算 由基尔霍夫电压定律可知开关管导通关断满足下列方程 假设: 其中L中串联电阻 可得: (取) 由matlab仿真,得图2,可知当取时,电感电流在8.05A-9.85A之间脉动,符合的要求 三、补偿网络设计 3.1 交流小信号模型中电路参数计算 占空比 极点角频率 极点频率 品质因数 其中 假设:PWM锯齿波幅值 采样电阻; 则采样网络传递函数 直流增益 3.2采用小信号模型分析 buck变换器原始回路增益函数 用matlab画出的的波特图: 相位裕度:40.9° 穿越频率:1.49kHz 根据要求相位裕度应达到50°-55° 穿越频率提升到(即10kHz-20kHz) 均不满足,需要加入补偿网络使其增大穿越频率和相位裕度,使其快速性和稳定性增加。 MATLAB的程序: num=[2]; den=[3.91e-8 2.6e-5 1]; g=tf(num,den); margin(g); 3.3 PID补偿网络设计 为了提高穿越频率,设加入补偿后开环传递函数的穿越频率是开关频率的十分之一,即。 所以使用PID调节,PID环节是将偏差的比例(P)、积分(I)、微分(D) 环节经过线性组合构成控制器。 如图: PID的传递函数为: 式中,,, 假设:期望的相位裕度; 穿越频率 补偿网络零点频率 补偿网络极点频率 则: 求PID补偿网络直流增益: 在这里,引入倒置零点的目的是改善开环传递函数的低频特性。但是又不希望因增加了倒置零点而改变开环传递函数的中、高频特性。假设选择的倒置零点的频率为穿越频率的二十分之一,则有 ; 那么,在比大的频率段,增加了倒置零点未改变开环传递函数的特性,穿越频率仍为,PID 补偿网络传递函数 MATLAB的程序: num=conv(4.7e6,[1 2.4e4 6.7e7]); den=conv(2.1e4,[1 1.8e5 0]); g=tf(num,den); margin(g); 3.4加PID补偿网络后的传递函数 MATLAB的程序: num=[ 2]; den=[3.91e-8 2.6e-5 1]; g=tf(num,den); num1=conv(4.7e6,[1 2.4e4 6.7e7]); den1=conv(2.1e4,[1 1.8e5 0]); g1=tf(num1,den1); g2=series(g,g1); margin(g);hold on;

您可能关注的文档

文档评论(0)

tmd2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档