基于遗传基因算法的智能PID的设计和FPGA的使用.docx

上传人:b****6 文档编号:6205690 上传时间:2023-01-04 格式:DOCX 页数:9 大小:300.93KB
下载 相关 举报
基于遗传基因算法的智能PID的设计和FPGA的使用.docx_第1页
第1页 / 共9页
基于遗传基因算法的智能PID的设计和FPGA的使用.docx_第2页
第2页 / 共9页
基于遗传基因算法的智能PID的设计和FPGA的使用.docx_第3页
第3页 / 共9页
基于遗传基因算法的智能PID的设计和FPGA的使用.docx_第4页
第4页 / 共9页
基于遗传基因算法的智能PID的设计和FPGA的使用.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

基于遗传基因算法的智能PID的设计和FPGA的使用.docx

《基于遗传基因算法的智能PID的设计和FPGA的使用.docx》由会员分享,可在线阅读,更多相关《基于遗传基因算法的智能PID的设计和FPGA的使用.docx(9页珍藏版)》请在冰豆网上搜索。

基于遗传基因算法的智能PID的设计和FPGA的使用.docx

基于遗传基因算法的智能PID的设计和FPGA的使用

基于遗传基因算法的智能PID的设计和FPGA的使用

摘要:

现在,在工业控制过程中很多系统都是时变,实时和非线性的。

那些系统只通过PID参数的调整,已出现越来越多的问题了。

首先,通过遗传基因算法(AGA)来获得较好的PID控制参数并且通过FPGA1P1C6F256C8去进行PID控制。

第二,闭环系统的测试时通过DSP来建立的。

最后,在第四节的第二部分获得的TCL脚本文件是VHDL代码通过仿真软件的编译器后获得的。

结果证明了AGA增进了PID参数获取的精度和控制系统的实用性,同时证明了基于FPGA的只能PID控制的灵活和实用。

1介绍

PID控制时自动控制中最古老的,最通用的和最强大的控制方法。

随着工业的发展,控制的对象变得越来越复杂,其中最重要的是其时变,非线性和实时性。

传统的PID控制对其控制能力越来越低。

由于传统PID的一些缺点,一些人在PID参数的获得方面进行了很大的改进。

今年来像模糊PID控制,神经网络PID控制器,专家PID控制等智能PID控制已经成为越来越流行的控制方法。

智能PID控制器简化了程序的设计,并且有自我适应,自我组织和自我学习的能力,同时它也有传统PID的有点,如简单的结构和较好的鲁棒性。

同时VLSI的智能化和科技都有了很大的进步。

它使将一个控制系统集成在一个芯片中成为可能。

由于FPGA有并行计算和过程的能力,它能快速的完成大量复杂的计算。

此外,基于FPGA的控制器的设计有强的经济性,因为它很灵活而且普遍。

这篇文章详细介绍了一个基于AGA的智能PID控制的具体的实践方案。

硬件是基于FPGA1P1C6F256C8。

在进行硬件设计时,是用VHDL语言来描述整个算法的。

2智能PID控制器的设计原则

PID控制器的参数运转是通过寻找KP,KI,KD参数的最佳或是接近最佳的组合,来使得系统获得较好的控制质量。

如图1所示,是智能PID控制的图表。

这里的AGA通常通过尽可能的所有的KP,KI,KD参数的变化以寻找到最佳的控制度。

3算法的设计

3.1基于增量式PID控制器的算法

为了节省FPGA的硬件资源,PID控制器通常使用增量式PID算法。

如方程式1,如果我们知道u(k-1),e(k),e(k-1)的话,从方程式1中我们可以计算出u(k)

3.2自适应基因算法(AGA)

AGA采用,由适合度的值和循环次数决定的PC和PM的值,以避免不同步的聚焦,AGA的主要方面如下所示:

AGA采用实时编码。

它能增加结果的精度和超调的速度。

为了使FPGA的运行更加容易,AGA随机选取两个不同的个体,然后保留一个和它适合度一致的且最优的。

在AGA里,适合的参数被获得。

通过PC

在AGA里,合适的转化率获得。

计算适合度的函数

为了获得适合的动态参数。

我们可以通过ITAE来对象的函数,ITAE可以表达如下:

分离ITAE可以表示成:

4智能PID控制器的硬件设计

通过分析PID控制的条件和基因算法的特性,首先,我们将系统的函数模型转换成连续的电路和联合的逻辑电路。

第二步,我们进行系统时钟设计。

时钟就像一个系统的指挥官,命令所有的模块有序的工作。

在硬件的设计过程中,我们同样考虑包括运行的速度和资源的占用率,最后我们使他达到一个很好的平

衡。

4.1硬件的结构

如图2所示,智能PID控制器的硬件结构。

它主要包括初始化模块,选择模块,转接和转化模块,存储模块,多路器模块,随机数产生模块,双通道RAM模块,适合度计算模块,控制模块和增量式PID控制器。

RAM1是用存储个体对象的,而RAM2是用来存储个体对象的适合度值。

图3是增量式PID的硬件结构。

它主要包括暂存器,累加器多路器和控制器。

由于要提高速度和被加数的数据类型,增量式PID控制器要并行式的设计,并且多路器为了节省资源也要进行SBF。

E(K)存储在REG1中。

E(K-1)存储在REG2中,E(K-2)存储在REG3中。

中间的结果存储在REG4到REG9中。

4.2机械装置的正式设计

如果我们想让所有的模块都有序的工作,对时钟的控制时最关键的。

Statemachine对时钟控制来说是个很好的工具。

在一个单一的进程中模拟电路和逻辑电路可以联合进行。

它可以尽可能的避免出现故障。

这里我们用一个简单的过程图来模拟一下用statemachine来进行控制模块设计的过程。

4.2.1主要控制模块的设计

图4是图2里的主要控制模块的机器工作过程。

它包含6个主要的方面(IDLE,ST1,ST2,ST3,ST4,STOP)。

IDLE是一个复位步骤。

STOP是结束命令。

其他的是机器工作的四个过程。

每个的工作过程如下。

IDLE:

当异步复位信号从1变为0时,机器会立即跳转到“IDLE”状态。

在这个状态,所有的模块会开始发出一个初始化信号。

我们把这个过程叫做系统的初始化。

当初始化完成之后,机器进入下个状态:

ST1.

ST1:

系统的各个部分在这一步完成赋初值的过程。

当系统进入这个过程时,控制模块把START1信号变为1,然后赋给参数初始值。

在FPGA的时钟下,初始化模块同时产生一个新的数据信号和地址信号。

由多路器发出的数据信号和地址信号,是初始化模块在控制模块的控制下给与的。

在同一个时刻一个新的独立的行为由MUXB按照2:

1的比例在PID控制器上执行,同时初始化模块由MUXC按照2:

1的比例来计算适合度的值。

当适合度的值计算完成以后,适合度模块就会得到一个结束信号。

当接收的一个OVER的结束信号,初试化模块会通过MUXA按照2:

1的比例产生一个在RAM1和RAM2里运行的WR1的写信号。

然后这个个体和适合度的值会同时分别的写进RAM1和RAM2里,当一个个体存储完成以后,个体计数器会加一。

然后根据个体的数量是否达到了群组的值决定初始化模块是否跳转。

如果还没达到,初始值模块会重新得到一个新个体,如果达到了,初始值模块会得到一个OVER1的结束信号应且将START1的信号值改为0以关闭初始值模块,然后机器会跳转到下一个状态ST2。

ST2:

在这一个模块系统主要完成参数的选择。

当进入这个状态时,系统将ST2信号值变为1,然后开始参数的选择。

随机模块会由多路器随机产生两个在RAM1和RAM2上运行的不同的地址信号AD1和AD2。

然后选择模块同时同群组里选择两个不同的个体,保留那个个体与其适合度最优的。

当选择完成以后,选择模块会产生一个OVER2的结束信号,并且将START2的信号值变为0以关闭选择模块,然后机器跳转到ST3状态。

ST3:

系统完成参数的分频和转变在这个部分。

当进入这个环节后,控制模块将START3信号环节变为1,然后进行参数的变频和转变。

两个来自选择模块的个体会首先根据PC进行分频和通过PM进行转换,然后我们就得到了两个新的个体,分频器和转换器会发出一个OVER3的选择结束信号,然后将STAR3的信号值变为0以便关闭分频器和转换器模块,接着机器跳转到ST4状态。

ST4:

系统在这个环节完成主要操作数的存储。

进入这个环节以后,控制模块将START4的信号值变为1,然后开始操作数的存储。

这个存储过程跟初始值的存储过程时相似的。

当一个个体存储结束,个体计数器就加一。

如果新的个体的数量达到了群组的值,迭代计数器就加一。

控制模块根据要求的迭代次数来决定是否跳转,如果没有达到,机器就会跳到ST2状态去继续执行遗传算法的计算,如果达到了机器就跳转到STOP状态。

STOP:

当来到STOP状态,遗传算法已经结束,然后个体的最优数据“BESTDATA”会被输出,并且通过MUXB按照2:

1的比例在PID控制器上执行。

STOP状态不存在下一个状态。

机器在这个时候处于停顿状态。

当异步的复位信号RESET变为有效时,系统会跳转到IDLE状态。

我们不会在STOP状态时来确定RESET信号,因为他们异步信号。

4.2.2机器的控制模块在增量式PID控制器中的设计

图5是在图3中所示的机器的控制模块。

IDLE状态是一个复位状态。

ST1,ST2,ST3,和ST4是四个工作状态。

在每个时钟的上升沿,机器会从当前状态进入下一个状态。

这些状态的转化过程如下所示:

IDLE:

当控制信号CLEAR的值变为1时,系统会进入IDLE状态。

有些迭代器会在这个状态赋初值。

ST1:

REG1,REG2,REG3在这个状态会移位。

REG2的值会在REG3里被改变。

REG1的值会在REG2里被改变。

ERROR(K)的值会在REG1里被改变。

KP,KI,KD的总和会被存储在REG4里。

KP和2KD的和会被存储在REG5里。

KD会被存储在REG6里。

ST2:

控制模块使REG7,REG8,REG9能够工作。

【(KP+KI+KD)*E(K)】的值会存储在REG7,【(KP+2KD)*E(K-1)】会存储在REG8里。

【KD*E(K-2)】会存储在REG9里。

ST3:

控制模块会使REG10输出U(K)

5仿真与实践

因为智能PID控制器的开环系统的仿真不能精确的模拟输入信号,所以本篇论文用基于QUARTUSII6.0,DSPBUILDER6.0,MODELSIMSE6.1F和SIMULINK6.0的闭环系统来进行仿真。

测试的步骤如下。

STEP1:

用DSPBUILDER的HDL输入工具,输入VHDL代码进行仿真和测试模块的设计。

STEP2:

当测试模块正确的运作完后。

将.MDL格式文件转换成VHDL文件和TCL脚本文件,以便让信号编译器的仿真软件识别。

STEP3:

设置VHDL文件和TCL脚本文件。

STEP4:

运行MODELSIM里的测试文件,应且检查测试结果。

图6是DSPBUILDER里的智能PID的测试计划。

系统的传递函数可以表示为

AGA的参数设置如下。

群组的容量是32.PC_MAX是0.125。

PC_MIN是0.125。

PM_MAX是0.5,PM_MIN是0.0625。

ITMAX是128.如图7所示在参数运行以后我们可以分别获得KP,KI,KD的值为3.25,5.5,0.625,图8是图6的SCOPE1的仿真曲线。

从图8我们可以看出系统的输出有一点轻微的超调。

但是最后系统获得了一个稳态值1.图8(b)是图6的SCOPE3的仿真曲线。

图8(c)是图6的scope2的仿真曲线。

PID控制器的输出曲线最终稳定在1O。

图9是智能PID控制器在仿真软件里的RTL水平电路的仿真曲线。

控制器的输出和误差信号的输入是按照模拟量来进行的。

从图9我们可以看出,当输出值从0上升到稳态值9F9的时候,误差信号从1下降到0.因为输出结果是用SBF来表达的(高8位是积分部分,低8位是微分部分),9F9的十进制为9.97265625,仿真的结果与在MATLAB中的仿真结果基本一样。

当正确的完成上述工作以后,我们把所有的设计用QUARTUSII的语法环境下载到FPGA1P1C6F256C8中。

6结论

AGA用来获得PID控制器的最佳参数。

仿真结果证明了AGA增强了全局的搜索能力,并且提高了GA的聚焦速度。

这个方法是灵活且使用的。

通过DSP建立的PID控制器的闭环测试,模拟和仿真软件解决了控制器输入信号测试的样本资源。

它能快速的模拟控制器的输入行为,增强了设计和测试的灵活性,同时测试结果也是可靠和有说服力的。

在FPGA上进行智能控制器的设计有很多有点如,设计灵活,在线的自我运转,可靠性高,开发周期短和速度快。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1