基于FPGA的智能控制器设计及测试方法研究
时间:09-03
来源:互联网
点击:
4 基于FPGA的智能控制器开环时序测试
基于FPGA的智能控制器开环时序测试机理是:通过连接激励实体和在测模块,将在测模块的输出响应值同期望值相比较来验证控制器设计是否符合设计要求,设计者可以用QuartusII软件的波形编辑器产生作为仿真器激励的向量波形文件(.vwf),也可以使用基于文本的向量文件(.vec)作为仿真器的激励。其中VWF使用图形化的波形形式描述了仿真器的输入向量和仿真的输出结果,而VEC则使用一种特殊格式的文件为模块中的输入信号和向量添加激励,这是目前设计中最常采用的测试方法。模糊自整定PID控制器开环时序仿真测试如图2所示。
图2控制器开环时序仿真图
图2为基于Altera公司FPGA器件EP20K200EQC240-1的模糊自整定PID控制器闭环输出时序仿真结果。
其中:clk:系统时钟;clkc:控制器采样时钟;reset:系统复位信号;e:偏差;ec:偏差的变化率;u:控制器输出。
时序仿真结果参数:Total logic elements:1092 / 8,320 ( 25 % );Total memory bits:4096 / 106,496 ( 3% );Clk setup:38.86 MHz;Clkc setup:221.39MHz;Tsu:8.864ns;Tco:7.809 ns。
图2中控制器的激励信号偏差e和偏差变化率ec是通过波形编辑器手工编辑获得,输入比较繁琐,它们值的获取是借助于MATLAB的仿真曲线,因此并不能完全模拟智能控制器的实时激励信号。 为了能更好的模拟控制器的输入行为,使测试结果更加可靠,本文在上述测试基础上,提出一种新的基于FPGA设计工具QuartusII、DSP Builder以及Modelsim的智能控制器闭环时序测试方法。
5 基于FPGA的智能控制器闭环时序测试
在自动控制系统设计中,控制器的设计与测试通常采用闭环控制系统,通过观察对象的输出来判断控制器性能是否符合设计的要求。Altera公司推出的数字信号处理工具DSP Builder,结合MathWorks的Matlab和Simulink,为在QuartusII中所做的设计提供了一种新的测试方法。本次研究采用的测试流程如下:首先,在Matlab的Simulink中用DSP Builder搭建测试模块,运行无误后,用Signal Compiler将(.mdl)文件转换成Modelsim可以识别的TCL脚本文件和VHDL文件,其次,对生成的VHDL文件及TCL脚本进行设置,最后,在Modelsim中运行测试文件,查看测试结果。DSP Builder下模糊自整定PID控制器的模块图如图3所示。图中fpid模块为用户自定义模块,是通过DSP Builder的SubSystemBuilder模块导入的,使用该模块可以方便的将QuartusII中VHDL设计文件的输入输出引脚信号引入Simulink系统中。
图3 DSP Builder下模糊自整定PID控制器的模块测试图
运行Signal Compiler,生成在Modelsim中使用的TCL脚本文件,因为在Simulink中添加的用户自定义模块是以黑盒的形式出现,因此,在该测试环境中要将模糊自整定PID控制器的各个子模块文件添加到TCL脚本文件中,例如要将子模块文件pid.vhd添加到TCL脚本文件中,使用vcom -93 -explicit -work work "$workdir/pid.vhd"即可。
使用DSP Builder时需要注意以下两点:
(1)如果没有使用来自Rate Change库中的锁相环模块PLL,在Simulink设计转换成硬件系统的过程中,DSP Builder将使用同步设计规则,即在设计系统中的所有DSP Builder时序模块(如图3中的Delay1模块)都以单一时钟的上升沿同步工作,这个时钟频率即为整个系统的采样频率。对于这些模块,其时钟引脚都不会直接显示在Simulink设计图上,但当使用Signal Compiler将设计转化为VHDL文件时,系统会自动地把时序模块的时钟引脚都连在一起,并与系统的单一时钟相接。
(2)将一个已经定制完成的VHDL设计实体加入到DSP Builder设计系统中时,即使在原设计中已经使用了同步复位和时钟信号,也必须在该实体中定义同步清零和时钟输入信号。而且,这两个输入信号必须与目标器件的全局时钟引脚和全局同步清零引脚相接。如果实体不需要时钟或全局同步清零脚,也应当定义这些输入信号,只是不要连接。
以被控对象G(s)=4.71×e-0.15s/(0.4s+1)(1.2s+1) 为例,考虑到A/D、D/A的影响,加入零阶保持器(1-e-TS)/S,Modelsim中闭环控制系统的输出曲线如图4所示,系统的给定值为127(相对增益为0.992),输出值从0上升到峰值148(相对增益为1.156)后迅速回落,最后稳定在127,测试结果与MATLAB的仿真结果基本相同。
图4 系统闭环输出曲线
6 结 论
(1) 基于FPGA构建智能控制器具有设计灵活、能在线调整、可靠性高,开发周期短等优点。特别适于中小型系统。
(2) 利用QuartusII进行智能控制器的VHDL设计,通过DSP Builder和Modelsim对在QuartusII中所做的设计进行闭环测试,解决了测试样本的输入源以及控制器的输入样本提取问题,能有效模拟控制器的输入行为,提高了设计及测试的灵活性,同时,测试结果可靠且更有说服力。
(3) 使用DSP Builder和Modelsim使我们摆脱了以往的测试习惯,控制器的激励输入信号可以方便的调用Simulink的模块,对象也可以根据需要灵活改变,不需要再用VHDL语言编写,而且Modelsim支持信号的模拟波形显示,使我们能够看到最直观的图形。
(4) 测试在系统设计中占有举足轻重的作用,它贯穿整个设计的始终,采用闭环时序测试方法,结合DSP Builder和Modelsim完成智能控制器各个阶段的测试经实验验证是一较好的测试方法,适合于像控制器这类需闭环检验其控制品质的设计。
基于FPGA的智能控制器开环时序测试机理是:通过连接激励实体和在测模块,将在测模块的输出响应值同期望值相比较来验证控制器设计是否符合设计要求,设计者可以用QuartusII软件的波形编辑器产生作为仿真器激励的向量波形文件(.vwf),也可以使用基于文本的向量文件(.vec)作为仿真器的激励。其中VWF使用图形化的波形形式描述了仿真器的输入向量和仿真的输出结果,而VEC则使用一种特殊格式的文件为模块中的输入信号和向量添加激励,这是目前设计中最常采用的测试方法。模糊自整定PID控制器开环时序仿真测试如图2所示。
图2控制器开环时序仿真图
图2为基于Altera公司FPGA器件EP20K200EQC240-1的模糊自整定PID控制器闭环输出时序仿真结果。
其中:clk:系统时钟;clkc:控制器采样时钟;reset:系统复位信号;e:偏差;ec:偏差的变化率;u:控制器输出。
时序仿真结果参数:Total logic elements:1092 / 8,320 ( 25 % );Total memory bits:4096 / 106,496 ( 3% );Clk setup:38.86 MHz;Clkc setup:221.39MHz;Tsu:8.864ns;Tco:7.809 ns。
图2中控制器的激励信号偏差e和偏差变化率ec是通过波形编辑器手工编辑获得,输入比较繁琐,它们值的获取是借助于MATLAB的仿真曲线,因此并不能完全模拟智能控制器的实时激励信号。 为了能更好的模拟控制器的输入行为,使测试结果更加可靠,本文在上述测试基础上,提出一种新的基于FPGA设计工具QuartusII、DSP Builder以及Modelsim的智能控制器闭环时序测试方法。
5 基于FPGA的智能控制器闭环时序测试
在自动控制系统设计中,控制器的设计与测试通常采用闭环控制系统,通过观察对象的输出来判断控制器性能是否符合设计的要求。Altera公司推出的数字信号处理工具DSP Builder,结合MathWorks的Matlab和Simulink,为在QuartusII中所做的设计提供了一种新的测试方法。本次研究采用的测试流程如下:首先,在Matlab的Simulink中用DSP Builder搭建测试模块,运行无误后,用Signal Compiler将(.mdl)文件转换成Modelsim可以识别的TCL脚本文件和VHDL文件,其次,对生成的VHDL文件及TCL脚本进行设置,最后,在Modelsim中运行测试文件,查看测试结果。DSP Builder下模糊自整定PID控制器的模块图如图3所示。图中fpid模块为用户自定义模块,是通过DSP Builder的SubSystemBuilder模块导入的,使用该模块可以方便的将QuartusII中VHDL设计文件的输入输出引脚信号引入Simulink系统中。
图3 DSP Builder下模糊自整定PID控制器的模块测试图
运行Signal Compiler,生成在Modelsim中使用的TCL脚本文件,因为在Simulink中添加的用户自定义模块是以黑盒的形式出现,因此,在该测试环境中要将模糊自整定PID控制器的各个子模块文件添加到TCL脚本文件中,例如要将子模块文件pid.vhd添加到TCL脚本文件中,使用vcom -93 -explicit -work work "$workdir/pid.vhd"即可。
使用DSP Builder时需要注意以下两点:
(1)如果没有使用来自Rate Change库中的锁相环模块PLL,在Simulink设计转换成硬件系统的过程中,DSP Builder将使用同步设计规则,即在设计系统中的所有DSP Builder时序模块(如图3中的Delay1模块)都以单一时钟的上升沿同步工作,这个时钟频率即为整个系统的采样频率。对于这些模块,其时钟引脚都不会直接显示在Simulink设计图上,但当使用Signal Compiler将设计转化为VHDL文件时,系统会自动地把时序模块的时钟引脚都连在一起,并与系统的单一时钟相接。
(2)将一个已经定制完成的VHDL设计实体加入到DSP Builder设计系统中时,即使在原设计中已经使用了同步复位和时钟信号,也必须在该实体中定义同步清零和时钟输入信号。而且,这两个输入信号必须与目标器件的全局时钟引脚和全局同步清零引脚相接。如果实体不需要时钟或全局同步清零脚,也应当定义这些输入信号,只是不要连接。
以被控对象G(s)=4.71×e-0.15s/(0.4s+1)(1.2s+1) 为例,考虑到A/D、D/A的影响,加入零阶保持器(1-e-TS)/S,Modelsim中闭环控制系统的输出曲线如图4所示,系统的给定值为127(相对增益为0.992),输出值从0上升到峰值148(相对增益为1.156)后迅速回落,最后稳定在127,测试结果与MATLAB的仿真结果基本相同。
图4 系统闭环输出曲线
6 结 论
(1) 基于FPGA构建智能控制器具有设计灵活、能在线调整、可靠性高,开发周期短等优点。特别适于中小型系统。
(2) 利用QuartusII进行智能控制器的VHDL设计,通过DSP Builder和Modelsim对在QuartusII中所做的设计进行闭环测试,解决了测试样本的输入源以及控制器的输入样本提取问题,能有效模拟控制器的输入行为,提高了设计及测试的灵活性,同时,测试结果可靠且更有说服力。
(3) 使用DSP Builder和Modelsim使我们摆脱了以往的测试习惯,控制器的激励输入信号可以方便的调用Simulink的模块,对象也可以根据需要灵活改变,不需要再用VHDL语言编写,而且Modelsim支持信号的模拟波形显示,使我们能够看到最直观的图形。
(4) 测试在系统设计中占有举足轻重的作用,它贯穿整个设计的始终,采用闭环时序测试方法,结合DSP Builder和Modelsim完成智能控制器各个阶段的测试经实验验证是一较好的测试方法,适合于像控制器这类需闭环检验其控制品质的设计。
集成电路 FPGA VHDL 仿真 Quartus DSP Altera Verilog EDA Mentor 电路 相关文章:
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)
- FPGA 重复配置和测试的实现(08-14)
- 适用于消费性市场的nano FPGA技术(09-27)
- 赛灵思“授之以渔”理论:危机中如何巧降成本(06-04)