simulink波特图仿真数据导出方法

simulink波特图仿真数据导出方法

论文中有时需要origin画图,但是有些matlab产生的图没有数据,导致没法画图,在写论文的时候,遇到了matlab的simulink仿真的波特图无法导出的问题,最后发现解决办法,解决方法如下:

  • simulink的control design产生的linear analysis可以产生.m的code
  • 对code进行相应的修改,使其能输出波特图的数据[mag, phase, w]= bode(sys)
  • 然后在command window中输入[mag, phase, w]=mylinearizemodel,其中mag是幅度,phase是相位
  • *在获取上述数据之后,可以输入mag1=mag(:)获取幅度的具体值,针对相位的处理同理可得
  • 在获取mag1和phase1之后,通过plot函数即可开画图,但是在波特图中,mag通常是db的形式,所以要讲mag改成db形式,既是mag2=20*log10(mag1),然后plot(w,mag2),hold no, plot(w,phase1)

实例说明

simlink仿真模型
建立上图的模型后(模型是针对锁相环线性环路仿真的,这个可以基于自己的系统传输函数自己设定),选着tools->control design->linear analysis.然后得到如下的图形。
simulink波特图仿真数据导出方法_第1张图片
然后点击file->generate matlab code,就可以得到如下的code。
simulink波特图仿真数据导出方法_第2张图片
然后对导出的code做修改,得到如下code。
simulink波特图仿真数据导出方法_第3张图片
修改后的code在editor中直接运行是不会导出mag,phase,w这些数据的,必须在command window中运行,运行很简单了,直接是[mag, phase, w]= mylinearizemodel,回车即可。

你可能感兴趣的:(工具使用)