当前位置:文档之家› MATLAB中bode图绘制技巧(精)

MATLAB中bode图绘制技巧(精)

Matlab中Bode图的绘制技巧学术收藏2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。

譬如我们要画出下面这个传递函数的伯德图: 1.576e010 s^2 H(s= ------------------------------------------------------------------------------------------ s^4 + 1.775e005 s^3 + 1.579e010 s^2 + 2.804e012 s + 2.494e014 (这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。

我们可以用下面的语句:num=[1.576e010 0 0]; den=[1 1.775e005 1.579e010 2.804e012 2.494e014]; H=tf(num,den; bode(H 这样,我们就可以得到以下的伯德图:可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。

下面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptions 我们可以看到以下内容:ans = Title: [1x1 struct] XLabel: [1x1 struct] YLabel: [1x1 struct]TickLabel: [1x1 struct]Grid: 'off' XLim: {[1 10]}XLimMode: {'auto'}YLim: {[1 10]} YLimMode: {'auto'}IOGrouping: 'none'InputLabels: [1x1 struct]OutputLabels: [1x1 struct]InputVisible: {'on'} OutputVisible: {'on'}FreqUnits: 'rad/sec'FreqScale: 'log' MagUnits: 'dB'MagScale: 'linear'MagVisible: 'on' MagLowerLimMode: 'auto'MagLowerLim: 0PhaseUnits: 'deg'PhaseVisible: 'on'PhaseWrapping: 'off' PhaseMatching: 'off'PhaseMatchingFreq: 0 PhaseMatchingValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;P.Grid='on'; P.XLim={[10 40000]};P.XLimMode={'manual'};P.FreqUnits='HZ'; num=[1.576e010 0 0];den=[1 1.775e005 1.579e010 2.804e012 2.494e014];H=tf(num,den; bode(H,P 这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[10 40K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。

当然,你也可以改变bodeoptions中的其它参数,做出符合你的风格的伯德图。

simulink常见问题2 2007年04月24日星期二上午09:29 怎样求两个空间向量的夹角,如[1,0,0]和[1,1,1] ang=A'*B/(norm(A*norm(; ----------------------------------------------------------------------- -- -------------- 如何把使用save workspace as保存过大量变量重新导出?应该用load能全部导出simulink仿真时间和实际物理系统的时间有什么关系?(是否相等?,谢谢仿真时间应该表示物理时间,比如说你选则终止时间为10,不管你花多长时间仿真,得到的结果表示10秒内的系统性能。

----------------------------------------------------------------------- -- ------- 在simulink中,变量y从1变化到1000,我希望将y=300时(或者是y大于300的时刻)的当前时间t提取出来,并定义为一个workspace中的变量,或者作为simulink中的一个标量,请问如何做到?将y作为一个输出信号,这样就可以对其后处理了。

另外,如果想在线使用该量,则加一个判断,如用比较模块判断y>=300, 300可以是常数输入 ------------------------------------------------------------------------- ------- 请问在simulink里面的低通滤波器在哪里你可以用离散模块组中的filter,低通参数应该由信号处理工具箱中函数设计----------------------------------------------------------------------- -- ------- 请问怎样用matlab 命令调出simulink文件中的scope的波形有一个自编的小程序function myfigure_scope(无效a=size(无效.signals; b=a(1,2;%b为信号的个数c=1;%c为循环变量while c<=b; subplot(b,1,c plot(无效.time,无效.signals(1,c.values c=c+1; grid end 其中无效为示波器中保存的structure with time数据 ----------------------------------------------------------------------- -- ------- 怎样把simulink中的图形输出转到m文件下进行编程输出用outport模块表示输出,然后用sim函数进行仿真,而不是用simulation菜单----------------------------------------------------------------------- -- ------- 我是用的from workspace比较多,所以每次赋值比较麻烦。

我想设一个默认值,不知如何设?请各位赐教!!!谢谢只能逐个设置,另外,建议使用outport而不使用toworkspace。

使用前者将在工作空间中产生yout变量 ----------------------------------------------------------------------- -- ------- 如何在matlab的simulink中读入dat文件可以用from file模块! ----------------------------------------------------------------------- -- ------- power system blockset与simulink的模块不能相连吗?能相联,但之间需要转换,如应该使用电压表和电流表等将其连接到simulink模块上----------------------------------------------------------------------- -- ------- SIMUKINK中有两个模块,一个是PID模块,一个是模糊控制模块,现在我想用模糊控制模块算出来的新的PID的参数值更改原来的PID参数,我不知道怎么做,请各位大侠指条明路,救命啊!应急方法:将PID参数设置为全局变量试试 ----------------------------------------------------------------------- -- ------- 我现在正在做毕业设计,遇到了一个问题。

我要一边用m文件进行编程,做一些界面。

一边用simulink进行仿真,在进行图形输出时,我遇到了一个问题,就是怎么样把simulink的输出而转到m文件下来。

因为我要在图形输出的窗口中还要添加一些按钮。

使它的外观更漂亮。

matlab的simulink的输出可以输出到工作空间种来也可以通过输出到一个mat文件等还可以直接用x-ygraph来做! java test! ----------------------------------------------------------------------- -- ------- SIMULINK仿真中的给定信号如果是非标准的(如非正弦波:由2个分段函数定义),怎么产生?可以用matlab fcn模块自己编写 ----------------------------------------------------------------------- -- ------- 如何取得离散信号中某时刻(假定是k时刻)及k-1时刻、k+1时刻的值,用Simulink中的哪些模块可以实现?接z(-1和z即可 ----------------------------------------------------------------------- -- ------- 我从电气库中找到一个电机的模型,但是却和我前面的simulink组成的模型不相通,那是怎么回事,有知道的吗,请告诉我,谢谢了。

PowerSystems Toolbox中模块不是所有端口都能接收Simulink信号的,例如电机模型中,电压输入是需要电压源模块的(Power systems Blockset 模块,而转矩可以输入simulink信号。

相关主题