TrueTime工具箱模块内部结构及功能解析

EDA/IC设计

1065人已加入

描述

1.TrueTime工具箱

(1)TrueTime工具箱简介

TrueTime工具箱是基于MATLAB/Simulink的仿真工具箱,是瑞典Lund学院在2002年开发的,可以实现控制系统和实时调度的仿真。

作为一款专业的科学计算软件,MATLAB在各个领域都有着广泛的应用。MATLAB将人所不能达到的数据处理和计算能力和可视化编程加载在一起,并且其拥有大量的由各个领域的专家学者所编写的函数,这些函数的调用可以轻易地解决一些问题,为人们处理问题带来难以想象的便利。

在MATLAB被正式研究并投入使用之前,各国的专家学者或从业者基本都是使用FORTRAN和C语言所编程的软件等来进行相关领域的编程研究。但此类软件由于兼容性不强、在性能上也有所欠缺,同时并没有如同MATLAB那般完善且专业的内置函数和标准库,故而,一直难以在市场和相关领域占主导地位。但随着MATLAB的出现,各国的专家学者得到了进行相关研究的有力工具,同时原先在控制领域中使用的库类则被淘汰或选择在MATLAB上重建。时至今日,经过Math Works公司对MATALAB不断地改进和补充以及各国专家学者为其提供的改进建议,MATLAB已经能够适用于多领域,并在这些领域都占有举足轻重的位置。

TrueTime的功能可以说是十分完备。它不仅可以作为探索网络上的大多数问题对系统有何影响的一种工具,还能够为算法的设计提供很大的帮助,除了这些,它还有很多的优点。网络控制系统涉及控制、实时调度、网络通信等内容,为系统的分析与设计制造了不少的阻碍,而TrueTime工具箱为网络控制系统的仿真研究提供了清晰有效的策略,是一个理想的网络控制系统仿真平台。

(2)工具箱模块介绍

TrueTime仿真工具箱包括实时内核模块(TrueTime Kernel)、网络模块(TrueTime Network)、无线网络模块(TrueTime Wireless Network)、电池模块(TrueTime Battery)、发送信息模块(TrueTime Send)和接收信息模块(TrueTime Receive)六种Simulink接口类型模块。本文中详细介绍实时内核模块(TrueTime Kernel)和网络模块(TrueTime Network)的作用、接口及相应的功能。

matlab

图1 TrueTime仿真工具箱

① 实时内核模块(TrueTime Kernel)

该模块具有及时性和快速性,里面包含A/D接口、D/A接口、网络接口和外部通道,调度器(Schedule)和监视器(Monitors)的输出可以用来显示CPU、Monitors和网络的分配情况。该模块是根据使用者的需求来工作的,使用者派给它一个任务,遇到中断,它便去执行。任务的执行与中断句柄通过MATLAB语言或C++语言编写的代码实现。

matlab

图2 TrueTime Kernel模块内部结构

表1 TrueTime Kernel模块接口及功能

接口

功能

A/D

将模拟信息变更为数字信息

Triggers

提供中断句柄

Rcv

接收数字信息

D/A

将数字信息变更为模拟信息

Snd

发送数字信息

Schedule

查看系统资源的分配情况

Power

若需要,可接通电池(TrueTime提供电池模块)

②网络模块(TrueTime Network)

TrueTime Network向NCS供应了通信资源,包含了各种网络参数,如Network number、Number of nodes、Data rate(bits/s)、Minimum frame size(bytes)、Preprocessing delay(s)、Postprocessing delay(s)、Loss probability(0~1)等。TrueTime工具箱中预定义了多种调度策略,比如固定优先级(FP,Fixed Priority),单调速率(RM,Rate Monotonic),截止期单调(DM,Deadline Monotonic),最小截止期优先(EDF,Earliest Deadline First)等。

matlab

图3 TrueTime Network模块

表2 网络模块接口及功能

接口

功能

Snd

接收TrueTime Kernel模块Snd端口发送的数字信息

Rcv

发送数字信息至TrueTime Kernel模块的Rcv端口

Schedule

观察仿真中系统资源的占据情况

③无线网络模块(TrueTime Wireless Network)如图4所示。

matlab

图4 TrueTime Wireless Network模块

④电池模块,如图5所示。

matlab

图5 TrueTime Battery模块

(3)TrueTime命令介绍

TrueTime工具箱中的各个模块都需要编写代码来实现。常用的命令如表3所示。

命令

描述

ttInitKernel

初始化TrueTime Kernel模块

ttAnalogIn

从输入通道取值

ttAnalogOut

设定输出通道的值

ttSendMsg

在网络上发送信息

ttGetMsg

在网络接收信息

ttWait

等一个事件

ttCreateTimer

在指定事件触发中断句柄

ttSetPriority

改变任务优先级

ttCreatePeriodecTask

创建周期性任务

ttInitNetwork

初始化网络模块

ttCreateInterruptHandler

创建中断柄

ttCreateExternalTrigger

创建外部触发

ttCreateMonitor

创建一个监视器

ttCreateEvent

创建一个事件

ttSetDeadline

设置截止期

ttCallBlockSystem

调用Simulink模块

ttSetPeriod

设置周期时间

ttSetBudget

设置任务的执行时间预算

ttSetWCET

设置任务的最坏执行时间

ttGetRelease

获得释放时间

ttGetDeadline

获得截止期

ttGetAbsDeadline

设置一个任务作业的绝对截止期

ttGetPeriod

获得周期时间

ttGetPriority

获得优先级

ttGetBudget

获得任务的执行时间预算

ttGetWCET

获得任务的最坏执行时间

ttRemoveTimer

在指定事件去掉中断句柄

ttCurrentTime

设置或获得仿真中每个节点的当前时间

ttLogNow

记录当前时间

ttLogStart

开始时间测量并记录

ttLogStop

停止时间测量并记录

ttTryFetch

从邮箱获取信息

ttTryPost

将信息发送至邮箱

ttSleepUntil

把任务放到一个特定的时间点

ttSleep

某个时间点停止任务

ttSetNetworkParameter

设置网络参数

ttSetKernelParameter

设置内核参数

2.PID控制器概述

PID控制(proportional integral derivative,PID)是指控制器的输出分别与输入偏差的大小、偏差的积分和偏差的变化率成比例。理想PID的增量式数学表达式为

matlab

式中,matlab为控制器输出的增量值;matlab为被控参数与给定值之差。

将上改为传递函数的形式,则为

matlab

其中,matlab表示控制器的比例增益,matlab表示积分时间,matlab表示微分时间。通过改变这三个参数的大小,从而改变调节作用的大小及规律。

3. 网络环境下的系统仿真

(1)基于TrueTime的倒立摆PID仿真模型

通过网络形成闭环的一种全分布式实时反馈控制系统称为网络控制系统。网络闭环控制系统框图如图6所示。

matlab

图6 具有延迟的网络闭环控制系统框图

本文用TrueTime创建网络平台,以直线一级倒立摆作为被控对象,采用经典PID的控制方法,利用TrueTime2.0工具箱及Simulink中的相关模块搭建出网络化直线一级倒立摆PID控制的仿真模型。系统的仿真模型如图7所示。

matlab

图7 基于TrueTime的倒立摆PID控制仿真模型

其中,状态空间模块的参数是利用上节中的计算结果,参数设置如图8所示。

matlab

图8 状态空间模块的参数设置

(2)各节点介绍及参数设置

上述仿真模型中包括1个网络模块(TrueTime Network),4个实时内核模块(TrueTime Kernel)。4个计算机部分分别是控制器、传感器、执行器和干扰。

①控制器节点

控制器部分用于接收TrueTime Network的消息,其处理后再传递给TrueTime Network,另外,需要给它输入一个阶跃信号作为系统的参考信号。控制器节点以及参数设置分别如图9和图10所示。

matlab

图9 控制器节点图

matlab

图10 控制器参数设置界面

PID控制器采用以下算法:

matlab

其中,matlabmatlab。传感器采样周期h=0.01 ,微分增益N=10000,比例系数K=3.75,积分系数matlab=9.6,微分系数matlab=1.25。

②传感器节点

传感器节点以及参数设置分别如图11和图12所示。

matlab

图11 传感器节点图

matlab

图12 传感器参数设置界面

③执行器节点

执行器节点以及参数设置分别如图13和图14所示。

matlab

图13 执行器节点图

matlab

图14 执行器参数设置界面

④干扰节点以及参数设置分别如图15和16所示。

matlab

图15 干扰节点图

matlab

图16 干扰参数设置界面

⑤ 网络模块(TrueTime Network),其内部结构如图17所示。

matlab

图17 网络模块内部结构

网络模块(TrueTime Network)的参数设置如图18所示。其中,Data rate(bits/s)表示网络传输速率,Minimum frame size(bits)表示最小数据帧(字节),Loss probability(0-1)表示网络信息在传输中的丢失率。

matlab

图18 网络模块参数设置界面

用MATLAB语言实现各节点及网络模块的初始化和任务代码见下节。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
LJQ65 2020-06-12
0 回复 举报
请问有下一节吗 收起回复
她说天下无敌 2019-05-05
0 回复 举报
厉害,还有下节吗 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分