1

我有一些处理(轮对的移动)。轮对有质量,它是可变的,它在init.m文件中声明(例如M=1;

现在我希望在这个过程中轮对的质量每 2 秒更换一次。如何将新的质量值从 Simulink 保存到 M 变量?

4

3 回答 3

2

比将变量存储到工作区、在工作区中更改并将其读回模拟(我什至不确定这是否允许)更好的解决方案是在模拟本身中更改它并使用该变量。如果您能更好地解释您的问题,也许我可以为您提供更多帮助。

于 2011-04-21T02:02:02.140 回答
2

你能用随机数块之类的东西来生成这些值吗?您可以给出均值和方差。

如果这对您不起作用,接下来最简单的做法是使用用 MATLAB 编写的S-Function或MATLAB 功能块。该函数将在每个时间步被调用,您可以运行任何 MATLAB 代码来计算输出的下一个值。

于 2011-04-22T02:34:08.433 回答
2

对我来说,我已经找到了决定。

我使用变量M来存储物体质量。从 simulink 我刚刚在函数调用中调用了 M 。例如:

在此处输入图像描述

但是在块中调用函数 RhoMATLAB Function看起来像: 在此处输入图像描述

此方法仅在 M 为静态时才有效。现在我想及时改变M。所以,首先我决定我可以M全球化并改变它。我编写了一个函数,创建了一个函数块,它计算新M值并将其设置为全局M变量。但它没有用。您不能同时使用和更改 Simulink 中的一个全局变量。

所以我决定改变整个方法。由于M现在不是静态参数,我应该M作为信号。所以现在它看起来像:

在此处输入图像描述

这里的块Constant M是从工作区(或一些 init.m 文件)获取的,然后 Simulink 不使用M工作区中的变量,而是使用本地信号M

于 2011-04-22T09:42:16.093 回答