gpt4 book ai didi

matlab - 复制 sim 的向后兼容语法的 "Timespan"

转载 作者:行者123 更新时间:2023-12-02 01:09:12 24 4
gpt4 key购买 nike

简单描述:

简而言之,最好的重写方式是什么

time = 0:0.1:10;
[T,X,Y] = sim('model',time)

在不采用显式时间输入的“现代”Simulink 语法中?


看来我已经过时了 w.r.t.我的 Simulink 用法。以编程方式运行 Simulink 模型的“当前”语法是:

simOut = sim(model,'Name','Value',…)
simOut = sim(model,ParameterStruct)
simOut = sim(model,ConfigSet)

文档提供了各种复杂的方法来设置要在此处使用的参数。

Simulink 的“旧”(2009b 之前)语法略有不同:

time = 0:0.1:10;
[T,X,Y] = sim('model',time)

这里,time 就像函数ode45 的参数;它可以指定返回值的时间向量,即使在使用可变步长求解器时也是如此。

如何在 sim 的“现代语法”中复制这种行为?我尝试了以下方法:

simOut = sim(mdl,'OutputOption','SpecifiedOutputTimes','OutputTimes','time');

但这给了我以下错误:

Invalid OutputTimes specified in the Configuration Parameters dialog for block diagram '…'

并使用更简单的

simOut = sim(mdl,'OutputTimes','time');

按照指定的方式“正确”运行 tout,但没有一个保存的信号具有匹配的长度。我觉得我错过了一些明显的东西,而且我肯定已经在这上面浪费了太多时间。

最佳答案

name/value pairs sim 接受的函数可以是 model parameters 中的任何一个您也可以通过 Configuration Parameters Dialog Box 指定.看起来这些值的格式必须与它们通常输入到配置 GUI 中的格式相同。 OutputTimes参数被输入到一个可编辑的文本框中,这意味着它必须是一个字符数组,用于定义 Simulink 应生成输出的时间矩阵。我希望以下内容能够工作,并且等同于旧语法:

simOut = sim(mdl, 'OutputOption', 'SpecifiedOutputTimes', 'OutputTimes', '0:0.1:10');

如果您将 OutputTimes 参数替换为工作区中存储时间的变量名称,它应该也可以工作:

times = 0:0.1:10;
simOut = sim(mdl, 'OutputOption', 'SpecifiedOutputTimes', 'OutputTimes', 'times');

编辑:另一个问题是确保OutputTimes 中的最长时间不超过模拟StopTime。 .这是一个使用 built-in bouncing ball model 的示例默认 StopTime 为 25 秒:

>> simOut = sim('sldemo_bounce', 'OutputOption', 'SpecifiedOutputTimes', ...
'OutputTimes', '0:0.1:25'); % No error
>> simOut = sim('sldemo_bounce', 'OutputOption', 'SpecifiedOutputTimes', ...
'OutputTimes', '0:0.1:30'); % OutputTimes too long
Invalid OutputTimes specified in the Configuration Parameters dialog for
block diagram 'sldemo_bounce'

>> simOut = sim('sldemo_bounce', 'OutputOption', 'SpecifiedOutputTimes', ...
'OutputTimes', '0:0.1:30', ...
'StopTime', '30'); % Extend StopTime, no error

关于matlab - 复制 sim 的向后兼容语法的 "Timespan",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45929125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com