基于FPGA的增量式PID智能湿度控制器的设计
2014-11-10彭灿琼刘刚董胡
彭灿琼++刘刚++董胡
摘 要:该设计运用增量式PID算法在FPGA内实现智能湿度控制系统中的控制核心模块。增量式PID算法相比传统的PID算法具有计算误差对控制量影响小,手动自动无冲击切换,可靠性高等优点。且基于FPGA进行硬件电路设计方法相比对单片机采用软件编程的方法来实现PID控制在控制精度、速度、稳定性等多个方面具有不可比拟的优势。
关键词:FPGA 增量式PID控制 湿度控制
中图分类号:TP273 文献标志码:A 文章编号:1674-098X(2014)05(a)-0041-02
随着社会的发展,湿度作为一个重要的环境参数,人们逐渐意识到湿度标准对人体健康和生产车间工艺水平的影响和重要性。特别是一些高标准的实验室和生产车间(如半导体芯片车间)都需要恒湿环境下工作。本设计采用先进的PID控制算法理论,基于FPGA平台,采用Verilog HDL语言和原理图混合设计性能优越的湿度控制器。模拟PID因其结构灵活,鲁棒性好,可靠性高而成为应用最广泛的一种控制方法[1]。但自从计算机进入控制领域以来,特别是单片机等微处理器的发展,采用软件编程的方法实现数字PID控制器来取代模拟PID控制器已广泛应用于多个不同的控制领域。这种方法虽然有控制灵活,修改方便等优点,但是同时带来了稳定性和可靠性不高,精度和速度不高等缺点。而FPGA因其体积小,集成度高,运用EDA技术在FPGA内部设计硬件电路的特点,不仅继承了前种方法的优点,同时还具有单片机不可比拟的控制精度和速度以及较高的稳定性[2]。在整个控制系统中核心和关键点就是PID控制算法的实现,其直接关系着该湿度控制系统的性能。基于此,本设计在分析传统PID工作原理的前提下,结合FPGA的特点,运用改进的增量式PID算法进行设计和实现。
1 增量式PID控制器原理
1.1 模拟PID控制
PID控制在模拟控制系统中依然占据着重要的位置。常规的模拟PID控制系统原理结构图如图1所示。
所调PID控制,就是一种对偏差进行比例(P)、积分(I)、微分(D)变换的控制规律。PID控制器根据给定值r(t)与实际输出值y(t)构成控制偏差:
(1)
u(t)作为控制系统中的中间变量,即是偏差e(t)通过PID控制算法处理后的输出量,又是被控对象的输入量,因此模拟PID控制器的控制规律为: [3]
(2)
其中,KP为模拟控制器的比例增益,TI为模拟控制器的积分时间常数,TD为模拟控制器的微分时间常数。
1.2 传统离散PID算法
FPGA为数字芯片,只能对数字信号进行处理,无法实现对模拟PID的控制,需要将模拟PID离散化,根据采样时刻的偏差来实现PID算法,因此式(2)中的微分和积分项两项内容需要作离散化处理。将模拟PID算法转化成离散PID控制算法,假设T为采样周期,则可作如下变换:
(3)
(4)
(5)
将式(3)、式(4)、式(5)带入式(2)后,那么转换后离散PID算法为:
(6)
式中k为采样序号;为比例系数;令为积分常数;为微分常数。则式(6)变为:
(7)
式(7)为位置式离散PID算法表达式。
1.3 增量式PID控制算法
增量型算法就是对位置型算法取增量,可由式(7)得到数字PID增量型控制算式,按照递推原理得:
(8)
用式(7)减去(8),可得:[4]
(9)
令;;则式(9)变为:
(10)
式(10)为增量式PID控制算法表达式。
通过比较分析得知在控制参数相同的情况下增量式的PID控制算法相比于传统的PID控制具有响应速度更快,超调量更小的优点。本设计就是采用增量式的PID控制算法来完成控制的。
2 增量式PID控制器的FPGA设计与实现
综合设计要求和设计难度,本设计采用并行结构来实现增量式PID控制器,根据式(10)得出该PID控制器的系统结构框图如图2所示。
该结构与其他结构相比不仅减少了乘法器和加法器,使其节省了FPGA的内部资源,电路简单,而且速度快,稳定可靠性高。
根据图2结构,在FPGA内部采用自顶向下的设计方法,整个系统分为偏差产生模块,参数乘法模块,并行加法模块三个子模块。最后把其三个子模块综合成顶层模块,顶层模块采用原理图设计方法,顶层模块电路结构图如图3所示。
各个子模块如下所述。
2.1 偏差产生模块
该模块主要是完成产生设定值r(k)与经过A/D采样后的反馈值y(k)之间的偏差值e(k)以及前一次偏差值e(k-1)和前两次的偏差值e(k-2)。本设计采用Verilog HDL语言描述,由于偏差值可能为负数,所以在程序中对r(k)、y(k)进行位扩展,然后再进行按位取反加1的补码加法运算,部分代码为always@(posedge clk)begin temp1<={rk[7],rk}; emp2<=~{yk[7],yk}+1;ek0<= temp1+temp2;ek1<=ek0;ek2<= ek1;end。e(k-1)和e(k-2)则通过控制时钟上升沿设计寄存器完成产生输出。经仿真测试,仿真数据完全符合设计需求。
2.2 参数乘法模块
该模块首先根据阶跃响应特性以及实际经验,采用扩充响应曲线法得到PID控制算法所必须的KP、KI、KD三个参数。然后再根据A=KP+KI+KD,B=-(KP+2KD),C=KD分别计算出系数A,B,C。最后利用FPGA内部乘法器的IP核来完成本设计所要求的有符号乘法运算。
设计完后,经仿真测试验证正确。
2.3 并行加法模块
最后就是完成把三个乘积量相加,同理运用并行加法器宏模块来完成该模块。这样就不必编写程序设计并行加法器来完成该子模块的设计。这种方法不仅设计快而且性能稳定可靠。
各个子模块设计完后,再形成完整的增量式PID控制系统,最终系统仿真图如图4所示,经过反复验证,该设计正确有效。
3 结语
本设计是在详细分析增量式PID算法的基础上,运用现代的EDA技术,基于altera公司的Cyclone II EP2C5Q208C8芯片,进行分模块设计与实现。经过仿真测试和板级调试及反复修改设计出符合该湿度控制系统的性能需求。该模块可经过稍微的修改形成PID控制器的IP核,方便运用NIOS II软核进行系统级调用和移植到其他PID控制系统中。
参考文献
[1] 张科,靖固.利用FPGA的增量式PID控制的研究[J].现代制造工程,2009(3):112-114.
[2] 陈昭明,白向林,龚晓宏.基于FPGA的数字PID控制器设计[J].重庆科技学院学报(自然科学报),2010,12(2):149-151.
[3] 段彬,孙同景,李振华.快速浮、定点PID控制器FPGA的研究与实现[J].计算机工程与应用,2009,45(36):202-206.endprint
摘 要:该设计运用增量式PID算法在FPGA内实现智能湿度控制系统中的控制核心模块。增量式PID算法相比传统的PID算法具有计算误差对控制量影响小,手动自动无冲击切换,可靠性高等优点。且基于FPGA进行硬件电路设计方法相比对单片机采用软件编程的方法来实现PID控制在控制精度、速度、稳定性等多个方面具有不可比拟的优势。
关键词:FPGA 增量式PID控制 湿度控制
中图分类号:TP273 文献标志码:A 文章编号:1674-098X(2014)05(a)-0041-02
随着社会的发展,湿度作为一个重要的环境参数,人们逐渐意识到湿度标准对人体健康和生产车间工艺水平的影响和重要性。特别是一些高标准的实验室和生产车间(如半导体芯片车间)都需要恒湿环境下工作。本设计采用先进的PID控制算法理论,基于FPGA平台,采用Verilog HDL语言和原理图混合设计性能优越的湿度控制器。模拟PID因其结构灵活,鲁棒性好,可靠性高而成为应用最广泛的一种控制方法[1]。但自从计算机进入控制领域以来,特别是单片机等微处理器的发展,采用软件编程的方法实现数字PID控制器来取代模拟PID控制器已广泛应用于多个不同的控制领域。这种方法虽然有控制灵活,修改方便等优点,但是同时带来了稳定性和可靠性不高,精度和速度不高等缺点。而FPGA因其体积小,集成度高,运用EDA技术在FPGA内部设计硬件电路的特点,不仅继承了前种方法的优点,同时还具有单片机不可比拟的控制精度和速度以及较高的稳定性[2]。在整个控制系统中核心和关键点就是PID控制算法的实现,其直接关系着该湿度控制系统的性能。基于此,本设计在分析传统PID工作原理的前提下,结合FPGA的特点,运用改进的增量式PID算法进行设计和实现。
1 增量式PID控制器原理
1.1 模拟PID控制
PID控制在模拟控制系统中依然占据着重要的位置。常规的模拟PID控制系统原理结构图如图1所示。
所调PID控制,就是一种对偏差进行比例(P)、积分(I)、微分(D)变换的控制规律。PID控制器根据给定值r(t)与实际输出值y(t)构成控制偏差:
(1)
u(t)作为控制系统中的中间变量,即是偏差e(t)通过PID控制算法处理后的输出量,又是被控对象的输入量,因此模拟PID控制器的控制规律为: [3]
(2)
其中,KP为模拟控制器的比例增益,TI为模拟控制器的积分时间常数,TD为模拟控制器的微分时间常数。
1.2 传统离散PID算法
FPGA为数字芯片,只能对数字信号进行处理,无法实现对模拟PID的控制,需要将模拟PID离散化,根据采样时刻的偏差来实现PID算法,因此式(2)中的微分和积分项两项内容需要作离散化处理。将模拟PID算法转化成离散PID控制算法,假设T为采样周期,则可作如下变换:
(3)
(4)
(5)
将式(3)、式(4)、式(5)带入式(2)后,那么转换后离散PID算法为:
(6)
式中k为采样序号;为比例系数;令为积分常数;为微分常数。则式(6)变为:
(7)
式(7)为位置式离散PID算法表达式。
1.3 增量式PID控制算法
增量型算法就是对位置型算法取增量,可由式(7)得到数字PID增量型控制算式,按照递推原理得:
(8)
用式(7)减去(8),可得:[4]
(9)
令;;则式(9)变为:
(10)
式(10)为增量式PID控制算法表达式。
通过比较分析得知在控制参数相同的情况下增量式的PID控制算法相比于传统的PID控制具有响应速度更快,超调量更小的优点。本设计就是采用增量式的PID控制算法来完成控制的。
2 增量式PID控制器的FPGA设计与实现
综合设计要求和设计难度,本设计采用并行结构来实现增量式PID控制器,根据式(10)得出该PID控制器的系统结构框图如图2所示。
该结构与其他结构相比不仅减少了乘法器和加法器,使其节省了FPGA的内部资源,电路简单,而且速度快,稳定可靠性高。
根据图2结构,在FPGA内部采用自顶向下的设计方法,整个系统分为偏差产生模块,参数乘法模块,并行加法模块三个子模块。最后把其三个子模块综合成顶层模块,顶层模块采用原理图设计方法,顶层模块电路结构图如图3所示。
各个子模块如下所述。
2.1 偏差产生模块
该模块主要是完成产生设定值r(k)与经过A/D采样后的反馈值y(k)之间的偏差值e(k)以及前一次偏差值e(k-1)和前两次的偏差值e(k-2)。本设计采用Verilog HDL语言描述,由于偏差值可能为负数,所以在程序中对r(k)、y(k)进行位扩展,然后再进行按位取反加1的补码加法运算,部分代码为always@(posedge clk)begin temp1<={rk[7],rk}; emp2<=~{yk[7],yk}+1;ek0<= temp1+temp2;ek1<=ek0;ek2<= ek1;end。e(k-1)和e(k-2)则通过控制时钟上升沿设计寄存器完成产生输出。经仿真测试,仿真数据完全符合设计需求。
2.2 参数乘法模块
该模块首先根据阶跃响应特性以及实际经验,采用扩充响应曲线法得到PID控制算法所必须的KP、KI、KD三个参数。然后再根据A=KP+KI+KD,B=-(KP+2KD),C=KD分别计算出系数A,B,C。最后利用FPGA内部乘法器的IP核来完成本设计所要求的有符号乘法运算。
设计完后,经仿真测试验证正确。
2.3 并行加法模块
最后就是完成把三个乘积量相加,同理运用并行加法器宏模块来完成该模块。这样就不必编写程序设计并行加法器来完成该子模块的设计。这种方法不仅设计快而且性能稳定可靠。
各个子模块设计完后,再形成完整的增量式PID控制系统,最终系统仿真图如图4所示,经过反复验证,该设计正确有效。
3 结语
本设计是在详细分析增量式PID算法的基础上,运用现代的EDA技术,基于altera公司的Cyclone II EP2C5Q208C8芯片,进行分模块设计与实现。经过仿真测试和板级调试及反复修改设计出符合该湿度控制系统的性能需求。该模块可经过稍微的修改形成PID控制器的IP核,方便运用NIOS II软核进行系统级调用和移植到其他PID控制系统中。
参考文献
[1] 张科,靖固.利用FPGA的增量式PID控制的研究[J].现代制造工程,2009(3):112-114.
[2] 陈昭明,白向林,龚晓宏.基于FPGA的数字PID控制器设计[J].重庆科技学院学报(自然科学报),2010,12(2):149-151.
[3] 段彬,孙同景,李振华.快速浮、定点PID控制器FPGA的研究与实现[J].计算机工程与应用,2009,45(36):202-206.endprint
摘 要:该设计运用增量式PID算法在FPGA内实现智能湿度控制系统中的控制核心模块。增量式PID算法相比传统的PID算法具有计算误差对控制量影响小,手动自动无冲击切换,可靠性高等优点。且基于FPGA进行硬件电路设计方法相比对单片机采用软件编程的方法来实现PID控制在控制精度、速度、稳定性等多个方面具有不可比拟的优势。
关键词:FPGA 增量式PID控制 湿度控制
中图分类号:TP273 文献标志码:A 文章编号:1674-098X(2014)05(a)-0041-02
随着社会的发展,湿度作为一个重要的环境参数,人们逐渐意识到湿度标准对人体健康和生产车间工艺水平的影响和重要性。特别是一些高标准的实验室和生产车间(如半导体芯片车间)都需要恒湿环境下工作。本设计采用先进的PID控制算法理论,基于FPGA平台,采用Verilog HDL语言和原理图混合设计性能优越的湿度控制器。模拟PID因其结构灵活,鲁棒性好,可靠性高而成为应用最广泛的一种控制方法[1]。但自从计算机进入控制领域以来,特别是单片机等微处理器的发展,采用软件编程的方法实现数字PID控制器来取代模拟PID控制器已广泛应用于多个不同的控制领域。这种方法虽然有控制灵活,修改方便等优点,但是同时带来了稳定性和可靠性不高,精度和速度不高等缺点。而FPGA因其体积小,集成度高,运用EDA技术在FPGA内部设计硬件电路的特点,不仅继承了前种方法的优点,同时还具有单片机不可比拟的控制精度和速度以及较高的稳定性[2]。在整个控制系统中核心和关键点就是PID控制算法的实现,其直接关系着该湿度控制系统的性能。基于此,本设计在分析传统PID工作原理的前提下,结合FPGA的特点,运用改进的增量式PID算法进行设计和实现。
1 增量式PID控制器原理
1.1 模拟PID控制
PID控制在模拟控制系统中依然占据着重要的位置。常规的模拟PID控制系统原理结构图如图1所示。
所调PID控制,就是一种对偏差进行比例(P)、积分(I)、微分(D)变换的控制规律。PID控制器根据给定值r(t)与实际输出值y(t)构成控制偏差:
(1)
u(t)作为控制系统中的中间变量,即是偏差e(t)通过PID控制算法处理后的输出量,又是被控对象的输入量,因此模拟PID控制器的控制规律为: [3]
(2)
其中,KP为模拟控制器的比例增益,TI为模拟控制器的积分时间常数,TD为模拟控制器的微分时间常数。
1.2 传统离散PID算法
FPGA为数字芯片,只能对数字信号进行处理,无法实现对模拟PID的控制,需要将模拟PID离散化,根据采样时刻的偏差来实现PID算法,因此式(2)中的微分和积分项两项内容需要作离散化处理。将模拟PID算法转化成离散PID控制算法,假设T为采样周期,则可作如下变换:
(3)
(4)
(5)
将式(3)、式(4)、式(5)带入式(2)后,那么转换后离散PID算法为:
(6)
式中k为采样序号;为比例系数;令为积分常数;为微分常数。则式(6)变为:
(7)
式(7)为位置式离散PID算法表达式。
1.3 增量式PID控制算法
增量型算法就是对位置型算法取增量,可由式(7)得到数字PID增量型控制算式,按照递推原理得:
(8)
用式(7)减去(8),可得:[4]
(9)
令;;则式(9)变为:
(10)
式(10)为增量式PID控制算法表达式。
通过比较分析得知在控制参数相同的情况下增量式的PID控制算法相比于传统的PID控制具有响应速度更快,超调量更小的优点。本设计就是采用增量式的PID控制算法来完成控制的。
2 增量式PID控制器的FPGA设计与实现
综合设计要求和设计难度,本设计采用并行结构来实现增量式PID控制器,根据式(10)得出该PID控制器的系统结构框图如图2所示。
该结构与其他结构相比不仅减少了乘法器和加法器,使其节省了FPGA的内部资源,电路简单,而且速度快,稳定可靠性高。
根据图2结构,在FPGA内部采用自顶向下的设计方法,整个系统分为偏差产生模块,参数乘法模块,并行加法模块三个子模块。最后把其三个子模块综合成顶层模块,顶层模块采用原理图设计方法,顶层模块电路结构图如图3所示。
各个子模块如下所述。
2.1 偏差产生模块
该模块主要是完成产生设定值r(k)与经过A/D采样后的反馈值y(k)之间的偏差值e(k)以及前一次偏差值e(k-1)和前两次的偏差值e(k-2)。本设计采用Verilog HDL语言描述,由于偏差值可能为负数,所以在程序中对r(k)、y(k)进行位扩展,然后再进行按位取反加1的补码加法运算,部分代码为always@(posedge clk)begin temp1<={rk[7],rk}; emp2<=~{yk[7],yk}+1;ek0<= temp1+temp2;ek1<=ek0;ek2<= ek1;end。e(k-1)和e(k-2)则通过控制时钟上升沿设计寄存器完成产生输出。经仿真测试,仿真数据完全符合设计需求。
2.2 参数乘法模块
该模块首先根据阶跃响应特性以及实际经验,采用扩充响应曲线法得到PID控制算法所必须的KP、KI、KD三个参数。然后再根据A=KP+KI+KD,B=-(KP+2KD),C=KD分别计算出系数A,B,C。最后利用FPGA内部乘法器的IP核来完成本设计所要求的有符号乘法运算。
设计完后,经仿真测试验证正确。
2.3 并行加法模块
最后就是完成把三个乘积量相加,同理运用并行加法器宏模块来完成该模块。这样就不必编写程序设计并行加法器来完成该子模块的设计。这种方法不仅设计快而且性能稳定可靠。
各个子模块设计完后,再形成完整的增量式PID控制系统,最终系统仿真图如图4所示,经过反复验证,该设计正确有效。
3 结语
本设计是在详细分析增量式PID算法的基础上,运用现代的EDA技术,基于altera公司的Cyclone II EP2C5Q208C8芯片,进行分模块设计与实现。经过仿真测试和板级调试及反复修改设计出符合该湿度控制系统的性能需求。该模块可经过稍微的修改形成PID控制器的IP核,方便运用NIOS II软核进行系统级调用和移植到其他PID控制系统中。
参考文献
[1] 张科,靖固.利用FPGA的增量式PID控制的研究[J].现代制造工程,2009(3):112-114.
[2] 陈昭明,白向林,龚晓宏.基于FPGA的数字PID控制器设计[J].重庆科技学院学报(自然科学报),2010,12(2):149-151.
[3] 段彬,孙同景,李振华.快速浮、定点PID控制器FPGA的研究与实现[J].计算机工程与应用,2009,45(36):202-206.endprint