Main Content

本页采用了机器翻译。点击此处可查看英文原文。

分析电动汽车充电器锁定机制的正式需求

自 R2022a 起

此示例使用 Requirements Table 模块来定义电动汽车充电器锁定系统模型所使用的一组形式化需求。在为锁定系统创建形式化需求之后,您需要分析需求中是否存在可能妨碍需求完整性和一致性的问题。一旦确定了问题,就可以调整需求。

对电动汽车充电时,车辆的充电端口可能会暴露在高电压下,如果没有适当的保护措施,这可能会对消费者造成危险。电动充电器和车辆采用锁定机制,以防止客户暴露于这些电压。为了确保锁定机制在不造成危险的情况下启动和停用,充电站在充电前、充电期间和充电后向车辆提供信号。车辆使用这些信号来确定何时可以解锁充电线并且可以安全处理。

查看正式需求

打开模型,CordLockReqTable_v1

open_system("CordLockReqTable_v1");

该模型采用了符合 SAE J1772 [1] 标准的充电站使用的信号。为了捕获信号,Requirements Table 模块使用与同名输入数据相关联的六个输入端口。请参阅在 Requirements Table 模块中定义数据

输入数据为:

  • ChargeStatus:车辆的充电状态。状态表明车辆未在充电(NotCharging)、正在充电(ChargeStart)、关闭(NrmlShutDown)或正在执行紧急关闭(EmrgShutDown)。

  • EvseType:车辆是否与充电站兼容。车辆可以是CompatibleIncompatible或未定(NotDecided)。

  • PilotStatus:充电站试点情况。导航状态指示充电站是否处于待命状态(A)、充电站是否检测到车辆(B)、充电站是否检测到车辆并且车辆已准备好充电(C)、充电站是否检测到车辆并且车辆已准备好在通风区域充电(D)或者是否出现错误(E_F)。状态 BCD 各有两个子状态。子状态1表示充电站尚未准备好充电,子状态2表示充电站已准备好充电。

  • SessionStopResMsg:充电站是否已确认充电会话终止(Received)或未确认充电会话终止(NotReceived)。

  • Vinlet:车辆测量的充电口电压。

  • LockCommand:锁的状态。锁可以是 LockedUnlocked

该模块使用输入数据的值将数据的类型属性设置为 MATLAB® 程序文件中指定的枚举值。例如,ChrgStat.m 文件包含 ChargeStatus 数据的可用状态。

The image shows the model, CordLockReqTable_v1. The Requirements Table block has six labeled inputs.

打开该模块以查看需求。需求选项卡列出了三个简单需求:

  1. 如果电动汽车供电设备兼容,电动汽车应将电线锁定到位。

  2. 如果收到确认终止充电会话信号并且车辆在正常关机过程中测量的输入电压低于60V,则电动汽车应解锁电源线。

  3. 如果驾驶员状态未准备好且车辆在紧急关闭期间测量的输入电压低于 60 V,则电动汽车应解锁电源线。

每个需求在预条件列列中指定了要检查的条件。如果满足需求的先决条件,则模块会验证在后条件列中指定的后条件中是否出现了适当的锁定状态。例如,在第一个需求中,指定的先决条件检查车辆类型是否兼容。如果为真,则模块检查绳索是否被锁定,如后条件中所述。

The Requirements tab in the Requirements Table block. The table has three requirements that each have a precondition and a postcondition.

分析问题的需求

在模块中创建需求集后,确认需求唯一地定义了模块捕获、存储和生成的数据。在此示例中,您使用 Simulink® Design Verifier™ 来检测您的需求集的问题。这些问题改编自 ISO/IEC/IEEE 29148 标准 [2]。在此示例中,Simulink Design Verifier 检测到两种问题:

  1. 不一致问题:该模块检测在仿真中数据可以等于多个值的场景。

  2. 不完整性问题:该模块检测到仿真期间数据未定义的场景。

要分析表格,请在表格选项卡的分析部分中点击分析表格

The analysis results. The results show one inconsistency and one incompleteness in the requirements.

更新需求

要解决这些问题,您需要更新需求。例如,为了缓解不一致问题,更新第一个需求中的先决条件,使得充电状态必须为充电中,并且充电器必须与车辆兼容。

The updated requirement that resolves the inconsistency. The updated precondition of the requirement is highlighted in blue.

更新预条件后,再次运行分析以确认已修复不一致问题。

此次更新并未解决不完整性问题。为此,需求必须为整个仿真中模块中定义的数据指定值。通过更新和分析需求来迭代解决这些剩余的问题。

打开模型 CordLockReqTable_v2 并打开 Requirements Table 模块以查看完整需求集的示例。

open_system("CordLockReqTable_v2");

该表包含额外的输入数据 ChargePlug,用于指定电线是否插入车辆(Plugged)或未插入车辆(NotPlugged)。该需求集还包括五项附加需求。为了提高可读性,已重写需求以使用附加的列标题。

The updated requirements, as shown in the Requirements Table block in CordLockReqTable_v2.

当您设计需求时,您必须考虑系统的物理限制。例如,如果您开发了一个指定直径的需求,则必须确保该直径不能为负数。为了考虑系统的物理限制,请在假设选项卡中指定假设。请参阅将假设添加到需求中。在这个例子中,Requirements Table 模块包含三个假设。

  1. 如果飞行员状态处于待命状态(A),则汽车未充电。

  2. 如果车辆与充电器不兼容,则车辆无法充电。

  3. 如果未插入充电器,则车辆不会充电。

要查看假设,点击假设选项卡。

The assumptions in the updated Requirements Table block shown in the Assumptions tab. The block has three assumptions that constrain the physical limitations outlined in the requirements.

如果您对此需求集运行分析,Simulink Design Verifier 将不会检测到问题。

参考

[1] Hybrid - EV Committee, “SAE Electric Vehicle and Plug in Hybrid Electric Vehicle Conductive Charge Coupler” (SAE International), accessed December 21, 2021, https://doi.org/10.4271/J1772_201710.

[2] “29148-2018 - ISO/IEC/IEEE International Standard - Systems and Software Engineering -- Life Cycle Processes -- Requirements Engineering” (IEEE), accessed December 21, 2021, https://doi.org/10.1109/IEEESTD.2018.8559686.

另请参阅

相关主题