MPC控制器的FPGA 实现及其应用

2014-01-14 00:43季冬冬许月亭
吉林大学学报(信息科学版) 2014年4期
关键词:节气门运算控制器

季冬冬,陈 虹,许月亭,许 芳

(吉林大学a.汽车仿真与控制国家重点实验室;b.通信工程学院,长春130022)

0 引言

模型预测控制(MPC:Model Predictive Control)是近年来被广泛讨论的反馈控制策略,要在有限的采样时间内反复在线求解最优控制序列,计算繁琐,涉及复杂的矩阵运算。为提高MPC控制器的性能,在有限采样时间内计算出控制量并作用于动态系统具有重要意义。为提高MPC控制器速度,国内外学者从算法上和硬件上进行了很多研究。在算法上,文献[1]在迭代学习模型预测控制算法基础上引入前馈控制,降低了迭代次数,加快了跟踪速度,提高了控制器的速度;文献[2]针对线性系统模型预测控制中二次规划生成运动路线的特定问题提出了快速优化算法。在硬件上,文献[3]设计了应用于小型系统基于ARM(Advanced RISC Machines)的嵌入式模型预测控制器,提高了MPC控制器的控制性能;文献[4]进行了基于现场可编程门阵列(FPGA:Field Programmable Gate Array)的硬件预测控制器设计,采用粒子群优化算法求解MPC中的二次规划问题,通过综合工具进行了硬件预测控制器的设计;文献[5]采用基于Nios-Ⅱ嵌入式软核处理器的FPGA/SOPC方案,在FPGA芯片上构建可编程片上(SOPC:System-On-a-Programmable-Chip)系统,设计SOPC的硬件及软件系统,实现了基于FPGA的预测控制器设计。

基于FPGA的控制器设计主要有3种实现方案:基于硬件描述语言(HDL:Hardware Description Language)的全硬件方案、基于综合工具开发方案[4]以及SOPC嵌入式方案[5]。后两种方案相对开发容易,周期短。但基于高级综合工具开发在综合过程中存在冗余问题,在资源和速度上不能达到最优;而SOPC嵌入式方案是利用软件实现设计,其速度也不能达到最优。对于全硬件方案,RTL(Register Transfer Level)描述与底层电路存在一一对应关系,是目前的主流设计方式[6]。为充分发挥FPGA并行性、快速性等优点,笔者进行了基于FPGA的RTL级MPC控制器设计。为提高数据处理速度,采用定点数据类型,通过Verilog HDL设计矩阵运算模块和控制模块等,在顶层中正确安排各例化模块的时序,最终完成基于FPGA的MPC控制器设计,并以电子节气门为被控对象联合dSPACE进行了实时仿真验证MPC控制器的性能。

1 模型预测控制

模型预测控制是近年来被广泛讨论的反馈控制策略,具有多变量协调控制及处理约束等特点,从20世纪70年代问世以来,已从最初应用于工业过程的启发式控制算法发展成为具有丰富理论和实践内容的研究领域[7-10]。

1.1 模型预测控制算法

MPC的机理可以描述为:在每个采样时刻,根据获得的当前测量信息,在线求解一个有限时域开环优化问题,并将得到控制序列的第1个元素作用于被控对象。在下一个采样时刻,重复上述过程,用新的测量信息刷新优化问题并重新求解[11]。

为引入积分环节,减小或消除静差,将状态空间模型进行离散化并整理得到增量模型

式(1)中,Δ x(k)是状态变量增量,Δ u(k)是控制输入增量,Δ d(k)是可测干扰输入增量,yc(k)是被控输出量。设模型预测时域为p,控制时域为m(m≤p),假设在控制时域之外,控制量保持不变,在k时刻后,可测干扰保持不变。对式(1)输出进行p步预测可得系统未来p步输出的预测方程

其中

将优化问题描述为

为满足控制输出接近参考输入、控制动作变化不大的要求,选用如下所示的目标函数

其中

Γy是对预测控制输出误差的加权因子,Γy越大,表明期望输出越接近给定的参考输入;Γu是对控制增量的加权因子,Γu越大,表示期望输出的控制动作变化越小。

对优化问题求导运算,得到k时刻的最优控制序列

将开环控制序列的第1个元素作用于被控系统,得到预测控制的闭环解

其中

1.2 MPC算法流程

根据预测控制基本原理预测系统未来动态,并求解优化问题得到优化序列,将所求优化序列的第1个元素作用于被控系统。重复上述步骤,可得到无约束预测控制的算法:

1)设预测时域p及控制时域m,假定初始值u(-1)=0,x(-1)=0,计算参数Sx、τ、Sd及Su,并计算Kmpc;

2)在k≥0时刻,得到测量值x(k)及d(k),计算y(k);

4)由式(10)计算控制增量Δ u(k);

5)将控制量作用于被控对象;

6)返回2),重复上述步骤。

2 MPC控制器设计

由于MPC算法涉及复杂的矩阵运算及浮点运算,过程比较繁琐,而且需要在有限的采样时间间隔内在线求解优化问题,所以需要提高MPC控制器的在线求解速度。由于FPGA频率高,支持并行计算,且具有快速性,吞吐量高,可靠性高等优点[12,13],其优越的实时性和设计的灵活性成为控制系统的重要部分。笔者采用FPGA作为MPC控制器的硬件实现,很好地提高了控制器的速度,满足MPC控制器对实时性的要求。

笔者选用Xinlinx公司的Virtex-5系列的XC5VLX50T型号FPGA芯片作为控制器的全硬件实现。该型号FPGA可以提供330 000个逻辑单元、1 200个I/O引脚、48个低功耗收发器、6输入查找表(LUT:Look-Up-Table)、频率高达550 MHz,是一款低功耗的高性能FPGA芯片。图1是笔者所选用的FPGA开发板。图2是寄存器传输级全硬件MPC控制器设计流程图,利用Verilog硬件描述语言对硬件电路进行寄存器传输级设计。

图1 VIRTEX-5系列FPGA开发板Fig.1 FPGA development board of Virtex-5 series

图2 基于FPGA的全硬件MPC控制器的设计流程Fig.2 The design process of MPC controller based on FPGA

2.1 控制器端口及微架构设计

MPC控制器内部微架构的工作方式可选择串行、并行和流水线设计等多种方式,为提高控制器的处理效率与吞吐率,插入中间寄存器,选择如图3所示的端口和微架构设计[14-16]。控制器设计主要涉及矩阵相乘、矩阵相加、矩阵相减以及控制模块的设计,矩阵运算模块内部包含数的加减乘运算。设计中矩阵元素采用RAM核进行存储,控制模块主要负责读写使能信号的控制以及读写地址信号的控制。

MPC算法包含大量的矩阵运算,笔者利用芯片内部RAM IP核存储矩阵元素,控制地址信号、读写使能信号以及片使能信号,通过对元素进行加减乘运算操作,完成矩阵的加减乘操作。图4是矩阵运算模块端口及微架构设计。ARam、BRam、CRam分别是输入输出矩阵,由IP核例化生成,用来存储矩阵运算的数据,使能信号由控制模块提供,由地址信号控制读取与存储的数据。在矩阵运算模块顶层设计中主要包括计算模块与控制模块两部分,计算模块负责矩阵的加减乘运算,控制模块负责控制IP_RAM的使能信号及地址信号。当start信号检测到高电平时,控制模块发出读使能信号Ena、Wea,同时发出读地址信号,从矩阵ARam、BRam中读取相应数据,然后对矩阵进行相应计算;计算结束后使能C矩阵的Ena与Wea信号,给出写地址,并将计算结果写入例化好的CRam中,并对Address_a、Address_b、Address_c进行更新操作,直到整个计算结束,给出完成信号,控制器重新处于等待状态。

图3 MPC控制器端口及微架构设计Fig.3 The port and micro architecture design of MPC controller

图4 矩阵运算模块端口及微架构设计Fig.4 The port and micro architecture design of matrix module

2.2 矩阵加法模块

按照控制器端口与微架构设计思想,设计矩阵加法模块,采用状态及设计方法,正确控制地址位address,使能位Ena、Wea及En_calcu等,矩阵加法模块状态机流图如图5所示。

在ModelSim中编写激励文件,完成功能验证,图6是对两个二维方阵加法运算的仿真结果。由分析仿真结果可以看出,在第 1个计算周期,Matrixa(1,1)=0_00000100_000000000000000(4),Matrixb(1,1)=0_00000001_100000000000000(1.5),Matrixc(1,1)=0_00000101_100000000000000(5.5),计算结果正确,矩阵加法模块正确,在计算到最后一个元素时输出完成done信号。

图5 矩阵加法模块状态机Fig.5 The state machine of matrix addition module

图6 矩阵加法功能仿真结果Fig.6 The function simulation results of matrix addition module

2.3 矩阵乘法模块

按照控制器端口与微架构设计思想,对矩阵元素进行乘累加操作,设计矩阵乘法模块。其中乘累加运算的设计是矩阵乘法设计的关键,矩阵乘法模块状态机流图如图7所示。

对矩阵乘法模块进行设计,在ModelSim中设计激励文件,完成功能验证,图8是对两个二维方阵乘法运算的仿真结果。由分析结果可以看出,在第1个计 算 周 期,Matrixa(1,1)=0_00000100_000000000000000(4),Matrixb(1,1)=0_00000001_100000000000000(1.5),Matrixa(1,2)=0_00000011_000000000000000(3),Matrixb(2,1)=0_00000011_000000000000000(3),Matrixc(1,1)=0_00001111_000000000000000(15),计算结果正确,矩阵乘法模块正确,在计算到最后一个元素时输出完成done信号。

图7 矩阵乘法模块状态机Fig.7 The state machine of matrix multiplication module

图8 矩阵乘法功能仿真结果Fig.8 The function simulation results of matrix multiplication module

矩阵运算模块要正确地对矩阵元素进行相应的四则运算,首先设计定点数加减乘运算模块,作为矩阵运算模块的例化模块。运算模块采用定点数设计,为满足数据计算精度与数值范围的要求,设计采用24位定点数,其中首位是符号位,8位是整数位,后15位是小数位。

2.4 控制器功能验证

为验证控制器的性能,选用电子节气门作为被控对象,在Matlab/Simulink中搭建电子节气门系统,并完成离线仿真。将离线数据作为全硬件MPC控制器的输入数据,在ModelSim中进行控制器功能验证。图9是控制增量在Matlab环境下与ModelSim环境下MPC控制器的对比结果,其中实线与虚线分别是在Matlab和ModelSim中的仿真结果。可以看出,全硬件MPC控制器与在Matlab中仿真结果相同,完全满足精度和数值范围的性能要求。

在两种实现方案下MPC控制器的速度比较如表1所示。由表1可以看出,基于FPGA的全硬件MPC控制器速度明显提高,充分说明该方案的有效性与可行性。

图9 控制器的功能验证结果Fig.9 The verification results of the controller's function

表1 不同实现方案下MPC控制器的计算速度Tab.1 Computing speed of MPC under different implementation methods

3 实时仿真实验

笔者基于FPGA开发板和dSPACE实时仿真系统进行MPC控制器的板级验证,采用串口RS232进行FPGA开发板与dSPACE的数据通信,数据位宽为16位。设计串口接收与发送模块,完成全局布局布线,将配置文件下载到FPGA开发板进行板级验证。实物仿真平台如图10所示。

建立电子节气门的数学模型,并得到系统的状态空间方程[17]

其中x=[x1,x2]T是系统的状态变量,分别表示节气门开度(rad)和节气门角速度(rad/s),输出y是电子节气门开度(rad),控制量u是节气门电机两端电压(V)。

电子节气门数学模型中具体参数取值如表2所示。

图10 实时仿真平台Fig.10 The real-time simulation platform

表2 模型参数取值表Tab.2 Model parameter values

在模型参数中,ksp是复位弹簧系数,kd是滑动摩擦力系数,kt是电机反电动势常数,n是齿轮传动比,J是折算到电机侧的转动惯量,Ra是电机电阻。

选择预测时域p=20,控制时域m=2,采样时间Ts=6 ms,进行实时实验。电子节气门在开度期望值为1 rad的阶跃响应曲线如图11所示,图11a中虚线、实线分别表示参考与实际响应节气门开度。由仿真曲线可以看出电子节气门开度在0.3 s左右完全跟踪上给定节气门开度,且没有超调,控制效果较好。因此笔者设计的基于FPGA的全硬件MPC控制器具有较好的实时性能,能较好地实现电子节气门的跟踪控制。

图11 电子节气门阶跃响应曲线Fig.11 The step response curve of the clectronic throttle

4 结 语

笔者针对MPC控制器的快速实现,提出了一种新的基于FPGA的RTL级全硬件MPC控制器设计方法。采用定点数据类型处理数据,设计矩阵四则运算模块及控制模块,通过RAM核存储数据,在顶层中正确安排各运算模块时序,完成基于FPGA的MPC控制器的设计。该方案充分利用RTL描述与底层电路对应关系,具有FPGA并行性、快速性等优点,提高了MPC控制器在线计算的实时性;最后将MPC控制器用于电子节气门的实时控制,联合dSPACE进行实时仿真。仿真结果表明,基于FPGA的全硬件MPC控制器能很好地实现电子节气门的实时控制。下一步的工作将会进行非线性有约束的全硬件MPC控制器设计与实现。

[1]杜文艳.迭代学习模型预测控制算法研究与应用[D].保定:华北电力大学控制与计算机工程学院,2012.DU Wenyan.Research and Application of Iterative Learning Model Predictive Control Algorithm[D].Baoding:Institute of Control and Computer Engineering,North China Electric Power University,2012.

[2]DIMITROV D,WIEBER P B,STASSE O,et al.An Optimized Linear Model Predictive Control Solver for Online Walking Motion Generation[C]∥Robotics and Automation 2009.ICRA'09 IEEE International Conference on.[S.l.]:IEEE,2009:1171-1176.

[3]矫晓龙.基于ARM的模型预测控制系统的研究与开发[D].南京:南京师范大学电气与自动化工程学院,2011.JIAO Xiaolong.Research and Development of Model Predictive Control System Based on ARM [D].Nanjing:Institute of Electrical and Automation Engineering,Nanjing Normal University,2011.

[4]罗犇,邵之江,徐祖华,等.一种新的基于PSO的MPC及其硬件实现[J].控制工程,2013,20(2):227-230.LUO Ben,SHAO Zhijiang,XU Zuhua,et al.PSO Based Model Predictive Control and Its Hardware Implementation [J].Control Engineering,2013,20(2):227-230.

[5]胡云峰,陈虹,刘明星,等.基于 FPGA/SOPC的预测控制器设计与实现[J].仪器仪表学报,2010,31(6):1241-1248.HU Yunfeng,CHEN Hong,LIU Mingxing,et al.Design and Implementation of Model Predictive Controller Based on FPGA/SOPC [J].Journal of Instrument,2010,31(6):1241-1248.

[6]袁媛,谢巍,刘明业.RTL综合系统设计中时序逻辑综合的实现方法[J].微电子学与计算机,2001(1):24-29.YUAN Yuan,XIE Wei,LIU Mingye.Implementation Method of Temporal Logic and Comprehension in the Design of RTL Synthesis System [J].Microelectronics and Computer,2001(1):24-29.

[7]赵均,李田鹏,钱积新.模型预测控制工程软件关键技术及其工业应用[J].吉林大学学报:信息科学版,2004,22(4):341-345.ZHAO Jun,LI Tianpeng,QIAN Jixin.Key Technology and Industrial Application of Model Predictive Control Engineering Software[J].Journal of Jilin University:Information Science Edition,2004,22(4):341-345.

[8]QIN S J,BADGWELl T A.A Survey of Industrial Model Predictive Control Technology[J].Control Engineering Practice,2003,11(7):733-764.

[9]MAYNE D Q,RAWLINGS J B,RAO C V,et al.Constrained Model Predictive Control:Stability and Optimality[J].Automatica,2000,36(6):789-814.

[10]MORARI M,BARIC M.Recent Developments in the Control of Constrained Hybrid Systems[J].Computers and Chemical Engineering,2006,30(10):1619-1631.

[11]陈虹.模型预测控制[M].北京:科学出版社,2013.CHEN Hong.Model Predictive Control[M].Beijing:Science Press,2013.

[12]辛明寿,刘明山,周原.RS(239,255)解码器的FPGA实现[J].吉林大学学报:信息科学版,2007,24(6):605-609.XIN Mingshou,LIU Mingshan,ZHOU Yuan.Realization of RS(239,255)Decoder Based on FPGA [J].Journal of Jilin University:Information Science Edition,2007,24(6):605-609.

[13]李大伟.用Flash单片机对FPGA进行配置的研究[J].吉林大学学报:信息科学版,2003,21(1):82-86.LI Dawei.Flash Micro Controller on the FPGA Configuration Research [J].Journal of Jilin University:Information Science Edition,2003,21(1):82-86.

[14]邬贵明.FPGA矩阵计算并行算法与结构[D].武汉:国防科技大学研究生院计算机科学与技术,2011.WU Guiming.Parallel Algorithms and Architectures for Matrix Computations on FPGA[D].Wuhan:Graduate of Computer Science and Technology,National University of Defense Technology,2011.

[15]周昔平,高德远,樊晓桠.乘累加运算器的高性能解决方案[J].微电子学与计算机,2002(11):21-24.ZHOU Xiping,GAO Deyuan,FAN Xiaoya.High Performance Design Methodology for MAC and DCT[J].Micro Electronics and Computer,2002(11):21-24.

[16]林皓.基于FPGA的矩阵运算实现[D].南京:南京理工大学电子工程与光电技术学院,2007.LIN Hao.The Realize of Matrix Operation Based on FPGA[D].Nanjing:College of Electrical Engineering and Photoelectric Technology,Nanjing University of Science and Technology,2007.

[17]刘明星.基于FPGA/SOPC的预测控制器研究[D].长春:吉林大学通信工程学院,2009.LIU Mingxing.Research on Model Predictive Control Based on FPGA/SOPC[D].Changchun:College of Communication Engineering,Jilin University,2009.

猜你喜欢
节气门运算控制器
重视运算与推理,解决数列求和题
有趣的运算
2008款东风标致206车发动机加速不良
2017款福特福瑞斯车节气门匹配方法
“整式的乘法与因式分解”知识归纳
我们为什么不敢清洗节气门?
从设计角度改进节气门体预防卡滞现象发生
模糊PID控制器设计及MATLAB仿真
MOXA RTU控制器ioPAC 5542系列
倍福 CX8091嵌入式控制器