zoukankan      html  css  js  c++  java
  • 第一周作业、典型实时控制系统案例分析

    一、选用的控制系统简介

    选用的系统案例为电脑鼠。电脑鼠是一微型自动走迷宫机器人,凭借自身的传感器来实时全自动寻迹行走。

    由于传感器、电机种类等并不固定,在此案例中采用的基本硬件如下:

    1. 测距:红外传感器,有0度、45度、90度等方向。
    2. 轮子转速测量:与电机配合的光电编码器。
    3. 电池电压测量:数字电流传感器。用于补偿。
    4. 电机:直流电机。
    5. 加速度计。
    6. 无线传输。

    二、该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。

    2.1 电机控制电压插补

    由于电磁惯性的存在,为了保证控制精度,控制电机的电压不应瞬间上升,应由软件插补后再按固定的时间间隔输入到电机电路中。这一任务的优先级应较高,时间延迟要求较高,估计在5ms以内。

    2.2 碰撞检测

    一般的加速度计都会有碰撞中断,一旦超过设定的加速度阈值,会产生中断,系统接收到信号后应马上响应并进入保护状态。时间延迟要求应该较低,估计在50ms以内。

    三、如果你是软件设计者,要实现这些实时功能,要设计几个实时任务?

    3.1 电机控制

    这里需要一个较高的优先级,结合电池电压的补偿,保证电机插补不出错,以保证控制精度。

    3.2 保护

    这里需要确保在发生意外时能够及时进入保护状态。

    3.3 轨迹插补

    给定轨迹要求,计算并确定电机的控制序列。

    3.4 位置判断

    根据传感器的信号,计算并确定电脑鼠的当前位置。

    3.5 路线规划

    根据位置信息来确定所在的位置,并且规划出下一步的位置。

    3.6 调试信息输出

    通过某些通道输出调试信息。

    四、这几个实时任务是时间触发的还是事件触发的,如果是时间触发的,周期大约是多少?

    电机控制是属于时间触发,周期大约为1ms。

    其它任务属于事件触发,可以在有要求时触发动作。

    五、这几个实时任务之间是相互独立还是存在着一定的依赖关系?分析这种依赖关系。

    存在一定的依赖关系。

    最高层的属于路线规划任务,而这个任务需要借助位置判断的信息,然后可以给出轨迹要求,由轨迹插补任务来计算电机控制序列。最后由电机控制任务逐步输出控制序列。

    其它的任务的触发顺序不固定。

    六、这几个实时任务之间是否都需要使用一些共享的硬件资源?列出这种依赖性。

    • 电机控制任务和保护任务均需要获取电池电压信息,均需要控制电机的输入电压,其中保护任务的控制优先级更高。

    • 所有任务均在一个控制芯片上运行。

  • 相关阅读:
    Perl的比较操作符
    Perl的变量
    应用负载均衡之LVS(五):lvs和nginx的wrr加权调度算法规律分析
    sharding:谁都能读懂的分库、分表、分区
    MySQL中间件之ProxySQL(15):ProxySQL代理MySQL组复制
    MySQL中间件之ProxySQL(12):禁止多路路由
    MySQL中间件之ProxySQL(14):ProxySQL+PXC
    haproxy(8):haproxy代理MySQL要考虑的问题
    PXC快速入门
    vscode指定扩展安装位置
  • 原文地址:https://www.cnblogs.com/passerby233/p/rtcsd_w1_analyze_a_rtcs.html
Copyright © 2011-2022 走看看