gpt4 book ai didi

matlab - 改进从 m 文件运行 Simulink 模型

转载 作者:行者123 更新时间:2023-12-04 16:52:15 25 4
gpt4 key购买 nike

现在,我有一个 x.m 文件,它使用 sim('y') 命令运行 y.mdl 模型。y.mdl 中的求解器参数无法更改,模型中的所有元素都是必需的。没有诊断警告。一切顺利模型的输出是一个值(没有参数随时间变化,没有范围......)。只是双重值(value)。我什至不需要打开模型。问题:有没有办法提高x.m的性能?

提前致谢

约翰

最佳答案

如果只需要通过 sim 命令执行模型,我会说这将是生成 S-Function 的候选对象。如果您有 Real Time Workshop 工具箱,可以右键单击顶层子系统,选择 Real-Time Workshop,然后选择 Generate S-Function。这将生成一个 S-Function 模型,您可以将其另存为库并在 y.mdl 文件中使用以替代您的顶级 block 。此方法将生成和编译 C 代码,其执行速度比原始模型快得多。

如果需要初始化某些参数,可以使用 Simulink mask 和 Simulink.Parameter。首先,创建您要模拟的子系统。然后通过右键单击子系统并点击 Mask Subsystem 来屏蔽子系统。您要修改的任何参数都需要映射到掩码。因此,如果您的模型中有 3 个变量,abc。在掩码编辑器中点击参数选项卡并输入类似于以下的数据:

Mask Editor

然后在工作区中,为变量输入 Simulink.Parameter:

a_var = Simulink.Parameter;
a_var.Value = 42;
b_var = Simulink.Parameter;
b_var.Value = 4;
c_var = Simulink.Parameter;
c_var.Value = 2;

当然,你需要什么值都可以,标量、数组、矩阵等。然后将这些变量名输入到子系统掩码中:

Enter Mask Data

然后当你右击变成一个S-Function时,你会得到:

RTW Screen

检查所有这些都是可调的。然后当你运行你的脚本时,在你开始模拟之前初始化工作区中的变量,如下所示:

evalin('base','a_var.Value = 22')

这不是我最喜欢的方法,但它确实有效。希望这会带您到达需要去的地方。

关于matlab - 改进从 m 文件运行 Simulink 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565053/

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