基于MATLAB与FPGA的动态补偿滤波器设计
2010-11-07毛丽民朱培逸常熟理工学院自动化系215500
毛丽民 朱培逸常熟理工学院自动化系 215500
基于MATLAB与FPGA的动态补偿滤波器设计
毛丽民 朱培逸
常熟理工学院自动化系 215500
1.引言
随着对测量系统性能要求的进一步提高和一些特殊领域应用的需要,人们希望传感器的动态特性能够迅速反映被测对象的变化。作为测试系统的关键环节——传感器,它的特性研究一直为人们所关注。然而,许多传感器的动态性不能满足这个要求,测量时将会导致动态误差。因此,如何减小动态误差,获取准确、可靠的被测信号,是动态测量需解决的重要问题之一。本文通过设计补偿滤波器,扩展了传感器的带宽,传感器的动态特性得到了明显改善。
2 压力传感器的动态数学模型的建立
针对压力传感器的动态校准实验中所测数据,建立了该传感器的动态数学模型。图1是激波管动态校准中,压力传感器的实测响应曲线,横坐标为采样点,采样频率为4MHz。
图1 传感器动态校准效果
为了提高辨识的精度,对数据进行预处理,消除观测数据中的趋势项,对输入输出数据进行滤波,剔除数据中的高频成分,并截取其中的800个数据用于辨识。响应曲线如图2所示
图2 数据预处理后的响应曲线
由高斯—牛顿法得到如图3的响应曲线:
图3 传感器的阶跃响应
高斯—牛顿法的基本思想是把非线性模型在未知参数初值处进行线性化,按最小二乘准则平差估计出一次近似值 ,然后以该近似值作为下一次线性化的初值,反复迭代计算逐次逼近真正的极小点。
上述图中实线为数据处理结果,虚线为模型仿真结果得到传递函数为:
3 压力传感器补偿环节的设计
设传感器三阶模型为
对于三阶模型不能同时替换零极点,否则,等效系统的阶数较高,且无法实现。设计补偿环节为
此时,等效系统为
对Hb(S)进行变换,得
采用双线性变换,得
传感器阶越响应和加补偿环节后的响应曲线如图4所示。
图4 零极点配置法设计补偿器的效果
图4 中的曲线1为补偿前的阶跃响应;曲线2为补偿后的阶跃响应;
图5 补偿前后的幅频响应
图5 中的曲线1为补偿前的阶跃响应;曲线2为补偿后的阶跃响应;
经过补偿,扩展了传感器的带宽,传感器的动态特性得到了明显改善。用零极点配置法设计补偿数字滤波器,其特点是:
(1)零极点配置法设计补偿环节,要依据传感器的模型。所以对建模精度有一定要求。但并不严格。由于人为控制极点,补偿效果比较明显。
(2)对于高阶系统,采用降阶的方法去近似处理以及用低阶补偿环节去校正。
采用动态补偿技术可以任意展宽系统的工作频带,但实际实施动态补偿时,不可能无限制的展宽系统频带,因为无限展宽频带会导致高频噪声的放大,甚至淹没用的信号,使得测量无法进行。频率展宽范围为传感器带宽的2~10倍为佳。
4 动态补偿滤波器的FPGA实现
目前 ,现场可编程门阵列 FPGA在前端数字信号处理中正越来越多的取代ASIC和 DSP。与 DSP和 ASIC相比 , FPGA有更高的吞吐量、位级的可编程能力、开发的周期短和风险小等等优点。尤其是0nm技术在 FPGA 中的引入 ,使FPGA在电路集成数量和工作的频率上取得了飞跃的发展,使许多复杂的算法、片上系统得以实现。
4.1 基于DSP Builder数字滤波器的设计流程
DSP Builder 是Altera 推出的一个DSP开发工具, 它在QuartusⅡ FPGA 设计环境中集成了Mathworks的Matlab 和Simulink DSP 开发软。DSP Builder是一种基于Simulink 的FPGA 设计工具,它加速了用FPGA实现DSP的开发流程,实现了Simulink系统仿真模型到FPGA实现代码之间的无缝链接。
对DSP Builder而言, 顶层的开发工具是Matlab/Simulink, 整个开发流层几乎可以在同一环境中完成,真正实现了自顶向下的设计流程, 包括DSP 系统的建模、系统级仿真、设计模型向VHDL 硬件描述语言代码的转换、R T L(逻辑综合Register TransferLevel)级功能仿真测试、编译适配和布局布线、时序实时仿真直至对DSP 目标器件的编程配置。整个设计流程一气呵成地将系统描述和硬件实现有机地融为一体, 充分显示了现代电子设计自动化开发的特点与优势。
4.2 设计步骤
在MATLAB/Simulink 中建立一个*.mdl模型文件,用图形方式调用Altera DSP Builder和其它Simulink库中的图形模块进行设计输入,构成系统级或算法级设计框图。
如图6所示,使用DSP Builder提供的模块搭建IIR滤波器模型
图6 三阶IIR滤波器结构
4.3 在FPGA 器件中实现动态补偿滤波器
双击Signal Compiler 模块, 出现初始化对话框。如果需要对模型图进行更新, 可复选上“UpdateDiagram”。如果模型没被修改过并且在上一次生成代码时已经对模型进行过分析,可点击“S k i p A n a l y z e”略过分析,否则点击“Analyze”对模块进行分析。
在QuartusII环境中打开DSP Builder建立的QuartusII 项目文件fir1.qpf。在QuartusII 中指定器件引脚并进行编译, 最后下载到FPGA 器件中, 就可以对硬件进行测试, 加上CLCOK 信号和使能信号, 用信号发生器产生所要求的两个不同频率的正弦信号, 就可以在示波器上看到滤波以后的结果。需要设计不同的滤波电路时,仅修改IIR 滤波模型文件就可以实现, 这样不仅避免了繁琐的VHDL 语言编程, 而且便于进行调整。
5 结束语
本文采用辨识建模、动态补偿和FPGA实现相结合的研究方法,建立了压力传感器的动态数学模型,并由此分析了传感器的动态特性,设计出相应的动态补偿数字滤波器以改善传感器的动态特性,扩展其工作频带,以满足压力传感器用于测试的要求。利用Altera DSP Builder 从Simulink 模型自动生成FPGA实现代码的设计流程,缩短了设计周期, 提高了设计的灵活性。
[1] 黄俊钦.测试系统动力学[M].北京:国防工业出版社.1996
[2] 陈锦荣,卜雄沫.应变式压力传感器特性补偿和应用[J].兵工学报.20069(1):81~85
[3] 徐科军,唐霆.传感器零极点相消动态补偿法[J].科学通报.2004, 39 (9):682-686
[4] 徐科军.传感器动态特性的实用研究方法[M].合肥:中国科学技术大学出版社.2006.
[5] 潘松,黄继业,王国栋.现代DSP技术[M].西安:西安电子科技大学出版社.2004.
Dynamic compensation of the digital filter design based on MATLA B and FPGA
Mao Limin Zhu Peiyi (Changshu Institute of Technology , automation, Changshu,215500)
本文以压力的测试为背景,围绕压力传感器的动态特性研究及补偿这一主题,运用辨识建模和动态补偿技术,并进行了实验研究和计算机仿真研究,根据测得的实验数据建立了传感器的动态数学模型,在此基础上分析了压力传感器的动态特性,设计了动态补偿数字滤波器,明显提高了压力传感器动态响应的快速性和展宽了工作频带。最后本文运用了DSP Builder提供的模块搭建IIR滤波器模型,生成VHDL语言,下载到FPGA中,较好的实现了动态补偿数字滤波器。
压力传感器;建模;动态补偿;FPGA
Against the background of pressure measurement of the muzzle shock wave, the research work about technology of dynamic modeling and compensation, correlatively to the topic of the dynamic characteristics and its improvement of pressure sensors, is described in detail.It includes experimental research and simulation research.Using sensor's dynamic calibrated data, its dynamic mathematical model is established and according to the model, its dynamic performance is obtained and a dynamic compensated digital filter is designed, which shortens the dynamic response time of pressure sensor and widens the work bandwidth evidently.In addition, the compensating results of the dynamic calibration test and simulation shock wave are given.Finally, FPGA better implement the dynamic compensation digital filter.
Pressure sensor;Modeling;Dynamic Compensation;Digital Simulation;FPGA
10.3969/j.issn.1001-8972.2010.10.060
毛丽民(1981-) 常熟理工学院,助教,硕士;
朱培逸(1980-)常熟理工学院,助教,硕士。