责任编辑:万翀
基于PID算法的高精度数字化电源设计
High-Precision Digital Power Design Based on PID Algorithm
周波 祝忠明 刘勇 刘再东 成都理工大学 信息科学与技术学院(四川 成都610059)
摘要:提出了一种基于PID算法的高精度数字化电源设计方案。采用DSP和FPGA技术来做数字化PID调节,通过数字化PID算法产生PWM波来控制斩波器,达到控制主回路。从而取代传统的模拟PID调节器,使电路更简单,精度更高,通用性更强。关键词:FPGA;DSP;PID算法
DOI: 10.3969/j.issn.1005-5517.2012.3.014
系统结构设计
硬件的总体结构主要分为:外围电路部分、FPGA控制部分和DSP处理部分。
设计思路:DSP是整个系统的核心部分,完成PID算法的处理、PWM信号的给出、发同步信号给FPGA、以及程序的调度等等。由于整个系统是闭环控制系统,要求采样速率和精度相当高。本系统采用FPGA来控制ADC,这样就避免了高速采样占用DSP资源的问题,减轻了DSP的负担,DSP可以将读到的ADC信息做PID调节,从而产生PWM波来控制开关电路的开关速率,从而达到闭环控制的目的。
引言
由于数字化器件的迅速发展,有效推动了数字化电源系统的发展,对于一个简单的、固定功能的应用,模拟电源能保持较大的成本竞争力。但是对于要求灵活性或者较复杂功能的电源,数字电源不仅具有低成本竞争力并且在许多情况下可能是唯一的选择。目前在国内,采用FPGA+DSP组合同时基于PID算法来设计数字化电
源还是比较少见的,这也是本文把其作为主要研究对象的原因。
本文采用FPGA控制18位的高速高精度的AD转换器AD7678采集数字电源的电压,同时利用SPI通信协议与DSP进行数据传递,在后端DSP通过PID算法产生PWM波来控制斩波器,达到控制主回路。从而取代传统的模拟PID调节器。
图1 系统结构设计图2 调理电路
图3 AD7678的时序图图4 时序仿真
7451
2012.3www.eepw.com.cnCopyright©博看网 www.bookan.com.cn. All Rights Reserved.责任编辑:万翀
Power Management
图5 嵌入式逻辑分析结果图6 PWM控制结构图
的π型滤波器得到。只要OVDD电压大小不超过DVDD以上0.3V,AD7678就具有独立的电源供电顺序,这样就不会出现电压源的感应闭锁。而且,它在整个频带内受电源电压变化影响很小。AD7678的时序图如图3;FPGA是采用Altera公司的Cyclone系列FPGA,软件开发平台采用Altera公司的Quartus Ⅱ 6.0版本,该版本集成了强大的宏单元模块。FPGA控制模块在Quartus II下进行时序仿真,如图4所示。FPGA经过自带的嵌入式逻辑分析得到实时分析结果如图5所示。
DSP处理部分
本系统的PID算法和PWM由美国TI公司的DSP芯片TMS320C2407A实现,它是目前世界上最有影响力的主流DSP产品,TMS320C2407A内部不但有高性能的C2XX CPU内核,配置有高速数字信号处理的结构,且有单片机电机控制的外设。能较理想地满足系统设计。DSP的PWM信号(脉冲宽度调制信号)是根据某一寄存器内值的变化而变化的脉冲系列,这些脉冲系列在一系列固定周期内展开,
以确保每个周期内有一个脉冲。这些固定周期称为PWM的载波周期,PWM脉冲的宽度是根据调制信号的一系列预定值来决定和调制的,本系统是
(1)
但是在数字化开关电源中,当采样周期足够小时,同时A/D转换器要非常快,而且精度很高时,这种数值近似计算相当准确,使离散的被控过程与连续过程相当接近,基于此理论对公式(1)进行离散化得到位置
根据改变PWM波的占空比输出来调节IGBT的通断频率,从而控制输出电压电流值,PWM波输出框图如图6所示。
系统硬件平台
外围电路部分
针对不同的数字电源,信号调理电路是不一样的,本次设计是对小于5V的电压信号进行采集,如果高于5V要采用分压电路 [5] 。由于在电压信号中存在大量的高频信号(干扰),首先要对电压进行滤波处理,经典的滤波电路就是用电阻、电感、电容组成。如果信号比较小,还要经过放大等。本次设计采用差分电路对输入信号进行调理,有利于ADC对输入信号的高精度采集,还可以对ADC起保护作用,也是本次设计的优点之一,具体电路如图2所示。
FPGA控制部分
AD7678是18位、100ksps、电荷分配的完全差分逐次逼近型模数转换器。AD7678允许使用外部参考电压。本设计采用外部参考电压,用TLV431作为参考电源。TLV431是一宽低压差精密可调的分流稳压器,输出范围1.2V~6V。为了减少电源的个数,数字电压源可直接由模拟电压源通过一个简单的由磁珠和电容构成表1 模拟电源与数字电源精度比较表
PID算法研究
PID控制原理
具有比例、积分、微分三种控制作用的控制器称为比例积分微分控制器,简称PID控制器,在自动控制的发展过程中。PID控制器是生命力最强的基本控制装置,它具有原理简单、应用方便、适应强的优点,因此它被广泛地应用于生产过程中的各个领域。
PID控制器由比例调节器P、积分调节器I、微分调节器D组成,它根据系统的误差,利用比例、积分、微分计算出控制量进行控制的,其控制原理如图7所示。
图7中r(t)为设定值,一般为常数;y(t)为被控制对象的响应输出;
y(t)为y(t)采样反馈输出;e(t) 为y(t)输出与设定值r(t)的偏差。连续
型的PID控制器的动态方程为:
www.eepw.com.cn2012.3Copyright©博看网 www.bookan.com.cn. All Rights Reserved.755230
电源管理
责任编辑:万翀
式的PID算法式中kp为控制器的比例系数,Ti为积分时间,Td为微分时间。
yn=Kp[en+1Ti了系统的超调现象。对于增量式的PID算法关键就是A,B,C参数的确定[3]。
算法实现及软件设计流程在对模拟信号的采样时,随机干扰信号是不可避免的,同时在开关电源中,由于PWM的开与断,开关电路会产生高频脉冲,为了防止采样电路采集到高频脉冲信号,本文设计了一个移动平均滤波器,解决了采样时产生的误差,提高系统的采样精度,解决了脉冲干扰的问题。软件设计流程如图8所示。PID算法代码如下:
temp2=get_abs(temp) ; //取绝对值
if(temp2<0.01 ) {
adjust=0; //满足精度要求就不改变输出
}else {
uk=Ki*(temp2-ek1)+Kp*temp2+ Kd*(ek2- ek1); //计算控制增量
五入
{
uk1=uk1-1; }}
adjust=uk1 ;return adjust ;}
∑ek=0nk*T+Td(en−en−1)]+y0 T(2)
en是第n次采样周期内所获得的偏差信号;en-1第n-1次采样周期内所获得的偏差信号;T是采样周期;yn调节器第n次控制变量的输出。但是在位置式PID控制算法中,每次的输出和控制偏差都与过去整个变化过程相关,这样由于偏差的累加作用很容易产生较大的积累偏差,使控制系统出现不良的超调现象。为了解决以上问题,由公式(2)可以得出:
yn−1=Kp[en−1+
1Ti
n−1
实验结果
(1)全量程电压精度-电阻负载[4]测试电压范围从0V~25V全范围内任意抽取10个点比较。模拟电源反馈值采用4位半数字表测试,数字电源反馈值直接从上位机读出,量程对应为:2.5V~25V。测试结果如表1所示。
测试所取的点分布在三段,低电压、中间电压和高电压。从表中可以看出,对数字电源而言,全范围精度在万分之五内,高端和低端都比较线性;对于模拟电源而言,低端和高端比较差,中间段较好,但是数字电源
∑e
k=0
k
*T+Td(
en−1−en−2
)]+y0
T(3)
用公式(2)减去公式(3)经过整理就可以得到增量式的PID算法公式:
∆y=yn−yn−1=Kp[(en−en−1)+=Kp(1+
TT
*en+d(en−2en−1+en−2)]TiT2TTTTd
+)*en−Kp(1+d)*en−1+Kp*d*en−2TiTTT=A*en+B*en−1+C*en−2
(4)
其中A=Kp(1+=−Kp(1+
TTd
+), BTiTek2=ek1;ek1=temp2; uk1=(int)uk; if(uk>0) {
if(uk-uk1>=0.5) {
uk1=uk1+1; // 四舍五入 } } if(uk<0){
if(uk1-uk>=0.5) //四舍
图8 软件设计流程图7 PID控制器的原理图
2TdT
),C=Kp*d 是归一TT化系数。从以上可以看出,只要知道了现时以前的三次采样周期内的偏差信号en,en-1,en-2即可算出本次采样周期内的控制变量y的增量Δy。
通过以上分析与研究表明:采用增量式的PID算法不需要进行误差的累加
∑e
0
n
n
,这样不但减少了运算
量,而且还加少了积累偏差,避免
7653
2012.3www.eepw.com.cnCopyright©博看网 www.bookan.com.cn. All Rights Reserved.责任编辑:万翀
Power Management
结语
随着DSP和FPGA技术的发展,开关电源的控制部分正在向数字化、智
图9 数字电源与模拟电源稳定性曲线图一样,只是PID参数不一致,这个参数一般都凭经验在实际的调试过程中得出。对整个电源系统来说,控制部分是决定稳定性的一方面。功率部分还起着关键作用,比如供电电平扰动很大,那么我们可能采用恒压源+桥式电路,在控制回路前再加一级稳压源,也可能加大滤波电路等方式来处理。总而言之,要解决这些问题,基本上不是PID算法来解决,而是功率回路的设计来解决,核心还是在功率回路。因为其不在本文的重点讨论范围内,故不作深究。
参考文献:
[1] 刘和平,等.DSP原理及电机控制应用[M].北京:北京航空航天大学出版社,2006
[2] 褚振勇,齐亮,等.FPGA设计及应用[M].西安:西安电子科技大学出版社,2006
[3] 陈施华.PID控制器参数的自动整定[J].雷达与对抗,2005(3)
[4] 李夕红.基于DSP和FPGA的数字化开关电源的实用化研究[D].全国优秀硕士论文2007-10
[5] 刘勇,祝忠明,等.数字电源中基于FPGA+DSP的高精度数据采集系统设计[J].电子元器件应用,2008
[6] Altera EP1C3T144C8N Datasheet[DB].Altera,2002
只需要改变设定的参考电压就可以实现不同的电压的输出,从而增加了电源的灵活性。
(2)电压稳定度测试-电阻负载在常规条件下,对数字电源和模拟电源用6位半带存储功能的数字表做稳定性测试。测试时间10小时,每1秒取一个采样点。将采样值转化为曲线。如图9所示。
图9中蓝色为模拟电源曲线,绿色曲线为数字电源曲线。从图9中可以看出,数字电源稳定性比较好,没有出现尖峰,模拟电源经常出现尖峰。从这点表明数字电源具有很高的稳定性。
在实际应用中,对于常见的供电电平的扰动和阻性负载、感性负载或容性负载变化的问题,要达到系统的稳定性,对于PID算法本身来说都
能化、零件的共通化方向发展。依靠现代数字化控制和数字信号处理新技术,数字化开关电源有着广阔的发展前景。本文从电源的精度和稳定度出发,提出了基于PID算法的数字化电源设计,从测试结果可以看出数字化电源比传统的模拟电源具有更高的精度和稳定度,更重要的是采用了PID算法以后,使得数字化电源变得更加灵活通用。
上接48
((void *) addr);
…
ARM9芯片、工作频率为400MHz,64M的SDRAM,3.5英寸LCD屏幕以及USB接口构成,能够满足USB摄像头驱动测试的硬件要求。
驱动程序在宿主机接上USB摄像头后,能够顺利完成初始化以及探测功能,运行用户应用软件后能够顺利获取图像,长时间工作性能稳定。
在不同的时间间隔下测试摄像头的帧数情况,获取数据见表2。
由表中数据可以看出,平均帧数在11左右,能够满足视频设备采集图像的基本需求。
与USB设备之间的通信方式、USB摄像头的探测以及断开函数的设计技术以及内存映射机制,开发出了符合Video4Linux内核接口标准的设备驱动程序,通过测试数据可以看出该驱动程序能够满足嵌入式Linux环境下的视频图像采集要求。本文介绍的驱动程序的开发技术对于嵌入式Linux环境下的USB设备驱动开发有一定的借鉴意义。
参考文献:
[1] 魏永明,耿岳,钟书毅.Linux设备驱动程序[M].3版.北京:中国电力出版社,2005:10
[2] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:563
[3] 李俊.嵌入式Linux设备驱动程序开发详解[M].北京:人民邮电出版社,2008:314
[4] 陈莉君,康华,张波.Linux内核设计与实现[M].北京:机械工业出版社,2009.100
[5] 胡希明,毛德操.Linux内核源代码情景分析[M].杭州:浙江大学出版社,2001:802
[6] 陈葆珏,王旭,柳纯录,冯雪山.UNIX操作系统设计[M].北京:机械工业出版社,2007:216
}…
vma->vm_ops = &gspca_vm_ops;vma->vm_private_data = frame;gspca_vm_open(vma);…
在代码中使用vmalloc内核函数分配内存,该函数分配的虚拟地址空间在物理上可能不是连续的,但是内核却认为它们在地址上是连续的[6]。该函数是Linux内存分配机制的基础,在如何使用硬件上没有区别。
结语
测试与性能分析
嵌入式测试平台如图4,主要由
本文介绍了驱动程序与USB设备之间的关联,详细说明了系统内核
www.eepw.com.cn2012.3Copyright©博看网 www.bookan.com.cn. All Rights Reserved.775430
因篇幅问题不能全部显示,请点此查看更多更全内容