在Simulink中通过从Matlab工作空间派生的2个数组绘制X-Y图

问题描述 投票:2回答:2

我在工作区中有2个单维数组,一个(xarray)用作x轴,另一个(yarray)用作y轴。

xarray =

     1     2     3     4     5     6     7     8     9    10

yarray =

   500   200   800     0     0     0     0     0     0     0

我想在Simulink中做的是从工作空间中读取这些数组并生成一个X-Y图。我可以从Matlab命令行(figure; plot(xarray, yarray))轻松地做到这一点,但是,我想从Simulink做到这一点。

我试图通过使用两个“用于工作空间”块从工作空间读取每个数组,然后将它们连接到“ X-Y图”的相应输入,但是,我得到的错误是:

端口宽度或尺寸错误。的输出端口1'simulink_model / XY Graph / Mux'是一维矢量,具有18元素。

感谢您的任何帮助,谢谢。

arrays matlab plot simulink
2个回答
1
投票

使用外部矩阵时,simulink可能会有些棘手。

所以有两件事:1)矩阵需要将数组作为列(幸运的是,您可以在simulink本身中进行转置操作)

2)您需要第一列来表示数组的时间输入:因此,对于您的情况,对于第一个输入可以使用[xarray; xarray]',第二个输入可以使用[xarray; yarray]'(提供,当然,xarray不会改变)

3)不要忘记修改范围首选项以查看所有数据(默认最大值为[-1; 1])


0
投票

我对上述解决方案有疑问。

XY Graph块接受以下数据类型的实信号:浮点,内置整数,定点,布尔)

因此提供[xarray;首先通过常量和[xarray; yarray]'作为第二个输入仍会产生错误

端口宽度或尺寸错误。 “无标题/ XY图形/数据类型>转换”的输出端口1是[10x2]矩阵。组件:Simulink |类别:阻止错误端口宽度或尺寸错误。为“ untitled / XY Graph / Mux”的输入端口> 1指定了无效的尺寸。组件:Simulink |类别:阻止错误

因此,如何将与数组有关的向量直接提供给X-Y-Scope(没有编程函数的工作环境,该函数根据模拟时间选择数据值?]]

最诚挚的问候

© www.soinside.com 2019 - 2024. All rights reserved.