微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于Linux和s3C2440的GPC控制器设计

基于Linux和s3C2440的GPC控制器设计

时间:01-24 来源:作者:单片机与嵌入式系统 江西理工大学 徐涢基 杜宝祯 祝静 何鹏举 点击:
3 GPC算法的设计与实现

  广义预测控制算法是Clarke等人于1987年提出的。该算法在保留了DMC、MAC等算法中多步预测优化策略的基础上,同时借鉴了最小方差自校正控制中的模型预测、最小方差控制、在线辨识的思想。因此对模型精度要求低,对变时滞的对象具有较强的鲁棒性,近年来得到了广泛的应用和重视。本文采用GPC算法解决时延问题。

  3.1 GPC算法

  在GPC中,采用最小方差控制中使用的受控自回归积分滑动平均模型(CARIMA)来描述被控对像,即

  式中z-1是后移算子,表示后退1个采样周期的相应量;A(z-1),B(z-1),C(z-1)为后移算子z-1的多项式。y(k)为系统输出,u(k)为控制输出。ξ(t)是均值为0、方差为0的白噪声序列,表示一类随机噪声的影响。△为差分算子,且△=1-z-1。一般,令C(z-1)=1。为了便于研究,在不影响系统算法研究的前提下,令系统为SISO系统。GPC算法的目标函数中引入了控制增量加权参数,以增强系统的鲁棒性。其目标函数为

  其中,E为数学期望;ω(k十i)为输人参考轨迹,N1、N2分别为优化时域的初始值和终值,NU为控制时域,λ(j)为大于零的控制增量加权系数。广义预测控制算法问题最终归结为:通过递推求解Diophanfine方程,求出最优控制增量△U,使目标函数达到最小值。

  3.2 MatIab仿真及生成目标代码

  RTW是Matlab提供的代码自动生成工具,可使Simulink模型自动生成面向不同目标的代码。目前通过Matlab/RTW可生成在PC、ARM等设备上运行的代码,以及在Windows、Linux等系统上运行的可执行文件。利用RTW自动生成代码,可使工程师专注于系统设计和实现,减轻编程工作量,加快产品研发的速度。GPC算法的仿真和调试是在Matlab7.0环境下,利用MPC工具箱,编制了相应程序而实现。由于Matlab中,m语言无法直接移植到嵌入式控制器中,因此先要用simulink构建系统模型,然后再用Real-Time Workshop自动生成面向ARM平台的C代码。

  利用RTW自动生成代码的实验步骤如下:

  ①用Matlab的m语言编写GPC算法程序,仿真通过后,封装成Simulink仿真框图,并建立GPC控制系统模型Model.mdl。

  ②在Simulink窗口中,选择Simulink|Configuration Parameters选项,对solvet option、Data Import/Export等进行设置。

  ③选中Generate code only复选框,单击build,代码自动生成。

  ④整合底层驱动函数、用户定义的函数以及自动生成的GPC程序,编译生成目标文件。

  从图3可以看出,在伴有随机扰动的二价系统中,基于GPC算法的控制器的超调量和调节时间都比较小,且上升时间快,表现出良好的动态性能和鲁棒性。这和GPC算法多步预测、滚动优化的特点是分不开的。

  结 语

  本文成功构建了网络化控制器节点的软硬件平台,并通过Matlab/RTW半实物仿真的方法,实现了GPC算法的快速移植,对网络延迟进行了补偿。该测控平台应用范围相当广泛,适用于基于Ethernet的嵌入式Web控制器,满足远程实时控制需求,具有一定的应用前景。 (发布者:chiying)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top