我在工作区中有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元素。
感谢您的任何帮助,谢谢。
使用外部矩阵时,simulink可能会有些棘手。
所以有两件事:1)矩阵需要将数组作为列(幸运的是,您可以在simulink本身中进行转置操作)
2)您需要第一列来表示数组的时间输入:因此,对于您的情况,对于第一个输入可以使用[xarray; xarray]'
,第二个输入可以使用[xarray; yarray]'(提供,当然,xarray不会改变)
3)不要忘记修改范围首选项以查看所有数据(默认最大值为[-1; 1])
我对上述解决方案有疑问。
XY Graph块接受以下数据类型的实信号:浮点,内置整数,定点,布尔)
因此提供[xarray;首先通过常量和[xarray; yarray]'作为第二个输入仍会产生错误
端口宽度或尺寸错误。 “无标题/ XY图形/数据类型>转换”的输出端口1是[10x2]矩阵。组件:Simulink |类别:阻止错误端口宽度或尺寸错误。为“ untitled / XY Graph / Mux”的输入端口> 1指定了无效的尺寸。组件:Simulink |类别:阻止错误
因此,如何将与数组有关的向量直接提供给X-Y-Scope(没有编程函数的工作环境,该函数根据模拟时间选择数据值?]]
最诚挚的问候