2

在 simulink 中,我有一个短传输线模型。现在我想从 excel 文件中导入负载数据。

但是在matlab的帮助部分,他们声明文件必须是

TIME DATA
0.2  1000
0.4  1500
0.6  800

并使用 xlsread() 函数。我这样做并以矩阵形式获取数据。

但我希望 simulink 应该获取数据 1000,对其进行模拟,输出结果,然后获取数据 1500 并再次模拟......等等。我这样做是因为数据有 100 行,而且每次都在 simulink 中更改块的值是人类不可能和无聊的。

那么是否可以导入一个数据集,对其进行模拟,输出其结果(可能在 excel 文件中),然后获取另一个数据集并再次对其进行模拟...?

4

1 回答 1

1

您应该设置您的模型,以便所有参数(或至少需要从一次仿真运行更改到下一次仿真的所有参数)都是 MATLAB 变量的名称。当您开始仿真时,模型将在 MATLAB 工作区中查找具有该名称的变量的值,并且该值将在仿真中使用。

在运行仿真之前,您应该使用函数 xlsread(在 MATLAB 中)将您的 Excel 数据加载到 MATLAB 工作区(听起来您已经这样做了)。然后,您应该将该数据拆分出来,以便在 MATLAB 工作区中创建与您在模型中使用的变量相对应的适当变量(听起来您还没有这样做)。

假设您已成功使用 xlsread 并创建了矩阵

myData = [0.2 1000; 0.4 1500;0.6 800];

然后你想要类似的东西

for idx = 1:size(myData,1)
   myRequiredParameter = myData(idx,2); % Use this variable as a parameter in your model
   mySimulationResults = sim('MyModelName'); % run the simulation
   % Post process the results
end
于 2013-08-18T03:43:02.713 回答