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