# mx_task
一个简单的使用MATLAB库的“实时”多任务。
同时处理tic-toc和机器人。速率要求CPU的全部使用,这有时是不希望的。
新的mx_task类允许用户在MATLAB中实现几乎实时的多任务功能,同时不需要占用全部CPU。
---
万博1manbetx支持Linux和Windows。Linux系统通常有更好的RT行为。
功能验证:
-一台18.04LTS机器,带MATLAB R2016b和R2019a,
-一台带MATLAB R2018b的Windows 10机器。
示例0显示了mx_task库的基本功能。
示例1展示了如何实现多任务处理。
示例2是一个基准测试脚本,用于比较mx_task、tictoc和robotics.Rate的调度能力。
#使用
1.首先定义一个带有函数的任务,并将其附加到一个新的mx_task实例。在第二个输入处定义所需的任务周期。
myTask = mx_task(@()myFunc, 1/10);
myFunc()函数
流(“Hello world。\ n”);
结束
2.使用mx_sleep()捕获以[seconds since epoch]为单位的开始时间。
time_start = mx_sleep (0);%休眠0秒
time_now = time_start;
3.在条件中创建一个带有模拟时间陷阱的while循环。Mx_sleep为1us提供几乎实时的调度质量。逐个任务运行task. Run (time_now)。
While (time_now <= time_start + 10) %运行任务10秒。
time_now = mx_sleep (1/1000000);% 1MHz调度程序频率。设置为mx_sleep(0)以获得增强的实时行为(尽管在100% CPU时)。
myTask.run (time_now);
结束
#安装
移动到mx_task目录并运行安装脚本。
引用作为
卡洛斯·马(2021)。mx_taskGitHub (https://github.com/carl0sma/mx_task)。检索.