网络控制系统简介
网络控制系统(NCS,Networked Control Systems)是指传感器、控制器和执行器机构通过通信网络形成的实时闭环的控制系统。
目前广泛使用的网络控制系统仿真软件,主要包含网络控制系统仿真工具箱TrueTime,网络传送特性仿真工具NS2,还有网络控制仿真包NCS-Simu和OPNET等。
Truetime工具箱的简介
Truetime是瑞典隆德(Lund)大学自动化系(Lund Institute of Technology)的MartinOhin,Dan Henriksson和Anton Cervin于2002年推出的基于MATLAB/Simulink的网络控制系统仿真工具箱。
该工具箱针对每一特定的网络协议,可以实现控制系统与实时调度的综合仿真研究,是目前网络控制系统理想的虚拟仿真工具之一。
Turetime工具箱中的Truetime Network(网络模块)被用作为NCS的通信网络,提供了多种网络参数和网络模式,如媒体访问控制协议、网络节点数目、传输速率、数据丢失率等。
其中网络模式与媒体访问控制协议有:CSMA/CD(带有冲突检测的载波监听随即访问)、CSMA/CA(带有冲突避免的载波监听多路访问)、CSMA/AMP(带有信息优先级仲裁的载波监听多路访问)、FDMA(频分多路复用)、TDMA(时分多路复用)等。
Truetime2.0工具箱的安装
目前Truetime最新的版本便为Truetime2.0,其与Matlab/Simulink软件包中的其它控制模块相结合,可以简便快速地搭建分布式的实时控制系统和NCS。
Step1.Truetime2.0工具箱的下载
我们可以到隆德(Lund)大学自动控制系站的网页,对Truetime2.0工具箱进行下载。
找到下载链接后,我们发现工具箱总共也不过15MB,简洁好用。
Step2.解压Truetime2.0工具箱
将下载好的Truetime2.0工具箱解压到matlab R2017b的安装目录“toolbox”文件夹下。(还没有安装matlab R2017b的伙伴们,可以参考下我们上次的分享“小叮当教程:MatlabR2017b的下载安装与破解”)
Step3.将Truetime2.0的kernel添加到Matlab路径中。
(1)运行Matlab R2017b 在主界面中点击“设置路径”,在弹出来的界面中点击“添加文件夹”,我们找到Step2中我们解压到“toolbox”文件夹下的”truetime-2.0"文件夹,选择”truetime-2.0"文件夹下的“kernel"。
(3)以win7系统为例,在“计算机”图标处右击,选择“属性”-->“高级系统设置”-->"环摬变量“-->”系统变量“-->"新建”。
我们新建系统变量名为“TTKERNEL”,变量的值为我们在Mtalab中添加的路径“E:\Program Files\MATLAB\R2017b\toolbox\truetime-2.0\kernel”
Step4.用Matlab R2017b“打开”,路径为"E:\Program Files\MATLAB\R2017b\toolbox\local\startupsav.m"的startsav.m文件。
我们在其中添加如下命令后进行保存。
addpath(getenv('TTKERNEL'))
init_truetime;
Step5.利用Matlab R2017“打开”位于“E:\Program Files\MATLAB\R2017b\toolbox\local"路径下的“matlabrc.m"。
点击“保存工作区”,系统则自动将其重命名为“matlab.mat”,我们将其保存在路径“E:\Program Files\MATLAB\R2017b\toolbox\local”。
Step6.找到“E:\Program Files\MATLAB\R2017b\toolbox\truetime-2.0\kernel”文件夹下的init_truetime.m文件。
我们将“init_truetime.m”复制到matlab安装目录下的toolbox下local文件夹中。
Step7.运行命令:mex -setup查找C编译器
在命令行中输入:mex -setup 发现报错“错误使用mex未找到支持的编译器或 SDK”,这是因为我们的Matlab没有安装gcc所导致。
(1)我们到网上下载TDM-GCC(注意看好是64位还是32位)
(2)安装TDM-GCC,首先选择“create"。
之后选择64位,点击next,进行安装。
之后进入新的界面,选择”next"。
选择安装路径,我们选择“E:\TDM-GCC-64”,点击“next"。注意:这里的路径中一定不要带空格
出现新的界面,还是点击”next"。
之后,点击“install"进行安装。
安装成功后,我们点击”next"。
最后,我们点击“finish"。
此时,会弹出一个”readme“文档,直接关闭即可。
(3)新建系统变量”MW_MINGW64_LOC“,其值设置为TDM-GCC-64的安装位置”E:\TDM-GCC-64“。
在MATLAB命令行内运行命令:setenv('MW_MINGW64_LOC','E:\TDM-GCC-64')
(4)运行完命令“setenv('MW_MINGW64_LOC','E:\TDM-GCC-64')”后,再次运行mex -setup。此时系统提示我们选择不同的编辑语言,我们使用命令“mex -setup C++”选择C++
Step8.编译“make_truetime”文件
经上步,选择好C++语言后,我们输入命令:make_truetime进行编译,其间会出现“警告信息”,这是由于官方升级到64位的API所致,我们不用管这些“警告信息”。
经过一个个的文件编译,运行完成后,系统则会显示“TrueTime compiled successfully!”
Step9.对Truetime2.0运行测试
(1)首先,切换工作路径到Truetime2.0的例子文件夹"E:\Program Files\MATLAB\R2017b\toolbox\truetime-2.0\examples"。
注意,好多人不注意这个细节,明明自己已经装好了Trutime2.0却还是不能运行工具箱自带的例子!
(2)测试“examples”文件夹下的“simple”例子。同理,先切换Matlab工作路径到“simple"。
(3)注意,还是强调路径,一定要把路径选对!即你运行例子的路径,一定要在Matlab的当前工作路径!例如我们测试”simple",就一定要把路径定位到“E:\Program Files\MATLAB\R2017b\toolbox\truetime-2.0\examples\simple\c++”使其右边的当前文件夹能够显示“simple.slx"。
(4)我们双击"simple.slx",使其运行Truetime2.0工具箱。点击Trutim2.0工具箱上类似播放的按钮,进行运行测试。
(5)运行后点击下方的“诊断视图”,系统不报错,则证明我们的Truetime-2.0工具箱已经成功安装!
至此,我们的Matlab R2017b+Truetime2.0工具箱已搭建完成