当前位置:文档之家› 基于Truetime网络控制系统的仿真

基于Truetime网络控制系统的仿真

海南大学本科生2010—2011学年度第2学期课程考查论文学院(中心、所):信息科学技术学院专业:电子信息工程研究方向:班级:学生姓名:学生证号:课程名称:论文题目:基于Truetime的网络控制系统的仿真任课老师:(以上由学生填写)教师评阅:阅卷教师(签名):年月日——————目录——————摘要 (3)关键词 (3)网络控制系统概述 (3)Truetime的安装 (3)(有线网络控制系统)一、组成结构 (3)二、存在的问题 (4)三、分散式有线网络控制系统的仿真实例 (4)①Network (5)网络参数 (5)网络模式 (8)②Truetime Kernel (8)一、传感器 (8)二、控制器 (10)三、执行器 (11)四、干扰节点 (11)③被控对象 (12)(无线网络控制系统)一、组成结构 (13)二、存在的问题 (13)三、无线网络控制系统的仿真实例 (14)①Network (15)②Truetime Kernel (17)③被控对象 (18)结束语(感想) (19)参考文献 (19)摘要:MATLAB 是由美国mathworks 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它主要包括MATLAB 和Simulink 仿真两大部分。

随着科学技术的迅猛发展,MATLAB 在通讯系统设计与仿真中的应用也越来越广泛。

而网络控制系统又是电子专业课程极其重要的一部分,故掌握好网络控制系统的仿真便显得尤为重要了。

本文通过对有线与无线网络控制系统的举例,详细地分析了Truetime 工具箱中各个模块的功能,阐述了有线网络控制系统中数据包丢失、稳定性等问题以及无线网络控制系统中功率控制策略的问题。

关键词:MATLAB Truetime 网络控制系统丢包干扰节点稳定性功率控制网络控制系统概述:网络控制系统(NCS ,Networked Control System )是指由传感器、控制器和执行器通过通信网络形成的实时闭环的控制系统。

简单结构如下图所示:控制器执行器被控对象传感器u(t)r(t)+y(t)e(t)-Truetime 的安装在MATLAB7.0中安装truetime-1.5工具箱:1、解压安装包2、复制粘贴文件夹truetime-1.5至C:\MATLAB7\toolbox \3、打开MATLAB ,Fil e →Set Path …,弹出“Set Path”窗口,点击“Add Folder...”建立C:\MATLAB7\toolbox \truetime-1.5\kernel 路径,点击左下角的“Save”,再“Close”4、如果在Windows XP 中,则进入“控制面版→系统→/高级→环境变量”中添加系统变量及用户变量“TTKERNEL ”,建立C:\MATLAB7\toolbox \truetime-1.5\kernel 路径;如果在Win 7中,则进入“控制面版→用户账户和家庭安全→/用户账户→更改我的环境变量”建立C:\MATLAB7\toolbox \truetime-1.5\kernel 路径,同时添加系统变量及用户变量“TTKERNEL ”5、将C:\MATLAB7\toolbox \local \startsav.m 中添加如下命令addpath([getenv('TTKERNEL')])init_truetime;6、在MATLAB7.0中打开C:\MATLAB7\toolbox \local \matlabrc.m ,并用M-File Editor 中File 菜单下的“SaveWorkspace As...”把该文件命名为matlab.mat 保存到原目录7、重新启动MATLAB7.0,在Command Window窗口下,以命令行的方式输入Truetime,回车,即可看到Truetime仿真工具箱注:访问examples 时,应直接在C:\MATLAB7\toolbox \truetime-1.5\examples 下打开。

(若电脑同时安装了多种MATLAB 版本的软件)有线网络控制系统一、组成结构有线网络控制系统中,有传感器节点、控制器节点、执行器节点和干扰节点。

组成结构如下图所示:二、存在的问题这种系统存在时延、丢包、多包、乱序的问题,这些问题的出现会降低系统的性能,譬如使系统的稳定范围变窄,稳定性变差,严重时甚至使系统失稳。

下面,举一个有线网络系统的仿真实例来说明Truetime-1.5中各个模块的作用以及丢包等问题。

三、分散式有线网络控制系统的仿真实例这是一个分散式的有线网络控制系统的实例(distributed.mdl):简略概述:该系统包含四个网络节点(皆用Truetime内核模块表示):Node4(传感器),Node3(控制器),Node 2(执行器)和Node1(干扰节点)。

可假设u为“冷气”,经过DC Servo(被控对象)的作用后变为y“暖气”,再将信号传给Node4(传感器),将信号传给Network(网络模块),由Node3(控制器)进行离散PID控制算法处理之后,再将信号传给Node2(执行器),反作用于DC Servo(被控对象)。

其中,Node1(干扰节点),它能发送干扰网络通信的模拟信号,并在计算机节点中执行干扰的高优先级任务。

传感器节点采用时间(clock→display)驱动的方式对过程进行周期性采样,采样周期为10ms。

下面,对其逐个模块进行分析:①Network全称为Truetime Network(网络模块)是网络控制系统(NCS)的通信网络。

网络参数:Network number网络模块编号从1算起,无线与有线网络不能使用相同的编号。

(juli无线)Number of nodes网络节点数决定了模块Snd和Rcv(输入、输出)的大小。

若节点数增多,则每个节点所占的带宽必定缩短,导致数据包丢失。

Network number:8Data rate(bits/s)网络传输速率其含义是每秒钟传输的二进制数的位数。

影响网络传输速率的因素主要有带宽、延迟和丢包。

带宽越窄、延迟时间越长、丢包越严重,则传输速率就越低。

如图所示,将传输速率分别改为800、8000、80000,则可以看出,网速越慢,丢包越严重。

Network number:80000Network number:8000Network number:800Minimum frame size(bytes)最小帧若输入的信息小于此帧,那么网络将自动填补(以单纯的高低电平的方式)。

如下图所示,最小帧分别为40、400,当最小帧为400时,控制系统自动填补,信息严重丢包。

Minimum frame size(bytes):40Minimum frame size(bytes):400 Loss probability(0-1)传输过程中的信息丢失率丢失的信息会占用网络带宽,却不能到达目的地。

Loss probability(0-1):0.2Loss probability(0-1):0.5网络模式:Truetime Network主要支持的六种简单的网络模型:CSMA/CD(e.g.Ethernet)带有冲突检测的载波监听随机访问CSMA/AMP(e.g.CAN)带有信息优先级仲裁的载波监听多路访问Round Robin(e.g.Token Bus)令牌总线网络其默认值为Bandwidth allooations(带宽)——1000Slotsize(bits)——20Cyolic schedule——123333Total switch memory(bit)——10000Switch buffer type(缓冲型开关)——common buffer(常见的缓冲)Switch overflow behavior(开关溢出行为)——retransmit(传输)FDMA(Frequency Division Multiple Access)频分多址可调整Bandwidth allooations(带宽)TDMA(e.g.TTP)Time Division Multiple Access时分多址可调整Slotsize(bits)、Cyolic scheduleSwitched Ethernet可调整Total switch memory(bit)、Switch buffer type(缓冲型开关)、Switch overflow behavior(开关溢出行为)。

②Truetime Kernel其全称为实时内核模块,可用作网络节点。

本例中,内核模块被用为传感器(Sensor)Node4、控制器(Controller)Node3、执行器(Aotuator) Node2、干扰节点(Interference)Node1。

其中,传感器、执行器、干扰节点的优先级同为1,控制器的优先级为2。

1、传感器传感器的主要任务是进行周期性地采样,然后把采样值发送给控制器节点。

进入C:\MATLAB7\toolbox\truetime-1.5\examples\distributed\matlab,打开sensor_init.m(传感器节点初始化程序)。

简单说明作用:初始化传感器节点ttInitKernel(1,0,'prioFP')规定模拟输入(1)与输出(0),以及节点任务的优先级(prio)%创建传感器节点任务,对传感器节点所用的参数(包括中间数据进行初始化)offset=0;%offset为偏移量period=0.010;%period为采样周期prio=1;ttCreatePeriodicTask('sens_task',offset,period,prio,'senscode',data);%定义节点任务(周期采样) disp('Sinit');%初始化网络ttCreateInterruptHandler('nw_handler',prio,'msgRcvSensor');ttInitNetwork(4,'nw_handler');%对网络初始化,其中传感器节点为网络中的4号节点将偏移量改为2,结果为:offset=0offset=2采样周期改为0.020,则其周期性采样的频率变小:打开senscode.m(传感器节点任务程序)可以看到节点任务分3步进行。

case1中,data.y=ttAnalogIn(1);%读取模拟端口1信号,存储到data.y,case2中,ttSendMsg(3,data.y,80);%将存储在data.y的信号向端口3控制器端发送。

相关主题