simulink在一个图形中画出多个示波器曲线的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
simulink在一个图形中画出多个示波器曲线的方法(2009-08-05 182406)转载▼标签:仿真matlabsimulinkit 分类:学习
最近碰到一个问题,就是做仿真模型的时候需要在这个模型的基础上,改变相应的参数,画出相应的转矩或者角速度的图像,这样就能在一个图形中画出个曲线,可以比较不同参数下对转矩或者角速度的影响。
具体方法是,把示波器的图像显示在图形中,前面的博文已经做过了解决。
那就是通过设置示波器参数把示波器图形用plot命令显示。
如
双击所要输出波形的示波器,打开示波器参数选择窗口,点击Data history标签,将第二个参数Save data to workspace打勾(如下图)。
可填写变量名和选择格式。
变量名随便,好记就行,格式选择struct with time。
simulink在一个图形中画出多个示波器曲线的方法这里顺便说一句。
在仿真时经常会出现仿真结束后,示波器显示的波形只有一部分的现象,这是第一个参数Limit data points to last被选中的缘故。
这个参数被选中,输出点数被限制,当然波形就只能显示一部分了,只不过这样可以节省内存罢了。
要全部显示,只要不勾就行了。
一切选择好后,点OK退出,运行仿真。
在仿真结束后,在workspace里面会出现一个和前面设定的变量名相同名字的结构体变量。
该变量中主要有一个名字为signals的结构体和一个名为time的向量。
在signals里面还有一个values的向量。
这就是绘制新图形的数据基础。
在命令窗口中输入plot(ScopeData.time,ScopeData.signals.values,'k') 这样就可以输出一个坐标清楚的图形了。
但是此时的坐标没有标注坐标所代表的量的名称。
此时输入xlabel('time(s)'),在X坐标下就会显示time(s)字样,输入ylabel('speed(ms)'),在Y轴同样输出speed(ms)字样。
改变' '内的字符串,就可以改变坐标下的名字。
在命令窗口输入axis([xmin xmax ymin ymax]),就可以限定输出波形的上下界。
输入set(gca,'xtick',[a b c d ....])可以重新标定坐标刻度,其中“a b c d ...”就是重新标定后的刻度值。
grid on,grid off 命令可以打开和关闭网格。
经过这些命令一处理,就可以得到非常满意的输出图形了。
怎么在plot命令中显示多条曲线呢,即在一组参数下仿真图像是1,当我用另外一组参数仿真得到仿真图像2.怎么样才能把这两个图像放在一个图中呢。
通过查询我得到了一个简单的办法,即,仿真1结束后,plot(y1)然后输入hold on 命令
然后再plot(y2)当然y1和y2是把示波器的变量重新定义了以后。
也可输入相同的plot(y)只要两条曲线不同。
方法2:
设你的波形变量保存为y1, (5)
plot([y1;y2;y3;y4;y5])把五条曲线画到一个图上.注意to workspace中保存类型是array.
方法3:如果你要在一个坐标轴内显示几个曲线,那么就在用一个mux,把速度和转矩合并一个变量,然后to workspace,然后用plot画可以显示出跟示波器一样的一个图形2个曲线。
我主要用方法1,简单明了。