基于ARM的自适应PID控制器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
向发展,因此充分利用Internet 网络是该发展方向的必备资源.目前各种嵌入式系统接入Internet 网
络的方法都有其优缺点,主要的不足在于利用实时多任务操作系统与高档单片机实现网络的连接其实现成本昂贵,开发周期较长,对开发发人员的开发能力要求较高;采用各种特定协议方式的则需要系统设计工程师熟悉相关的接口,同时对应用到的单片机不一定与原应用系统中的单片机兼容,软硬件的设计工作量也较大.本文研究一种基于单片机的网络通信系统框架,解决了低端MCU 实现网络化的一种新途径,具有成本低、硬件少、使用方便等优点.随着嵌入式网络系统设备实时性地不断提高,单片机与网络相结合的方法将会更广泛地应用在家庭和工业的各个领域.
参考文献:
[1] 李朝青,刘艳玲,沈怡麟.单片机与PC 机网络通信技
术[M ].北京:北京航空航天大学出版社,2007.
[2] 沙占友.嵌入式单片机网络测控系统的设计[J ].大理
学院学报,2006,5(2):1-4.
[3] 徐青菁,唐厚君.单片机嵌入式系统实现的网络远程监
控系统[J ].测控技术,2006,25,(6):48-50.
[4] 唐松林,陆兴旺,刘小斌,等.一种适于单片机系统的网
络通信协议[J ].自动化技术与应用,2006,25(10):92
-95.
[5] 罗志伟,陈 亮.多学科协同设计中的项目管理[J ].机
械与电子,2006,11(1):95-98.
作者简介:罗志伟 (1979-),男,福建龙岩人,讲师,硕士,研
究方向为机电一体化.
基于A RM 的自适应PID 控制器的设计
浦汉军1,吴彤峰2,黄振峰1,付瑞斌1
(1.广西大学机械工程学院,广西南宁530004;2.广西工学院汽车工程系,广西柳州545006)
Design of Self 2adaptive PID Cont roller Based on A RM
PU H an 2jun 1,WU Tong 2feng 2,HUANG Zhen 2feng 1,FU Rui 2bin 1
(1.College of Mechanical Engineering of Guangxi University ,Nanning 530004,China ;2.Automotive Engineering
Departments of Guangxi University of Technology ,Liuzhou 545006,China )
摘要:设计了基于ARM 的自适应PID 控制器,
采用改进后的单神经元PID 控制算法,该控制算法具有良好的自适应能力,对线性、非线性、滞后的系统都有较好的控制效果.并通过VB6.0编程,以良好的人机交互界面实现了控制参数的在线调整.
关键词:控制器;自适应PID ;ARM ;VB ;串口通信
中图分类号:TP273文献标识码:A
文章编号:100122257(2009)0420049204
收稿日期:2008211212
基金项目:广西研究生教育创新计划资助项目(20081059308022
M62)
Abstract :This article int roduces t he design of self 2adaptive PID cont roller based on ARM.The improved single neuron self 2adaptive PID algorit hm which has a st rong self 2adaptive capability is a 2
dopted in t he system ,so it can cont rol systems wit h linear ,non 2linear and time delay effectively.Wit h a f riendly human 2machine interface develop ment by Visual Basic 6.0,online self 2regulating of t he con 2t rol parameters is realized.
K ey
w ords :cont roller ;self 2adaptive
PID ;
ARM ;VB ;serial communication
0 引言
传统的PID 控制算法对线性的和数学模型确定的系统有良好的控制效果.然而实际的系统大多是非线性、滞后和数学模型难以确立的系统,采用传统的PID 控制方法控制效果较差,自适应控制则具有良好的控制效果.目前的自适应控制器大多都是针对某一种专用系统去设计的,通用性较差,且价格昂贵.本文研究并实现的基于ARM 的自适应PID
控制器,它是将神经网络与传统PID 相结合的一种新型自适应控制算法,能在线调整控制系统的比例,积分,微分参数,具有良好的自适应能力,能有效地减小超调,缩短调节时间.同时该控制器具有成本低、通用性好的特点,可以应用于恒速系统、生产线自动控制等工业控制领域.
1 系统总体方案
系统结构如图1所示.系统由PC 机和ARM 控制器组成.PC 机主要作用是实现控制参数的在线修改,并通过串口与下位机通信.A RM 控制器是核
心,主要是接收主机的控制参数,采样实际对象的数据,进行自适应控制算法运算,输出控制信号,以实现对目标对象的控制.
图1 系统结构
A RM 公司的处理器具有性能高、成本低和能
耗小的特点,应用于多种领域,如嵌入控制、消费/教育类多媒体、DSP 和移动式应用等[1].L PC22294是基于一个支持实时仿真和跟踪的32位
ARM7TDM I 2STM CPU ,其内部资源有16kB 片内静态RAM 、256kB 片内Flash 程序存储器、2个32位定时器、8路10位A/D 转换器,4路CAN 、PWM 通道、9个外部中断和2个16C550工业标准UA R T [2].其最大运行时钟频率为60M Hz ,市场价
格为80元左右.本文选用L PC22294作为控制器,加入电源电路、复位电路、J TA G 接口电路、UA R T 接口电路以及外围接口电路,便构成了控制器的硬件.其硬件结构如图
2所示.
图2 控制器硬件
2 软件设计
2.1 自适应PID 算法2.1.1 单神经元PID 算法
单神元PID 算法的控制结构如图3所示.该算法通过对加权系数的调整来实现自适应、自组织功
能.加权系数的调整规则是采用有监督的Hebb 学
习规则[3].设ηI ,ηP ,ηD 分别为积分、比例、微分的学习速率;K 为神经元的比例系数;权值w 1(k ),w 2
(k ),w 3(k )分别对应传统PID 算法中的积分、比例、
微分系数.其控制算法和学习算法为
:
图3 单元神经PID 控制结构
Δu (k )=K
∑3
i =1
w ′i
(k )x
i
(k )(1)w ′i (k )=w i (k )/
∑3
i =1
|
w i (k )|
(2)w 1(k )=w 1(k -1)+ηI z (k )u (k )x 1(k )(3)w 2(k )=w 2(k -1)+ηP z (k )u (k )x 2(k )(4)w 3(k )=w 3(k -1)+ηD z (k )u (k )x 3(k )
(5)
式中
Δe (k )=e (k )-e (k -1) z (k )=e (k );x 1(k )=e (k )
x 2(k )=Δe (k )=e (k )-e (k -1)
x 3(k )=Δ2e (k )=e (k )-2e (k -1)+e (k -2)2.1.2 改进的单神经元PID 算法
单神经元控制算法是运用自身的学习能力,使权值依照外界环境学习达到控制目的,但权值自校
正速度较慢,所以相对PID 控制算法而言,它对给定信号的响应速度较慢.为使该算法响应更快速,采用积分分离方法,应用改进的单神经元按误差大小来分段进行控制,在大误差范围内,神经元的输入维数为2,分别为x 2,x 3,以加快误差的消除,避免积分饱和,加快调节过程;而在小误差范围内,神经元输入的维数为3,分别为x 1,x 2,x 3,即采用改进的单神经元自适应PID 控制器,以便系统细调,加强自适应性及消除稳态误差.由上面分析知:
Δu (k )=K[w ′2(k )x 2(k )+w ′3(k )x 3(k )]
|e (k )|>ξΔu (k )=K ∑3i =1
w ′i (k )x i (k )
|e (k )|<ξ(6)
式中 ξ———误差大小2.2 ARM 目标机软件设计
控制器的主程序与串口接收中断程序的流程分别如图4、图5所示.程序采用C 语言和ARM 汇编语言编写[4].程序运行时,PC 机和A RM 目标机先
进行握手.握手过程是:由PC 机发送握手信号,ARM 目标机接收到握手信号后向PC 机发送应答信号,PC 机接收到应答信号说明通信过程挂钩成功.握手成功后,PC 机和A RM 目标机可以通讯
.图4 ARM 目标机主程序 图5 串口接收中断程序
PC 机向A RM 控制器发送来的参数有:采样周
期,系统期望输出值;初始权值w 10,w 20,w 30;学习
速率ηI ,ηP ,ηD ;系数K ,ξ.目标机接收到这些参数后,进行改进的单神经元PID 算法运算和控制输
出.改进的单神经元PID 算法的程序流程如图6所示
.
图6 改进的单神经元PID 算法程序
2.3 PC 机的软件设计
Visual Basic 6.0因为具有易学易用、编程简单
和程序集成化高等优点,被广泛地用于开发各种应
用系统.在串口通信方面,用MsComm 控件开发串口通信程序的方法简单,故采用VB6.0作为PC 机程序的开发软件.2.3.1 VB 程序界面
编写VB 程序,界面如图7所示.程序界面中,
采用8个HScrollBar 控件实现参数ηI ,ηP ,ηD ,K ,ξ和单神经元算法初始权值w 10,w 20,w 30的在线设
置;用4个CommandButton 按键来实现串口的连接、发送、断开以及程序的退出功能.程序运行时,用户只需在期望输出和采样时间所对应的文本框里输入期望输出值和采样时间,然后用鼠标拖动相应的HScrollBar 滑动键来改变控制参数,点击“连接"按键实现串口的初始化,单击“发送"按键,把控制参数
发送到ARM 控制器上.当ARM 控制器接收到新的控制参数时,即按这些参数进行运算,输出控制信号.用户可以通过拖动滑动键来改变控制参数的值,以实现对系统控制效果的调整,直到最优
.
图7 自适应PID 控制系统VB 程序界面
2.3.2 VB 程序代码的编写
①创建MsComm 控件.
使用MsComm 控件开发串行通信程序时,首先在窗体中添加一个MsComm 控件,然后对其相关属性进行必要的设置,再设计OnComm 事件过程或读取MsComm 输入缓冲区的通用过程即可[5].
②串口初始化.
为了实现串口通信,必须对串口进行初始化操作,实现的主要代码如下:
Private Sub Command1_Click ()‘“连接"按键所对应的Click ()函数
Call CheckSerial ‘检查选择的串口是否存在(CheckSerial 为用户编写的函数)
mPort =Combo1.List Index
+1‘设置串口
MSComm1.Settings ="9600,N ,8,1"‘设置
串口通信的波特率、奇偶校验位和停止位
MSComm1.Inp utLen =0‘设置Inp utLen 属性,这里表示读取缓冲区中所有数据
If MSComm1.PortOpen =False Then MSComm1.PortOpen =True ‘打开串口End If End Sub
③Text 文本框设置代码.Text 文本框设置代码如下:
Form1.Text1.Text =St r (Form1.HScrolll.Value )‘设置学习速率ηI 所对应的文本框的值
∗∗ ‘设置ηP ,ηD 、ξ所对应的文本框的值由于HScrollBar 滑动键的返回值是整数,而参数K ,w 10,w 20,w 30为浮点数,因此滑动键的返回值不能直接用来设置其相应的Text 文本框,我们把
滑动键返回的值做些处理.如:
参数K所对应的Text文本框的设置代码如下:
Dim K As Single,temp As Integer
temp=Form1.HScroll6.Value
K=temp/1000
Form1.Text4.Text=Str(K)‘设置系数K 所对应的文本框的值
同理设置w10,w20,w30所对应的Text文本框.
Text文本框的设置代码,放在其相应的HScrollBar 控件的change()函数中.
④控制参数的发送.
首先通过val()函数取各参数所对应的Text文本框的值,然后再把参数发送到串口.其实现主要代码如下:
Private Sub Command2_Click()‘“发送"按键所对应的Click()函数
Dim XitaI As Integer‘定义学习速率ηI
∗∗‘定义其它整数类型的参数
Dim K As Single‘定义系数K
∗∗‘定义其它浮点数类型的参数
Dim Buffer1(0To2)As Byte‘定义整数发送缓冲数组
Dim Buffer1(0To4)As Byte‘定义浮点数发送缓数组
XitaI=val(Form1.Text1.Text)‘获取学习速率ηI的值
∗∗‘获取ηP,ηD,ξ,期望输出R、采样时间的值
K=Val(Text4.Text)‘获取系数K的值
∗∗‘获取w10,w20,w30的值
If MSCo mm1.PortOpen=True Then
CopyMemory Buffer1(0),XitaI,2‘发送学习速率ηI
MSComm1.Outp ut=Buffer
∗∗‘发送ηP,ηD,ξ,期望输出R,采样时间
CopyMemory Buffer2(0),K,4‘发送系数K
MSComm1.Outp ut=Buffer
∗∗‘发送ξ,w10,w20,w30
Else
MsgBox("请连接串口!")
End If
End Sub
3 实验
由于电动机拖动系统具有非线性、参数易变的特点,故本文用该控制器对拖动着可变负载的直流电动机进行恒速控制实验,以验证控制效果.实验中,L PC2294控制器运行的时钟频率为55M Hz,采用PWM输出来控制电机的转速,设置采样时间为10ms,期望转速为1200转,当在线调整控制参数η
I,
ηP,ηD,K,ξ分别为600,400,200,0.2,20时,控制响应时间较短,偏差在5%内,控制效果较好.
实验表明:参数ηI,ηP,ηD,ξ的取值与所控制的系统有关;参数K的选择很重要,K越大,快速性越好,但超调量大,甚至可能使系统不稳定;当被控对象时延增大时,K值取小些以保证系统的稳定,K 值选择太小,会使系统的快速性变差;权值w10, w20,w30的取值对系统的控制效果影响不太大,但按传统的PID控制参数去取值效果更好.
4 结束语
实验表明该控制器创新点在于,采用VB以良好的人机界面实现了控制参数的在线调整,从而使控制系统的调试变得方便易行.同时由于A RM控制器具有速度快、耗能小等优点,使该控制器具有较高的推广价值.
参考文献:
[1] 周立功.ARM嵌入式系统基础教程[M].北京:北京航
空航天大学出版社,2005.
[2] 广州周立功单片机发展有限公司.L PC2292/2294使用
指南[Z].2004.
[3] 刘金琨.先进PID控制MA TL AB仿真.2版[M].北
京:电子工业出版社,2004.
[4] 周立功.ARM嵌入式系统基础与实战.2版[M].北
京:北京航天航空大学出版社,2005.
[5] 丁建军,周国柱,陈定方.基于VB6.0的PC机与单片
机问的串口通信[J].机械与电子,2004,(2):47-49.
作者简介:浦汉军 (1982-),男,广西容县人,硕士研究生,研究方向为机电液一体化;吴彤峰 (1944-),男,湖南常宁人,硕士研究生导师,研究方向为汽车电子、机电液一体化.。