嵌入式控制系统设计/设计案例 2
维基教科书的
嵌入式控制系统设计
|
本章通过一个具体的例子:一个自动化的自动人行道,说明了嵌入式系统设计的各个步骤。
为了理解嵌入式控制系统设计中涉及的内容,阐述一个这样的系统示例很有帮助。所选示例来自一个众所周知的应用领域,以便所有读者都能快速理解设计的复杂性和所需的功能。同时,该示例足够现实,涵盖了所有相关方面(经济、技术、人力资源等),这些方面在嵌入式控制系统的设计和生命周期的各个阶段中都会出现。一个(自动)自动人行道的示例满足了这些要求。本章被设想为一个虚构公司(People Move Company)如何处理设计一个新的自动人行道的决定的故事;这种故事方式可以说明在产品设计和生命周期的不同阶段中变得相关的不同设计标准。
自动人行道是一种无人驾驶列车。第一条自动人行道于 1967 年投入运营,作为加州迪士尼乐园明日世界的一个景点。(有关自动人行道的历史和部署的更多详细信息,请参阅维基百科文章。)如今,自动人行道被用作世界各地的运输系统。
正如People Move Company 的员工所知,设计一个嵌入式控制系统是一项相当大的工作。许多人必须共同努力才能获得一个完整的运行系统。从People Move Company 决定参加新的自动人行道项目的招标那一刻起,该公司便试图以结构化的方式运作。它将设计工作细分为三个部分。
- 第一步,在需求分析中,公司首席工程师与(代表)CEO 共同编写了一份产品需求文件,其中公司表达了对客户需求的看法。如果People Move Company 的董事会决定公司能够在招标中进行现实的竞争——这一决定本身并非易事!——需求清单将被用于制定一份报价。
- 其次,如果公司被允许参与招标,它会在内部进入高层设计阶段,在此阶段,公司会将客户和产品需求清单补充上公司出于内部利益而施加的需求。设计标准,如组件重复使用、售后服务和维护,在此阶段会受到重视,因为这些标准对公司而言可能会带来巨大的财务差异。此外,项目负责人会制定一项计划,说明他们中的哪些员工可以参与工作的哪些部分。
- 然后,所有参与的员工都可以实施自动人行道的详细设计。
在这些设计任务之后,自动人行道必须进行生产、服务和维护。不过,这里不会详细讨论生产过程。
People Move Company 希望设计一款用于公共交通的全自动车辆。项目负责人会列出一份系统必须满足的技术、商业和实践需求清单,以符合客户的招标要求。该结果是产品需求 文档,该文档以简洁的语言编写。由于该文档表达了客户的需求,People Move Company 希望与客户进行对话,以制定产品需求。在一次这样的会议中,客户解释说他已经拥有了自动人行道将运行的轨道。People Move Company 获取了这些轨道的规格,以及客户所在国家/地区适用的客运标准。这带来了一些设计约束,例如关于最大速度、加速度曲线、重量、能耗等方面的约束。反过来,People Move Company 利用与客户的互动来解释公司的竞争优势(技术和经济方面),以及公司出于内部技术和经济原因希望遵守的一些产品约束。在两个方向上都明确这些新的约束,在客户和公司之间发生诉讼时确实非常重要。
与客户的互动使People Move Company 得到了其最终的产品需求文档,该文档将被提交给招标。在内部,同一份文档将作为公司自身设计团队的第一个输入。虽然不打算完全以技术细节指定所有需求,但它描述了以下无法省略的重要需求清单。在细节和高层需求之间,以及重要需求和较低优先级需求之间的界限究竟在哪里,通常很难解释或教授;尤其是因为它涉及许多公司特定的方面:可用的人力和专业知识、现有产品的可部分重复使用(部分)用于新产品的设计等等。一家公司的经济成功很大程度上取决于设计需求团队在创建现实且具有竞争力的需求文档方面的能力。
由于其产品组合中已经存在产品,该公司决定设计一款由机车和一个或多个客车厢组成的自动人行道。该车辆由电动机驱动,并从轨道上获取电源。自动人行道只能在配备了信标的专用铁路线上运行。这些信标沿铁路放置,并向自动人行道的控制系统指示所需的自动人行道速度变化。在车辆能够在这条铁路上行驶之前,必须将铁路地图以及每个信标的含义加载到自动人行道控制器的内存中。车辆上的传感器检测信标,并根据地图上的指示做出反应。可能的反应是
- 以一定量加速。
备注:速度和加速度受限于指定的最大值,并根据指定的平滑曲线,以实现用户友好的自动人行道。此类曲线是许多现有铁路标准的一部分。 - 以一定量减速。
备注:减速受限于某个最大值。 - 以指定减速度停止。
例如,轨道弯道之前的信标指示自动人行道必须减速到指定速度。在轨道上指示终端的位置,车辆会停止。自动人行道静止的位置由客户指定,与地图上指示的位置相差最大不超过一米。车门在停止后至少 0.1 秒,至多 0.5 秒打开。车门打开 30 秒后,会响起一个持续一秒的警报信号,车门关闭。警报信号响起后至少 1 秒,至多 2 秒,车辆继续行驶。
天黑时,自动人行道的车头灯和车厢内的内部照明必须打开。灯光具有客户指定的最低亮度。
如果铁路被任何障碍物阻塞,该公司不负责任。
虽然自动人行道是全自动的,但控制塔可以决定自动人行道的动作。车辆的速度和位置(在一定精度范围内)可以在控制塔的显示屏上看到。
太好了,People Mover Company 在招标中成功中标,现在获得了客户的资金来进行更详细的高级设计,其中所有与客户相关的技术细节都需要解释。上述需求清单满足了客户的总体需求,但对于公司设计师来说还不够具体,无法对项目的可行性和成本进行完整分析。这些人还必须考虑People Move Company自身利益的需求,无论客户的要求如何。例如,由于People Mover Company 想要接受的项目仅限于符合其长期产品组合愿景且能够支持数十年的项目,因此设计师必须考虑有助于组件重复使用和维护人行道产品的功能。这些努力将降低售后服务成本以及该公司希望推向市场的后期类似产品的成本。为了完成需求清单,公司的设计团队有一份其设计师始终要牢记的设计标准 列表。对于人行道产品,这些设计标准是
- 功能性:人行道产品的首要功能是能够以全自动方式运输人员。
- 安全性:必须在设计的所有层面上都考虑到。包括故障模式和添加冗余是常见的安全预防措施。
- 稳健性:设计应具有一定的裕度,能够承受超出客户要求的条件。
- 成本:价格仍然必须具有竞争力。
- 能耗:该公司希望提升其最节能车辆的形象。
- 对各种环境条件(湿度、温度和振动)不敏感
- 可控性:人行道产品必须能够从控制室进行控制。
- 空间和重量限制
- 可生产性
- 认证和标准化
- 用户界面
- 使用寿命
- 维护
- 售后服务
现在,所有设计标准都必须转换为可以添加到产品需求中的需求。因此,额外的需求确保所有设计标准都将纳入最终的人行道产品中。一些示例说明了如何做到这一点。
如上所述,People Move Company可以通过包含有利于售后服务的特性来节省资金。这可以通过“远程维护”系统来实现。
另一种节省资金和时间的方法是重复使用人行道产品的先前型号的基础设施和组件。安全性需求已在产品需求中通过指定控制塔必须能够接管所有命令的方式部分包含。但这还不够,因为安全性必须在所有设计级别上都考虑到。例如,在设计巡航控制功能时,设计人员必须确保电机中的电流永远不会超过限值。这可能会在车辆试图在斜坡上行驶过快时发生。
一些设计标准会相互影响。例如,用户界面与安全性有关。系统设计必须预料到用户的疏忽。可能会有人在车门即将关闭时进入人行道产品。检测到这种危险行为的传感器可以防止事故。此外,设计标准使用寿命、稳健性和成本之间也会相互影响。设计人员必须了解系统需要使用多长时间。较长的使用寿命要求使用更高质量的稳健组件。当然,这对价格有影响。
在高级设计中,需求被转换为规范,这意味着成本、使用寿命、维护、售后服务和能耗等模糊需求将被更精确地表达。预期的使用寿命、成本和能耗由某个数字定义。
在了解了设计标准之后,People Move Company 手中就有了产品需求的扩展版本。利用此需求,系统工程师或系统架构师可以创建一套更正式的功能规范。它们构成了全局系统架构。此方案将系统划分为三个主要部分
- 交通指令系统
- 控制指令系统
- 车辆指令系统
每个部分都有几个输入和输出,用图 1 中的箭头表示。例如,交通指令系统从沿铁路放置的信标和斜坡本身获取信息。这些信标指示人行道产品的速度变化。在车辆能够在铁路线上行驶之前,必须将铁路地图以及每个信标的含义加载到人行道产品的内存中。车辆上的传感器检测信标并按地图指示进行反应。斜坡会导致一定的负载扭矩。其他部分的输入和输出在图 1 中显示。图 2 更详细地描述了每个部分的内容。
现在,People Move Company 的高层决定谁负责哪个部分的工作。在某些情况下,与分包商合作是有益的。该公司还可以聘请具有相关经验的专家。通过将系统划分为子系统,不同的团队可以同时工作以实现这些不同的子系统。这被称为并行工程。良好的跨团队沟通,例如在每日或每周会议中,可以使团队彼此协调。子系统的最佳划分可以最大限度地减少子系统之间的通信并最大限度地提高子系统之间的独立性。之后,子系统被组装成一个完全可操作的系统。将划分策略应用于自动人行道产品会导致七个子系统。图 3 说明了自动人行道产品车辆系统的子系统。最后两个子系统未在此插图中显示,因为它们与设计的嵌入式方面无关。因此,它们不会在本文的其余部分中讨论。
- 一个"无线通信" 子系统实现信息从控制塔到列车的传输,反之亦然。
- 子系统"CPU" 充当列车的“大脑”。在此子系统中,所有信息都集中起来,然后分配给不同的子系统。
- 子系统"电源" 负责构建电机。
- 子系统"控制环" 构成驱动器的控制环。
- 当然,人行道产品需要有关环境的信息。子系统"传感器" 收集有关铁路弯道、终点站、外部光线强度的信息,并检测控制室的无线电信号。
- 由于人行道产品是一个物理物体,因此必须有一个子系统来处理“机械设计”。
- 外观也很重要,特别是如果 People Move Company 想给公众留下深刻印象。因此,有一个子系统负责“美学设计”。
当然,这些子系统不能独立运行。不同子系统之间的交互是不可避免的。People Move Company 指定了一个“集成者”来协调有关如何实现子团队之间信息传递的讨论。图 4 显示了哪些子系统需要相互通信。机械和美学设计团队没有绘制出来,因为它们必须与所有其他团队保持联系。例如,“CPU" 需要知道何时控制室想要接管控制。该信息可以无线传输到人行道产品。“传感器" 可以提供来自信标的信息,这些信标指示所需的速率。这是"控制环" 子系统所需的输入。
详细设计
[edit | edit source]再次欢呼!People Mover Company 赢得了比赛,并签订了在 36 个月内交付 100 辆人行道产品的合同。因此,设计团队与人力资源经理、首席技术官和首席财务官一起,将高级设计文档转换为详细设计文档,该文档将用于规划和指导该新项目中的所有活动。
架构
[edit | edit source]详细设计的起点是具有子系统划分的全局架构。在第一步中,每个子系统必须找出自己需要哪些组件。头脑风暴会议在这里可以提供很大的帮助。此过程的结果是人行道产品的架构,如图 5 所示。
此外,子系统还就信息传递的形式达成一致。这可以是模拟信号或数字信号。位或字节的特定数量与每个信号的确切含义一起指定。如果在流程的后期阶段发现任何这些约定不自然,则相关子系统必须再次坐在一起修改约定。如前所述,一个“集成者”协调这些会议。
现在,不同的子团队可以开始工作。然而,系统架构师避免对每个组件进行(重新)设计。现有的组件是知识产权 (IP) 的一部分,可以使用而无需重新设计。在这里,系统架构师做出了“自制或购买”的决定。
无线通信
[edit | edit source]控制塔通过无线方式向自动扶梯发送指令。这组指令是有限的。每个指令对应一个由一和零组成的序列,即二进制码字。一种将二进制码字分配给每个指令的方法是使用霍夫曼编码。然后需要使用调制的电磁波将这个由一和零组成的序列传输到自动扶梯。
执行调制和逆运算解调的设备被称为调制解调器。自动扶梯必须配备天线和调制解调器。有关通信的更多信息,请参阅维基教科书通信系统和维基教科书数据编码理论。系统设计师的任务是选择调制方法、代码和硬件(天线和调制解调器)。
传感器
[edit | edit source]从产品需求文档中已经清楚地表明,自动扶梯将需要传感器。因此,系统设计师必须选择合适的传感器,确定放置位置,并确保传感器信息最终到达正确的位置。对于每种类型的传感器,设计师都必须寻找不同的需求。
实际上,自动扶梯需要能够检测到外部变暗的传感器。一个明显的解决方案是使用带有光电电池的光传感器。当然,这类传感器有很多。最终使用哪种传感器由设计师决定。确定传感器的位置也很重要。光传感器的最佳位置可能是车辆的屋顶。
与控制室的通信也需要传感器。这里可以考虑用于无线电检测的传感器。自动扶梯将使用的环境在这里非常重要,因为控制塔必须始终能够与自动扶梯取得联系,即使车辆在隧道中也是如此。
设计师必须选择信标的工作方式。乍一看,光学传感器似乎很有意思。信标甚至可以发送出编码信号。然而,这种选择肯定会带来困难,因为环境非常“恶劣”。一片树叶或其他自然物体很容易干扰信号。因此,需要更可靠的解决方案。一种选择是将信标磁化。然后,自动扶梯中的传感器可以检测到这个磁场。
此外,自动扶梯还需要配备速度传感器和重量传感器,以检测超载。这个子团队的输出被发送到 CPU,并将导致一个动作。
一般来说,传感器相当昂贵。因此,在选择合适的传感器时,必须考虑成本设计标准。
CPU
[edit | edit source]中央处理器 (CPU) 处理传入的信息。首先,这些信息来自磁性信标,但控制室可以接管。可能的指令是
- 目标速度 = 最高速度
- 目标速度 = 最高速度的 0.8 倍
- 目标速度 = 最高速度的 0.6 倍
- 目标速度 = 最高速度的 0.4 倍
- 目标速度 = 最高速度的 0.2 倍
- 停止
- 目标速度 = 另一个方向上最高速度的 0.2 倍
- 目标速度 = 另一个方向上最高速度的 0.4 倍
- 目标速度 = 另一个方向上最高速度的 0.6 倍
- 目标速度 = 另一个方向上最高速度的 0.8 倍
- 目标速度 = 另一个方向上最高速度
- 重置计数器
- 灯光打开
- 灯光关闭
每次轮子从轨道上感应到磁性信号时,计数器都会增加一个单位。这样,每个信标都有一个对应的计数器输出。一个逻辑电路对这个计数器输出进行解码。一个可编程逻辑控制器 (PLC) 提供了一个可靠的实现。图 6 显示了 CPU 的一种可能的实现。对于具有十六个信标的轨迹,4 位计数器就足够了。解码器包含每次接收到信标信号时发出正确指令所需的信息。一个速度信号发送到控制回路子系统,或者一个信号发送到灯光控制器。
控制回路
[edit | edit source]其中一个团队负责驱动器的控制回路。这个团队实现的过程如图 7 所示。
这个子系统接收 CPU 团队的目标速度和电源团队的测量速度。这些是数字信号。为了将它们转换为模拟信号,输入被发送到数模转换器。考虑到鲁棒性的设计标准,明智的做法是在这里包括低通滤波器。这会提高信噪比。对所得信号的比较必须产生一个电压信号,用于控制电机。相关控制器是 PI 速度控制器。
如高层设计中所述,出于安全原因,必须限制电机中的电流。可以使用限幅器来实现这一点。
第二个控制器是电流控制器,它可以快速控制电机。实际上,这两个 PI 控制器处于主从配置。主 PI 通过调整请求电流来控制速度,而从控制器通过控制电机电压来控制电流。
经过所有讨论的处理后,控制回路在输出端提供一个电压信号。这个信号发送到电源团队。
因此,图 7 的概念图由数模转换器 (DAC1 和 DAC2)、低通滤波器 (LPF)、PI 控制器 (PI vel 和 PI curr)、放大器 (A) 和限幅器组成。这些元素可以使用一系列电阻、电容和其他简单的电子元件来实现。
电源
[edit | edit source]自动扶梯由一个电动机驱动。实践中使用不同的实现方法。
如今,大多数火车都由变频器驱动。变频器 (VFD) 是一个用于通过控制提供给电机的电力的频率来控制交流电动机转速的系统。VFD 系统中使用的电机通常是三相感应电机。交流输入电源首先使用整流桥转换为直流中间电源。然后,使用逆变器开关电路将直流中间电源转换为准正弦交流电源。VFD 导向电路如图 8 所示。
由于控制回路子系统控制电源子系统,这两个子系统必须进行通信。控制回路的导向信号 (称为 PWM) 以其频率携带信息。此信号与具有更高频率的三角波进行比较。比较器的输出控制一个相位中的两个开关。结果,每个相位都具有与控制回路的导向信号相同的频率的准正弦波形。电源子系统还具有其他功能需要完成,例如测量电机电流和测量电机速度。同样,可以实现多种方法。这里只描述了一种方法。
控制回路子系统限制目标加速度,以避免电机电流过大。因此,控制回路子系统需要一个与电机电流成正比的输入信号。可以通过将一个小电阻与电机串联来测量电流。此小电阻上的电压与电机电流成正比。使用差动放大器将其转换为范围为 [-5V, 5V] 的电压信号。
电源子系统本身也内置了电流限制器。在各种应用中,都使用冗余来提高安全性。这对于构建一个可靠且安全的系统非常重要。
自动扶梯的实际速度是控制回路子系统控制速度所需的必要信息。可以通过放置在轮轴上的旋转编码器来测量速度。编码器的输出作为微控制器的输入,微控制器向 CPU 子系统和控制回路子系统发送 8 位数字信号。
电源子系统必须实现的另一个重要功能是紧急制动。当 CPU 子系统将停止信号设置为高 (5V) 时,电机必须立即停止。这种功能可以用许多方式实现。最明显的方法是将停止信号与脉宽调制脉冲进行或运算。
测试
[edit | edit source]设计中不可或缺的一部分是测试。所有子团队都必须测试自己的系统。此外,不同的子系统必须以更小的组进行测试。当然,最后一步是测试整体。例如,有关软件测试的更多信息,请参见软件测试。
当所有设计步骤都通过后,People Move Company 可以开始实施和生产人员搬运系统。这些任务再次需要结构化的方法。不过,它们不会在本维基教科书中讨论。