作业要求:
选择一个典型的实时控制系统(CNC/工业机器人/汽车ABS系统......)的软件系统(或其中的一个软件模块)做案例分析,列出:
该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。
如果你是软件设计者,要实现这些实时功能,要设计几个实时任务?
这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少?
这几个实时任务之间是相互独立还是存在着一定的依赖关系?分析这种依赖关系。
这几个实时任务之间是否都需要使用一些共享的硬件资源?列出这种依赖性。
分析案例如下:
基于WindowsNT的开放式机器人实时控制系统[1]
基本介绍:
该机器人为一个简单的SCARA机械臂,其动力学求解较为容易,耗时不长。采用的控制系统按实时性要求分为三级:协调管理层、执行层和伺服控制层。其中,协调管理层主要负责远程通讯、示教控制、用户界面等功能;执行层负责命令处理、轨迹生成、数据库等功能;伺服控制层主要负责运动控制和机器人信息采集、状态监控等功能。协调管理层执行非实时任务,执行层处理弱实时性任务,伺服控制层处理强实时性任务。下面对伺服控制层的各项实时任务进行分析。
强实时功能需求:即时通信、采集信号、PID调节
强实时事件:读取执行层生成的目标位置和速度(①)、对各个关节进行PID调节(②)、通过运动控制卡输出控制量控制各关节电机(③)、采集机器人的实时状态信息放入数据库(④)、出现异常情况时停止机器人动作并报警(⑤)。
分析允许延迟时长:以上各强实时事件按照重要程度和逻辑次序可将其实时性再进行细分——⑤>①>②>③>④。假设关节机器人运动的平均线速度为v,当发生不受控的位移x1时,会导致危险后果,故事件⑤的最大允许延迟时长为x1/v;事件③考虑到轨迹精度最小执行步长为x2,则其最大允许延迟时长为x2/v;事件①和②是为事件③做准备,因此二者的延迟时长因小于x2/v;对于事件④,假设系统的状态更新周期为T,则延迟时长小于T。
触发机制:事件①②③④是时间触发的,其中,①的周期为16ms,②和③的周期之和为1ms,④的周期为200ms;事件⑤是事件触发的,当检测到异常情况时触发。
依赖关系分析:事件①②③顺次进行,事件⑤异常情况的判断取决于事件④对状态信息的检测。
硬件资源分析:事件①②③④共享时钟;事件①和④都得用到通信接口与缓冲区,用于与上层通信。
参考文献:
[1]张广立,付莹,杨汝清,张伟军.基于Windows NT的开放式机器人实时控制系统[J].上海交通大学学报,2003, 05:724-728.