SDL实时任务:概念、实现与评估
1. 控制系统中实时任务的评估
在这部分内容里,我们将展示SDL任务实现的实验结果。为了评估其影响,我们把任务调度策略与SDL实现的标准调度器以及SDL进程优先级调度器进行了对比。
实验场景是对一个连接到控制器局域网(CAN)总线且搭载自适应巡航控制(ACC)系统的网络节点进行评估,这是汽车领域的一个实际场景。ACC是一种增强型巡航控制系统,旨在抵抗诸如当前坡度或空气阻力等干扰变量,保持参考速度。与简单的巡航控制不同,它使用雷达传感器检测汽车前方障碍物的距离。根据障碍物的速度和距离,会调整参考速度以保持最小安全距离,或者启动紧急制动。我们实现的ACC采用了比例 - 积分 - 微分(PID)控制器,以最小化期望速度和实际速度之间的差异。
ACC的抽象调度如图3所示,它每隔20毫秒周期性地计算新的控制量,并通过CAN总线发送到发动机控制单元。图中用 $d_{controller}$ 表示计算控制值并将其传输到CAN控制器所需的时间。为了确保控制器正常运行,控制值必须按时计算和传输,延迟要低,并且参考速度和实际速度的传感器值必须考虑到系统的处理延迟,按时到达PID控制器。图中用 $d_{sensors}$ 表示系统中的传感器延迟,即CAN控制器接收到最后一个传感器值到PID控制器进程更新这些值之间的时间。由于这个延迟可能会变化,因此在调度中必须考虑最大传感器延迟 $d_{sensorsMax}$。如果传感器值尽可能新,也就是生成传感器值的节点的处理延迟、通信延迟和 $d_{sensors}$ 小且几乎恒定,使得周期性控制任务前的 $d_{sensorsMax}$ 较小,就能实现最佳的控制质量。除了周期性的速度值,节点还会接收零星的雷达消息,用于通过修正