主要内容

RATECONTROL.

以固定频率执行循环

描述

RATECONTROL.对象使您可以以固定频率运行循环。它还收集有关循环迭代的定时的统计信息。用等待在循环中暂停代码执行,直到下次步骤。循环运行每个肯定的秒,除非封闭的代码需要更长时间运行。该对象使用超支属性确定其如何处理更长的循环操作时间。默认设置,'滑',立即执行循环如果坚定大于肯定的。使用'降低'导致等待等待直到下一个倍数的方法肯定的达到执行下一个循环。

小费

操作系统的调度解决和其他系统活动的级别可能会影响速率执行精度。结果,准确的速率定时限制为100Hz以执行MATLAB®代码。为了提高性能和执行速度,使用代码生成。

创建

描述

例子

RATOBJ.= RATECONTROL(挺好的创建一个对象,以基于系统时间以固定速率运行循环,并直接设置渴望财产。

特性

展开全部

所需的循环执行速率,指定为Hz中的标量。使用时等待,循环运行每个挺好的秒,除非循环需要更长时间。然后它基于指定的循环开始超支

执行之间的所需时间段,指定为标量以秒为单位。此属性等于逆挺好的

自建造或重置以来经过的时间,指定为标量以秒为单位。

过去两个电话之间的经过时间等待,指定为标量。默认,坚定设定为直到等待是第一次调用。在第一个电话之后,坚定等于总计

处理溢出的方法,指定为以下字符向量之一:

  • '降低'- 等待直到下一个时间间隔等于多个肯定的

  • '滑'- 立即再次执行循环

每个代码部分都会调用等待在执行结束时。

对象功能

等待 暂停代码执行以实现所需的执行率
统计数据 过去执行期的统计数据
重启 重启速度目的

例子

全部收缩

创建一个以1 Hz运行的速率对象。

r = ryecontrol(1);

使用循环使用RATECONTROL.内部对象以控制循环执行。在循环执行之前重置对象以重置计时器。打印经过的迭代和时间。

重置(r)为了i = 1:10时间= r.totalelapeTime;fprintf('迭代:%d  - 经过的时间:%f \ n',我,时间)等待(r);结尾
迭代:1  - 时间经过:0.003162迭代:2  - 时间经过:1.001236迭代:3  - 经过3次迭代:4  - 时间经过:3.001365迭代:5  - 时间经过:4.001164迭代:6  - 时间经过:5.000767迭代:5.000767迭代:7  - 经过时间:6.000370迭代:8  - 经过8次:7.000482迭代:9  - 经过9次:8.000563迭代:10  - 经过10  - 时间:9.000335

每次迭代以1秒钟间隔执行。

创建一个RATECONTROL.以20 Hz运行的对象。

r = ryecontrol(20);

使用该启动循环和控制操作RATECONTROL.目的。

为了我= 1:30%你的代码去了这里等待(r);结尾

得到速度循环操作后的对象统计信息。

统计=统计(r)
统计=结构与字段:期间:[1x30双] NUMPERIODS:30普平均值:0.0500标准化:0.0018 NUMOVERRUN:0

创建一个RATECONTROL.以20 Hz运行的对象。

r = ryecontrol(2);

使用该启动循环和控制操作速度目的。

为了我= 1:30%你的代码去了这里等待(r);结尾

显示RATECONTROL.循环操作后的对象属性。

disp(r)
具有性质的RateControl:所需的次数:2所肯定的:0.5000超级:'SLIP'Totallapptime:15.0104 Lastiod:0.5000

重置对象以重新启动时间统计信息。

重置(r);disp(r)
具有属性的RateControl:所需的:2所需植物:0.5000超级:'SLIP'Totallapptime:0.0032 LastPeriod:NaN

兼容性考虑因素

展开全部

未来发布的行为变化

也可以看看

|||(ROS工具箱)

在R2016A介绍