基于FPGA的模糊PID控制器设计

发布者:vnerwb池塘边最新更新时间:2012-12-31 来源: 电子设计工程 关键字:模糊PID  控制器  QuartusⅡ  Matlab 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    采用常规方法实现模糊PID控制器,通常需要设计比例、积分和微分三个模糊推理系统,由于每一项都需要相应的模糊控制器和模糊规则,存在运算量大,求解时间长,响应过程慢等问题,而且大量的模糊规则在实现时也需要消耗较多的逻辑资源。如果采用并行结构,以并行方式将PD模糊逻辑控制器PDFLC(PDFuzzy Logic Controller,PDFLC)和PIFLC,两个模糊逻辑控制器模块的输出进行叠加,实现PIDFLC,同时引入FPGA技术,便可以解决上述问题。通过QuartusⅡ和Matlab联合仿真,对设计方案进行了验证。

1 基于FPGA的模糊PID控制器实现原理
   
基于FPGA的模糊PID控制器的芯片结构如图1所示。控制器的输入量是控制对象的实际输出量yp(t)与期望输出量yD(t)的差值。控制器还需要接收4个8 b的数字信号,即表示比例增益KP、积分增益KI、微分增益KD和输出增益KO的信号;此外还要有2 b的模式选择信号,通过逻辑组合,选择控制器的类型(PIFLC,PDFLC或PIDFLC的一种)。


    在设计模糊PID控制器时,为节省FPGA的逻辑资源,一般不选择含有三个模糊控制器的方案,而采用并行结构,将PDFLC和PIFLC两个模糊控制器模块的输出相加,来实现PIDFLC。基于这种设想,先将PD控制器转变成PI控制器,再将二者叠加。式(1)为PD控制器的位置表达式,式(2)为PI控制器的增量表达式。
    u(n)=KPe(n)+KDr(n)         (1)
    △u(n)=KPr(n)+KIe(n)       (2)
    式中:e(n)为采样误差信号;r(n)为采样误差的变化率;△u(n)为控制量的增量。比较式(1)和式(2)可知,位置式的PD控制器可以转换成增量式PI控制器,条件如下:
    ①r(n)和e(n)交换位置;
    ②KI取代KD;
    ③△u(n)取代u(n)。
    图2为基于上述原理的控制器的结构图,图中对PDFLC的输出端求和(虚框部分),以代替PIFLC。


    每一个PDFLC模块均采用两输入单输出的Mandani型模糊推理系统,输入的两个信号分别为误差信号和误差信号的变化率。在进入模糊化之前,每一个输入变量均乘以一个来自于PDFLC内部的增益系数(KP和KI或KP和KD)。同样,模糊化后输出值也需乘一个来自于PDFLC内部的增益系数(KO),PDFLC和PIFLC的输出(uPDFLC和uPIFLC)之和作为PIDFLC的输出(uPIDFLC)。模式选择控制端的输入变量决定输出模式。由图2可见PDFLC模块是控制器设计中的核心,主要包括增益、模糊化、模糊推理和解模糊化模块。[page]

1.1 增益模块
   
在PDFLC模块的输入和输出部分各包含一个增益模块。增益模块中为两输入一输出模块。两个输入变量分别为来自外部的输入变量和不同模式下对应的增益系数,它们的乘积作为该模块的输出。每个增益模块各包含一个8 b的锁存器,用于存储增益系数的值,该值的具体数值取决于控制器工作在哪个工作方式。增益模块的结构如图3所示。


1.2 模糊化挨块
   
模糊化过程是使用两个模糊器模块完成的,每一个变量对应一个模糊器模块。每一个模糊器模块输入一个变量,产生四个输出,即表示两个主动模糊集序列的i和i+1,及变量所对应的隶属度μi和μi+1。模糊器模块由三部分构成:存储器、转换器和增量器。存储器模块用作查找表,存放的是每个输入变量的隶属度值和主动模糊集数。
    存储器模块中每个字节被分为两个部分。第一部分表示第一个主动模糊集的序列号,第二个主动模糊集的序列号是通过增量器在第一个主动模糊集序列号上加1获得的。字节的第二部分,表示第一个主动模糊集中输入变量的隶属度数值。在第二个主动模糊集中,输入变量的隶属度值是1减去第一个输入变量的隶属度值。即两个连续模糊集的隶属度值之和为1,用式(3)表示:
    μi+μi+1=1      (3)
1.3 推理机模块
   
设计中使用的推理机模块是建立在主动规则选择机制上的。主动规则选择器模块使用的信息来源于模糊器中的主动模糊集,且仅发主动规则。通过这种方式使用模糊选择器,可使被处理的规则的数目减少很多,主动规则数目用式(4)表示:
    N=Vm      (4)
    式中:N为主动规则数目;m为输入数;V为重叠模糊集的最大数目。在设计中,假设m=2,V=2,则每次主动规则的数目为Vm=22=4个。
    除了主动规则选择器模块,推理机还有另外两个模块。规则存储模块和最小电路模块。3个模块的连接图如图4所示。


1.4 解模糊化模块
   
解模糊化是在解模糊器中完成的,采用的是重心法,用式(5)表示:
   
    式中:N为规则数;μk为第k条规则的适应度;βk为第k条规则输出隶属度函数的解模糊化数值。

[page]

    解模糊器由两个累加器、一个乘法器和一个除法器构成的。解模糊化模块接受来自于推理机的四条规则序列和它们的隶属度(在4个时钟周期内顺序接收),并产生一个明确的输出送到增益模块,如图5所示。


    在四个连续的时钟周期内,来自推理机的隶属度和规则序列按顺序传送,而不是在一个周期内并行传输,这样可减少FPGA中的资源消耗。

2 联合仿真及结果
   
将设计的文件加载到FPGA器件之前,为了验证设计的正确性,必须进行全面充分的功能和时序仿真。功能仿真一般对大型设计的前期代码进行验证,通常使用Mentor公司的Modelsim来进行;时序仿真使用QuartusⅡ或Modelsim软件均可。模糊PID控制器的设计较小,省略了功能仿真步骤,直接进行时序仿真。
    在设计中采用Matlab与QuartusⅡ联合仿真,不仅能够提高设计效率,而且大大增强了QuartusⅡ的仿真功能。下面介绍仿真的过程和方法。
    *.vec文件是QuartusⅡ与Matlab联合仿真时需要Matlab提供的文件。*.vwf和*.vec格式的文件是QuartusⅡ仿真软件中时序仿真中常用的两种文件格式。前者是在QuartusⅡ中通过波形编辑器生成的,主要用于输入简单数据,当输入较为复杂数据时,用波形输入的方法难以实现,仿真效果较差。后者是按一定仿真格式要求的文本文件输入方式,只要满足QuartusⅡ对仿真文件的格式要求,可以利用任何文本编辑器产生。为了加强数据生成处理能力,这里选用Matlab软件生成*.vec文件。*.vec文件格式及其格式说明如下:
   
   
    按以上格式要求,在Matlab中将输入数据以文件的形式输出并将其保存为*.vec格式。

[page]

    在QuartusⅡ中对仿真参数进行设置,将仿真向量文件指向由Matlab生成的*.vec文件,即可将Matlab中生成的仿真信号导入QuartusⅡ进行仿真。将仿真结束后生成的波形文件(*.vwf格式),另存为*tbl格式文件,以便将仿真结果导入Matlab中进行验证。*tbl文件如下:
   
    以数据文件输入的方式将此*.tbl文件中的QuartusⅡ仿真输出信号的数值导入Matlab中,既可以分析模糊PID设计的正确与否,也可以分析其性能优劣。
    下面以基于软件的模糊PID控制器(Software Bulid Controller,SBC)与基于FPGA的模糊PID控制器(FPGA Bulid Controller,FBC)做比较。在仿真中对称三角模糊集和单值模糊集分别用于输入和输出变量,此外还应用图6中所示的64个模糊规则的规则表。


    将两种模糊PID控制器用在图1所示的控制系统中,并输入0.5 V的阶跃信号。选择的受控对象是工业控制对象中的典型模型,如直流电机位置控制等。模型的离散使用的是ZOH法。离散传递函数如下:
   
    式(6)的采样周期T=0.25 s。采用FBC和SBC进行仿真比较。因为每一个控制器均能作为PDFLC,PIFLC或PIDFLC使用,所以给出了3种控制器的仿真结果。图7为受控对象受PDFLC,PIFLC和PIDFLC控制时的阶跃响应的仿真曲线。



3 结语
   
针对以传统方式实现模糊PID控制器时,各输入变量均需要建立模糊控制器模块,且需要大量的规则库,提出了改进的模糊PID控制器,以PDFLC代替PIFLC,用两个PD模糊控制器实现模糊PID控制器,并利用FPGA实现。采用Matlab与QuartusⅡ联合仿真,比较了基于FBC和SBC的仿真结果,表明基于FPGA的模糊PID控制器,响应时间和控制效果较为理想,验证了设计方案的正确性和可行性。

关键字:模糊PID  控制器  QuartusⅡ  Matlab 引用地址:基于FPGA的模糊PID控制器设计

上一篇:喷浆机器人电液伺服系统的模糊自适应整定方法
下一篇:基于Forcecontrol配电监控系统的设计

推荐阅读最新更新时间:2024-05-02 22:29

德州仪器在 C2000™ Piccolo™ 实时浮点微控制器上集成 USB,可实现移动现场诊断与通信
2013 年 2 月 18 日,北京讯 日前,德州仪器 (TI) 宣布推出集成 USB 连接功能的最新 32 位实时 C2000™ Piccolo™ F2806xU 微控制器 (MCU),为客户开发需要现场连接的终端产品助一臂之力。 在消费类及工业电机控制系统、工业电源系统、电信及数据系统、风力与太阳能发电、普通电力电子应用等众多应用中,能够进行存取诊断并进行现场动态修改非常重要。有了 Piccolo F2806xU MCU,TI 客户可便捷地为其应用整合 USB 连接功能。 Piccolo F2806xU MCU 的特性与优势: • 集成型 USB 2.0 及 CAN 外设可充分满足现场移动通信需求; • 支持同步双通道采样
[单片机]
MAX6901 RTC与8051微控制器的接口
该应用笔记演示了MAX6901与8051微控制器的连接方式,并提供了基本的接口程序例程。本文采用的微控制器是DS2250,软件用C语言编写。 MAX6901引脚配置 概述 该应用笔记演示了MAX6901与8051微控制器的连接方式,并提供了基本的接口程序例程。本文采用的微控制器是DS2250,软件用C语言编写。 工作原理 该程序利用微控制器的三个通用端口引脚控制3线总线。微控制器向MAX6901发送一个命令/地址字节,启动数据传输。随后,微控制器向MAX6901发送其它字节或提供SCLK,根据命令字节发送或接收数据。 电路原理图如图1所示,软件如图2所示。 图1. 子卡原理图 图2. 代码列表 /**********
[单片机]
MAX6901 RTC与8051微<font color='red'>控制器</font>的接口
数字滤波器的MATLAB设计与DSP上的实现
摘要:以窗函数法设计线性相位FIR数字滤波器为例,介绍用MATLAB工具软件设计数字滤波器的方法和在定点DSP上的实现。实现时,先在CCS5000仿真开发,然后将程序加载到TMS320VC5409评估板上实时运行,结果实现了目标要求。文中还讨论了定标、误差、循环寻址等在DSP上实现的关键问题。 关键词:数字滤波器 MATLAB DSP 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1 数字滤波器的设计 1.1 数字滤
[应用]
可驱动20个LED对数/点状/条状的微控制器
美国国家半导体公司的LM3914点状/条状显示驱动器已经面市20多年了,但仍然在设计者中广泛流行。LM3914可以检测模拟电压,并使10个 LED显示,方法是以点状模式点亮10个LED中的一个,或以条形图模式逐个点亮LED。最近,一种模拟输入电压显示器的一项应用,要求能够以线性或对数级格式实现10个以上LED的显示。根据 LM3914的数据资料,可以将多支3914级联起来,获得10个以上LED的显示(参考文献1),但即使这么做,LM3914也只能线性地显示输入电压。(编辑注:美国国家半导体还提供 LM3915,这是一款对数型3dB步长版,而LM3916则适合音频应用,以音量单位显示输入。) 本文应用要求超出了L
[单片机]
可驱动20个LED对数/点状/条状的微<font color='red'>控制器</font>
微软SmartGlass和苹果AirPlay:双屏控制器的崛起
    腾讯科技讯(王芮) 8月19日消息,国外知名媒体雅虎网科技版近日撰文称,无线技术微软SmartGlass和苹果AirPlay首次实现了“双屏”显示效果。微软和苹果,两家科技巨头推出的这些高端软件让那些用智能设备的玩游戏的玩家获得了更好的游戏体验。 以下为文章概要: 微软SmartGlass以及苹果AirPlay会将我们的平板电脑或是智能手机变为控制器和数字助手。但是最终产生的效果可能会大大出乎你的意料之外。随着设备不断的整合,我们在未来势必会看到跨设备间的合作,而这种合作也将成为常态。 微软SmartGlass应用 如果你有一台Xbox 360,你应该知道这台游戏机相当于一个家庭媒体中心。在Windows 8、iOS或是A
[手机便携]
0P7200嵌入式多功能控制器从原理到应用全解析
1 0P7200多功能控制器简介 1.1 外观 0P7200具有9个薄膜按键,1/4 VGA(320×240像素)带程控开关的白色背光LCD和409* 096模拟量触摸屏,如图1所示。0P7200外形尺寸为144 mm×112 mm×43 mm,已通过CE认证,可在恶劣的工作环境中稳定工作。 1.2 内部结构 0P7200多功能 控制器 的内核是Rabbit 2000微处理器,它以CPLD作为译码单元,同时扩充片外Flash存储器和SRAM存储器。在接口方面,微处理器Rabbit 2000直接控制RS485、RS232、以太网等接口,同时利用CPLD可实现对其他接口的控制,如数字输入/输出接口、模数转换控制接口,LC
[电源管理]
0P7200嵌入式多功能<font color='red'>控制器</font>从原理到应用全解析
单路口交通多相位模糊控制器的设计与仿真
    摘要: 用模糊控制方法对单路口多相位的交通信号进行控制,提出以当前相的主队列和后继相的主队列决定信号配时的方法,并用Matlab及其模糊逻辑工具箱实现二维模糊控制器。以通过交叉口的平均车辆延误作为评价指标,衡量该控制器的控制性能,采用Matlab编程设计实现了交叉口六相位的仿真系统,仿真结果表明控制效果比较好。     关键词: 单路口交通 多相位 模糊控制 仿真 MATLAB 单路口交通控制就是确定交叉路口红绿灯的信号配时,使通过交叉口的车辆延误尽可能小。传统的控制一般是采用模型控制或预先人为地设定多套方案,实践表明这种方法的控制效果并不理想。由于道路上的交通流具有较大的随机性和相当的复杂性,所实施
[传感技术]
由可编程逻辑器件与单片机构成的双控制器
在传统的控制系统中,人们常常采用单片机作为控制核心。但这种方法硬件连线复杂,可靠性差,且单片机的端口数目、内部定时器和中断源的个数都有限,在实际应用中往往需要外加扩展芯片。这无疑对系统的设计带来诸多不便。 现在有很多系统采用可编程逻辑器件CPLD作为控制核心。它与传统设计相比较,不仅简化了接口和控制,提高了系统的整体性能及工作可靠性,也为系统集成创造了条件。但可编程逻辑器件的D触发器资源非常有限,而且可编程逻辑器件在控制时序方面不如单片机那样方便,很多不熟悉的应用者往往感到应用起来非常的困难。利用可编程逻辑器件和单片机构成的双向通信控制器克服了两者的缺点,且把二者的长处最大限度地发挥出来。 1 CPLD与单片机AT89C
[单片机]
由可编程逻辑器件与单片机构成的双<font color='red'>控制器</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved