《基于FPGA设计的智能控制器VHDL设计及测试.docx》由会员分享,可在线阅读,更多相关《基于FPGA设计的智能控制器VHDL设计及测试.docx(5页珍藏版)》请在第一文库网上搜索。
1、基于FPGA设计的智能控制器VHD1设计及测试1引言随着市场需求的增长,超大规模集成电谿的集成度和工艺水平不断提高,在一个皿上完成系统级的设计已成为可能。型直固有的并行运算处理能力,使得它能够提供各种数字化所需要的大量复杂运算,适合于设计一些对处理速度和实时性要求较高的智能控制蜜。近几年,基于VHD1描述,FPGA实现的控制器设计研究比较活跃,如TOrra1ba等人完成了4输入、12个隶属度、64条规则的模糊逻辑控制器的FPGA实现1,Cirstea等人基于FPGA设计模糊控制器,成功的用于变速器的控制2。另外,由于FPGA设计的灵活性和通用性,使得基于FPGA的控制器开发效率高,成本低,上市
2、时间短。由于FPGA在智能控制器方面的大量使用,设计后的测试便成了设计者在开发过程中必须重点考虑的问题,同时,一种好的测试方法不仅能及早发现设计中存在的问题,而且能提高设计的可靠性。目前基于VHD1描述的智能控制器测试一般是通过开环时序位真来验证其逻辑设计的正确性,而对于一些输入激励信号不固定或比较多的智能控制器来说,开环时序仿真并不能确切模拟控制器的激励输入信号。由此,本文在开环时序仿真的基础上提出一种基于QuartusIR屿gBui1der和ModeI岂通的闭环时序仿真测试方法,并借助于某二春能丽器的设计对该闭环丽方法进行了较为深入的研究。2FPGA设计与测试平台研究采用QuartusI1
3、4.0、DSPBui1der3.0以及Mode1simSE6.0作为FPGA的设计及测试平台。QuartusI14.0是AItera公司的第四代可编程逻辑器件集成开发环境,提供从设计输入、设计编译、功能仿真、设计处理、时序仿真到器件编程的全部功能。同时,它可以产生并识别ED1F网表文件、VHD1网表文件和VCri1ogHD1网表文件,并且为其它EDA工具提供了方便的接口。可以在上面自动运行其它陋工具,包括Synp1icity的Synp1ify/Synp1ifyPro、MentorGraphics子公司Exemp1ar1OgiC的1eonarc1oSpectrum以及Synopsys的FPGAC
4、ompi1erII等。这些综合软件能以很高的效率将VHD1/Veri1og设计软件转换为针对选定器件的标准网表文件。此外,QUartUSn4.0里还集成了一个SOPCBUiIder开发工具,支持SOPC开发3。DSPBui1der以Mat1ab/Simu1ink的B1ockset形式出现,可以在Simu1ink中进行图形化设计和仿真,同时通过Signa1COmPi1er可以将MatIab/Simu1ink的设计文件(.md1)转换成相应的VHD1文件(.vhd),以及用于控制综合与编译的TC1脚本40MentorGraPhiCS公司的ModeISim是业界中比较好的仿真工具,其仿真功能强大,支
5、持模拟波形显示,且图形化界面友好,具有结构、信号、波形、进程和数据流等窗口。通过综合使用上述三种平台,可以很好的规划设计流程,充分利用各个工具的优点,提高开发效率,所得的测试结果也更加可靠。3智能控制器的VHD1设计及测试特点以模糊自整定P1D控制器为例,其位置式控制算法为:ui=Kpei+KiTei+KdT(ei-ei-1)+u3.1其中:Kp=kp+tpKpKi=ki+tiKiKd=kd+tdKd为PID控制器实时参数;AKp、Ki为模糊推理得出的修正值。模糊推理过程采取Mamdani直接推理法,采用质心法求取相应的最终精确值。基于VHD1描述的模糊自整定PID控制器设计采用自顶向下设计方
6、法,在RT1级对各个单元模块进行设计描述,用结构VHD1将各个单元通过单元映射(PORTMAP)联系起来,组成整个控制器芯片。控制器芯片的核心是控制与运算单元,涉及基本的数据处理、存储和I/O控制。其顶层模块的电路原理图如图1所示。图1控制器顶层模块电路原理图其中:contro1:控制模块,产生存储器内数据的读写地址;ram:存储模块,存储外部采集来的数据;accum:累加模块,累加10次,读进存储器的数据;max_min:求Max/Min模块,对采集来的数据进行最大最小值求解;sub:减法模隹,剔除Max/Min;average_8:滤波模块,对剔除后的数据进行8次平均滤波;COn1Pare
7、:比较模块,与给定值相比较,产生偏差e;de1ay:延迟模块,产生偏差的变化率ec;fpid:模糊自整定P1D控制器模块,产生控制器的输出信号。本系统中,A/D采用以574A,其转换速度最大为35s,转换精度小于等于O.05%o在用VHD1设计A/D的I/O模块时,采用的是状态机描述。状态机分为5个状态:STATEO:实现A/D574的初始化;STATE1:产生片选信号,启动转换;STATE2:STATUS电平监测,状态切换;STATE3:8位输出数据有效;STATE4:由1oCk信号对数据进行锁存。基于VHD1语言描述的智能控制器测试特点是:控制器模块可以作为一个独立模块通过开环时序测试基准
8、对其逻辑功能的正确性进行测试。但是,对于控制系统来说,我们更关心的是在典型输入信号作用下,系统输出的时间响应过程,包括动态过程和稳态过程,因此采用闭环时序测试显得尤为必要。4基于FPGA的智能控制器开环时序测试基于FPGA的智能控制器开环时序测试机理是:通过连接激励实体和在测模块,将在测模块的输出响应值同期望值相比较来验证控制器设计是否符合设计要求,设计者可以用QUartUSn软件的波形编辑器产生作为仿真谑激励的向量波形文件(.vwf),也可以使用基于文本的向量文件(.vec)作为仿真器的激励。其中VWF使用图形化的波形形式描述了仿真器的输入向量和仿真的输出结果,而VEC则使用一种特殊格式的文
9、件为模块中的输入信号和向量添加激励5,这是目前设计中最常采用的测试方法。模糊自整定P1D控制器开环时序仿真测试如图2所示。图2控制器开环时序仿真图图2为基于A1tera公司FPGA器件EP20K200EQC240-1的模糊自整定P1D控制器闭环输出时序仿真结果。其中:e1k:系统时钟;c1kc:控制器采样时钟;reset:系统复位信号;e:偏差;ec:偏差的变化率;u:控制器输出。时序仿真结果参数:Tota11ogice1ements:1092/8,320(25%);Tota1memorybits:4096/106,496(3%);C1ksetup:38.86MHz;C1kcsetup:221
10、.39MHz;Tsu:8.864ns;Teo:7.809nso图2中控制器的激励信号偏差e和偏差变化率ec是通过波形编辑器手工编辑获得,输入比较繁琐,它们值的获取是借助于MAT1AB的仿真曲线,因此并不能完全模拟智能控制器的实时激励信号。为了能更好的模拟控制器的输入行为,使测试结果更加可靠,本文在上述测试基础上,提出一种新的基于FPGA设计工具QuartusIRDSPBUi1der以及MOdeISin1的智能控制器闭环时序测试方法。5基于FPGA的智能控制器闭环时序测试在自动控制系统设计中,控制器的设计与测试通常采用闭环控制系统,通过观察对象的输出来判断控制器性能是否符合设计的要求。A1ter
11、a公司推出的数字信号处理工具DSPBui1der,结合MathWOrkS的Mat1ab和Simu1ink,为在QuartusII中所做的设计提供了一种新的测试方法。本次研究采用的测试流程如下:首先,在MatIab的SimUIink中用DSPBUi1der搭建测试模块,运行无误后,用Signa1COmPi1er将(.md1)文件转换成ModeISim可以识别的TC1脚本文件和VHD1文件,其次,对生成的VHD1文件及TC1脚本进行设置,最后,在ModCISim中运行测试文件,查看测试结果。DSPBUi1dCr下模糊自整定PID控制器的模块图如图3所示。图中fpid模块为用户自定义模块,是通过DS
12、PBui1der的SubSystemBui1der模块导入的,使用该模块可以方便的将QuartusII中VHD1设计文件的输入输出引脚信号引入Simu1ink系统中。图3DSPBUiIder下模糊自整定P1D控制器的模块测试图运行Signa1Compi1er,生成在MOdeISim中使用的TC1脚本文件,因为在SimUIink中添加的用户自定义模块是以黑盒的形式出现,因此,在该测试环境中要将模糊自整定PID控制器的各个子模块文件添加到TC1脚本文件中,例如要将子模块文件pid.vhd添加到TC1脚本文件中,使用vcom-93-exp1icit-workwork$Workdirpid.vhd”即
13、可。使用DSPBui1der时需要注意以下两点:(1)如果没有使用来自Ra竺Change库中的锁相环模块P11,在Sinm1ink设计转换成硬件系统的过程中,DSPBUi1e1e将使用同步设计规则,即在设计系统中的所有DSPBUi1der时序模块(如图3中的DeIay1模块)都以单一时钟的上升沿同步工作,这个时钟频率即为整个系统的采样频率。对于这些模块,其时钟引脚都不会直接显示在SimUIink设计图上,但当使用SignaICompi1er将设计转化为VHD1文件时,系统会自动地把时序模块的时钟引脚都连在一起,并与系统的单一时钟相接。(2)将一个已经定制完成的VHI)1设计实体加入到DSPBU
14、iIc1er设计系统中时,即使在原设计中已经使用了同步复位和时钟信号,也必须在该实体中定义同步清零和时钟输入信号。而且,这两个输入信号必须与目标器件的全局时钟引脚和全局同步清零引脚相接。如果实体不需要时钟或全局同步清冬脚,也应当定义这些输入信号,只是不要连接。以被控对象G(S)=471Xe-0.15s(0.4s+D(12s+1)为例,考虑到A/D、D/A的影响,加入零阶保持器(1-e-TS)/S,ModeISim中闭环控制系统的输出曲线如图4所示,系统的给定值为127(相对增益为0.992),输出值从O上升到峰值148(相对增益为1.156)后迅速回落,最后稳定在127,测试结果与MAT1AB
15、的仿真结果基本相同。图4系统闭环输出曲线6结论(1) 基于FPGA构建智能控制器具有设计灵活、能在线调整、可靠性高,开发周期短等优点。特别适于中小型系统。(2) 利用QuartusII进行智能控制器的VHD1设计,通过DSPBUi1der和MOdeISim对在QUartUSI1中所做的设计进行闭环测试,解决了测试样本的输入源以及控制器的输入样本提取问题,能有效模拟控制器的输入行为,提高了设计及测试的灵活性,同时,测试结果可靠且更有说服力。(3) 使用DSPBUiIder和Mode1Sin1使我们摆脱了以往的测试习惯,控制器的激励输入信号可以方便的调用SimUIink的模块,对象也可以根据需要灵活改变,不需要再用VHD1语言编写,而且ModeISim支持信号的模拟波形显示,使我们能够看到最直观的图形。(4) 测试在系统设计中占有举足轻重的作用,它贯穿整个设计的始终,采用闭环时序测试方法,结合DSPBUiIder和Mode1Sim完成智能控制器各个阶段的测试经实验验证是一较好的测试方法,适合于像控制器这类需闭环检验其控制品质的设计。