You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Simulink Test脉冲检测(按键按下)评估问题求助


核心验证逻辑

要精准验证长按触发逻辑,需同时确认两个关键条件:

  1. 按键按下持续≥70ms后,输出才跳转为62.5;
  2. 短按(<70ms)时输出始终保持0,无误触发。

具体实现方案

1. 基于时间节点的精确验证

在Test Manager的评估脚本中,结合getLastChangeTime和verifyThat锁定触发时间窗口:

% 获取按键按下的时刻(假设KeyInput为按键输入信号,1代表按下状态)
key_down_time = getLastChangeTime('KeyInput', 1);

% 验证:按键按下70ms后,输出必须出现62.5
verifyThat('OutputSignal', hasValue(62.5, key_down_time + 0.07, inf));

% 补充验证:按键按下后的前70ms内,输出必须保持0
verifyThat('OutputSignal', hasValue(0, key_down_time, key_down_time + 0.07));

2. 固定宽度脉冲的分段验证

如果模型输出的62.5是固定采样周期的脉冲,用verifySegment精准检测脉冲区间:

key_down_time = getLastChangeTime('KeyInput', 1);
pulse_start = key_down_time + 0.07;
% 按模型步长计算脉冲结束时间
pulse_end = pulse_start + getModelStepSize;

% 验证该时间段内输出严格为62.5
verifySegment('OutputSignal', pulse_start, pulse_end, 62.5);

3. 测试序列与模型的时间对齐检查

  • 确保测试序列中长按按键的时长明确设置为≥70ms(比如80ms),避免因输入时长不足导致验证失败;
  • 检查模型采样时间,确保70ms是采样步长的整数倍,减少时间精度误差。

4. 调试排查技巧

  • 勾选Test Manager的信号记录选项,运行测试后查看输入输出时序曲线,确认62.5脉冲的触发时机是否符合预期;
  • 在脚本中加入disp(key_down_time)输出按键按下时刻,检查时间计算是否准确。

内容的提问来源于stack exchange,提问作者James Young

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:02:54