基于m文件系统函数的数据采集卡的数据交互方法

文档序号:8380139阅读:385来源:国知局
基于m文件系统函数的数据采集卡的数据交互方法
【技术领域】
[0001]本发明涉及一种基于M文件系统函数的数据采集卡的数据交互方法。
【背景技术】
[0002]MATLAB对数据采集卡实现数据实时采集的方式主要包括DAQ工具箱方式、编写函数M文件方式、SIMULINK的S函数方式。
[0003]DAQ(DataAcquisit1nToolbox)工具箱提供能够直接与数据采集硬件交互的模块库,利用这些库可以简单地获取模拟量或数字量数据。该方式的不足是不通用化,即一些采集卡不能用该方法实现Matlab对数据的采集。通过编写函数M文件的方式可以很简单实现对模拟量或数字量数据的获取。该方式的不足是采集的数据只能在CommandWindow中显示,不便于对采集的信号进行后续处理;并且采集信号的速度较慢,不满足实时性要求。
[0004]SIMULINK方式是一种采用MATLAB代码,即M文件,编写具有模型接口的系统函数的方法。系统函数是采用非图形化方式(即计算机语言,区别于SIMULINK的系统模块)描述的一个功能自定义模块。因为SMULINK具有适应面广,结构和流程清晰,模型内码更容易向其他硬件移植等优点,所以研宄采用SMULINK方式编写适用于数据采集卡的系统函数是亟需解决的问题。

【发明内容】

[0005]本发明的目的是为了解决现有的部分数据采集卡不支持SIMULINK方式采集信号的问题,而提出一种基于M文件系统函数的数据采集卡的数据交互方法。
[0006]一种基于M文件系统函数的数据采集卡的数据采集方法,所述仿真控制方法通过以下步骤实现:
[0007]步骤一、主函数调用模块本身初始化子函数,进入系统函数初始化阶段;并增加验证匹配子函数,验证采集卡硬件参数与软件描述是否匹配;
[0008]步骤二、主函数调用计算输出子函数,进行外部实际环境中数据的持续、实时采集,并调用采集卡底层验证匹配子函数判断出步骤一采集的数据中正确的数据,输出至Simulink环境,进行信号采集循环阶段;
[0009]步骤三、主函数调用仿真结束子函数,进入仿真结束阶段。
[0010]一种基于M文件系统函数的数据采集卡的数据输出方法,所述仿真控制方法通过以下步骤实现:
[0011]步骤一、主函数调用模块本身初始化子函数,进入系统函数初始化阶段;并增加验证匹配子函数,验证采集卡硬件参数与软件描述是否匹配;
[0012]步骤二、主函数调用计算输出子函数,进行Simulink环境里用以仿真的虚拟信号的持续、实时采集,并调用采集卡底层验证匹配子函数判断出步骤一采集的数据中正确的数据,进行信号输出循环阶段;
[0013]步骤三、主函数调用仿真结束子函数,进入仿真结束阶段。
[0014]本发明的有益效果为:
[0015]本发明是应用SMULINK为用户提供的User-DefinedFunct1ns库的M文件系统函数,采用MATLAB语言增加直接与数据采集卡硬件相连驱动函数,以实现能将实际信号采集到能够进行动态系统建模、仿真和综合分析的集成SMULINK环境中的方法。基于SMULINK具有适用面广、结构和流程清晰、灵活及内码更容易向其它硬件移植等优点,本发明利用简单的MATLAB语言增加的通用的系统函数,能够100%实现对所有信号实时数据采集,实现直接与硬件或第三方软件连接,进而应用或被应用于复杂的数字信号处理、控制、仿真及设计中。
[0016]另外,运用此方法能实现将SMULINK环境中的信号经数据采集卡输出的功能。在仿真的过程中,可以实现实际信号与SMULINK环境之间的相互通信功能。基于SMULINK具有适用面广、结构和流程清晰、灵活及内码更容易向其它硬件移植等优点,本发明利用简单的MATLAB语言增加的通用的系统函数,能够100%实现对所有信号实时数据输出,实现直接与硬件或第三方软件连接,进而后续的应用或被应用于复杂的数字信号处理、控制、仿真及设计中。
【附图说明】
[0017]图1为本发明涉及的系统主函数仿真流程图;
[0018]图2为本发明涉及的采集信号的M文件系统函数总体流程图;
[0019]图3为本发明涉及的输出信号的M文件系统函数总体流程图;
[0020]图4为本发明涉及的系统函数是否直通的解释示意图;
[0021]图5为本发明涉及的软件描述与采集卡硬件参数之间关系示意图。
【具体实施方式】
[0022]【具体实施方式】一:
[0023]本实施方式的基于M文件系统函数的数据采集卡的数据采集方法,当利用数据采集卡硬件获取模拟量或数字量数据时,所述仿真控制方法通过以下步骤实现:
[0024]步骤一、主函数调用模块本身初始化子函数(Flag = O),进入系统函数初始化阶段;并增加验证匹配子函数,验证采集卡硬件参数与软件描述是否匹配;
[0025]步骤二、主函数调用计算输出子函数(Flag = 3),进行外部实际环境中数据的持续、实时采集,并调用采集卡底层验证匹配子函数判断出步骤一采集的数据中正确的数据,输出至Simulink环境,进行信号采集循环阶段;
[0026]步骤三、主函数调用仿真结束子函数(Flag = 9),进入仿真结束阶段。
[0027]【具体实施方式】二:
[0028]与【具体实施方式】一不同的是,本实施方式的基于M文件系统函数的数据采集卡的数据采集方法,步骤一所述系统函数初始化阶段的过程为,
[0029]步骤--、主函数调用模块本身初始化子函数进行系统函数参数初始化,确定系统函数的初始条件:系统函数类型为连续型或离散型或二者混合型中的一种,系统函数输入输出个数,以及系统函数是否直通;
[0030]直通是指:系统函数有输入U,且系统函数的输出是输入的函数。比如,输出是sys,输入是 u,贝丨J sys = f (u)。
[0031]由图4知,数据采集过程没有输入U,故数据采集的系统函数不直通;数据输出过程含输入U,且其输出是输入的函数,所以数据输出的系统函数是直通的;
[0032]步骤一二、主函数调用模块本身初始化子函数进行采集卡初始化,设置采集信号的必要参数:申请内存空间、成员函数的申明以及宏定义,为采集信号的过程做准备;
[0033]步骤一三、采用调用采集卡底层验证匹配子函数的方式,验证采集卡硬件参数与软件描述是否匹配;若是,则进行步骤二的循环阶段,若否,则提示错误并返回步骤一一。为了区别不同板卡,每一块采集卡都有其唯一的一个ID。“软件描述”通过调用采集卡底层验证采集卡信息的驱动子函数以确定是否与硬件信息是否匹配。如图5所示,“软件描述”与“采集卡硬件参数”之间关系可以理解为“输入登入密码”与“之前设置登入密码”之间关系。“采集卡硬件参数”好比“之前设置登入密码”,登入时,要输入登入密码,只有密码对,才能登入系统,“软件描述”可以理解为“输入登入密码”。
[0034]【具体实施方式】三:
[0035]与【具体实施方式】一或二不同的是,本实施方式的基于M文件系统函数的数据采集卡的数据采集方法,步骤二所述信号采集循环阶段的过程为,
[0036]步骤二一、主函数调用计算输出子函数(Flag = 3),进行信号的持续、实时采集,并采用调用采集卡底层验证匹配子函数的方式,判断采集的数据是否正确;若否,则去除读取的信号,若是,则将读取的信号用于下一步骤;
[0037]步骤二二、将步骤二一确认为正确的读取的信号,输出至Simulink环境下;
[0038]步骤二三、主函数调用状态更新子函数(Flag = 2),实时更新采集信号,更新系统主函数的离散状态量。
[0039]【具体实施方式】四:
[0040]与【具体实施方式】三不同的是,本实施方式的基于M文件系统函数的数据采集卡的数据采集方法,步骤三所述仿真结束阶段的过程为,
[0041]步骤三一、判断是否到达仿真停止时间;若否,则返回至步骤二一继续进行采集的数据是否正确的判断;若是,则进入步骤三二 ;
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1