Time 显示Simulink当前模拟时间
伙计们 我正在尝试显示Simulink当前模拟时间。我必须注意,在我的例子中,一旦我使用load_system,系统是不可见的,了解模拟的进展情况将非常有用 为此,我读到应该使用函数'ssGetT'。为了实现它,我使用了S-function builder块,我成功了。我的意思是,我能够得到当前的模拟时间 然而,我在这一点上被抓住了,因为我不知道如何将其显示为进度条、消息框或任何其他方式。重要信息,在S-function builder中从C环境显示 如果有其他方法,请告诉我。=)Time 显示Simulink当前模拟时间,time,simulation,simulink,s-function,Time,Simulation,Simulink,S Function,伙计们 我正在尝试显示Simulink当前模拟时间。我必须注意,在我的例子中,一旦我使用load_system,系统是不可见的,了解模拟的进展情况将非常有用 为此,我读到应该使用函数'ssGetT'。为了实现它,我使用了S-function builder块,我成功了。我的意思是,我能够得到当前的模拟时间 然而,我在这一点上被抓住了,因为我不知道如何将其显示为进度条、消息框或任何其他方式。重要信息,在S-function builder中从C环境显示 如果有其他方法,请告诉我。=) 如果有人能帮
如果有人能帮助我,我将非常感激。有几件事需要注意:
sim
之前,无需使用load\u系统
sim
在m-code(或命令行)中的该行之后阻止进一步执行m-code,直到它完成执行(在本例中,这意味着模拟已停止)function fcn(t)
%#codegen
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('Starting Now\n');
end
fprintf('time = %.4f\n',t);
这将在仿真运行时(无论模型如何启动),在每个时间步将仿真时间打印到MATLAB命令窗口中。需要注意的几点:
sim
之前,无需使用load\u系统
sim
在m-code(或命令行)中的该行之后阻止进一步执行m-code,直到它完成执行(在本例中,这意味着模拟已停止)function fcn(t)
%#codegen
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('Starting Now\n');
end
fprintf('time = %.4f\n',t);
这将在仿真运行时(无论模型如何启动),在每个时间步将仿真时间打印到MATLAB命令窗口中。需要注意的几点:
sim
之前,无需使用load\u系统
sim
在m-code(或命令行)中的该行之后阻止进一步执行m-code,直到它完成执行(在本例中,这意味着模拟已停止)function fcn(t)
%#codegen
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('Starting Now\n');
end
fprintf('time = %.4f\n',t);
这将在仿真运行时(无论模型如何启动),在每个时间步将仿真时间打印到MATLAB命令窗口中。需要注意的几点:
sim
之前,无需使用load\u系统
sim
在m-code(或命令行)中的该行之后阻止进一步执行m-code,直到它完成执行(在本例中,这意味着模拟已停止)function fcn(t)
%#codegen
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('Starting Now\n');
end
fprintf('time = %.4f\n',t);
这将在仿真运行时(无论模型如何启动)将每个时间步的仿真时间打印到MATLAB命令窗口中。更新
为了在commad视图中显示进度状态,我采纳了Phil的建议
我在symulink中实现了这个系统,其中fcn输入是来自时钟的模拟时间和最终模拟时间
我将数字时钟块中的SampleTime
定义为最终模拟时间/步骤,其中步骤是要更新进度的时间数。在我的例子中,我每5%更新一次,直到100%,所以步骤是20
fnc区块为:
function fcn(t,tsim)
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('\nSimulating...\n\n');
end
prog = 100*t/tsim;
fprintf(' %1.0f%%',prog);
更新
为了在commad视图中显示进度状态,我采纳了Phil的建议
我在symulink中实现了这个系统,其中fcn输入是来自时钟的模拟时间和最终模拟时间
我将数字时钟块中的SampleTime
定义为最终模拟时间/步骤,其中步骤是要更新进度的时间数。在我的例子中,我每5%更新一次,直到100%,所以步骤是20
fnc区块为:
function fcn(t,tsim)
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('\nSimulating...\n\n');
end
prog = 100*t/tsim;
fprintf(' %1.0f%%',prog);
更新
为了在commad视图中显示进度状态,我采纳了Phil的建议
我在symulink中实现了这个系统,其中fcn输入是来自时钟的模拟时间和最终模拟时间
我将数字时钟块中的SampleTime
定义为最终模拟时间/步骤,其中步骤是要更新进度的时间数。在我的例子中,我每5%更新一次,直到100%,所以步骤是20
fnc区块为:
function fcn(t,tsim)
coder.extrinsic('fprintf');
persistent firstTime
if isempty(firstTime)
firstTime = false;
fprintf('\nSimulating...\n\n');
end
prog = 100*t/tsim;
fprintf(' %1.0f%%',prog);
更新
为了在commad视图中显示进度状态,我采纳了Phil的建议
我在symulink中实现了这个系统,其中fcn输入是来自时钟的模拟时间和最终模拟时间
我将数字时钟块中的SampleTime
定义为最终模拟时间/步骤,其中步骤是要更新的时间数