Matlab中Bode图的绘制技巧学术收藏2010-06-0421:21:48阅读54评论0字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。譬如我们要画出下面这个传递函数的伯德图:1.576e010s^2H(s=------------------------------------------------------------------------------------------s^4+1.775e005s^3+1.579e010s^2+2.804e012s+2.494e014(这是一个用butter函数产生的2阶的,频率范围为[2020K]HZ的带通滤波器。我们可以用下面的语句:num=[1.576e01000];den=[11.775e0051.579e0102.804e0122.494e014];H=tf(num,den;bode(H这样,我们就可以得到以下的伯德图:可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上gridon解决)。下面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptions我们可以看到以下内容:ans=Title:[1x1struct]XLabel:[1x1struct]YLabel:[1x1struct]TickLabel:[1x1struct]Grid:'off'XLim:{[110]}XLimMode:{'auto'}YLim:{[110]}YLimMode:{'auto'}IOGrouping:'none'InputLabels:[1x1struct]OutputLabels:[1x1struct]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:0PhaseMatchingValue:0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;P.Grid='on';P.XLim={[1040000]};P.XLimMode={'manual'};P.FreqUnits='HZ';num=[1.576e01000];den=[11.775e0051.579e0102.804e0122.494e014];H=tf(num,den;bode(H,P这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[1040K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。当然,你也可以改变bodeoptions中的其它参数,做出符合你的风格的伯德图。simulink常见问题22007年04月24日星期二上午09:29怎样求两个空间向量的夹角,如[1,0,0]和[1,1,1]ang=A'*B/(norm(A*norm(;---------------------------------------------------------------------------------------如何把使用saveworkspaceas保存过大量变量重新导出?应该用load能全部导出simulink仿真时间和实际物理系统的时间有什么关系?(是否相等?,谢谢仿真时间应该表示物理时间,比如说你选则终止时间为10,不管你花多长时间仿真,得到的结果表示10秒内的系统性能。--------------------------------------------------------------------------------在simulink中,变量y从1变化到1000,我希望将y=300时(或者是y大于300的时刻)的当前时间t提取出来,并定义为一个workspace中的变量,或者作为simulink中的一个标量,请问如何做到?将y作为一个输出信号,这样就可以对其后处理了。另外,如果想在线使用该量,则加一个判断,如用比较模块判断y=300,300可以是常数输入--------------------------------------------------------------------------------请问在simulink里面的低通滤波器在哪里你可以用离散模块组中的filter,低通参数应该由信号处理工具箱中函数设计--------------------------------------------------------------------------------请问怎样用matlab命令调出simulink文件中的scope的波形有一个自编的小程序functionmyfigure_scope(无效a=size(无效.signals;b=a(1,2;%b为信号的个数c=1;%c为循环变量whilec=b;subplot(b,1,cplot(无效.time,无效.signals(1,c.valuesc=c+1;gridend其中无效为示波器中保存的structurewithtime数据--------------------------------------------------------------------------------怎样把simulink中的图形输出转到m文件下进行编程输出用outport模块表示输出,然后用sim函数进行仿真,而不是用simulation菜单--------------------------------------------------------------------------------我是用的fromworkspace比较多,所以每次赋值比较麻烦。我想设一个默认值,不知如何设?请各位赐教!!!谢谢只能逐个设置,另外,建议使用outport而不使用toworkspace。使用前者将在工作空间中产生yout变量--------------------------------------------------------------------------------如何在matlab的simulink中读入dat文件可以用fromfile模块!--------------------------------------------------------------------------------powersystemblockset与simulink的模块不能相连吗?能相联,但之间需要转换,如应该使用电压表和电流表等将其连接到simulink模块上--------------------------------------------------------------------------------SIMUKINK中有两个模块,一个是PID模块,一个是模糊控制模块,现在我想用模糊控制模块算出来的新的PID的参数值更改原来的PID参数,我不知道怎么做,请各位大侠指条明路,救命啊!应急方法:将PID参数设置为全局变量试试--------------------------------------------------------------------------------我现在正在做毕业设计,遇到了一个问题。我要一边用m文件进行编程,做一些界面。一边用simulink进行仿真,在进行图形输出时,我遇到了一个问题,就是怎么样把simulink的输出而转到m文件下来。因为我要在图形输出的窗口中还要添加一些按钮。使它的外观更漂亮。matlab的simulink的输出可以输出到工作空间种来也可以通过输出到一个mat文件等还可以直接用x-ygraph来做!javatest!--------------------------------------------------------------------------------SIMULINK仿真中的给定信号如果是非标准的(如非正弦波:由2个分段函数定义),怎么产生?可以用matlabfcn模块自己编写--------------------------------------------------------------------------------如何取得离散信号中某时刻(假定是k时刻)及k-1时刻、k+1时刻的值,用Simulink中的哪些模块可以实现?接z(-1和z即可--------------------------------------------------------------------------------我从电气库中找到一个电机的模型,但是却和我前面的simulink组成的模型不相通,那是怎么回事,有知道的吗,请告诉我,谢谢了。PowerSystemsToolbox中模块不是所有端口都能接收Simulink信号的,例如电机模型中,电压输入是需要电压源模块的(PowersystemsBlockset模块,而转矩可以输入simulink信号。如果实在想给电压端口输入simulink信号,需要给其先加一个受控电压源,用simulink信号控制受控信号--------------------------------------------------------------------------------请问在simulink里面的施密特触发器在哪里.在simulinkextra组中--------------------------------------------------------------------------------在用simulink进行仿真时,仿真过程中有信号是随时间衰减的波动信号,仿真时间为0~t,如何计算t(i~t(i+1时间内的信号的积分平均?checktheintegratorblockwithresetting.Youcanre-settheintegratoratanytimeyouspecified.--------------------------------------------------------------------------------我用simulink画了一个单输入输出的开环控制系统,想得到该系统的bode图,用什么方法获得该系统的开环传递函数?1修正原来的simulink模型,使其输入用inport表示,输出用outport表示。这些端口在6。1版中分别位于sources和sinks组。2)用[a,b,c,d]=linmod2('模型名';提取状态方程模型3G=ss(a,b,c,d;4)bode(G为什么我用simulink仿真时,只有ode5能运行而其他的不行呢?是否是模型中包含离散模块或实时模块-----------------------------------------------------------------------------------------------------我在用SIMULINK解二元微分方程组时,在MATLAB命令窗口输入X1,X2的初值如X01=1;X02=-2;然后启动仿真程序,但该初值似乎无法进入我的模型,查YOUT变量组,值为0。而我直接在SI