【问题标题】:Measuring time of an event in Modelica在 Modelica 中测量事件的时间
【发布时间】:2016-03-03 16:26:37
【问题描述】:

有没有办法在 Modelica 中测量事件发生的时间(不使用样本或类似的东西)?类似于 MATLAB 中的 tic toc 命令?我想看到的是不同事件发生的时间差异。例如,在下面的示例代码中,有没有办法使用test_time1test_time2 查看经过的时间?

when event1 then 
 a:=2;
 event2:= true;
 test_time1 := time;
end when;
when event2 then 
a:= 5;
test_time2 := time;
end when;

【问题讨论】:

    标签: matlab events time modelica elapsed


    【解决方案1】:

    abs(test_time2-test_time1) 如果您不知道哪个先发生,则应该这样做。请注意,这将是模拟时间,而不是真实(墙壁)时间。如果要测量模拟触发这两个事件所需的实时时间,则需要使用外部 C 函数调用自己的 tic 和 toc。

    【讨论】:

    • 感谢@sjoelund.se 的回复。我稍微编辑了示例代码。 event1 触发 event2,在这种情况下,我总是在 test_time1test_time2 中得到相同的值。我意识到我一直将time 变量视为实时变量(考虑到很多 MATLAB 类型的编程逻辑)。
    • 感谢您的评论,我阅读了更多内容并意识到我一直在错误地看待问题,并且当事件发生时模拟时间实际上停止,直到满足条件 pre(var) == var
    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    相关资源
    最近更新 更多