【问题标题】:Access to CPU time during simulink?在simulink期间访问CPU时间?
【发布时间】:2016-05-28 13:30:51
【问题描述】:

我需要运行 simulink 并设置超时和超时惩罚。因此,我需要一个块来给我 CPU 时间(真实世界时间)。

时钟块给出仿真时间:

CAN 超时检测是离散的,它不适用于我的连续求解器。

Matlab 功能块让仿真变得如此缓慢。

还有其他选择吗?

【问题讨论】:

    标签: matlab simulation simulink


    【解决方案1】:

    在(加速)模拟中使用真实世界的时钟通常不是一个好主意。 这是一个使用 m 脚本设置超时的简单示例。主要基于this documentation page

    model='untitled';
    timeout=10;
    
    set_param(model,'SimulationCommand','start')
    tic;
    while(true)
        if not(strcmpi(get_param(model,'SimulationStatus'),'running'))
            disp('simulation exited')
            break;
        end
        if toc>=timeout
            disp('timout reached')
            set_param(model,'SimulationCommand','stop')
            break;
        end
        pause(1);
    end
    

    如果您不喜欢轮询,也可以使用callbacks 来实现,但这需要在您的模型中插入回调。

    【讨论】:

      猜你喜欢
      • 2020-07-02
      • 2016-04-11
      • 2013-06-14
      • 1970-01-01
      • 2016-02-23
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      • 2019-11-05
      相关资源
      最近更新 更多