




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于PID限制的DC-DC升压开关电源专 业:电子信息科学与技术班 级: 0310412班学号:031041202姓名:李范佩一、设计要求本课程要求设计一个基于PID限制的DC-DC升压开关电源,输入低压直流 信号,输出为高压直流信号.设计要求:1、输入1.5V直流,输出512V、30mA直流2、在额定负载惜况下,纹波的峰-峰值=30mV3、应用PID限制程序二、设计方案1、理论根底The boost converter,是一种开关直流升压电路,它可以是输出电压比输入电 压高.Figure 1: The Boost Converter在充电过程中,开关闭合三极管导通,等效电路如图二,开关三极管
2、 处用导线代替.这时,输入电圧流过电感.二极管预防电容对地放电.山于输入 是直流电,所以电感上的电流以一定的比率线性增加,这个比率跟电感大小有关. 随着电感电流增加,电感里储存了一些能量.当开关断开三极管截止时,山于电感的电流保持特性,流经电感的电流 不会马上变为0,而是缓慢的由充电完毕时的值变为0.而原来的电路已断开, 于是电感只能通过新电路放电,即电感开始给电容充电,电容两端电压升高,此 时电压已经高于输入电压了.升压完毕.说起来升压过程就是一个电感的能量传递过程.充电时,电感吸收能量,放 电时电感放出能量.如果电容量足够大,那么在输出端就可以在放电过程中保持 7一个持续的电流.如果这个通
3、断的过程不断重复,就可以在电容两端得到高于输 入电压的电压.InductorFigure 4: Inductor Curreut2、实际方案本课题采用驱动式开关升压方式,主要利用电容和电感的储能特性实现.具 体可以分为以下儿个局部.笫一个是振源,由于是开关电路,所以需要利用高频的方波信号实现三极管 的导通与截止.然后的主放大电路用来给负载端升压,需要一个三极管和一个电 感,利用电感的储能实现直流信号的输出.山于在开关闭合的瞬间,电感上会产 生巨大的瞬时电压,而且电感的充电与放电是交替进行的,所以输出不可能是一 个单纯的直流信号,那么就需要一个滤波电路把交流信号滤除.之后为了稳定输 出电压,就需
4、要一个负反应调节电路来限制主放大电路的开关.三、方框图四、具体电路设计1、 振荡电路此局部电路是山stm32单片机提供振荡源,具体程序参见附录.Tfr2O1!W8dcno. T77 ADCCHOIVAL -ADCicHOpo匚 5 ;:PIDSetK?.goPIDSetKi- 1PIDSetpoi 口仃 3POV7002、 主电路主电路就是要完成从输入到输出的升压过程,它主要山一个大功率三极管和 一个上拉电感构成,三极管主要用于配合输入的方波进行开关转换,电感的作用 是将电能和磁场能相互转换的能量转换器件,当三极管开关管闭合后,电感将电 能转换为磁场能储存起来,当三极管断开后电感将储存的磁场能
5、转换为电场能, 且这个能量在和输入电源电压叠加后通过二极管和电容的滤波后得到平滑的直流电圧提供应负载,山于这个电压是输入电源电压和电感的磁肠能转换为电能的 叠加后形成的,所以输出电压高于输入电压,即升压过程的完成.不过为了预防三极管截止时产生的过高的电压烧坏元器件,所以我们在电感 的两端并联一个电容用来吸收电压,保护元件.* D1孑 DIODE_VIRTU,o 7VIRTUALQ3BJT NPN VIRTUALDIODE VIRTU/3、滤波电路山于我们需要的输出为直流信号,但是在借助电感进行充放电的时候混入了 一些交流信号,所以需要滤波电路来帮助滤除这些交流信号.在主电路的输出上先接一个二极
6、管,这个二极管主要起隔离作用,当三极管 截止时,二极管的正极电压比负极电压低,此时二极管反偏截止,使此电感的储 能过程不影响输出端电容对负载的正常供电.当三极管导通时,两种叠加后的 能量通过二极向负载供电,此时二极管正向导通,要求其正向压降越小越好,尽 量使更多的能量供应到负载端.之后的滤波电路采用LC复式滤波电路,如果单独使用电容或电感来滤波, 可能效果不够理想,所以同时使用两个元件,利用他们对直流和交流呈现出的不 同的电抗特性,选择适宜的参数,就可以完成滤波./IRTUAL.TUALD2 /IRTUAL1 lC4+ C5:±:100hF: : : : ±470五、软件设
7、计本系统可采用开环或者闭环限制,基于输出的要求较高,本系统采用闭环控 制.而关于闭环限制,软件最好采用PID调节.PID调节器分为位置式PID和增量式PID,其区别有:1位置式PID限制的输出与整个过去的状态有关,用到了误差的累加值; 而增量式PID的输出只与当前拍和前两拍的误差有关,因此位置式PID限制的 累积误差相对更大;2增量式PID限制输出的是限制量增量,并无积分作用,因此该方法适 用于执行机构带积分部件的对象,如步进电机等,而位置式PID适用于执行机 构不带积分部件的对象,如电液伺服阀.3III于增量式PID输出的是限制量增量,如果讣算机出现故障,误动作 影响较小,而执行机构本身有记
8、忆功能,可仍保持原位,不会严重影响系统的工 作,而位置式的输出直接对应对象的输出,因此对系统影响较大.故本设讣采用增量式PID限制方法,其程序在附录中给出.7附录#以下是主要程序,其他未给岀.MAIN.C# include <stm32fl0x Jib.h>include * math.hM#include "sys.h#include "usart.h#include ' delay.lfinclude "led.hinclude "KEYhinclude "adc.h#include "joy.hinclude
9、 "lcd.hinclude pid.h#include Htimer.h°include '24cxx.hoinclude "Touch.hu32 selp:u8 p.i;int pro_conlroller(u32 x)s32 pwm = 0;PIDsetpoint(setp);PIDSetKp(p);PIDSetKi(i);PIDSelKd(5);pwm=IncPIDCalc(x);return pwm:void display_voilate(ul6 x)float temp:LCD_ShowNum( 156J10x46) 显示 ADC 的值tem
10、p=( float )x *66/4096;x=temp;LCD_ShowNum(l 56 J 3O.X.2J 6);显示电压值temp-=x:temp*=1000:LCD_ShowxNum( 18030.( u 16)temp3J 6.0X80);)void display_den(u!6 x)u 16 temp:temp=x*10/9:LCD_ShowxNum(108.90.iemp.3,16,0X80):void display_setpoint(u32 x)u8 a.b:while(AT24CXX_Check()/检测不到 24c0211a=x/5000:LCD_ShowNum(l 5
11、6.210a26): 显示电压值 b皿5000/500:LCD.ShowxNumd80,21 Obi J6,0X80);int main(void)(u32 adcx;s32 zengliang;s32 temp:ul6 den:se(p= 150000:p=80:i=l;PWM_VAL=100;Stm32_Clock_Inil(9);uart_init(72,96(K);delay_inil(72):LEDJniK);keyJnitO:joyjnit();AdcJnitO;LCDJnitO:PWMni(899.0): /PBO PWM 输出AT24CXXJnit():/IIC 初始化Touc
12、h_Init():LCD_ShowString(6030/24C02 CheckFailed!*):delay_ms(500);LCD_ShowString(6030."Please Check!H);delay_ms(500);LED0=!LED0:/DS0 闪烁POINT_COLOR=RED7/设迓字体为红色 writeStringC* 范佩制作蔦20,20,RED);LCD_ShowString(l 20.40二2021/8/8);POINT_COLOR=BLUE7/设鱼字体为蓝色LCD_ShowSlring(60,90/,den:0.000H);LCD_ShowString(
13、60J10,nADC_CH0_VAL:M);LCD_ShowString(60,130.MADC_CH0_VOL:00. 000V):LCD_ShowString(60,17O.MPIDSetKp:OOOM);LCD_ShowString(60,190.MPIDSetKi:000M);LCD_ShowString(60,210.MPIDsetpoint:00.0VM);writeStringC* 设宜电压r .60.270.RED);writeStringC* 单位34,270,RED);LCD_ShovString(l 6427O.H(V)H);LCD_ShowSlring(0.290/,+
14、0.1H);LCD3howString(40.290,M-0.1H);LCD_ShowS【ring(80290.“+05);LCD_ShowSlring(l 20.290.05);LCD.ShowStringCl60,290;*+ 1.0M):LCD_ShowString( 200.290/*-1.0M); delay_ms(500);while( 1)if(Pen_Point.Key_Sta=Key_Down)/ 触換屛被按下PenJnt_Set(O);关闭中断Convert_Pos();装换得到坐标Pen_Point.Key_Sta=Key_Up;/去掉按下标总if(Pen_Poinl,X
15、0>0&&Pen_Point.Y0>290&&Pc n_Point.X0<4 0&&Pen_Point.Y0<320)(while(PEN!=l):Pen_Int_Sel( 1):/ 开启中 断Pen_Point.Key.Sta=Key_Up;去掉按下标志setp=setp+500:if(Pen_Point.X0>4 0&&Pen_Point.Y0>290&&Pen_Point.X0<80&&Pen_Point.Y0<320)while(PEN!=l)
16、;Pen_Int_Set( 1);/ 开启中断Pen_Point.Key_Sta=Key_Up; 去掉按下标志setp=setp-500:if(Pen_Point.X0>80&&Pen_Point.Y0>290&&Pen_Point.X0<120&&Pen_Point.Y0<320)while(PEN!=l);Pen_Int_Set( 1);/ 开启中断Pen_Point.Key_Sta=Key_Up; 去掉按下标志selp=setp+25OO:)if(Pen_Point.X0>120&&Pen_Po
17、int.Y0>290&&Pen_Point.X0<160 &&Pen_Point.Y0<320) while(PEN!=l);Pen_Int_Set( 1):/ 开启中 断Pen_Point.Key_Sta=Key_Up;去掉按下标志setp=setp-2500:if(Pen_Poinl.X0>160&&Pen_Point.Y0>290&&Pen_Point.X0<200&&Pen_Point.Y0<320)(while(PEN!=l);Pen_Int_Set( 1):/
18、开启中 断Pen_Point.Key_Sta=Key_Up;去掉按下标志setp=setp+5000:if(Pen_Poinl.X0>200&&Pen_Point.Y0>290&&Pen_Point.X0<240&&Pen_Poinl.Y0<320)(while(PEN!=l):Pen_Int_Sel( 1):/ 开启中Pcn_Poim.Key_S【a=Key_Up:去掉按下标志setp=setp-5000:)while(PEN!=l);Pen_Int_Set( 1);开启中断Pen_Point.Key_Sta=Key_U
19、p:去掉按下标志display_setpoint(setp);adcx=Gel_Adc_Average(ADC_CH9.30):/PB1 口,adc 通道 8 display_voilate(adcx): adcx=adcx *330000/4096; zengliang=pro_controller(adcx): temp=(s32 )PWM_VAL: if(temp+zengliang/l 00000)<0) PWM_VAL=50;else if(PWM_VAL>8OO)PWM_VAL=7()O: elsePWM_VAL=PVM_VAL+(zengliang/100000):d
20、en=PWM_VAL:display_den(den):LCD_ShowNum(l 3270.p.36);LCD.ShowNumd 3290.i.3 16):LCD_ShowNum(60230den.36);PID.C#includeMpid.hHstatic PID spid;static PID *sptr = &spid:欢*康拿底* 康* * 4c*木 * 宅 * 木 * *<( *康* * 康 <t * 京* 水康 *水增虽:式PID函数说明:void PIDInit(void)入口参数:无* 计 算 公 式:u(n)=Kp*e(n)-e(n-l)+Ki*e(n)
21、+Kd*|e(n)-2e(n-l )+e(n-2)功能:初始化PID各参数返回值:无*巾*木方*木*木*欢*木*冰増虽式PID算法 uk的变化址=kp*ek-ki*e(k-l )+kd*e(k-2)*康*水康*水康*/*/PID算法的数据结构*/lypedef struct PIDint setpoint;long sumerror;double kp;double ki:void PIDInit(void)sptr->selpoint = 0:sptr->sumerror = 0:sptr->kp = 0:sptr->ki = 0:sptr->kd = 0;sp
22、tr->lasterror = 0; /error|-lsptr->preverror = 0: /error卜2double kd;int laslerror:int preverror:/* 貳* 康車水* 康*<<* 冰* *PID;17函数说明:PIDsetpoinKint setpoint)入口参数:int setpoint功能:设宜目标值返回值:无*木貳*方*康*杯*杠*/功能:设定kp返回值:无*木*木*察*void PIDSetKp(double kp)sptr->kp = kp:void PIDsetpoint(u32 setpoint)/*/*
23、sptr->setpoint = setpoint;*函数说明:int PIDGetsetpoint(void)入口参数:无功能:读回设定的目标值返回值:设定的目标值*康木穴*咸*函数说明:double PIEXjetKp(void)入口参数:无功能:读回设定的kp返回值:设定的kp*巾*方*水車*康*冰*巾*double PIDGetKp( void)return (sptr->kp);int PIDCietsetpoint( void) return (splr->setpoini);/*床*水木*木*康*减*/ 察*水木*木*琢*木*函数说明:void PIDSetKp(double kp)入口参数:在増址式PID里.kp表示:函数说明:void PIDSetKi(double ki)入口参数:在增虽式PID里,ki表示:ki=kp*(l+2*Td/T)kp=kp*(l +T/Ti+Td/T)功能:设定ki返回值:无*电*康*冰康*/*木*拿*球*木*欢*木方*“*/void PIDSetKi(double ki)sptr->ki = ki:void PIDSetK
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶保养考试题及答案
- 2025年军队文职人员招聘之军队文职法学考前冲刺试卷A卷含答案
- 小升初科学测试题及答案
- 2019-2025年消防设施操作员之消防设备基础知识能力检测试卷B卷附答案
- 2019-2025年消防设施操作员之消防设备基础知识模考模拟试题(全优)
- 2019-2025年消防设施操作员之消防设备基础知识基础试题库和答案要点
- 社保知识培训课件北京
- 语文小说文本解读技巧训练教案:以小说围城为例
- 办公室人员基本信息表
- 写作技巧大揭秘:高中语文作文指导课程教案
- 2025年共青科技职业学院单招职业适应性测试题库完整版
- 2025年上半年潜江市城市建设发展集团招聘工作人员【52人】易考易错模拟试题(共500题)试卷后附参考答案
- 统编版语文二年级下册15古诗二首 《晓出净慈寺送林子方》公开课一等奖创新教学设计
- 旅游电子商务(第2版) 课件全套 周春林 项目1-8 电子商务概述-旅游电子商务数据挖掘
- 2025年安徽警官职业学院单招职业适应性测试题库带答案
- 广东广东省钱币学会招聘笔试历年参考题库附带答案详解
- 2025年福建省中职《英语》学业水平考试核心考点试题库500题(重点)
- 【课件】自然环境课件-2024-2025学年七年级地理下册人教版
- 2025年河北省职业院校技能大赛智能节水系统设计与安装(高职组)考试题库(含答案)
- 2025-2030年中国蒸发器冷凝器行业发展状况及前景趋势分析报告
- 2024年江西环境工程职业学院高职单招语文历年参考题库含答案解析
评论
0/150
提交评论