实验五MATLAB绘制Bode图(精)
Matlab中Bode图的绘制技巧(精)
Matlab中Bode图的绘制技巧我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off'PhaseMatching: 'off'PhaseMatchingFreq: 0PhaseMatchingValue: 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处的频率值。
波德图实现
实验(三):控制系统的对数频率特性— 波德(Bode )图一、实验目的1. 利用计算机绘制系统的波德图;2. 观察记录控制系统的开环频率特性;3. 控制系统的开环频率特性分析。
二、实验步骤1. 开机执行程序:c:\matlab\bin\matlab.exe (或用鼠标双击图标)进入MATLAB 命令窗口:“Command Window”。
2. 给定系统开环传递函数G 0(s )的多项式模型,绘制系统的波德图。
计算公式为:G 0(s ) =)()(s den s num 式中,num 为开环传递函数G 0(s )的分子多项式系数向量,den 为G 0(s )的分母多项式系数向量。
函数格式1:bode(num,den)给定num 、den 作波德图,角频率向量w 的范围自动设定。
函数格式2:bode(num,den,w )角频率向量w 的范围可以由人工给定。
w 为对数等分,由对数等分函数logspace ( ) 完成,例如:w =logspace(-1,1,100)。
函数格式3:[mag, phase, w ]=bode(num,den)返回变量格式。
计算所得的幅值mag 、相角phase 及角频率w 返回至MATLAB 命令窗口,不作图。
更详细的命令说明,可键入“help bode”在线帮助查阅。
例如:系统的开环传递函数:G 0(s )=102102++s s 其作图程序如下:num = [10];den = [1 2 10];bode (num,den);w =logspace (-1,1,32);bode (num,den,w );注:(1)MATLAB 指令logspace (d1,d2,n)其作用是:将变量w 作对数等分。
命令中d1、d2为10d1~10d2之间的变量范围,n 为等分点数。
(2)MATLAB 指令semilogx (x,y)其作用是:半对数绘图命令,函数格式与plot ( ) 相同。
新版本matlab中绘制bode图技巧
百度文库里有一篇《matlab绘制bode图技巧》,非常不错。
但是在较新的matlab版本中运行时,显示最后依据有错误。
先对其进行更正。
依旧用下面这个传递函数的伯德图:1.576e010 s^2H(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)这样,我们就可以得到以下的伯德图:下面对其进行更改,使得:一、横坐标是HZ;二、调整横坐标的范围;三、打开网格(这点当然我们可以通过在后面加上grid on解决)。
下面,我们来看看如何定制我们自己的伯德图风格:在较新版本的matlab的命令窗口中输入:num=[1.576e010 0 0];den=[1 1.775e005 1.579e010 2.804e012 2.494e014];H=tf(num,den);h=bodeplot(H);p=getoptions(h);p.Grid=’on’;p.XLim={[10 40000]};p.XLimMode={'manual'};p.FreqUnits='Hz';setoptions(h,p);这时,我们可以得到以下的伯德图:。
2021年Matlab中Bode图的绘制技巧
Matlab中Bode图的绘制技巧欧阳光明(2021.03.07)我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
matlab绘制Nyquist图与Bode图
MATLAB绘制开环传递函数的Nyquist图与Bode图电气101 1008140313 邱书恒(主导)一、问题重述1.1.已知开环传递函数,画Nyquist图G0(s)=10(0.5s+1)(1+s) ()1.2.已知开环传递函数,画波特图并计算相位裕度G0(s)=2083(s+3)s(s2+20s+625)二、求解过程2.1.画Nyquist图频率特性G(jω)是频率ω的复变函数,可以在复平面上用一个矢量来表示某一频率ω下的量G(jω)。
该矢量的幅值为G(ω)=|G(jω)|,它的相角为φ(ω)=∠[G(jω)]。
当ω从0→∞变化时,矢量轨迹就表示频率特性。
按上述办法,吧频率特性在复平面上用极坐标表示的几何图形,即为Nyquist图。
2.2.画Bode图频率特性的对数坐标图,就是Bode图。
三、Matlab命令解析3.1.nyquist命令nyquist命令可以求得连续系统的奈奎斯特曲线,命令语法如下:nyquist(sys)nyquist(sys,w)nyquist(sys1,sys2,…,sysN)nyquist(sys1,sys2,…sysN,w)[re,im,w,sdre,sdim]=nyquist(sys)Nyquist(sys)创建一个动态系统Nyquist图,该模型可以是连续的或离散,和单变量或多输入多输出。
当带有输出变量时,可得到相应的一组数据,不带输出变量时,则绘出奈奎斯特曲线。
也可用制定向量w指定所要绘制的曲线范围。
3.2. bode命令Bode命令可以求得连续系统的伯德图,命令语法如下:bode(sys)bode(sys1,…,sysN)bode(sys1,PlotStyle1,…,sysN,PlotStyleNbode(…,w)[mag,phase]=bode(sys,w)[mag,phase,wout]=bode(sys)[mag,phase,wout,sdmag,sdphase]=bode(sys)Bode(sys)创建一个动态系统的频率响应bode图。
Matlab中Bode图的绘制技巧之欧阳理创编
Matlab中Bode图的绘制技巧时间:2021.03.05 创作:欧阳理我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
Matlab中Bode图的绘制技巧之欧阳术创编
Matlab中Bode图的绘制技巧时间:2021.02.02 创作:欧阳术我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
Matlab中Bode图的绘制技巧
Matlab(一)中Bode图的绘制技巧我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
利用MATLAB画Bode Diagram
利用MATLAB画Bode Diagram
n=[0 10 10]
d=[0.5 1 0]
bode(n,d)
2013-7-24
Y.Xing
2
2013-7-24
Y.Xing
3
n=[0 0 0 500 1000] d=[1 24 180 2000 0] bode(n,d)
2013-7-24 Y.Xing 4
4
Y.Xing
5
求系统的GM和PM
margin(num,den)可计算系统的相角裕度和幅值裕度, 并绘制出Bode图。
margin(mag,phase,w)可以由幅值裕度和相角裕度绘 制出Bode图,其中,mag、 phase和 w是由bode 得到的幅值裕度、相角裕度和频率。
[gm,pm, gcw,pcw]=margin计算幅值裕度、相角裕度 及幅值穿越频率wcg和相角穿越频率wcp,不绘制 Bode图
绘制系统
s 1 G( s) 3 4s 3s 2 2s
的bode图并判断系统闭环后是否稳定?
n = [ 0,0,1,1 ]; d = [ 4,3,2,0 ]; bode(n,d),grid (绘制波特图并加栅 格)
n = [ 0,0,1,1 ]; d = [ 4,3,2,0 ]; margin(n,d)
n = [ 0,0,1,1 ]; d = [ 4,3,2,0 ]; [gm pm gcw pcw] =margin(n,d),
MATLAB中bode图绘制技巧
Matlab中Bode图的绘制技巧2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:s^2H(s)=------------------------------------------------------------------------------------------s^4 + s^3 + s^2 + s +(这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。
) 我们可以用下面的语句:num=[ 0 0];den=[1 ];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: 0PhaseMatchingValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;='on';={[10 40000]};={'manual'};='HZ';num=[ 0 0];den=[1 ];H=tf(num,den);bode(H,P)这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[10 40K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。
Matlab中Bode图的绘制技巧(精)
Matlab中Bode图的绘制技巧我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode 图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off'PhaseMatching: 'off'PhaseMatchingFreq: 0PhaseMatchingValue: 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,范围是[1040K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。
(完整版)Matlab中Bode图的绘制技巧(精)
Matlab中Bode图的绘制技巧我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画岀下面这个传递函数的伯德图:1.576e010 s A2H(s= ..........................................................................................................sA4 + 1.775e005 sA3 + 1.579e010 sA2 + 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,de n;bode(H这样,我们就可以得到以下的伯德图:可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。
F面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptio ns我们可以看到以下内容: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: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off'是这样的,运行命令 ctrlpref ,出现控制系统工具箱的设置页面, Units 改为Hz 就好了PhaseMatchi ng: 'off'PhaseMatchi ngFreq: 0PhaseMatchi ngValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图: P=bodeopti ons;P.Grid='o n';P.XLim={[10 40000]};P.XLimMode={'ma nual'};P.Freq Un its='HZ';num=[1.576e010 00]; den=[1 1.775e0051.579e0102.804e012 2.494e014];H=tf( num,de n;bode(H,P这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ ,范围是[10 40K]HZ ,而且打开了网格,便于我们观察-3DB 处的频率值。
matlab绘制bode图技巧
我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
Matlab波特图Bode绘制
Matlab波特图绘制在Matlab中,大多时候,我们都是用M语言,输入系统的传递函数后,用bode函数绘制bode图对系统进行频率分析,这样做,本人觉得效率远不如Simulink建模高。
如何在Matlab/Simulink中画bode图,以前也在网上查过些资料,没看到太多有用的参考。
今天做助教课的仿真,又要画电机控制中电流环的bode图,模型已经建好,step response也很容易看出来,可这bode图怎么也出不来,又不愿意用m语言写出传递函数再画。
baidu和google 了好一阵,几乎没有一个帖子说的清清楚楚的,经过一番摸索,终于掌握了Simulink里画bode图的方法。
.其实,Simulink里画bode图,非常的easy,也很方便。
写此文的目的是希望对那些常用Simulink进行仿真希望画bode图又不愿用M语言的新手有所帮助。
以下均是以Matlab R2008a为例。
首先,在simulink里建好model。
如图1,这里需要注意的是,输入和输出要用input port 和output port,这样以后画bode图的时候,系统就会知道是这两个变量之间的关系。
其次,选择线性分析。
Tools->Control Design ->Linear Analysis。
如图2。
将出现如图3所示的Control and Estimation Tools Manager窗口。
第三步,激动人心的时刻到了,哈哈。
如果你是按照前面的步骤来的,那么这时候,你就应该可以直接画出bode图,在窗口的下方,将“Plot linear analysis result in a ”前面的方框打上勾,已打的就不用管了,再在后面的下拉框里选择“bode response plot”,即画output port和input port之间的bode图,再点击“Linearize Model”按钮,就OK了。
其实除了bode图,还可以画其他很多响应曲线,比如step response、impulse response和Nyquist图等等,只需选择相应的step response plot,inpulse response plot或者Nyquist plot等等。
实验五MATLAB绘制Bode图(精)
实验五MATLAB绘制Bode图、Nyquist图实验学科:自动控制理论姓名:XXX学号:XXX班级:XXX实验五 MATLAB绘制Bode图、Nyquist图实验一、实验目的1. 掌握计算机绘制系统的Bode图、Nyquist图、根轨迹曲线方法;2. 观察系统对单位阶跃信号的时域响应曲线;3. 通过仿真结果和理论计算的对照,加深对系统特性的理解。
二、实验设备PC、MATLAB三、实验结果1. 各传递函数的Bode图(1 K (K = 1, K = 0.5GH(s = 1GH(s = 0.5(2 (T = 0.2, T = 0.4(3 (K = 0.5, T = 0.4; K = 1.0; T = 0.2(4 (K = 1.0, T = 0.4; K = 1.0; T = 0.22. 各传递函数的Nyquist图(1 K (K = 1, K = 0.5GH(s = 1GH(s = 0.5(2 (T = 0.2, T = 0.4(3 (K = 0.5, T = 0.4; K = 1.0; T = 0.2(4 (K = 1.0, T = 0.4; K = 1.0; T = 0.23. 各传递函数的根轨迹曲线(1 K (K = 1, K = 0.5GH(s = 1, GH(s = 0.5(2 (T = 0.2, T = 0.4(5 (K = 0.5, T = 0.4; K = 1.0; T = 0.2(6 (K = 1.0, T = 0.4; K = 1.0; T = 0.24. 各传递函数对单位阶跃信号的时域响应曲线(1 K (K = 1, K = 0.5GH(s = 1GH(s = 0.5(2 (T = 0.2, T = 0.4(7 (K = 0.5, T = 0.4; K = 1.0; T = 0.2(8 (K = 1.0, T = 0.4; K = 1.0; T = 0.25. 各传递函数的特征量如下表所示传递函数GH(S剪切频率(rad/s 相角余量(°特征方程的根GH(s = 1GH(s = 0.55 90 -52.5 90 -2.52.89 135 -∞135 -2.52.5 135 -5 5 135 -10。
控制系统Bode图的Matlab实验
《机械工程控制基础》Matlab 仿真实验报告单
课程名称:
姓名:
日期:
成绩:
年级专业: 学号: 实验场地:
实验序号: 4
实验名称:控制系统Bode 图的Matlab 实验
一、实验内容。
已知控制系统开环传递函数,绘制开环传递函数Bode 图,。
1000()(1)(2)(5)
K G s s s s =
+++ 二、实验目的。
1、熟悉Matlab 操作
2、掌握Matlab 中,绘制传递函数的Bode 图。
三、相关Matlab 仿真程序。
已知控制系统开环传递函数,绘制开环传递函数Bode 图。
1000()(1)(2)(5)
K G s s s s =+++
相关程序:
clear
num=1000;
den=conv([1 1],conv([1 2],[1 5]));
GKs=tf(num,den)
w=logspace(-2,3,100);
bode(GKs,w);
grid on
margin(GKs)
四、相关Matlab 仿真图形。
五、判断系统稳定性,并说明理由。
幅值裕度的值为-18dB
相位裕度的值为-44.4deg
剪切频率 4.12rad/sec
相位穿越频率9.51rad/sec
从图形中可以看出来,剪切频率大于相位穿越频率,又因为其开环传递是最小相位系统,所以其闭环系统不稳定。
另一方面,幅值裕度和相位裕度都为负值,也证明其闭环系统不稳定。
Matlab中Bode图的绘制技巧
Matlab中Bode图的绘制技巧我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:1.576e010 s^2H(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: 0PhaseMatchingValue: 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处的频率值。
7.2.4控制系统的博德图(1)
1.实验目的(1)利用计算机做出开环系统的博德图;(2)观察记录控制系统的开环频域性能;(3)控制系统的开环频率特性分析。
2.实验步骤(1)运行MATLAB(2)练习相关m函数3.实验内容(1),T=0.1,做ζ=2,1,0.5,0.1,0.01时的图并保持:键入如下程序:num=[1];den=[0.01 0.4 1];bode(num,den);hold on;num=[1];den=[0.01 0.2 1];bode(num,den);hold on;num=[1];den=[0.01 0.1 1];bode(num,den);hold on;num=[1];den=[0.01 0.02 1];bode(num,den);hold on;num=[1];den=[0.01 0.002 1];bode(num,den);hold on;查看MATLAB绘制的博德图:(2)要求:1)作出博德图,在曲线上标出:幅频特性——初始段斜率、高频段斜率、开环截止频率、中段穿越频率。
相频特性——低频段渐进相位角、高频段渐进相位角、-180°线的穿越频率。
键入如下程序,绘制出博德图:num=[31.6];den=[0.001 0.11 1 1]; bode(num,den);在图上取如下点:由图上点可知:低频段的斜率=高频段的斜率=开环截止频率为16.2中频穿越斜率=低频段渐进相位角为-91.1°(-90°)高频段渐进相位角为-269°(-270°)-180°线的穿越频率为31.82)由稳定裕度命令计算系统的稳定裕度L g和相位裕度γc并确定系统的稳定性。
键入如下程序:z=[];p=[0,-10,-100];k=31600;sys=zpk(z,p,k);bode(sys)margin(sys)[Gm,Pm,wg,wp]=margin(sys)[Gm,Pm,wg,wp]=margin(m,p,w)由博德图上可以读到,系统的稳定裕度L g=11dB,γc=22°稳定裕度L g > 6dB相位裕度γ c > 0°,但是<30°所以系统稳定,但是相位裕度低于30°,所以接近于临界稳定点,系统会趋于等幅震荡,稳定性相对较差。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五
MATLAB绘制Bode图、Nyquist图实验学科:自动控制理论
姓名:XXX
学号:XXX
班级:XXX
实验五 MATLAB绘制Bode图、Nyquist图实验
一、实验目的
1. 掌握计算机绘制系统的Bode图、Nyquist图、根轨迹曲线方法;
2. 观察系统对单位阶跃信号的时域响应曲线;
3. 通过仿真结果和理论计算的对照,加深对系统特性的理解。
二、实验设备
PC、MATLAB
三、实验结果
1. 各传递函数的Bode图
(1 K (K = 1, K = 0.5
GH(s = 1
GH(s = 0.5
(2 (T = 0.2, T = 0.4
(3 (K = 0.5, T = 0.4; K = 1.0; T = 0.2
(4 (K = 1.0, T = 0.4; K = 1.0; T = 0.2
2. 各传递函数的Nyquist图
(1 K (K = 1, K = 0.5
GH(s = 1
GH(s = 0.5
(2 (T = 0.2, T = 0.4
(3 (K = 0.5, T = 0.4; K = 1.0; T = 0.2
(4 (K = 1.0, T = 0.4; K = 1.0; T = 0.2
3. 各传递函数的根轨迹曲线
(1 K (K = 1, K = 0.5
GH(s = 1, GH(s = 0.5
(2 (T = 0.2, T = 0.4
(5 (K = 0.5, T = 0.4; K = 1.0; T = 0.2
(6 (K = 1.0, T = 0.4; K = 1.0; T = 0.2
4. 各传递函数对单位阶跃信号的时域响应曲线
(1 K (K = 1, K = 0.5
GH(s = 1
GH(s = 0.5
(2 (T = 0.2, T = 0.4
(7 (K = 0.5, T = 0.4; K = 1.0; T = 0.2
(8 (K = 1.0, T = 0.4; K = 1.0; T = 0.2
5. 各传递函数的特征量如下表所示
传递函数GH(S
剪切频率
(rad/s 相角余量
(°
特征方程的根
GH(s = 1
GH(s = 0.5
5 90 -5
2.5 90 -2.5
2.89 135 -
∞135 -2.5
2.5 135 -5 5 135 -10。