APP下载

基于Questasim与Matlab/Simulink的光纤陀螺代码验证技术研究

2015-07-09袁慧铮

导航定位与授时 2015年1期
关键词:数据流陀螺端口

蒋 超,袁慧铮,张 朋

(1.湖北航天技术研究院总体设计所,武汉430000;2.湖北航天技术研究院软件评测中心,武汉 430000)

0 引言

Questasim是业界最优秀的HDL语言仿真软件之一,能提供友好的仿真环境,是单内核支持VHDL和Verilog混合仿真的仿真器。Questasim的仿真波形可以通过多种形式进行显示,但是当涉及到算法的仿真验证时,则功能明显不足,而进行算法验证是Matlab/Simulink的强项。Matlab中不但有大量的关于数字信号处理的函数,而且图形显示功能也很强大。利用Matlab/Simulink仿真库里的link for questasim构件,可以提供一个快速的双向连接,实现Matlab/Simulink和Questasim的无缝对接,使二者联合仿真成为可能,并且更高效地在Matlab/Simulink中验证Questasim的寄存器传输级(RTL)模型。

近年来,光纤陀螺(FOG)已经成为新一代中高精度惯性测量系统中的首选。随着研究的深入,影响光纤陀螺精度的各种问题逐步得到解决,光纤陀螺性能的不断提高,创造了良好的经济效益[1]。但由于光纤陀螺闭环控制算法的复杂性,直接采用Verilog或SystemVerilog语言对其建模并仿真,存在模型描述难度高、误差项量化难度大、仿真时间长等问题,无法满足工程实践的需求。本文结合Questasim与Matlab/Simulink的优势,对光纤陀螺的闭环控制算法进行了RTL级的验证。

1 光纤陀螺数字模型建模

1.1 光纤陀螺数字模型

数据流模型是通过分析光纤陀螺各器件的物理特性,提取出相应的数学表达式而建立的。在模型建立过程中,忽略了一些次要因素,得到针对主要特性的描述表达式。利用Simulink提供的模块,对光纤陀螺非数字部分器件进行仿真,计算数学方程,并产生输出。按照光纤陀螺的组成结构,各个模块按照信号的流向相互连接。本文建立的光纤陀螺反馈模块数据流模型框图如图1[2-3]所示。

1.2 在Simulink中建立光纤陀螺非FPGA数字系统的模型

按照图1所示的数据流模型,在Simulink中对光纤陀螺中非FPGA数字系统模块建模。主要有以下7个模块:

图1 光纤陀螺数据流模型Fig.1 FOG data flow model

1)光源模块。目前中、低精度光纤陀螺中光源主要采用超辐射发光二极管(SLD)。描述SLD最重要的两个参数就是光功率P和中心波长λ,光功率决定最终达到探测器的光强。

2)耦合器模块[2]。在光源后还需要加入第二个分束器,一般采用2×2的-3dB耦合器。描述耦合器性能的两个主要指标是插入损耗Sx和分束比Lx,单位为dB。光每次经过耦合器功率将发生衰减,衰减比例表示为Kx=100.1(Sx+Lx)。SLD输出的光经过耦合器输出给集成光学调制器IOC,而IOC也会将干涉后的光输出到PIN,传输过程中衰减Kx倍。因此,耦合器模块有2个输入端口以及2个输出端口。

4)光纤环模块。正反两束光在光纤中传播,在有外界角速率输入下产生Sagnac相移。此外,光束在光纤环传播过程中会发生衰减,数学表达式为一个比例环节。

5)探测器模块。通常采用的探测器结构为PIN-FET组件,由PIN光电二极管和跨阻放大器组成。描述探测器的指标有光电转换效率E、跨阻抗Rf。

6)放大器模块。在探测器输出和D/A输出到IOC前,一般会有信号调理放大器将信号调整到合适的范围。目前一般采用集成运算放大器,可以获得很高的精度,前置放大器和后置放大器分别描述为比例环节Ka1和Ka2。

7)A/D和D/A转换器模块。A/D转换器采样探测器数据,在本文中采用理想模型,不考虑转换器非线性偏差。类似地,D/A转换器也采用理想模型。

如上所述,图2为光纤陀螺中非FPGA数字系统的Simulink模型。

图2 光纤陀螺中非FPGA数字系统模型Fig.2 FOG digital system model except FPGA

2 Questasim与Matlab/Simulink对光纤陀螺联合仿真

2.1 Questasim与Matlab/Simulink联合仿真设置

图3[4-5]中图3-1为Link for questasim,它是一个联合仿真的接口,将MathWorks工具整合到EDA工作环境中,使其应用于FPGA和ASIC的开发。这个接口在HDL仿真器Questasim SE/PE和Math-Works的产品Matlab和Simulink间提供了一个双向连接,以指导硬件的设计验证和联合仿真。这种整合可以分别充分发挥Matlab/Simulink和Questasim各自的优势。

图3-2显示了Matlab/Simulink和Questasim的接口关系。把在Matlab中获得的测试基准代码输出作为输入,输入到VHDL/Verilog实体中,并把经过Questasim的输出输入到Matlab函数中。Matlab/Simulink链接Questasim时,Matlab/Simulink和Questasi分别充当服务器和客户端的角色,两者之间通过TCP/IP socket port进行链接。

ZHANG Jing, XU Jia-hua, SHI Li, WEI Pei-lian, YU Guan-zhen

图3 Matlab/Simulink和Questasim接口关系图Fig.3 Matlab/Simulink interface relationship with Questasim

Questasim和Matlab/Simulink联合仿真的大致步骤是:

1)在Questasim中建立工程,加入文件.v编译,最后关闭Questasim窗口。

2)在Simulink中,将当前路径设置到存放.v文件的路径,编辑模型。配置模型参数,配置Simulink求解器。

3) 在 Matlab中输入 vsim(‘socketsimulink’,XXXX),XXXX虚拟接口,如1234,也可直接输入vsim,启动Questasim。

4)在Questasim中加载实体,启动仿真,加载wave视图。

5)在Simulink中运行仿真,可在Questasim中观察运行得到的仿真图,当然也可利用Simulink提供的仿真库函数对仿真结果进行观察。

6)终止仿真Simulink中,Simulation/EndSimulation,Questasim 中 quit;close Simulink Model Window.

2.2 Simulink模型链接Questasim

在Simulink仿真库下选中link for modelsim,拖入新建窗口,双击模块,进行参数配置。以下介绍其中几个重要参数的设置。

1) Port:端口的设置是完成接口设置非常重要的一步。需要设置的有端口名、输入输出方式、采样时间、数据类型等,如图4所示。

图4 端口的设置Fig.4 Function block parameters:ports

2) 链接方式的设置:可选shared memory或是socket通信方式。若是选择shared memory,在Simulink下启动Questasim输入vsim,若是采用socket方式,则需要选择虚拟端口,比如1234,则,运行在Matlab下,启动Questasim时,输入命令 vsim(‘socket.simulink’,1234),即可进入Questasim界面。

3) 时钟和仿真的时间刻度:如图5所示,需要设置对Questasim的时钟频率。

4) TCL控制命令:如图6所示,在仿真开始启动时钟信号。

图5 时钟和仿真的时间刻度Fig.5 Function block parameters:clocks

图6 TCL控制命令的设置Fig.6 Function block parameters:TCL

3 光纤陀螺闭环反馈模块仿真的实现

最终在Simulink中形成的模型如图7所示。HDL Cosimulation为Simulink链接Questasim的接口模块,Subsystem3为光纤陀螺闭环反馈模块的Simulink模型。仿真运行后,用户可以在Questasim下观察仿真波形,同时也可以在Simulink环境下利用示波仪等显示设备观察仿真波形。本文中反馈的阶梯波形在Simulink和Questasim中的波形如图8、图9所示。

图7 光纤陀螺仿真模型Fig.7 Simulation mode of FOG

图8 Simulink示波仪显示的光纤陀螺反馈的阶梯波形Fig.8 FOG levels trapezoidal wave with feedbackdisplayed by Simulink Oscilloscopes

图9 Questasim中光纤陀螺反馈的阶梯波形Fig.9 FOG levels trapezoidal wave with feedbackdisplayed by Questasim

4 结论

本文对Questasim与Matlab/Simulink联合仿真技术的接口与实现进行了研究,利用Simulink对Questasim进行光纤陀螺光学和模拟电子器件的高层次抽象,建立了光纤陀螺的数据流模型,把两个专业仿真工具联合起来使用,建立一个自动化的可靠的光纤陀螺代码验证平台,对光纤陀螺代码验证提供支持。既能发挥Questasim突出的硬件设计仿真效能,又能借助Matlab/Simulink强大的数值处理能力。在进行光纤陀螺代码测试时模型被触发,接受数字系统输出并进行模型的运算,运算结果传递回数字系统中,完成整个光纤陀螺代码的闭环运算,增强算法同硬件实现之间的联系。

[1]张桂才,王巍,译.光纤陀螺仪[M].北京:国防工业出版社.

[2]GJB 2426-95,1995-05-31,光纤陀螺仪测试方法[S].

[3]禹玮.光纤陀螺信号的数值处理方法[J].传感器与微系统,2009,02.

[4]范静,陈文艺.基于Modelsim与Matlab/Simulink联合仿真技术的接口与应用研究[J].西安邮电学报,2010,5.

[5]李寿强.MATLAB和ModelSim联合仿真在FPGA开发中的应用[J].电子制作,2013,06.

[6]L Kriaa,W Youssef,G Nicolescu,et al.SystemC-Based Cosimulation for Global Validation of MOEMS[C]//.Proceedings of SPIE,2002.

[7]E Markert,G Herrmann,D Müller.System model of an inertial navigation system using SystemC-AMS[J].Forum on specification and Design Languages(FDL),2005.

猜你喜欢

数据流陀螺端口
一种有源二端口网络参数计算方法
一种端口故障的解决方案
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于XML的数据流转换在民航离港系统中应用
多按键情况下,单片机端口不足的解决方法
做个纸陀螺
现有网络架构及迁移方案
玩陀螺
陀螺转转转