如何在Simulink中针对X绘制数组Y?

rem*_*mus 4 plot simulink

我想构建一些坦克配置文件,并在模拟运行时在Simulink中可视化它们.在Matlab中我通常输入:

plot(dX, Y), grid;
Run Code Online (Sandbox Code Playgroud)

where dXY是具有20个元素的数组(例如).Simulink中是否有能够绘制这个范围的东西?XY图仅绘制标量:(

小智 6

如果我正确理解你的问题,你的simulink模型有信号dX和Y,每个信号的尺寸为20x1.因此信号本身就是矢量,其值将随时间变化.如果是这种情况,那么您可能希望在模拟运行时将其可视化为一种动画.也就是说,在simulink仿真的每个时间步骤,您将生成一个XY图,说明矢量dX和Y之间的关系.

据我所知,Scope和XY Graph块不支持此用例.如果您的信号是随时间变化的标量值,那么XY Graph就是最佳选择.但正如您所说,由于您正在使用随时间变化的矢量,因此XY Graph不是那么有用.

所以这可能是一个非常快速和肮脏的解决方案,但您可能只想考虑使用MATLAB功能块并从那里调用绘图函数.例如,块的内容可能如下所示:

function fcn(x,y)
%#codegen

coder.extrinsic('plot')
plot(x,y)
% insert additional code as needed to turn on grid, setup axis limits, etc.
Run Code Online (Sandbox Code Playgroud)

MATLAB功能块有两个输入,您可以在其中输入信号dX和Y.

  • 如果您使用连续或快速离散采样时间,您可能希望以较慢的离散采样时间运行MATLAB功能块,以便更新动画,例如每秒更新一次,并且不会减慢模拟速度.您必须使用适当的速率转换模块来连续/快速离散采样时间,从/到较慢的离散采样时间. (2认同)