simulink仿真时数据与图形处理(个人小结)
我们在仿真后总希望把我们想要的数据和图形保存下来,怎么办呢?下面就简单的总结一下个人经验(希望各位高手不要见笑)
数据和图形是分不开的,地球人都知道图形是数据可视化表示手段,所以就放在一块说吧
(1)首先说一下scope(示波器)
我们通常用它来可视化输出,在需要图形时不得用拷屏方法,结果还不理想,其实scope的参数设置中可以在设置选主save data to workspace项,比如把数据名改为ScopeData3,在format项中选择array,这些数据具备保存到workspace,你可用plot(ScopeData3(:,1),ScopeData3(:,2))作图,画图后在edit菜单下选择copy figure 得到的图像,再粘在word就相当漂亮了,当然再在此你还可以设置拷贝选项.也可以用file 下的save命令
(2)其次是out,它是一个输出模块,与他相连输出就会输出到 workspace,但有个前提就是在参数配置中要确保save to workspace 选项中time,和output选主,在默认情况均选好了且变量名分别为tout,yout,当然我们可以换其他名字。输出的数据后大家就知道怎么办了把,就用plot好了,如plot(tout,yout),其他如(1)所述
(3)To Workspace 模块 和out功能差不多但还是有区别的(out一般都用子系统中,To Workspace 模块在仿真参数中设置但设置本身是保存为struct,还是array 等),然后plot(4)To File 模块,好处可以保存到磁盘上,退出matlab还存在,使用是load载入,然后plot
(5)XY Graph模块,Display模块
其中1,2,3中输出的数据可用save 保存到 mat文件中以便数据能保存到磁盘上去
将多个波形显示在同一个scope中
将多个波形显示在一个scope中用mux模块,也可在scope中设置参数axes 数 不过次时将scpoe分为多个子窗口来显示
二
如果simulink模型中用变量名代替时如何加载参数
方法一:如果变量较少时可在simulink直接给变量赋值
方法二:如果变量较多时可先把他们保存到mat文件中,然后用load *.mat 载入到工作空间 (*是你的mat文件名)更方便的是方法三
方法三:先把他们保存到mat文件中,把load *.mat(*是你的mat文件名);写到callbacks中PreLoadfcn中,方法三的好处是在你打开你的mdl文件时会自动加载到工作空间中
matlab的M函数要想通过外部赋值方法改变参数时 用gloabl声明为全局变量 如:global X Y Z
下面给一个例子:
function out = cyb(t)
global CYBCYB
out = CYBCYB.*sin(t);
调用方法
global CYBCYB
CYBCYB = 10;
y = cyb((0:.1:5)'); 谢谢你的这些方法
不过有一个问题想请教一下
我是用的你的第一个方法,就是在Scope里save data to workspace
我的Scope里有两条图线怎么plot后输出只有一条啊
希望能够解答
谢谢
PS我用out输出得图形和Scope里的差别巨大,不仅有一段没有,而且很多波纹,不是一个平滑曲线
所以只有用save data to workspace,用这个画出来得和Scope里得是一样得,但是就是只有一条。:@Q xy graph 图形的输出没看明白,恳请楼主能够说得详细一点,另外不知可视化的窗口图形如何处理能去掉边框 谢谢,我找好久了! 谢谢!楼主辛苦了!!!:handshake
页:
[1]