CN105955031A - 非线性预测控制的fpga硬件加速控制器及其加速实现方法 - Google Patents
非线性预测控制的fpga硬件加速控制器及其加速实现方法 Download PDFInfo
- Publication number
- CN105955031A CN105955031A CN201610418142.9A CN201610418142A CN105955031A CN 105955031 A CN105955031 A CN 105955031A CN 201610418142 A CN201610418142 A CN 201610418142A CN 105955031 A CN105955031 A CN 105955031A
- Authority
- CN
- China
- Prior art keywords
- particle
- module
- control
- controller
- nmpc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B13/00—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
- G05B13/02—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
- G05B13/04—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
- G05B13/042—Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Feedback Control In General (AREA)
Abstract
一种非线性预测控制的FPGA硬件加速控制器及其加速实现方法,属于FPGA实现技术领域。本发明的目的是拓展NMPC在快速动态系统中的应用,利用PSO算法求解非线性规划问题的非线性预测控制的FPGA硬件加速控制器及其加速实现方法。本发明硬件加速控制器:建立WMR的预测控制模型,根据式目标模型WMR轨迹跟踪的控制要求,优化问题求解,NMPC‑PSO的算法流程。本发明实现方案代码与底层电路存在一一对应关系,可以很好地结合FPGA的并行计算结构与PSO算法的并行计算特性,提高了NMPC的快速计算能力,很好地满足控制器实时性要求,拓展了NMPC在实际快速动态系统中的应用;同时,该方案能够在线灵活裁减、扩充、升级,适应了目前产品更新速度快的现状,能够对控制器进行快速验证。
Description
技术领域
本发明属于FPGA实现技术领域。
背景技术
模型预测控制(Model Predictive Control,MPC),又称为滚动时域控制,是被广泛讨论的一种反馈控制策略。由于模型预测控制具有前馈-反馈结构,可以处理多变量、多输入、多输出的高维系统,能在优化的意义上显式和主动处理时域硬约束等特点,得到了众多领域的广泛关注和讨论,特别是近30多年来在复杂工业过程中的成功应用,已充分显示了预测控制处理复杂约束优化控制问题的巨大潜力。近年来,随着经济社会的迅速发展,众多应用邻域对约束优化问题提出了更高的要求,预测控制应用也逐渐跨越工业生产过程向大规模系统和网络系统扩展,并不断向电力电子、汽车电子等快速动态系统的新应用邻域延伸。然而在这些新型邻域,很多系统都具有强非线性因素,传统的线性预测控制器的控制性能在很多时候无法满足实际要求,因此需要针对不同系统设计相对应的非线性预测控制器,非线性预测控制(Nonlinear Model Predictive Control, NMPC)对于约束非线性性及工作点大范围变化的大型、复杂、快速动态系统有很好的控制性能。
经过对现有技术的相关资料检索发现,目前大多数控制系统都采用的线性模型预测控制,然而,NMPC 需在有限采样时间内反复在线求解非线性规划问题,计算负担大,实时性较差,目前主要应用于石油化工、冶金制药等慢动态系统;另一方面,随着控制系统复杂度的增加及机电一体化的发展,对电控单元高实时性、高可靠性、微型化等要求越来越高,在低成本芯片上实现高性能控制器是电控系统面临的一大挑战;另一方面,现代产品更新速度很快,电路可能需要在短周期内改动以满足新的功能需求,对于采用通用的数字集成电路设计电路系统来说即意味着重新设计和重新布线,这样在设计周期上就无法满足实际需要,因此,需要开发易于升级、维护、扩充的电控系统,以降低产品开发成本,缩短开发周期,延长生命周期。因此需要寻找高效快速的NMPC硬件实现方案,对于NMPC在快速系统中的应用具有较大的意义。
发明内容
本发明的目的是拓展NMPC在快速动态系统中的应用,利用PSO算法求解非线性规划问题的非线性预测控制的FPGA硬件加速控制器及其加速实现方法。
本发明硬件加速控制器:
(1)建立WMR的预测控制模型:
(3)
式中分别表示WMR的横纵坐标及位姿角, 表示WMR左右轮角速度及前轮转角;
(2)根据式(3)目标模型WMR轨迹跟踪的控制要求:保证WMR快速稳定地跟踪上参考轨迹,控制增量变化缓慢,要满足最大值的硬约束条件及满足能量低的要求,对控制量加以约束,将WMR路径跟踪的优化问题描述为:
(4)
Np为预测时域,Nc为控制时域;
(3)优化问题求解:采用PSO对式(4)所描述的非线性约束优化问题进行非线性规划:
a、随机初始化维粒子,每个粒子有位置与速度两个状态,根据目标函数式(4)初始化个体最优及全局最优;
b、根据粒子更新公式:
(5)
更新粒子速度与位置,k是迭代次数,j是各个粒子,、表示对个体最优与全局最优的学习能力的正学习因子,是上的随机数,是按照随着迭代次数增加而线性减小的变加权因子,其中,是最大惯性因子,是最小惯性因子,是最大迭代次数,是当前迭代次数;
c、根据目标函数式(4)大小比较,更新个体最优及全局最优;
d、返回步骤(2),当达到最大迭代次数时,输出全局最优作为优化控制量,这样就能求解出使式(4)最小的控制量;
(4)NMPC-PSO的算法流程:
a、设预测时域Np及控制时域Nc,初始化NMPC与PSO相关参数,包括、、及、、N、D;
b、给定期望跟踪轨迹,在时刻,得到测量值;
c、通过PSO求解非线性规划问题,通过状态更新及粒子更新得到优化控制序列及控制量,并作用于系统;
d、在k+1时刻,令k=k+1,返回第2步;
这样经过反复更新计算,最终完成NMPC-PSO控制器对被控对象的控制。
本发明硬件加速控制器中目标函数主要包括三部分:轨迹跟踪、控制量加权与控制增量加权三部分;第一部分保证WMR快速稳定地跟踪上参考轨迹,第二部分保证不要太大从而实现能量低的目标,第三部分保证不要太大从而实现跟踪轨迹平顺性的目标; 、与是加权矩阵,越大WMR轨迹跟踪越快,越大能量越低,越大控制量变化越平顺,通过调节这三个参数来达到WMR快速稳定跟踪、平顺性与能量低的控制目标,这三部分属于软约束;除此之外还存在机械结构物理约束的数学描述,表示控制动作的最大范围,其中左右轮角速度、在[0,30]范围内,前轮转角在[-0.5,0.5]范围内,属于硬约束。
本发明硬件加速控制器的加速实现方法是:通过ModelSim对各个模块进行功能仿真,保证各个模块设计的正确性;最后在顶层设计各个模块时序实现NMPC控制器,进行编译综合、布局布线;
(a)三角函数求解模块:
采用旋转坐标法求解三角函数,通过忽略向量长度,经过一系列的小角度的旋转逐渐逼近实际角度的方法:
(6)
其中,旋转因子,表示每次旋转中向量模长的变化,初始值及;
(b)随机数发生模块:
采用线性反馈移位寄存器产生均匀分布的伪随机数序列:
(7)
gm为反馈系数,取值只能为0或1,取为0时表示不存在该反馈之路,取为1时表示存在该反馈之路;m个D触发器最多可以提供2^n-1个状态;
(c)PSO求解器模块加速方法:
PSO采用全并行、分组并行或串行的设计方式,并行度越大速度越快,硬件资源消耗越多;
(d)目标函数模块:
粒子在更新的过程中,根据目标函数评价粒子的优劣,如公式(4):选择优性粒子,淘汰劣性粒子,目标函数模块包括轨迹跟踪、控制增量加权与控制量加权三部分,对于内部三角函数的计算部分采用三角函数模块,该模块的运算可以通过式(6)计算出;
(e)矩阵运算模块:
矩阵运算模块主要包括控制模块和计算模块,当检测到起始start信号时,控制模块给出输入矩阵A、B地址并将读取数值传输到计算模块,同时控制模块使能计算模块;计算完成后,控制模块与计算模块分别给出输出矩阵C的地址与数值;更新输入矩阵A、B的地址,重复上述计算步骤,直到整个计算结束,给出完成信号,矩阵运算模块重新处于等待状态;
(f)模块集成:
各个模块设计完成及功能验证正确后,在顶层中例化各个模块,为实现NMPC与WMR的数据通信,设计串口发送模块与接收模块,波特率为115200bps,串口模块是5接收3发送模块,每个数据两个字节,加上起始位与停止位,那么串口通信时间为20*8/115200=1.38ms;根据时序先后,添加UART串口接收与发送模块,完成NMPC控制器设计;对NMPC控制器进行编译综合、布局布线,最后生成 FPGA 配置文件并进行板级验证。
本发明加速方法中(c)步骤所述的分组并行粒子结构是将粒子分成三组,三组并行PSO结构:每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),假设速度和位置分别有30*3个寄存器,将30个3维粒子分成三组,每组10个3维粒子是并行运算的,即同时运行30个寄存器更新运算与目标函数模块,每个粒子在每一维上是串行和流水线计算的;组内并行PSO微架构机制为:首先通过上述随机数发生模块中公式(5)初始化粒子位置,根据目标函数模块衡量各个粒子的优劣,并与之前的粒子比较,取其中的较好粒子更新粒子的局部最优位置;然后按照速度位置更新公式更新各个粒子的速度及位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,该模块将在后文介绍;然后对第二组与第三组粒子执行相同操作,通过比较,将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出全局最优作为优化解。
本发明加速方法中(c)步骤所述的全并行PSO结构:结构中N个粒子在D维上是全并行运算的,每个粒子在每一维上串行和流水线计算;每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),首先通过RNG初始化粒子位置,根据目标函数模块衡量粒子的优劣,与之前的位置比较,刷新每个粒子的最优位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,然后更新速度及位置;最后将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出最优值。
本发明拓展NMPC在快速动态系统中的应用,提供一种基于Verilog HDL的NMPC控制器的FPGA实现方案,并利用PSO算法求解非线性规划问题。这种实现方案代码与底层电路存在一一对应关系,可以很好地结合FPGA的并行计算结构与PSO算法的并行计算特性,提高了NMPC的快速计算能力,很好地满足控制器实时性要求,拓展了NMPC在实际快速动态系统中的应用;同时,该方案能够在线灵活裁减、扩充、升级,适应了目前产品更新速度快的现状,能够对控制器进行快速验证。其有益效果是:
1. 在硬件实现方面,线性控制器较多,非线性控制器比较少。本发明基于FPGA设计了NMPC控制器,并应用于WMR快速稳定跟踪控制,为NMPC在快速动态系统中的应用提供了可行性借鉴。
2. 传统求解优化问题算法主要有序列二次规划、遗传算法及牛顿迭代法等,但这些算法计算逻辑相对较复杂,不利于FPGA的硬件并行实现。本发明基于FPGA设计硬件PSO求解器,提高了优化求解的快速性,满足了快速系统等新应用领域对控制器高实时性、微型化等特点的要求。
3. 传统的嵌入式开发方案本质上是一种串行设计,计算性能低;基于高级综合工具的开发方案综合后存在代码冗余的问题,代码可读性差。本发明基于硬件描述语言Verilog手动编写代码设计NMPC控制器,符合设计者的思想,计算性能提高可观。
附图说明
图1为基于FPGA的NMPC控制器及WMR轨迹跟踪控制框图;
图2为PSO算法流程图;
图3为PSO 分组并行运算结构示意图;
图4为WMR对倒“8”离线轨迹跟踪仿真结果;
图5为组内并行PSO电路结构图;
图6为目标函数电路结构图;
图7为目标函数仿真结果;
图8为矩阵运算模块电路结构设计图;
图9为随机数发生器微架构结构图;
图10为三角函数模块电路结构设计图;
图11为三角函数模块仿真结果;
图12为倒”8”字工况下的实时实验。
具体实施方式
本发明基于FPGA的NMPC控制器及WMR轨迹跟踪控制框图如图1所示,主要包括①NMPC模块、②接口模块、③及WMR数学模型。FPGA作为NMPC控制器硬件实现平台,通过PSO求解器求解非线性规划问题,通过串口UART接收模块与发送模块与WMR进行通信。NMPC控制器通过UART接收模块获得参考轨迹与WMR位姿状态信号,并将这些数据传递给NMPC控制器作为控制器的输入信号; NMPC控制器通过非线性规划得到控制量WMR左右轮角速度及前轮转角,下面具体说明NMPC控制器设计及硬件加速的实施步骤:
本发明硬件加速控制器:
(1)NMPC控制器是基于模型的控制算法,所以首先要⑴建立WMR的预测控制模型。WMR是复杂、快速、非线性控制系统,路径跟踪是WMR的一个重要研究领域,根据运动学关系及简化可得WMR状态方程如下所示:(目标模型)
(3)
式中分别表示WMR的横纵坐标及位姿角, 表示WMR左右轮角速度及前轮转角;状态方程的三角函数部分含有较强的非线性。
(2)根据式(3)目标模型WMR轨迹跟踪的控制要求:保证WMR快速稳定地跟踪上参考轨迹,为了保证跟踪轨迹的平顺性,控制增量变化缓慢,同时要满足最大值的硬约束条件及满足能量低的要求,对控制量加以约束,将WMR路径跟踪的优化问题描述为:
(4)
Np为预测时域,Nc为控制时域;
(3)优化问题求解:为求解(4)所描述的非线性约束优化问题,无法直接获得解析解,采用数值优化方法得到控制量。常采用的非线性优化算法有序列二次规划、遗传算法、粒子群优化算法及牛顿迭代法等,PSO有便于FPGA硬件并行实现的并行搜索结构,算法逻辑简单,因此,本发明采用PSO对式(4)所描述的非线性约束优化问题进行非线性规划,PSO求解流程图及并行运算结构分别如图2、图3所示。
其算法步骤为:
a、随机初始化维粒子,每个粒子有位置与速度两个状态,根据目标函数式(4)初始化个体最优及全局最优。
b、根据粒子更新公式:
(5)
更新粒子速度与位置,k是迭代次数,j是各个粒子,、表示对个体最优与全局最优的学习能力的正学习因子,是上的随机数,是按照随着迭代次数增加而线性减小的变加权因子,其中,是最大惯性因子,是最小惯性因子,是最大迭代次数,是当前迭代次数。
c、根据目标函数式(4)大小比较,更新个体最优及全局最优。
d、返回步骤(2),当达到最大迭代次数时,输出全局最优作为优化控制量,这样就能求解出使式(4)最小的控制量。
(4)根据以上描述,得到NMPC-PSO的算法流程:
a、设预测时域Np及控制时域Nc,初始化NMPC与PSO相关参数,包括、、及、、N、D;
b、给定期望跟踪轨迹,在时刻,得到测量值;
c、通过PSO求解非线性规划问题,通过状态更新及粒子更新得到优化控制序列及控制量,并作用于系统;
d、在k+1时刻,令k=k+1,返回第2步;
这样经过反复更新计算,最终完成NMPC-PSO控制器对被控对象的控制。
本发明硬件加速控制器中目标函数主要包括三部分:轨迹跟踪、控制量加权与控制增量加权三部分;第一部分保证WMR快速稳定地跟踪上参考轨迹,第二部分保证不要太大从而实现能量低的目标,第三部分保证不要太大从而实现跟踪轨迹平顺性的目标; 、与是加权矩阵,越大WMR轨迹跟踪越快,越大能量越低,越大控制量变化越平顺,通过调节这三个参数来达到WMR快速稳定跟踪、平顺性与能量低的控制目标,这三部分属于软约束;除此之外还存在机械结构物理约束的数学描述,表示控制动作的最大范围,其中左右轮角速度、在[0,30]范围内,前轮转角在[-0.5,0.5]范围内,属于硬约束。
本发明是一种基于上述Verilog HDL的NMPC控制器的FPGA硬件加速方案。通过算法分析,首先在MATLAB中进行NMPC算法的离线仿真验证,设计NMPC控制器各个模块的定点数据类型;然后在控制器底层采用Verilog硬件描述语言设计矩阵加、减、乘法模块、随机数发生器、PSO求解器模块及三角函数求解模块等,通过ModelSim进行功能仿真,保证各个模块功能正确;最后在顶层例化各个模块,进行编译综合、布局布线,实现了约束NMPC控制器的FPGA硬件加速设计。为验证本文设计的基于FPGA的NMPC控制器,以WMR路径跟踪为控制问题进行板级验证。
按照自底向上、模块化的设计思想,首先根据算法分析设计每个模块的数据结构及算法结构,数据结构是指数据位宽的选择,算法结构是指内部计算采用并行、流水线或串行结构。
然后通过Verilog HDL对NMPC-PSO算法进行硬件加速,通过分析算法,在NMPC中,由式(3)可得算法中存在三角函数求解;在PSO中,由式(5)可得其中存在随机数rand(),而且在PSO中存在目标函数对比,与此同时PSO本身粒子之间存在并行特性,并且还存在矩阵的加减乘法。故综上所述本发明将算法分解成以下模块进行加速,其中包括 (a)三角函数求解模块、(b)随机数发生器模块(c)目标函数模块(d)PSO求解器模块(e)矩阵加、减、乘法模块。
硬件加速控制器的加速实现方法是:通过ModelSim对各个模块进行功能仿真,保证各个模块设计的正确性;最后在顶层设计各个模块时序实现NMPC控制器,进行编译综合、布局布线;最后基于FPGA与dSPACE进行WMR轨迹跟踪的实时实验。
(a)三角函数求解模块:
为求解公式(4)中的三角函数部分,本发明采用旋转坐标法求解三角函数,旋转坐标法通过忽略向量长度,经过一系列的小角度的旋转逐渐逼近实际角度的方法:
(6)
其中,旋转因子,表示每次旋转中向量模长的变化,初始值及;本发明利用多级流水线进行三角函数的加速求解;图10是三角函数求解模块的电路结构设计。图11是三角函数求解模块在ModelSim中的功能仿真结果,误差精确到小数点后第四位。
(b)随机数发生模块:
为求解公式(5)中的随机数部分,本发明采用线性反馈移位寄存器产生均匀分布的伪随机数序列:
(7)
gm为反馈系数,取值只能为0或1,取为0时表示不存在该反馈之路,取为1时表示存在该反馈之路;m个D触发器最多可以提供2^n-1个状态;图9是随机数发生模块电路结构设计。
(c)PSO求解器模块加速方法:
本发明采用PSO求解非线性规划问题,PSO具有天然的并行性,每个粒子更新速度和位置时都是并行计算的,收敛速度快。PSO可以采用全并行、分组并行或串行的设计方式,并行度越大速度越快,硬件资源消耗越多。图5是组内并行PSO电路结构设计。
(d)目标函数模块:
粒子在更新的过程中,根据目标函数评价粒子的优劣,如公式(4):选择优性粒子,淘汰劣性粒子,目标函数模块包括轨迹跟踪、控制增量加权与控制量加权三部分,对于内部三角函数的计算部分采用三角函数模块,该模块的运算可以通过式(6)计算出;为提高目标函数的计算速度,同样可以采用分组并行或完全并行方式提高粒子计算的并行度,并最终进行硬件加速。图6是目标函数模块电路结构设计。图7是目标函数模块通过ModelSim的仿真结果,误差精确到小数点后第三位。
(e)矩阵运算模块:
为求解粒子位置更新中个体学习与社会学习部分等,设计了矩阵运算模块。矩阵运算模块主要包括控制模块和计算模块,当检测到起始start信号时,控制模块给出输入矩阵A、B地址并将读取数值传输到计算模块,同时控制模块使能计算模块;计算完成后,控制模块与计算模块分别给出输出矩阵C的地址与数值;更新输入矩阵A、B的地址,重复上述计算步骤,直到整个计算结束,给出完成信号,矩阵运算模块重新处于等待状态;图8是矩阵运算模块电路结构设计。
(f)模块集成:
各个模块设计完成及功能验证正确后,在顶层中例化各个模块,为实现NMPC与WMR的数据通信,设计串口发送模块与接收模块,波特率为115200bps,串口模块是5接收3发送模块,每个数据两个字节,加上起始位与停止位,那么串口通信时间为20*8/115200=1.38ms;根据时序先后,添加UART串口接收与发送模块,完成NMPC控制器设计;对NMPC控制器进行编译综合、布局布线,最后生成 FPGA 配置文件并进行板级验证。
本发明加速方法中(c)步骤所述的分组并行粒子结构是将粒子分成三组,组内粒子并行更新速度和位置,三组粒子串行计算,通过控制端口信号复用同一硬件模块,从而减少硬件资源消耗。三组并行PSO结构:每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),假设速度和位置分别有30*3个寄存器,将30个3维粒子分成三组,每组10个3维粒子是并行运算的,即同时运行30个寄存器更新运算与目标函数模块,每个粒子在每一维上是串行和流水线计算的;这是由粒子固有的串行更新规律决定的。组内并行PSO微架构机制为:首先通过上述随机数发生模块中公式(5)初始化粒子位置,根据目标函数模块衡量各个粒子的优劣,并与之前的粒子比较,取其中的较好粒子更新粒子的局部最优位置;然后按照速度位置更新公式更新各个粒子的速度及位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,该模块将在后文介绍;然后对第二组与第三组粒子执行相同操作,通过比较,将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出全局最优作为优化解。
本发明加速方法中(c)步骤所述的全并行PSO结构:结构中N个粒子在D维上是全并行运算的,每个粒子在每一维上串行和流水线计算;每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),首先通过RNG初始化粒子位置,根据目标函数模块衡量粒子的优劣,与之前的位置比较,刷新每个粒子的最优位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,然后更新速度及位置;最后将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出最优值。
示例验证:
根据算法流程,在MATLAB中设计NMPC_PSO控制器,并进行WMR轨迹跟踪实验,为保证控制器求解精确性,将左右轮转速归一化处理。为便于后期FPGA硬件实现,本示例采取尽量小的算法规模,其中预测时域,控制时域,粒子数,迭代次数,另外采样时间,惯性因子,随机数,个体与社会学习因子,加权因子。图4是MATLAB环境下WMR对倒“8”字的轨迹跟踪情况,分别表示:跟踪与参考轨迹、轨迹跟踪误差、左右轮角速度、前轮转角。离线仿真结果表明本发明设计的NMPC控制器具有很好的控制性能。
为验证基于FPGA的硬件加速NMPC控制器的有效性,本实例搭建基于FPGA与dSPACE搭建硬件在环实验平台,并进行WMR的轨迹跟踪实验, FPGA作为NMPC控制器的硬件实现,dSPACE运行WMR数学模型,两者之间通过串口UART RS232进行通信。图12是倒”8”字工况下闭环实验结果。由实验结果可以看出,本发明的基于FPGA实现的NMPC控制器具有很好的控制效果,能够满足WMR快速轨迹跟踪的控制要求。
性能分析
经过实时仿真及分析,可以得出各模块的计算时间如下表所示。
通过表中数据可以得到基于硬件描述语言设计的NMPC控制器具有很好的实时性,其单次计算时间约为0.57ms,这样就为非线性控制器在快速系统中,特别是毫秒级系统中的应用奠定了实践基础推广了非线性控制器在快速系统中的应用,特别是毫秒级应用系统。
Claims (5)
1.一种非线性预测控制的FPGA硬件加速控制器,其特征在于:
(1)建立WMR的预测控制模型:
(3)
式中分别表示WMR的横纵坐标及位姿角, 表示WMR左右轮角速度及前轮转角;
(2)根据式(3)目标模型WMR轨迹跟踪的控制要求:保证WMR快速稳定地跟踪上参考轨迹,控制增量变化缓慢,要满足最大值的硬约束条件及满足能量低的要求,对控制量加以约束,将WMR路径跟踪的优化问题描述为:
(4)
Np为预测时域,Nc为控制时域;
(3)优化问题求解:采用PSO对式(4)所描述的非线性约束优化问题进行非线性规划:
a、随机初始化维粒子,每个粒子有位置与速度两个状态,根据目标函数式(4)初始化个体最优及全局最优;
b、根据粒子更新公式:
(5)
更新粒子速度与位置,k是迭代次数,j是各个粒子,、表示对个体最优与全局最优的学习能力的正学习因子,是上的随机数,是按照随着迭代次数增加而线性减小的变加权因子,其中,是最大惯性因子,是最小惯性因子,是最大迭代次数,是当前迭代次数;
c、根据目标函数式(4)大小比较,更新个体最优及全局最优;
d、返回步骤(2),当达到最大迭代次数时,输出全局最优作为优化控制量,这样就能求解出使式(4)最小的控制量;
(4)NMPC-PSO的算法流程:
a、设预测时域Np及控制时域Nc,初始化NMPC与PSO相关参数,包括、、及、、N、D;
b、给定期望跟踪轨迹,在时刻,得到测量值;
c、通过PSO求解非线性规划问题,通过状态更新及粒子更新得到优化控制序列及控制量,并作用于系统;
d、在k+1时刻,令k=k+1,返回第2步;
这样经过反复更新计算,最终完成NMPC-PSO控制器对被控对象的控制。
2.根据权利要求1所述的非线性预测控制的FPGA硬件加速控制器,其特征在于:
目标函数主要包括三部分:轨迹跟踪、控制量加权与控制增量加权三部分;第一部分保证WMR快速稳定地跟踪上参考轨迹,第二部分保证不要太大从而实现能量低的目标,第三部分保证不要太大从而实现跟踪轨迹平顺性的目标; 、与是加权矩阵,越大WMR轨迹跟踪越快,越大能量越低,越大控制量变化越平顺,通过调节这三个参数来达到WMR快速稳定跟踪、平顺性与能量低的控制目标,这三部分属于软约束;除此之外还存在机械结构物理约束的数学描述,表示控制动作的最大范围,其中左右轮角速度、在[0,30]范围内,前轮转角在[-0.5,0.5]范围内,属于硬约束。
3.权利要求书1所述的非线性预测控制的FPGA硬件加速控制器的加速实现方法,其特征在于:通过ModelSim对各个模块进行功能仿真,保证各个模块设计的正确性;最后在顶层设计各个模块时序实现NMPC控制器,进行编译综合、布局布线;
(a)三角函数求解模块:
采用旋转坐标法求解三角函数,通过忽略向量长度,经过一系列的小角度的旋转逐渐逼近实际角度的方法:
(6)
其中,旋转因子,表示每次旋转中向量模长的变化,初始值及;
(b)随机数发生模块:
采用线性反馈移位寄存器产生均匀分布的伪随机数序列:
(7)
gm为反馈系数,取值只能为0或1,取为0时表示不存在该反馈之路,取为1时表示存在该反馈之路;m个D触发器最多可以提供2^n-1个状态;
(c)PSO求解器模块加速方法:
PSO采用全并行、分组并行或串行的设计方式,并行度越大速度越快,硬件资源消耗越多;
(d)目标函数模块:
粒子在更新的过程中,根据目标函数评价粒子的优劣,如公式(4):选择优性粒子,淘汰劣性粒子,目标函数模块包括轨迹跟踪、控制增量加权与控制量加权三部分,对于内部三角函数的计算部分采用三角函数模块,该模块的运算可以通过式(6)计算出;
(e)矩阵运算模块:
矩阵运算模块主要包括控制模块和计算模块,当检测到起始start信号时,控制模块给出输入矩阵A、B地址并将读取数值传输到计算模块,同时控制模块使能计算模块;计算完成后,控制模块与计算模块分别给出输出矩阵C的地址与数值;更新输入矩阵A、B的地址,重复上述计算步骤,直到整个计算结束,给出完成信号,矩阵运算模块重新处于等待状态;
(f)模块集成:
各个模块设计完成及功能验证正确后,在顶层中例化各个模块,为实现NMPC与WMR的数据通信,设计串口发送模块与接收模块,波特率为115200bps,串口模块是5接收3发送模块,每个数据两个字节,加上起始位与停止位,那么串口通信时间为20*8/115200=1.38ms;根据时序先后,添加UART串口接收与发送模块,完成NMPC控制器设计;对NMPC控制器进行编译综合、布局布线,最后生成 FPGA 配置文件并进行板级验证。
4.根据权利要求3所述的非线性预测控制的FPGA硬件加速控制器的加速实现方法,其特征在于:(c)步骤所述的分组并行粒子结构是将粒子分成三组,三组并行PSO结构:每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),假设速度和位置分别有30*3个寄存器,将30个3维粒子分成三组,每组10个3维粒子是并行运算的,即同时运行30个寄存器更新运算与目标函数模块,每个粒子在每一维上是串行和流水线计算的;组内并行PSO微架构机制为:首先通过上述随机数发生模块中公式(5)初始化粒子位置,根据目标函数模块衡量各个粒子的优劣,并与之前的粒子比较,取其中的较好粒子更新粒子的局部最优位置;然后按照速度位置更新公式更新各个粒子的速度及位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,该模块将在后文介绍;然后对第二组与第三组粒子执行相同操作,通过比较,将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出全局最优作为优化解。
5.根据权利要求3所述的非线性预测控制的FPGA硬件加速控制器的加速实现方法,其特征在于:(c)步骤所述的全并行PSO结构:结构中N个粒子在D维上是全并行运算的,每个粒子在每一维上串行和流水线计算;每个粒子在每一维搜索空间上有速度和位置两个状态,如公式(5),首先通过RNG初始化粒子位置,根据目标函数模块衡量粒子的优劣,与之前的位置比较,刷新每个粒子的最优位置,粒子位置更新中个体与社会学习两部分采用矩阵运算模块求解,然后更新速度及位置;最后将所有粒子的最小值作为全局最优;不断迭代这一过程,当达到最大迭代次数时,输出最优值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610418142.9A CN105955031B (zh) | 2016-06-13 | 2016-06-13 | 非线性预测控制的fpga硬件加速控制器及其加速实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610418142.9A CN105955031B (zh) | 2016-06-13 | 2016-06-13 | 非线性预测控制的fpga硬件加速控制器及其加速实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955031A true CN105955031A (zh) | 2016-09-21 |
CN105955031B CN105955031B (zh) | 2018-11-06 |
Family
ID=56905614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610418142.9A Active CN105955031B (zh) | 2016-06-13 | 2016-06-13 | 非线性预测控制的fpga硬件加速控制器及其加速实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955031B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874999A (zh) * | 2017-02-15 | 2017-06-20 | 湖南省瞬渺通信技术有限公司 | 一种基于fpga的全流水粒子群优化算法实现方法 |
CN108167802A (zh) * | 2017-11-23 | 2018-06-15 | 华能国际电力股份有限公司大连电厂 | 低负荷下锅炉负荷的多模型智能寻优预测控制方法 |
CN108973769A (zh) * | 2018-06-15 | 2018-12-11 | 吉林大学 | 一种全线控电动汽车路径跟踪控制方法 |
CN109495408A (zh) * | 2017-09-13 | 2019-03-19 | 瑞昱半导体股份有限公司 | 波特率跟踪及补偿装置与方法 |
CN109670210A (zh) * | 2018-11-26 | 2019-04-23 | 华南理工大学 | 一种基于并行分布式粒子群算法的功率电子电路优化方法 |
CN109884900A (zh) * | 2019-04-03 | 2019-06-14 | 东南大学 | 基于自适应模型预测控制的收获机路径跟踪控制器的设计方法 |
CN110134042A (zh) * | 2019-05-10 | 2019-08-16 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN110421247A (zh) * | 2019-06-25 | 2019-11-08 | 上海柏楚电子科技股份有限公司 | 一种用于薄脆材料的超快激光等距离打点加工方法 |
CN112462612A (zh) * | 2020-12-01 | 2021-03-09 | 吉林大学 | 基于并行牛顿求解的车辆横纵耦合非线性模型预测控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002032104A (ja) * | 2000-07-14 | 2002-01-31 | Nagoya Industrial Science Research Inst | 遺伝的アルゴリズムによる非線形システム同定方法 |
CN101272373A (zh) * | 2008-05-07 | 2008-09-24 | 北京北方烽火科技有限公司 | 一种自适应模拟正交调制失衡补偿方法和装置 |
CN101364085A (zh) * | 2008-09-12 | 2009-02-11 | 北京控制工程研究所 | 非线性微分黄金分割自适应控制方法 |
CN103268067A (zh) * | 2013-05-03 | 2013-08-28 | 哈尔滨工业大学 | 一种基于拟四元数与拟四元数运动学方程的卫星指向跟踪控制方法 |
CN103745027A (zh) * | 2013-12-03 | 2014-04-23 | 安徽大学 | 一种基于非线性切换系统的伺服转台建模方法 |
-
2016
- 2016-06-13 CN CN201610418142.9A patent/CN105955031B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002032104A (ja) * | 2000-07-14 | 2002-01-31 | Nagoya Industrial Science Research Inst | 遺伝的アルゴリズムによる非線形システム同定方法 |
CN101272373A (zh) * | 2008-05-07 | 2008-09-24 | 北京北方烽火科技有限公司 | 一种自适应模拟正交调制失衡补偿方法和装置 |
CN101364085A (zh) * | 2008-09-12 | 2009-02-11 | 北京控制工程研究所 | 非线性微分黄金分割自适应控制方法 |
CN103268067A (zh) * | 2013-05-03 | 2013-08-28 | 哈尔滨工业大学 | 一种基于拟四元数与拟四元数运动学方程的卫星指向跟踪控制方法 |
CN103745027A (zh) * | 2013-12-03 | 2014-04-23 | 安徽大学 | 一种基于非线性切换系统的伺服转台建模方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874999A (zh) * | 2017-02-15 | 2017-06-20 | 湖南省瞬渺通信技术有限公司 | 一种基于fpga的全流水粒子群优化算法实现方法 |
CN109495408B (zh) * | 2017-09-13 | 2021-06-22 | 瑞昱半导体股份有限公司 | 波特率跟踪及补偿装置与方法 |
CN109495408A (zh) * | 2017-09-13 | 2019-03-19 | 瑞昱半导体股份有限公司 | 波特率跟踪及补偿装置与方法 |
CN108167802A (zh) * | 2017-11-23 | 2018-06-15 | 华能国际电力股份有限公司大连电厂 | 低负荷下锅炉负荷的多模型智能寻优预测控制方法 |
CN108973769A (zh) * | 2018-06-15 | 2018-12-11 | 吉林大学 | 一种全线控电动汽车路径跟踪控制方法 |
CN109670210A (zh) * | 2018-11-26 | 2019-04-23 | 华南理工大学 | 一种基于并行分布式粒子群算法的功率电子电路优化方法 |
CN109884900A (zh) * | 2019-04-03 | 2019-06-14 | 东南大学 | 基于自适应模型预测控制的收获机路径跟踪控制器的设计方法 |
CN109884900B (zh) * | 2019-04-03 | 2022-04-12 | 东南大学 | 基于自适应模型预测控制的收获机路径跟踪控制器的设计方法 |
CN110134042A (zh) * | 2019-05-10 | 2019-08-16 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN110134042B (zh) * | 2019-05-10 | 2021-11-05 | 吉林大学 | 车辆路径跟踪预测控制器及fpga异构加速实现方法 |
CN110421247B (zh) * | 2019-06-25 | 2021-02-12 | 上海柏楚电子科技股份有限公司 | 一种用于薄脆材料的超快激光等距离打点加工方法 |
CN110421247A (zh) * | 2019-06-25 | 2019-11-08 | 上海柏楚电子科技股份有限公司 | 一种用于薄脆材料的超快激光等距离打点加工方法 |
CN112462612A (zh) * | 2020-12-01 | 2021-03-09 | 吉林大学 | 基于并行牛顿求解的车辆横纵耦合非线性模型预测控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN105955031B (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955031A (zh) | 非线性预测控制的fpga硬件加速控制器及其加速实现方法 | |
CN108154240A (zh) | 一种低复杂度的量子线路模拟系统 | |
Vouzis et al. | A system-on-a-chip implementation for embedded real-time model predictive control | |
CN102495932A (zh) | 一种基于响应面建模和改进粒子群算法的有限元模型修正方法 | |
CN109711002A (zh) | 新车型载荷分解方法及装置 | |
CN110134042B (zh) | 车辆路径跟踪预测控制器及fpga异构加速实现方法 | |
CN103366033B (zh) | 统计电路仿真的方法和系统 | |
Wurts et al. | Design for real-time nonlinear model predictive control with application to collision imminent steering | |
Waidyasooriya et al. | Architecture of an FPGA accelerator for molecular dynamics simulation using OpenCL | |
Zhang et al. | Statics analysis based on the reduced multibody system transfer matrix method | |
CN114777762B (zh) | 一种基于贝叶斯nas的惯性导航方法 | |
CN108536954A (zh) | 一种基于交点间断伽辽金的高精度格子波尔兹曼方法 | |
Murthy et al. | Methodology for implementation of unmanned vehicle control on FPGA using system generator | |
Wu et al. | A limited-memory BFGS-based differential evolution algorithm for optimal control of nonlinear systems with mixed control variables and probability constraints | |
Yu et al. | GPU-based JFNG method for power system transient dynamic simulation | |
KR20230117364A (ko) | 클록 인식 시뮬레이션 벡터 프로세서 | |
Ersoy et al. | Realization of artificial neural networks on FPGA | |
Chakraborty et al. | Design tools for resistive crossbar based machine learning accelerators | |
CN116090273B (zh) | 一种材料变形的量子模拟方法、装置、终端及存储介质 | |
CN116090274B (zh) | 基于量子计算的材料变形模拟方法、装置、终端及介质 | |
CN115618663B (zh) | 一种网格方程与物理方程耦合的量子求解方法及装置 | |
CN103196446B (zh) | 高过载环境下的捷联惯性导航系统陀螺信号智能滤波方法 | |
Badıa et al. | Balanced truncation model reduction of large and sparse generalized linear systems | |
CN117408345A (zh) | 基于lbm的量子流动模拟方法、装置、介质及设备 | |
Zhao et al. | Research on Key Parameters Identification Method of Dummy Model in Vehicle Collision Simulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |