内容发布更新时间 : 2024/11/19 0:40:53星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
数字PID控制器的FPGA实现与仿真
作者:许国宏 宋征 王耀磊
来源:《电脑知识与技术》2015年第11期
摘要:根据增量式PID控制器的工作原理,设计了一种基于FPGA的数字PID控制器,采用FPGA并行结构,使用自顶向下的设计方法完成了控制器的VHDL分层设计,最终实现了对控制量的精确控制。经过仿真测试表明,该设计方案有效可行,并且具有结构简单、性能可靠、控制效果良好及实用性强等优点。
关键词:PID控制器;FPGA;数字锁相环;
中图分类号:TN911.23 文献标识码:A 文章编号:1009-3044(2015)11-0229-02 FPGA Implementation and Simulation of Digital PID Controller XU Guo-Hong, SONG Zheng, WANG Yao-Lei
(China Research Institude of Radio Wave Propagation, QingDao 266107, China) Abstract: According to the working principle of incremental PID controller,a kind of Digital PID Controller based on FPGA is designed,and using the FPGA parallel structure,The top-down design methodology is used to complete the controller VHDL layered design,Finally realized the precise control of control quantity。Through simulation tests show that the design scheme is effective and feasible,and has the advantages of simple structure、reliable performance、good control effect and strong practicability etc.
Key words: PID controller; FPGA; DPLL
PID控制算法是一种简单有效的控制算法,因其有原理简单、参数可调、鲁棒性好、可靠性高、适应性强等优点,而在工业控制领域得到了广泛的应用,是目前自动化控制技术中最稳定的控制方法之一[[1]]。实现PID控制算法有很多种方法,本文采用FPGA并行结构来实现PID控制算法,FPGA最明显的优势在于集成度高,体积小,功耗低,可靠性高和电路设计比较灵活。 1 PID算法 1.1 PID算法表达式
龙源期刊网 http://www.qikan.com.cn
PID控制器的核心思想是针对控制对象的控制需求,建立描述对象动态特性的数学模型,通过PID参数整定实现在比例、微分、积分三个方面参数调整的控制策略来达到最佳系统响应和控制效果。完整的PID控制表达式如下: [u(t)=kp[e(t)+1Ti0teTdde(t)dt]]
其中,[kp]为比例增益,[Ti]为积分时间常数,[Td]为微分时间常数,[u(t)]为控制量,[e(t)]为偏差。总的来说,比例控制能引起系统迅速反应,从而减小稳态误差,但是比例放大系数的加大,会引起系统的不稳定;积分控制的作用是,只要系统有误差存在,积分控制器就不断地积累,输出控制量,以消除误差,但积分作用太强会使系统超调加大,甚至使系统出现振荡,这主要取决与积分系数的大小;微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,改善系统的动态性能[[2]]。 在数字控制系统中必须对PID滤波算法进行离散化。当采样周期足够短时,可以用求和代替积分、用后向差分代替微分,从而得到数字PID算法的实现模型[[3]]。数字增量式PID表达式如下:
[u(k)=u(k-1)+(kp+ki+kd)e(k)-(kd+2kd)e(k-1)+kde(k-2)]; 控制量增量为:
[Δu=u(k)-u(k-1)=Kae(k)+Kbe(k-1)+Kce(k-2)]
从上式可以看出增量式PID算法只与前三次采样值有关,不需要大量的数据存储和累加,因而不易引起误差累积,具有计算量小、实时性高的优点。 1.2 PID算法应用
数字锁相环系统(DPLL)由数字鉴相器、数字环路滤波器和DAC等部分组成,其中数字环路滤波器是DPLL最核心的部分,主要实现从相位误差到控制电压增量比特字的转换[[4]]。为了使数字环路滤波器具有极佳的系统响应和控制效果,PID控制算法是较好的选择,基于PID控制系统的锁相环结构如图1所示。
图1 基于PID算法的锁相环结构
锁相环系统中,数字鉴相器比较输入频率与输出频率的相位差[e(k)],作为PID控制器的输入偏差信号,在选定比例-微分-积分系数[kp]、[ki]、[kd]后经PID运算,产生偏差控制信号[u(k)],最后经过D/A转换器把数字相差转换成模拟电压信号,输出给被控对象压控恒温振荡器。
龙源期刊网 http://www.qikan.com.cn
2 PID的FPGA实现 2.1 PID的FPGA实现结构
PID算法在FPGA中可以通过串行结构、并行结构等方法实现。串行实现法结构简单,只用到一个乘法器和加法器,所需要的资源最少但速度也最慢;而并行实现方法的基本思想是以面积换取速度,其特点是拥有较快的运算速度,但所需要的资源比较多。
本次PID控制器要应用到数字锁相环系统中,所以笔者设计采用运算速度快的并行结构,用了三个加法器和三个乘法器来实现[[5]]。并行结构如图2所示,其中寄存器用于锁存偏差信号或输出信号的初始值和中间值。
图2 PID算法并行实现结构 2.2 PID参数选择
对于PID控制器来说,如何选择比例-微分-积分系数[kp]、[ki]、[kd]是设计的关键,这三个参数的选择对环路系统的动态性能、稳态性能以及稳定性都起至关重要的作用。根据控制系统对环路带宽、阻尼系数等指标的要求,以及考虑环路系统器件本身特性,可以计算选择适当的PID滤波器作为粗调参数,再通过仿真和实际调试得到进一步参数,以获得比较完善的控制曲线[[6]]。
数字锁相环系统的输入频率ui和输出频率upf在鉴相功能模块jianxiang中产生超前–滞后信号up和down,如图3所示,当ui超前upf时,up输出宽度正比于相位误差的脉宽高电压;而当ui滞后upf时,down输出宽度正比于相位误差的脉宽高电压。在量化功能模块lianghua中,计数时钟对相位误差进行数字量化并产生偏差信号[e(k)],偏差及参数产生如图4所示。根据锁相环系统对环路带宽、阻尼系数的要求,笔者选择比例-积分-微分粗调参数如下:[kp=29]、[ki=0.97]、[kd=1.07],经计算得[Ka=31.04]、[Kb=-31.14]、[Kc=1.04]。
图3 超前-滞后信号产生图
图4 偏差及参数产生图
由于FPGA只能进行整数运算,所以运算时需要将实数转换成整数,即将系数扩大N倍,最后输出时再把结果缩小N倍。本次设计选择将系数扩大[27]倍,最后对于FPGA来说,舍器弃最低7位的数据即可作为输出信号。同时,要对系数进行扩展,在系数最高位增加一个