基于FPGA 的模糊PID控制器的研究
扫描二维码
随时随地手机看文章
摘要:提出了一种基于VHDL描述、FPGA 实现的模糊自整定PID控制器设计方法。首先,借助Matlab系统仿真工具,优化得出模糊PID参数的模糊推理规则和控制器算法结构。然后,进行控制器的VHDL分层设计。最后,在一个具体的FPGA 芯片上实现了该控制器。由于采用了离线计算、在线查表的模糊自整定参数技术和增量式 PID算法,本设计既降低了FPGA的资源耗费,又改善了传统 PID控制器的控制性能。是实现单片或小系统智能控制策略的一种新的有效途径。
1 引言
智能控制策略较为理想的实现方式是基于硬件。FPGA 技术的快速发展与VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述语言的支持, 使得智能控制策略(模糊逻辑、神经网络、遗传算法等)的VHDL描述和FPGA固核实现研究也随 之活跃。在模糊逻辑控制方面,Torralba等人完成了4输入、12个隶属度、64条规则的 模糊逻辑控制器的FPGA实现,Cirstea等人基于FPGA设计模糊控制器。成功的用于变 速器的控制。
文中阐述的重点:一是通过Matlab的Fuzzy工具箱完成模糊逻辑策略的建立,计算出在 不同的输入条件下的模糊控制参数,制成模糊查找表;二是基于VHDL描述并在FPGA上实现模 糊自整定PID控制算法。
2 控制器原理
模糊自整定PID控制器结构:是模糊控制器与传统PID控制器的结合,利用模糊推理判断 的思想,根据不同的偏差、偏差变化率对PID的参数KP、KI 、KD 进行在线自整定,传统PID 控制器在获得新的KP、KI、KD后,对控制对象输出控制量。由此模糊PID控制器的结构 框图如图1所示。
3 控制器的VHDL分层设计
模糊PID 控制器主要由A/D 控制器、模糊化模块、模糊推理模块、反模糊化模块、规 则存储器、数字PID 运算等部分组成,其结构如图3 所示。现就模糊化模块、模糊推理模 块、反模糊化模块等主要模块的建立来描述VHDL 的设计过程。
3.1模糊化模块
模糊化模块的功能主要包括两部分:把输入的精确量进行尺度变换,变换到相应的 论域范围;将己变换到论域范围的输入量进行模糊化处理,主要是计算各个输入量的隶属 度。由于变量的隶属度函数均取用等腰三角形,则底边宽度和底边中点就可以确定隶属函 数的所有信息。分别用一个字节表示每个语言变量的底边宽度(实际宽度的一半),用三个 位(bit)表示底边中点位置,将这部分信息存在两个表中。根据两个表中的信息,可以计算 出输入变量的隶属度。为实现隶属度的计算,需要用到一个加法器,一个减法器和一个除法器。计算的结果肯定是小数(由隶属度的性质可知)。为了实现方便,将分子的计算结果 左移8 位。这样,分子的计算结果是16 位,分母是8 位,计算结果是8 位。对其部分输入 进行模糊化的VHDL 描述如下:
3.2模糊推理模块
模糊推理模块是模糊控制器的核心,它将输入的模糊量经过推理,变为输出的模糊量。 模糊推理采用Mamdani推理,也称为Max一Min推理,即最大一最小推理,因为其中主要包括 最大化模块和最小化模块。对于两输入系统,最多输出四个语言值和四个隶属度。这样,对 于一个两输入系统,最多激活四条模糊规则。上述过程就是规则匹配的过程。规则匹配需要 最小化运算,即Min运算。规则合并就是将后件相同的模糊规则进行合并,规则合并需要最 大化运算,即Max运算。由模糊化模块计算所得的四个隶属函数值在控制信号作用下经过多 路选择器输入到比较器;另外两个控制信号经过译码后选中隶属函数寄存器中的一个,同时 选择输出最小值到比较器;比较器的输出结果再输入到隶属函数寄存器中。这样,经过4个 循环,就完成了一个最小化运算。由于VHDL描述简单,在这里省略。
3.3反模糊化模块
反模糊化通常采用重心法,由于隶属度函数采用8为二进制表示,而所涉及的规则数最 多为4条,所以分子运算需要四个8位x2位的乘法器,3个10位加法器,分母需要3个8位加法 器。此外,还需要一个12位/10位的除法器。除法器的设计方法与模糊化模块中的设计方法 相同。而乘法器的设计也与除法器的设计方法相似。相应的VHDL描述如下:
END IF; END IF; END PROCESS;
3.4 数字PID运算模块
数字PID运算主要是加、减、乘的运算,运用原码算法设计数字电路无疑增加电路的复 杂度。而采用补码运算进行设计就简单多了。加减法运算都可以用相同的加法电路来实现。 设计乘法电路的方法很多,考虑到节省FPGA器件资源问题,采用BOOTH算法。主要涉及累加 器溢出处理和小数运算处理等问题。
4 试验结果
借助MATLAB的模糊控制工具箱提供的FIS编辑器建立mamdani型的模糊控制器,并结合 Simulink工具箱建立Fuzzy PID控制系统仿真模型。仿真得到的系统阶跃响应如图2。通过图 可以看出Fuzzy-PID控制调节时间短,超调量小,曲线平滑,具有较强的抗干扰和鲁棒性。
各模块程序经过编译优化之后,由QuartusⅡ软件综合并生成网表文件,最后下载到 Altera公司的Cyclone系列的EP1C6Q240C8芯片上。经实际测试显示,该模糊PID控制器控制 效果明显优于普通的PID控制器。
5 结论
本文使用Altera的FPGA设计实现了一个数字模糊PID控制器。其中PID部分采用增量式算 法,模糊控制部分采用离线计算、在线查表的方式实现,在不增加硬件资源耗费的前提下大 大改善了普通PID控制器的控制效果。同时,FPGA作为单一控制器实现模糊自整定PID控制, 编程规范、时序验证方便 、系统修改灵活,且基本无须改动硬件,是实现单片或小系统智 能控制策略的一种新的有效途径。
本文作者的创新点:用硬件的方法实现了一个模糊PID控制器,并证明了系统有很好的 控制效果。
参考文献:
[1].EP1C6Q240C8datasheethttp://www.dzsc.com/datasheet/EP1C6Q240C8_1135222.html.
来源:xinxin0次