基于s-函数simulink和vc++网络通信探究

基于s-函数simulink和vc++网络通信探究

ID:5994906

大小:37.50 KB

页数:14页

时间:2017-12-30

基于s-函数simulink和vc++网络通信探究_第1页
基于s-函数simulink和vc++网络通信探究_第2页
基于s-函数simulink和vc++网络通信探究_第3页
基于s-函数simulink和vc++网络通信探究_第4页
基于s-函数simulink和vc++网络通信探究_第5页
资源描述:

《基于s-函数simulink和vc++网络通信探究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于S?函数Simulink和VC++网络通信探究  摘要:为了解决Simulink与VC++的数据交互问题,提出了采用C++语言S?函数实现两种开发环境的网络通信方法。首先介绍了S?函数以及基于S?函数的编程框架,其次介绍了UDP网络程序设计模型。最后结合实例说明并验证了该方法的有效性和实用性。关键词:S?函数;Simulink;VC++;UDP中图分类号:TN711?34文献标识码:A文章编号:1004?373X(2013)13?0108?04Researchonnetworkcommunicati

2、onbetweenSimulinkandVC++basedonS?functionZHOUTao(Xi’anAircraftIndustry(group)CompanyLtd.,AVIC,Xi’an710089,China)Abstract:InordertosolvetheproblemofdatainteractionbetweentheSimulinkandVisualC++,anetworkcommunicationmethodutilizedtheS?functionofC++language

3、torealizethetwodevelopingenvironment.TheS?function,theprogrammingframeworkbasedonitandthedesign14modelofUDPnetworkprogrammingareintroduced.theeffectivenessandthepracticabilityofthismethodareprovedwithexamples.Keywords:S?function;Simulink;VC++;UDP0引言Simul

4、ink是Matlab的重要组件之一,具有强大的系统建模和动态仿真能力,而VC++是Microsoft推出的可视化编程环境,具有丰富的WindowsAPI,可以开发友好的人机界面,而且运行稳定高效。实际应用中经常会结合两者的优势,进行联合仿真,其中必然存在两种开发环境的网络通信问题,本文采用S?函数(SystemFunction,系统函数)构建一个单独的通信模块,通过C++的Socket通信来实现Simulink与VC++的数据交互,并结合实例对该方法进行了验证。1S?函数简介S?函数是Simulink环

5、境下的功能扩展机制,能有效提高和丰富Simulink的功能。S?函数提供了一种用Matlab、C、C++或者FORTRAN等多种计算机语言描述Simulink模块的方法,将上述计算机编写的S?函数用MEX工具编译产生MEX文件。S?函数中用一种特定的回调语法,使用户可以和SimulinkEngine交互,此类交互和Simulink内置模块与Engine间的交互极为相似。这种回调语法称为S?函数API。2基于S?函数的编程框架14C++语言S?函数采用标准C++语言规范,并且产生可独立运行的MEX文件。C

6、++语言的S?函数的编写采用回调函数的方式,SimulinkEngine在不同的仿真阶段调用相应的回调函数,执行指定的任务。Matlab提供了S?函数的编程模板,指定了标准的回调方法,只需在其中加入特定的功能代码即可。其基本框架和对应的回调方法如图1所示。图1S?函数编程基本框架3UDP网络程序设计模型本文采用基于UDP的客户机/服务器通信模式实现Simulink与VC++的数据交互,Simulink的S?函数模块作为客户机进行仿真数据的发送,VC++作为服务器接收数据并实时显示。进行UDP通信时,客户

7、端与服务器端所使用的函数基本相同,其工作流程如下:(1)使用WSAStartup()函数检查系统协议栈的安装情况;(2)使用socket()函数创建套接口;(3)使用bind()函数将创建的套接口与本地地址绑定;(4)使用sendto()函数发送数据,也可以使用redvform()函数接收数据;(5)使用closesocket()函数关闭套接口;14(6)最后调用WSACleanup()函数,结束WindowssocketAPI的使用。程序工作流程如图2所示。图2UDP客户机/服务器程序工作流程4验证实

8、例此实例利用Simulink航空模型库中的HL20自动着陆演示模型作为数据源,用来验证Simulink和VC++之间的数据收发过程。首先,在Simulink的User?DefinedFunctions库中选择S?Function添加到模型中,将S?Functionname改为UDPclient,然后,新建一个名为UDPclient.cpp的C++文件,在其中利用C++语言按照S?函数编程模板进行UDP客户端程序设计。将HL20演示模型进行适

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。