关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于Linux和s3C2440的GPC控制器设计

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

作者: 时间:2009-12-14 来源:网络 收藏

3.1 算法
中,采用最小方差中使用的受控自回归积分滑动平均模型(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系统。算法的目标函数中引入了增量加权参数,以增强系统的鲁棒性。其目标函数为

其中,E为数学期望;ω(k十i)为输人参考轨迹,N1、N2分别为优化时域的初始值和终值,NU为控制时域,λ(j)为大于零的控制增量加权系数。广义预测控制算法问题最终归结为:通过递推求解Diophanfine方程,求出最优控制增量△U,使目标函数达到最小值。
3.2 MatIab仿真及生成目标代码
RTW是Matlab提供的代码自动生成工具,可使Simulink模型自动生成面向不同目标的代码。目前通过Matlab/RTW可生成在PC、ARM等设备上运行的代码,以及在Windows、等系统上运行的可执行文件。利用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算法多步预测、滚动优化的特点是分不开的。

本文引用地址:https://www.eepw.com.cn/article/163415.htm

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

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭