定义具有持续时间的正式需求
此示例向您展示如何使用 Requirements Table模块来创建具有持续时间的形式化需求。在对正常运行期间引起短暂噪音的行为进行建模时,工程师经常会定义在指定持续时间内必须满足的需求。例如,在电路中,关闭机械开关可能会导致电压在稳定之前振荡或飙升,这被称为反弹。对于敏感的控制系统,反弹可能会导致测量结果出现错误行为。当您缓解弹跳(称为去抖动)时,您可以指定仅当测量值在指定的时间段内达到特定值时执行的控制器行为。
此示例显示当需求表模块具有一个或多个输入数据时,如何对具有持续时间的需求模型。要定义具有持续时间的需求,请使用持续时间列、子需求、语义需求和默认需求。请参阅 使用持续时间列 和 在 Requirements Table 模块中建立层次结构。
定义单个输入的持续时间需求
如果要创建使用单一输入的持续时间需求,请指定该需求以及默认需求。打开模型reqTableDurationModel1
。
open_system("reqTableDurationModel1");
该模型规定了检测电路故障的传感器的需求。该模型有一个输入数据, current
。Requirements Table 模块使用 current
的值来确认传感器的预期输出 overCurrent
。该表定义了以下需求:
如果测得的电流大于
10
并且持续时间超过0.5
秒,则传感器应检测到电路故障。否则,传感器将无法检测到电路故障。
定义具有多个输入持续时间的需求
如果您有一个依赖于多个输入且每个输入都有持续时间的需求,并且每个输入都会影响模型的预期输出,请使用语义需求。您可以使用语义需求中的每个子项来表示每个输入的需求。打开模型reqTableDurationModel2
。
open_system("reqTableDurationModel2");
在此示例中,Requirements Table 模块指定了喷气发动机超速检测的需求。当喷气发动机的转速超出其物理极限时,就会出现超速现象。长时间超速可能会导致发动机灾难性的故障。为了解决这个问题,喷气发动机控制系统使用多个传感器和超速检测机制。如果至少一个传感器检测到超速,发动机控制系统就会切断流向燃烧室的燃料,从而关闭喷气发动机。然而,飞机操作员和设计人员也不希望控制系统由于传感器、物理部件或软件错误而导致弹跳而关闭发动机。为了减少发动机意外关闭的可能性,工程师通常会指定每个传感器必须包含的短暂持续时间,然后再确定是否发生超速。
该表使用engineSpeed1
、engineSpeed2
和 engineSpeed3
输入数据来定义超速检测的需求。
如果至少一个传感器测得发动机转速大于
1000
并且持续时间超过0.5
秒,则发动机控制系统应检测到发动机超速。否则,发动机控制系统不得检测发动机超速。