[Matlab]Simulink绘制3维图像
绘制1维和2维图像时,在Simulink中一般使用Scope,而为了获得更多的显示功能,我们也可以通过定义S-Function来实现/封装任何所希望的功能。
3DScope工具
下载地址:
https://ww2.mathworks.cn/matlabcentral/fileexchange/4915-3dscope
使用方法:
-
解压,把解压后的文件夹放进Matlab工作区;
-
设置Matlab工作区在该文件夹内,或你也可以把文件夹内的文件都直接放在你已经定义好的工作区中,后可以运行install_3dscope.m文件;
-
打开文件内附代的mdl模型,可以成功运行示例文件。
迁移使用:
只需要直接复制这个3DScope到自己的Simulink中,设置好3DScope的参数,就可以直接进行使用
确定好自己的连线,则可以双击弹出3DScope的参数设置界面
打开3DScope的参数设置页面,各参数含义解释如下(自己理解,有误见谅)
参数名称 | 含义 |
---|---|
Number of moving points | 即我们需要同时显示的运动点的个数;如果说一个运动点对应一个运动轨迹的话,那么2个点则对应有2条运动轨迹 |
Range | 无需多说,很清楚 |
Max number of points in each line | 运动点的运动轨迹是由无数个时刻运动点的位置组合而成的,所以该项则就限制这条轨迹上可以同时显示的轨迹点的个数上限;通俗的讲,即设定这条轨迹在此3DScope上可以显示多长。如果该项数值够大,则可以完全显示运动点的轨迹。 |
Sampling Time | 表示每隔y个点显示一次数据(<1的含义我还不清楚) |
Camera position | 摄像机的视角 |
(吐槽一下CSDN的表格设计,第一行名称的左右对齐不能和下面的内容行分开设置)
点击xyz(from Workspace)弹出对应的参数设置窗格
Sample time的含义是每格x点采样一次该数据。这里,我们应当注意simin数据,即xyz(from Workspace)数据的设置方法:点击这里跳转。
clear
clc
N = 3000;% 总数据点数
t = 0:N-1;% 设置时间
x = cos(t/N*2*pi);
y = sin(t/N*2*pi);
z = sin(t/N*2*pi);
xyz = [t',x',y',z'];% 设置simin数据
注意仿真时间(Stop TIme)
当仿真时间过短时,你所需要的数据可能不能显示完全,过长则浪费仿真时间。
调试完成之后,记得 Update Model