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

来源:
导读 大家好,我是本期栏目编辑小友,现在为大家讲解基于Linux和s3C2440的GPC控制器设计问题。 基于Linux和s3C2440的GPC控制器设计。 近年来,

大家好,我是本期栏目编辑小友,现在为大家讲解基于Linux和s3C2440的GPC控制器设计问题。

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

近年来,基于互联网的网络化控制系统已成为国内外测控领域的研究热点,在石油勘探开发、钢铁化工等领域具有广阔的应用前景。控制器的设计和开发是整个网络控制系统的关键和核心。在一些区域高度分散、环境恶劣的控制场所,采用嵌入式系统作为控制器节点,可以更有利于多点分布式集成控制和并行处理,达到更好的测控效果。然而,由于网络传输的特点,网络时延必然会影响网络控制系统的控制性能和稳定性。因此,本文提出了一种基于S3C2440A和嵌入式Linux的广义预测控制控制器设计方案,具有一定的通用性。

1控制器硬件平台设计。

控制器是嵌入式网络化测控系统的核心。在测控系统中,主控制器负责控制算法的实现和数据采集,这就要求控制器节点的硬件平台具有更强的计算能力和更好的网络性能。本文中控制器的硬件平台为三星公司的S3C2440,外围设备主要包括RAM、Flash等。控制器的硬件平台结构如图1所示。

(1)介绍1)S3C2440处理器。

该系统采用三星16/32位RISC微处理器S3C2440AL作为控制器核心。S3C2440AL的一大特点是其核心处理器(CPU)采用16/32位ARM920T的RISC微处理器。ARM920T实现了MMU、AMBA总线和Har-vard缓存架构。系统资源丰富,外设接口丰富,包括电源管理器、外部存储控制器、4通道DMA、3通道UART、8通道10位ADC、GPIO。

(2)外围电路介绍。

控制器外围电路主要由存储电路模块、通信模块和JTAG调试电路组成。存储电路模块采用两个HY57V561620FTP芯片作为外部SDRAM。SST39VF1601(2 MB)芯片用作存储引导加载程序的或非闪存。K9F1208芯片(64 MB)用作NAND闪存,用于存储操作系统和文件系统。通信模块采用DM9000网卡芯片和网络变压器HR911103A实现以太网接口设计。同时设计了USBhost接口电路,为下一步的WLAN通信提供接口。A/d和d/a接口电路实现数据采集和控制信号发送。

2控制器软件平台设计。

2.1软件平台总体结构。

控制器软件的架构如图2所示。最底层是设备驱动层,主要是初始化处理器,驱动各个外围电路模块。第二层是嵌入式Linux操作系统,主要管理系统的软硬件资源、上层应用、操作底层驱动接口。第三层是Web服务器,实现对控制器的访问控制:Browser/Server;第四层是应用,主要包括实时数据库、GPC控制算法和时钟同步应用。

2.2引导加载程序的配置和编译。

首先在主机的Linux下建立arm-Linux-gcc-2.95.3交叉编译环境,将vivi.tgz解压到Linux的对应目录,然后进入vivi目录,执行make menuconfig命令进入vivi配置界面,配置vivi的参数。配置后,编译,并在当前目录下生成vivi。你可以用H-JTAG写vivi到NAND闪存运行。

2.3 Linux移植。

(1)编译Linux内核。

首先在主机Linux下建立arm-Linux-gcc-3.4.1交叉编译环境,然后将Liunx-2.6.13.tgz提取到Linux的某个目录下,执行make menuconfig命令进入内核配置界面,定制Linux内核,包括CPU配置、网卡和声卡驱动、串口、支持yaffs文件系统等选项。自定义后,保存设置并退出。然后编译内核,生成内核镜像文件zImage。

(2)制作yaffs文件系统。

制作yaffs文件系统映像需要mkyaffsimage工具程序。首先,将其提取到//usr/sbin目录,然后将文件系统提取到一个Linux目录。此时,用户可以将自己的应用程序或其他文件添加到文件系统中。添加后,使用mkyaffsimage命令获取root.img图像文件。最后,可以使用H-JTAG将生成的图像文件刻录到NAND闪存中运行。

2.4 boa服务器的移植和构建。

在网络化测控系统中,每个测控节点都需要使用Web浏览器进行监控和数据交互。Web服务器作为数据载体,可以将本地信息和数据通过网络传输给远程请求客户,对实现远程联网监控具有重要意义。因此,有必要移植网络服务器。Boa的优势在于源代码开放,性能好,可靠性高。本文中,网络服务器的构建也是基于Boa的。

首先在官网下载源代码Boa-0.94.13.tar.gz,解压到一个林旭主机的目录,然后进入src目录执行。/congfi。

g命令,生成Makefile.in文件。由于生成的Makefile文件是针对X86平台的,为了生成能够在ARM上运行的Boa,需要修改Makefile文件。找到CC=gcc,CPP=gcc-E这两行,并修改为CC=arm-linux-gcc,CPP=arm-linux-gcc-E;然后使用make命令进行编译,编译成功后会在src目录下生成1个可运行在ARM平台下的Boa可执行文件,然后将编译好的Boa程序放入,/sbin目录下。

  在目标板上运行Boa之前,还需要对boa.conf文件进行配置。boa.conf文件主要包含的boa基本参数:Port,boa服务器监听的端口;User,连接到服务器的客户端的身份;DocumentRoot,HTML文件的根目录。用户可以根据自己的需要进行设置,设置完毕后进入sbin目录,直接运行Boa就可以直接启动Web服务器。

 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控制器,满足远程实时控制需求,具有一定的应用前景。

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

近年来,基于Internet的网络化控制系统已成为国内外测控领域研究的热点,在石油勘探开发、钢铁化工等领域有着广阔的应用前景。而控制器的设计和研发是整个网络控制系统的关键和核心。在一些地域高度分散以及环境恶劣的控制现场,使用嵌入式系统作为控制器节点,可更有利于多点分布式综合布控及并行处理,实现更好的测控效果。然而由于网络传输本身的特点,网络时延会不可避免地影响网络控制系统的控制性能和稳定性,因此本文提出基于S3C2440A及嵌入式Linux的GPC(Generalized PredicTIveControl)控制器的设计方案,具有一定的通用性。

  1 控制器硬件平台设计

  控制器节点是嵌入式网络化测控系统的中心。在测控系统中,主控制器承担着控制算法的实现和数据采集两大任务,这要求控制器节点的硬件平台有更强的计算能力,以及更好的网络性能。本文中控制器的硬件平台采用三星公司的S3C2440,外围设备主要有RAM、Flash等。控制器的硬件平台结构如图1所示。

  (1)S3C2440处理器简介

  本系统采用三星公司的16/32位RISC微处理器S3C2440AL作为控制器核心。S3C2440AL的一大特点是其核心处理器(CPU)采用16/32位ARM920T的RISC微处理器。ARM920T实现了MMU、AMBA BUS和Har-vard高速缓冲体系结构。系统资源和外围接口丰富,包括电源管理器、外部存储器控制器、4通道DMA、3通道UART、8路10位ADC和GPIO等。

  (2)外围电路简介

  控制器外围电路主要由存储器电路模块、通信模块以及JTAG调试电路等构成。其中存储器电路模块采用2片HY57V561620FTP芯片作为外扩SDRAM;采用1片SST39VF1601(2 MB)芯片作为NOR Flash,用于存放bootloader程序;采用1片K9F1208芯片(64 MB)作为NAND Flash,用于存放操作系统以及文件系统。在通信模块中采用DM9000网卡芯片和网络变压器HR911103A,以实现以太网接口的设计;同时设计了USBhost接口电路,为下一步实现WLAN通信提供接口。A/D和D/A接口电路实现数据的采集和控制信号的发出。

  2 控制器软件平台设计

  2.1 软件平台整体结构

  控制器节点软件体系结构如图2所示。其中最底层为设备驱动程序层,主要进行处理器初始化和驱动各外设电路模块;第2层为嵌入式Linux操作系统,主要管理系统的软硬件资源、上层应用,以及操作底层驱动接口;第3层为Web服务器,以实现控制器的:Browser/Server访问控制;第4层为应用程序,主要包括实时数据库、GPC控制算法和时钟同步应用程序。

  2.2 bootloader的配置和编译

  首先在宿主机的Linux下建立arm-linux-gcc-2.95.3交叉编译环境,将vivi.tgz解压缩到Linux的相应目录下,进入vivi目录,执行make menuconfig命令进入vivi配置界面,对vivi的参数进行配置。完成配置之后,进行编译,此时已经在当前目录下生成了vivi。可使用H-JTAG将vivi烧写到NAND Flash运行。

  2.3 Linux的移植

  (1)编译Linux内核

  首先在宿主机的Linux下建立arm-linux-gcc-3.4.1交叉编译环境,然后将Liunx-2.6.13.tgz解压缩到Linux的某一目录下,执行make menuconfig命令进入内核配置界面,定制Linux内核,包括配置CPU选项、网卡声卡驱动、串口、对yaffs文件系统的支持等选项。完成定制之后,保存设置退出。然后对内核进行编译,即可生成内核映像文件zImage。

  (2)制作yaffs文件系统

  制作yaffs文件系统映像需要使用mkyaffsimage工具程序。首先将其解压缩到/usr/sbin目录下,然后将文件系统解压缩到Linux某一目录下,此时用户可以将自己编写的应用程序或其他文件添加到文件系统中。添加完毕后使用mkyaffsimage命令即可得到root.img镜像文件。最后可使用H-JTAG将生成的映像文件烧写到NAND Flash运行。

  2.4 Boa服务器的移植和构建

  在网络化测控系统中,每个测控节点都需要使用Web浏览器进行监控和数据交互。Web服务器作为一个数据载体,可以将本地的信息和数据通过网络传递给远端发出请求的客户,这对远程网络化监控的实现有重要意义。因此Web Server的移植成为一项必不可少的工作。Boa的优点在于其源代码开放、性能好和可靠性高。本文中Web Server的构建也是基于Boa展开的。

  首先在官方网站上下载Boa的源码boa-0.94.13.tar.gz,解压缩到Linxu宿主机的某一目录下,然后进入src目录,执行./congfig命令,生成Makefile.in文件。由于生成的Makefile文件是针对X86平台的,为了生成能够在ARM上运行的Boa,需要修改Makefile文件。找到CC=gcc,CPP=gcc-E这两行,并修改为CC=arm-linux-gcc,CPP=arm-linux-gcc-E;然后使用make命令进行编译,编译成功后会在src目录下生成1个可运行在ARM平台下的Boa可执行文件,然后将编译好的Boa程序放入,/sbin目录下。

  在目标板上运行Boa之前,还需要对boa.conf文件进行配置。boa.conf文件主要包含的boa基本参数:Port,boa服务器监听的端口;User,连接到服务器的客户端的身份;DocumentRoot,HTML文件的根目录。用户可以根据自己的需要进行设置,设置完毕后进入sbin目录,直接运行Boa就可以直接启动Web服务器。

 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控制器,满足远程实时控制需求,具有一定的应用前景。

技术专区 睿赛德科技喜迁新址 ,RT-Thread进入新的加速发展阶段 可靠性高、控制灵活、低功耗可调速风扇散热系统 安防监控摄像头LED驱动解决方案 如何定制嵌入式Linux发行版 基于SoC实现的数据采集系统详解

标签:

版权声明:转载此文是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢您的支持与理解。