多类型仿真数据生成软件设计
2018-06-24王菊远谷玉海李小群
王菊远,谷玉海,李小群
(北京信息科技大学现代测控技术教育部重点实验室,北京 100192)
0 引言
对于任何系统,在实际工作状况下测试系统的性能是非常必要的。但对处于研发阶段的系统而言,难以构建系统的实际工作环境,这样会给系统在后期调试中带来难度,从而增加开发周期。因此模拟信号而建立与实际工作相似的环境,成为系统开发过程中不可或缺的环节。同时还可以模拟更加复杂的工况,从而全面测试系统的性能。使得系统性能满足开发需求,因此该系统对研发阶段的产品提供了很好的模拟实际信号[1]。
模拟多型信号并发系统设计是采用C语言进行编程,并根据不同的需求可以选择不同的信号类型、改变信号的各项参数及对信号的选择性叠加等。从而更加真实地模拟实际工况,对系统性能的测试提供有效支持。
1 软件总体设计方案
首先根据需求选择所需信号类型和自定义信号参数,然后选择信号叠加和采样处理产生信号数据,将生成的信号数据通过软总线平台进行处理,软总线平台提供了多种波形显示端接口、数据库接口等其他第三方接口。系统总体设计方案流程如图1所示。模拟多型信号软件系统设计首先根据需求选择多种信号类型,是否根据需求改变信号各项参数(幅值、相位、频率等),是否根据需要选择多型信号并发等(图2)。
图1 系统总体设计方案流程
图2 信号参数配置页面
根据需求选择叠加信号ID进行叠加,自定义信号的采样频率对信号进行采样处理。信号处理配置页面如图3所示。根据采样处理产生的信号数据,采用软总线平台进行数据后期处理。数据可以根据使用者的需要进行显示、存入数据库等,还可以根据软总线平台提供的数据接口进行其他操作。
图3 信号处理配置页面
2 多型信号的产生
信号的分类主要有确定性信号和非确定性信号。由于工程中的信号大多数是确定性信号,因此系统主要模拟确定信号的产生。确定性信号主要分为周期信号和非周期信号。确定性信号分类如图4所示。根据工程上常见的信号类型,系统主要设计了简单周期信号、复杂周期信号、准周期信号、瞬态信号等4种信号类型。
图4 确定性信号分类
2.1 简单周期信号
周期信号是周期、幅值等随时间重复性变化的信号[2]。系统主要设计2种简单周期信号:①f(t)=Asin(2πft+θ)+B;②f(t)=Acos(2πwt+θ)+B,式中幅值、频率、相位、直流分量等特征参数都可以由用户根据需求输入设定。
2.2 复杂周期信号
复杂周期信号是在周期内信号图像较为复杂的周期信号[3]。系统主要设计5种典型复杂周期信号,信号1为不同频率正弦信号和余弦信号叠加、信号2为方波信号、信号3为三角波信号、信号4为锯齿波信号、信号5为正弦整流信号。复杂周期信号周期函数表达式如下所示。
以上信号的幅值、频率、相位、直流分量等特征参数可以根据用户的需求自定义设置。信号之间也可以进行叠加等。
2.3 准周期信号
准周期信号是由一些不同频率的简谐信号叠加而成的信号,且各简谐分量的频率之比不全为有理数。并且这些简谐信号的频率不成简单整数比,叠加而成的信号不再为周期信号,但信号的频率描述还具有周期信号的特点,称为准周期信号[4],f(t)=Asin(2πft+θ)+Bcos(2πωt+β)+C,式中的正弦函数和余弦函数的幅值、频率,相位、直流分量都可以由用户根据需求自定义输入设定,正弦函数和余弦函数频率至少有一个为无理数。
2.4 瞬态信号
3 数据传输
软总线平台是由现代测控教育部重点实验室项目研发成果。软总线平台提供C/C++SOA应用组件开发、部署与运行的创新型一揽子技术解决方案。信号产生后数据传输主要提供3种基于软总线平台提供进程间通信、网络通信和数据库的服务的数据传输,可以满足本地、网络间、数据库各种场景使用。
3.1 本机内通信数据传输
本机内通信主要采用消息队列,消息队列提供了一种可靠的进程或线程间通信传输,消息队列采用C++面向对象进行封装,msgQService类如下。
调用此类变量和方法即可完成可靠的本机内通信。
3.2 网络通信数据传输
基于网络通信数据传输主要依靠现代测控教育部实验室项目团队封装基于软总线平台的动态库,windows下msgEngineServiceLib.dll、linux 下 msgEngineService.so 该动态库封装提供具有 tcp、udp、http、serial(串口)、ftp功能,通过修改配置文件完成网络通信数据传输的连接传输等功能。通过修改配置文件msgEngineService.ini可快速配置网络通信数据传输。
3.3 数据库服务数据传输
基于数据库服务数据传输主要依靠现代测控教育部实验室项目团队封装基于软总线平台的动态库windows下dbservice.dll,linux 下 dbservice.so。dbservice.dll(dbservice.so)提供mysql、Oracle、sqlServer、sqLite、postgres、mongodb 数据库的增删改查等服务。通过读取配置文件dbservice.ini完成数据库的连接等服务。
4 实验与结果分析
实验针对该系统,选择了4种信号。
(1)简单正弦信号。f(t)=sin(2t)。
(4)叠加信号。
将信号1、信号2、信号3进行叠加,产生信号4。
本次试验采用1kHz采样频率,通过软总线平台提供的通信服务组件进行通信,通过改变组件的配置文件配置。
通过通信服务组件TCP/IP传输控制协议发送数据,实验显示端tcphelper17.6.4(tcphelper17.6.4由现代测控教育部实验室项目团队研发tcp通信显示软件)同样采用IP:127.0.0.1、Port:8081。
通过上述实验,系统产生了4种信号(图5~图8),其中,图5是简单周期信号,图6是复杂周期信号,图7是准周期信号,图8是叠加周期信号。同时还可以通过系统产生不同的叠加信号等。
5 实验与结果分析
采用C语言产生多型信号,并通过软总线平台传输、tcphelper17.6.4显示,同时使用者可以根据自己需求定义信号的一些参数,该系统可以作为独立的服务组件和其他系统模块结合。该信号发生系统可以缩短系统整体的开发周期、整体系统压力的测试提供了便捷。
图5 信号1产生结果显示
图6 信号2产生结果显示
图7 信号3产生结果显示
图8 信号4产生结果显示