A collaborative simulation method of networked control system based on NS3 and MATLAB. Firstly, the overall scheme of collaborative simulation platform of networked control system is designed, including the system architecture of simulation platform, the component modules of collaborative simulation platform of networked control system and the data exchange and transfer scheme of collaborative simulation platform. The operation of two kinds of simulation software are built in Linux operating system Environment, and then design the time synchronization scheme of networked control system collaborative simulation platform. Collaborative simulation system is a simulation system with strict requirements for real-time and time sequence, which needs to be implemented by two simulators synchronously. Therefore, three time synchronization schemes of collaborative simulation are designed, and two of them are selected for implementation, and the design of synchronous interaction model is improved. Next, NS3 is designed The program of each module is designed, and the NS3 simulation script is designed. Finally, the program of each module of MATLAB / Simulink is designed.
【技术实现步骤摘要】
一种基于NS3和MATLAB的网络化控制系统协同仿真方法
本专利技术涉及对于不同的两款仿真软件NS3与MATLAB,通过设计特点架构与同步方案,使两者能够进行协同仿真的方法。
技术介绍
网络控制系统(NCS)是由要控制的系统和执行器,传感器和控制器组成的控制系统,其操作通过通信网络进行协调,因此NCS包含耦合的控制和通信视角。NCS使用多用途共享网络连接空间分布的元素导致灵活的架构,并且通常降低了安装和维护成本。因此,NCS已经在诸如工业控制系统和无人驾驶飞行器(UAV)等广泛领域中得到应用。然而,现有的仿真软件集中在控制系统或通信网络上,对于NCS的仿真也是基于对单个仿真软件的再开发。比如最常用的NCS仿真工具就是基于MATLAB开发的truetime软件包。MATLAB其具有精确的物理模型和强大的功能,并支持复杂算法的矩阵运算,但是即使使用了truetime软件包仍然无法对某些通信网络做到较为精确的仿真。通信系统的仿真软件NS3是一种广泛而开源的离散事件模拟器,旨在促进网络堆栈不同层次网络协议的仿真,使用NS3, ...
【技术保护点】
1.一种基于NS3和MATLAB的网络化控制系统协同仿真方法,含有以下步骤:/n(1)设计网络化控制系统协同仿真平台总体方案;/n步骤11:设计仿真平台系统架构;/n仿真平台系统从功能上可以划分为控制层、通讯层和模型层三部分;控制层由MATLAB用户交互界面组成,负责监控系统的整体运转情况,实现系统参数、控制参数的设置,下发通讯命令、控制命令以及接收仿真模型中采集的的数据信息;通讯层的功能通过协同仿真套接字模块实现,主要负责MATLAB与NS3之间数据的交换;模型层使用接收到的仿真模型控制指令与仿真模型运行所需的数据作为输入,此外两种模拟器分别调用各自的仿真驱动模块推进仿真 ...
【技术特征摘要】
1.一种基于NS3和MATLAB的网络化控制系统协同仿真方法,含有以下步骤:
(1)设计网络化控制系统协同仿真平台总体方案;
步骤11:设计仿真平台系统架构;
仿真平台系统从功能上可以划分为控制层、通讯层和模型层三部分;控制层由MATLAB用户交互界面组成,负责监控系统的整体运转情况,实现系统参数、控制参数的设置,下发通讯命令、控制命令以及接收仿真模型中采集的的数据信息;通讯层的功能通过协同仿真套接字模块实现,主要负责MATLAB与NS3之间数据的交换;模型层使用接收到的仿真模型控制指令与仿真模型运行所需的数据作为输入,此外两种模拟器分别调用各自的仿真驱动模块推进仿真过程;
步骤12:确定网络化控制系统协同仿真平台组成模块;
仿真平台NS3的组成模块包括NS3core模块,NS3仿真脚本,NS3节点个数与拓扑文件模块,application模块、wifi模块、LTE模块与移动模型模块等多个模块,MATLAB组成模块包括MATLAB仿真驱动模块,Simulink控制系统模型,MATLAB客户端组件,MATLAB用户交互界面,MATLAB基础工作空间与仿真跟踪统计与可视化模块;
步骤13:确定协同仿真平台数据交换与传递方案;
对于仿真软件间的数据交换,采用将MATLAB作为仿真的主导软件,利用socket套接字实现两仿真进程运行协同仿真时的进程间通信,并使用建立文件缓存区的方式将仿真中初始的初始节点个数与节点位置传递给NS3仿真场景脚本进行解析,同时MATLAB协同仿真界面中设置的NS3仿真场景的初始参数将通过MATLAB的system命令来启动NS3仿真进程,并使用参数初始化仿真场景;
对于单模拟器内的数据传递,涉及到协同仿真界面中的参数与MATLAB基础工作空间的信息交换,MATLAB中客户端组件与MATLAB基础工作空间中信息的交换以及Simulink与MATLAB工作空间的信息交换;
(2)设计网络化控制系统协同仿真平台时间同步方案;
步骤21:协同仿真系统是一种对实时性和时序严格要求的仿真系统,需要通过同步推进两仿真器执行,但由于MATLAB/Simulink与NS3的仿真驱动方式不同,MATLAB/Simulink为时间驱动,而NS3为事件驱动,因此两仿真器对协同仿真同步事件的视角与定义将有所不同;
步骤22:设计了三种协同仿真时间同步方案,并选择其中两种予以实现;
三种不同的同步方案分别为时间步进、主从式和全局事件驱动同步;根据仿真目标场景的不同,选择后两者进行实现,主从式同步用于实现时间驱动的协同仿真方案,主从式同步考虑了同步周期步长内异步网络事件对控制系统的影响,因而不会累积系统误差,然而主从式同步没有考虑到控制系统对异步网络事件的及时响应,控制系统仅能在周期同步事件时间点执行周期发送事件时触发网络事件;全局事件驱动同步用于实现基于控制器事件驱动的协同仿真方案,主从式同步既没有累积系统误差又能控制系统及时响应某些非周期的异步网络事件;
步骤23:设计同步交互模型;同时为了实现与Simulink模型的交互,对同步交互模型进行改进,因为需跳出客户端程序运行Simulink模型,则采用客户端不断建立TCP连接又关闭套接字断开连接的方式进行交互,在客户端建立与断开连接之间将发送与接收结构体用于同步;此时NS3的服务器将作为迭代服务器存在,主套接字用于侦听客户端的连接请求,而主套接字将不断创建关闭子套接字,子套接字用于接收新的连接请求以及发送与接收结构体;
(3)NS3各模块程序设计;
步骤31:在专利《基于TCP协议的NS3与MATLAB集成的联合仿真接口方法》中提供了对NS3默认仿真器、UDP应用程序类以及其助手类的改进,此外为了记录下客户端发送的数据包的编号、数据包的状态编号、多包传输下状态数和数据包的发送时间,分别设计了PacketNumTag、PacketPortTag、StateNumTag以及SendTimeTag四种标签类;
步骤32:设计NS3仿真脚本;
用户在使用NS3时需要编写仿真脚本来搭建网络仿真场景,仿真场景的通过waf工具进行编译和运行,仿真脚本的执行流程如下:执行主函数→使用初始化列表初始化测试脚本类→利用命令行参数来设置仿真参数→运行Run()函数开始搭建仿真场景→运行SeedManager()函数设置仿真的随机数种子→运行Configure_phyMode_Defaults()函数配置物理层传输模式并配置全局参数→运行CreateNodesphymacmobility()函数,其功能包括:1.从NS3节点个数与拓扑文件模块中提取节点个数与节点位置2.使用回调函数为设备添加物理层和mac层的发送和丢包跟踪3.为节点配置移动性质与节点位置回调4.配置物理层(信道模型)和mac层并安装通信设备在节点上,并开启网络跟踪文件生成,有ascii和pcap两种文件类型→运行Set_ExternallyDrivenSim_config()函数配置外部驱动模拟器的参数→运行InstallInternetStack()函数安装internet协议栈,其功能包括:1.安装IP层路由协议,开启路由表跟踪文件生成2.安装internet协议栈并为所有节点设备的接口分配IP地址→运行InstallApplication()函数,其功能包括:1.选择安装TCP或UDP的应用程序2.如果用户选择LTE网络,激活边链路承载,并配置LTE网络跟踪文件生成3.如果期望协同仿真使用设定的延迟与丢包率运行,运行Set_delayloss()函数进行设置→运行SetupWaveMessages()函数,如果用户的物理层模式选为WAVE协议,设置并发送bsm(基本安全消息)数据包→运行ConfigureLogTracing函数生成一些额外的跟踪文件,并判断是否开启log系统中必要的日志组件→运行Runsimulation()函数,其功能为配置网络节点动画,数据流量文件生成→仿真场景搭建完毕,启动并结束仿真;
(4)MATLAB/Simulink各模块程序设计;
步骤401:设计MATLAB仿真驱动模块;
MATLAB仿真驱动模块由一组互相紧密关联的MATLAB脚本子模块组成,包括仿真初始化模块、仿真主循环模块、单步仿真驱动模块、通知解析与单步规划模块、Simulink仿真启停控制模块;
步骤402:设计仿真初始化模块;
仿真初始化模块用于初始化仿真运行的一系列参数,以及打开需要进行仿真的Simulink模型文件,同时让S...
【专利技术属性】
技术研发人员:赵云波,顾慧卿,苏艺帆,韩康,
申请(专利权)人:浙江工业大学,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。