首页 文章

使用数据'from workspace' block时,Simulink模型中的结果不正确

提问于
浏览
0

我使用导入Simulink块工作区的数据时遇到问题 .

我的情况:

在对实际的Simulink块实现此方法之前,我做了一个简单的框图来模拟结果 . 我利用“从工作空间”块读取数据和范围来观察输出 . 这些是设置:

t=0:22/565:22
a.time=t
a.signals.values=ddata   %ddata contains [565x1] datas
a.signals.dimensions=1;

我意识到范围内的结果与数据不匹配 .

我发现在这个网站上(http://blogs.mathworks.com/seth/2012/02/09/using-discrete-data-as-an-input-to-your-simulink-model/),Simulink求解器采取的步骤与输入时间向量中指定的步骤不同 .

尝试解决:

我将时间向量设置为零但存在错误 .

a.time=[];

错误:“为'test / From Workspace'指定的连续采样时间无效 . 当工作空间的输入是没有时间数据的结构时,不允许连续采样时间 . 要消除此错误,请选择离散采样时间或更改输入数据包括时间数据 . “

问题:

  • 如何在不使用时间向量的情况下解决此错误?

  • 每次进入Simulink块而不是整个数据列表读取一行的最佳方法是什么?

如果有人能为我的案例提供见解/解决方案/替代方法,我将不胜感激 .

1 回答

  • 0

    数据中的时间向量与Simulink在模拟模型时将使用的时间步骤关系不大 . 将您的输入时间/数据视为一个查找表,Simulink将使用该查找表为每个时间步(它决定采用)获取输入值(使用插值) .

    要强制Simulink在给定时间点采取步骤,您需要更改“配置参数”对话框的“求解器”页面上的参数 . 听起来你想要使用步长为22/565的固定步长求解器 .

相关问题