文档库 最新最全的文档下载
当前位置:文档库 › 绘制伯德图

绘制伯德图

绘制伯德图
绘制伯德图

Matlab中Bode图的绘制技巧(精)

Matlab中Bode图的绘制技巧 我们经常会遇到使用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: 0 PhaseUnits: 'deg' PhaseVisible: 'on' PhaseWrapping: 'off'

典型环节的Bode图

控制系统的开环频率特性 目的:掌握开环Bode 图的绘制 根据Bode 图确定最小相位系统的传递函数 重点:开环Bode 图的绘制、根据Bode 图确定最小相位系统的传递函数 1 开环伯德图手工作图的一般步骤: 1)将开环传递函数表示为时间常数表达形式,计算各个典型环节的交接频率 2)求20lgK 的值,并明确积分环节的个数ν 3)通过(1,20lgK )绘制斜率为-20vdB/dec 低频段 4)随着频率增加,每遇到一个典型环节的交接频率,就改变一次斜率 最小相位系统定义: 递函数的零点、极点全部位于S 左半平面,同时又无纯滞后环节的系统称为最小相位系统。否则就是非最小相位系统。 对数幅频特性与相频特性之间存在确定的对应关系。对于一个最小相位系统,我们若知道了其幅频特性,它的相频特性也就唯一地确定了。也就是说:只要知道其幅频特性,就能写出此最小相位系统所对应的传递函数,而无需再画出相频特性。 非最小相位系统高频时相角迟后大,起动性能差,响应缓慢。对响应要求快的系统,不宜采用非最小相位元件。 2 典型环节的伯德图 绘制曲线在MA TLAB 中实现,利用下述的程序段: num=[b2 b1 b0]; den=[1 a2 a1 a0]; H=tf(num,den); bode(H) margin(H) hold on 2.1 比例环节 传递函数:()G s K = 频率特性:()G j K ω= 对数幅频特性:()20lg L j K ω= 对数相频特性:()0?ω= 程序段: num=[0 10]; den=[0 1]; H=tf(num,den); bode(H) margin(H) hold on 结论:放大环节的对数幅频特性是一条幅值为20lgK 分贝,且平行于横轴的直线,相频特性是一条和横轴重合的直线。 K>1时,20lgK>0dB ;K<1时,20lgK<0dB 。 2.2 惯性环节(低通滤波特性) 传递函数:1()1G s s τ= + 频率特性:()()()j G j A e ?ωωω= 对数幅频特性:2 1()20lg 1() L ωτω=+ 对数相频特性:()arctan ?ωτω=- 绘制1()10.1G s s =+的Bode 图 程序段: num=[0 1]; den=[0.1 1];H=tf(num,den); bode(H) margin(H) hold on 结论:惯性环节的对数幅频特性可以用在1ωτ= 处相交于0分贝的两条渐近直线来近似表示:当1ωτ 时,是一条0分贝的直线; 当1ωτ 时,是一条斜率为-20dB/dec 的直线。 惯性环节具有低通特性,对低频输入能精确地复现,而对高频输入要衰减,且产生相位迟后。因此,它只能复现定常或缓慢变化的信号。 2.3 积分环节 传递函数:1 ()G s s τ= 频率特性:()()()j G j A e ?ωωω= 对数幅频特性:1 ()20lg L j ωτω = 对数相频特性:()2 π?ω=- 在同一坐标中绘制1()G s s = 、1()0.1G s s = 和 1()0.01G s s = 的Bode 图 num1=[0 1];den1=[1 1];H1=tf(num1,den1); bode(H1)margin(H1)hold on

BODE图画图过程

电机定位系统校正(BODE图) MATLAB软件具有强大的计算能力和绘图功能,能够快速、准确地做出频域特性曲线。利用MATLAB^制系统的Bode图,为控制系统设计和分析提供了极大的方便。 1.创建M-file文挡,并输入如下程序,运行后生成LTI对象my_sys: J=3.2284e-6; b=3.5077e-6; K=0.0274; R=4; L=2.75e-6; num=[0 0 0 K]; den=[(J*K) (J*R+(L*b)) ((b*R)+O2) 0]; my_sys=tf( nu m,de n); 打开Matlab7.0软件,并新建一个空文档,将程序复制到文档内,如图1所示: 图1 2.运行程序并保存运行结果。如图2所示: 图2

图4 3. 打开 Start-Toolboxes — Control System — SISO Design Tool 启动SISO Design,如图3所示 4. 将my_sys 程序导入到SISO Design Tool 中, 如图4所示 啪号TW Hi^vicn Toni P il ■ ErLE ? Vi, mr r za-ipMi-i k t Dqri £x> al > 1* E □'l'l. ?冷日■丁 11*』]1卜 l>] X o 4 T 11; ?M s K 1 m i 4||'=4Dp 山 watL a ft — 15-S-IQ Jt 午肌 "■存 -i-s — 15-5-in 上午恥 ny_2F2 c !x| F L 1? Edu I 上LIM tmp viiK?l&rl 姿kl 尸L C. Tadul llaJp II H n y. L R ann 曲 闻 出田画田田刚 Dur r ■n.l 卫a r nry CtiaiTijinfl Hi ?f -15-5-JQ 上牛奔 ■■■jip.syg G ii — 15-5-10 上午和 i SB (TT = EJS > 尺jgtrt.Hci nr ||T ^ nkm 1rn mfi B * njrtlini £>■ |si90 ?ui. fi 1 v f Ja S D .EM 1 色 ■'i -Fi'Mii ^mpp+if-slnr Ci|r TBH.*: n i. B-Bf I arv ^(Bft-olKl fir tiv? for “偷史 俺±&n )埔1口 曲 riw^uefCf rijSr.1 4 fftcrt

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 bode图的绘制

在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图的时候,系统就会知道是这两个变量之间的关系。 图1 建好model 其次,选择线性分析。Tools->Control Design ->Linear Analysis。如图2。 图2 选择Linear Ansysis 将出现如图3所示的Control and Estimation Tools Manager窗口。

图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等等。方法都是相同的。选择选择“bode response plot”,如图4所示。 图4 画出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: 0 PhaseUnits: '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) 这时,我们将会看到以下的伯德图:

matlab绘制bode图技巧

我们经常会遇到使用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: 0 PhaseUnits: '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) 这时,我们将会看到以下的伯德图:

第六课 系统Bode图及Nyquist曲线的绘制及稳定性分析

实验六 系统Bode 图及Nyquist 曲线的绘制及稳定性分析 一、 教学目的 (1) 加深了解系统及元件频率特性的物理概念。 (2) 进一步加深对Bode 图及Nyquist 曲线的了解。 (3) 熟练掌握用MATLAB 分析系统频率特性的方法。 二、 教学内容 (1) 设计一阶惯性环节1 2.01)(+=s s G 模拟电路,并完成频率特性曲线测试。 参考程序: s=tf('s'); G=1/(0.2*s+1); figure(1) nyquist(G) figure(2) bode(G) 说明: ● 命令nyquist()用来绘制系统的nyquist 曲线(开环幅相曲线)。调用格式为 nyquist(sys) nyquist(sys,w) [re,im,w]=nyquist(sys) 其中,sys 为系统开环传递函数模型,第一种格式频率向量w 自动给定,第二种格式频率向量由人工给定,第三种格式不作图,返回变量re 为G(jw)的实部向量,im 仍为G(jw)的虚部向量,w 为频率向量。 ● 函数bode()用来绘制系统的Bode 图,调用格式为: bode(sys) bode(sys,w) [m,p,w]=bode(sys)

其中,sys 为系统开环传递函数模型,第一种格式频率向量w 自动给定,第二种格式w 由人工给定,可由命令logspace()得到对数等分的w 值。第三种格式不作图,返回变量m 为幅值向量,p 为相位向量,w 为频率向量。 (2) 系统的模拟电路原理图及系统的结构框图如图所示, ① 求系统传递函数。取R2=500K Ω,经计算得系统的传递函数为: 500 100500)(2++=s s s G ② 作出系统开环对数幅频特性、相频特性,求出相应的频域性能指标。 参考程序: num=[500];

波特图的画法

二、 对数频率特性 假设:) ()()(ω?ωωj e j H j H =。对其取对数: [][] [])()()()(ln )(ln )(ln ) (ω?ωω?ωωωω?j G j j H e j H j H j +=+== 其虚部正是系统的相频特性,而实部: [])(ln )(ωωj H G = 称为对数增益,反映了系统幅频特性,单位奈培(Np, Neper )。 一般情况下不用自然对数,而取常用对数,定义: [])(log 20)(ωωj H G = 单位:分贝(Deci-Bel,dB)。 奈培与分贝的转换关系:1 Np = 8.686 dB 在理论分析中,一般使用Np ;在实际应用中,一般使用dB 用分贝表示增益,解决了信号动态范围与精度之间的矛盾。如果在频率坐标中同样使用对数坐标,则同样可以解决频率的范围与精度之间的矛盾。这样一来就形成了波特图。 ? 波特图的横坐标可以用ωlog ,也可以用f log ; ? 在波特图的横坐标上,一般直接标注频率值; ? 波特图的横坐标上只能表示0>ω或者0>f 频率下的系统特性。 图中的二、三象限并非表示频率小于零的部分,而是表示频率小于1(大于零)部分频率特性。 ? 根据系统频率特性的共扼对称性,不难得到频率小于零部分的 特性。 ? 在波特图的纵坐标上,可以标注系统幅频特性值(如图中红字所 示),也可以标注分贝值。 ? 为了方便参数的判读,实际工程中的波特图中的刻度也不是按照等 间隔设置的,而是按照对数间隔设置。例如下图。

有专用的对数坐标图纸可以用于手工绘制波特图。 波特图的纵坐标上同样也只表示了系统幅频特性中大于零的部分。 图中的三、四象限并非表示系统的幅频特性小于零,而是表示系统的幅频特性小于1(大于零)。 三、 线性系统的波特图 1、一般系统的波特图 ??? ? ??-==∑ ∑==∏∏--=n i i m i i j n i i m i i e p j z j H j H 111 10 )(αβωωω ∑∑∑∑====-+=---+== =n i pi m i zi n i i m i i G G H p j z j H j H G 1 1 01 10) ()(log 20log 20log 20log 20)(log 20)(ωωωωωω 所以,不仅系统的相频特性是各个零点或极点的相频特性的叠加,而且系统的幅频特性是各个零点或极点的相频特性的叠加。所以,可以根据各个零点或极点的波特图的叠加得到系统的波特图。 2、一次因式的波特图 1) 单个零点的波特图: )1(1 )1()(i i i i i zi T j T z j z z j j H ωω ωω+= -+-=-= (1)幅频特性 ()[] 2 1log 10log 201log 201 log 20)(log 20)(i i i i zi zi T T T j T j H j G ωωωω++-=++==

bode图怎么绘制

不过在系统辨识工具箱中有相应的函数能够完成该功能。 应该是invfrqs函数。但这个是由频率响应得到的,所以你的对输入输出信号做傅里叶变换得到频率响应后在用这个函数拟合传递函数。 使用matlab工具箱更为方便和直观: 1. 把u,y信号导入到工作空间里。 2. 用ident命令打开matlab系统辨识工具箱,然后点击import data,从新打开界面里导入工作空间的数据。然后可以通过图形查看该输入输出信号,或者在proprocess进行信号预处理。 3. 根据你的模型在estimate里选择linear parameter models,个人觉得你应该选择ARX 结构,确定阶数,然后进行估计。 4. 在主界面里查看估计模型,并且可以和实际输出比较,看看拟合度。 详细使用方面参考帮助文档System Identification Toolbox User's Guide 也只能是拟合吧,拟合的目标也只能是有限的一些典型传递函数。 做过这个,就是拟合吧 在sisotool工具里放置合适的零极点,尽量使曲线吻合,得到传递函数 我是大概知道实测的曲线的零极点分布的,然后去拟合的,这样好做点 如果已经得到Bode plot,就幅度vs频率,相位vs频率曲线,根据+/-20db/dec,+/-40db/dec 渐近线先预测几个pole,zero,double pole double zero,然后再去近似了。

还有几个比较困难的地方是: 1)实际系统引入的杂散参数和群延迟特性,才是拟合和预测的难点。 2)实际测量时仪器已经采用了离散化的数字处理手段,还有测量系统处理误差和测量时注入的扰动幅度所引起的误差,对低频还好,对高频都是很大的影响。 3)所以目前已有的模型,多是对1/2开关频率之前的预测,V2等新模型有所改进,但是还是有其局限性 以我测试的为例吧, R=1e3; C=1e-7; L=0.1; Rl=1000; magdb_LCR=zeros(1,1e5);% -sL-R-|(1/sC) mag_LCR=zeros(1,1e5); phase_LCR=zeros(1,1e5); freq=(1:1e5); RCplot=zeros(1,1e5); LCRplot=zeros(1,1e5); for f=1:1:1e5 LCR=1/((1i*2*pi*f)^2*L*C+1i*2*pi*f*C*Rl+1); LCRplot(f)=LCR; mag_LCR(f)=abs(LCR); magdb_LCR(f)=20*log10(abs(LCR)); phase_LCR(f)=angle(LCR)*180/pi; end 我用上方的函数写一个已知的传递函数,生成对应频率下的幅值和相位。频率响应曲线如下,需要注意的是,幅值的纵坐标不是dB。

第六课系统Bode图与Nyquist曲线的绘制与稳定性分析

实验六系统Bode图及Nyquist曲线的绘制及稳定性分析一、教学目的 (1)加深了解系统及元件频率特性的物理概念。 (2)进一步加深对Bode图及Nyquist曲线的了解。 (3)熟练掌握用MATLAB分析系统频率特性的方法。 二、教学内容 (1)设计一阶惯性环节 1 G(s)模拟电路,并完成频率特性曲线测试。 0.2s1 参考程序: s=tf('s'); G=1/(0.2*s+1); figure(1) nyquist(G) figure(2) bode(G) 说明: 命令nyquist()用来绘制系统的nyquist曲线(开环幅相曲线)。调用格式为nyquist(sys) nyquist(sys,w) [re,im,w]=nyquist(sys) 其中,sys为系统开环传递函数模型,第一种格式频率向量w自动给定,第二种格式频率向量由人工给定,第三种格式不作图,返回变量re为G(jw)的实部向量,im仍为G(jw)的虚部向量,w为频率向量。 函数bode()用来绘制系统的Bode图,调用格式为: bode(sys) bode(sys,w) [m,p,w]=bode(sys)

其中,sys为系统开环传递函数模型,第一种格式频率向量w自动给定,第二种格式w由人工给定,可由命令logspace()得到对数等分的w值。第三种格式不作图,返回变量m为幅值向量,p为相位向量,w为频率向量。 (2)系统的模拟电路原理图及系统的结构框图如图所示, ①求系统传递函数。取R2=500KΩ,经计算得系统的传递函数为: G(s) 500 2s s100 500 ②作出系统开环对数幅频特性、相频特性,求出相应的频域性能指标。参考程序: num=[500];

关于绘制开环Bode图的解说

开环Bode 图的绘制 1 关于绘制开环Bode 图的解说 教材中有绘制的步骤,熟悉典型环节Bode 图,惯性、一阶微分、振荡环节的近似折线画法的,自然能从阅读步骤中读出味道。用各环节的高频近似折线绘制开环Bode 图,只能用高频近似表达式,而不能用精确表达式。因此,必须熟悉惯性、一阶微分、振荡环节的高频近似表达式。 例4.4 设某系统的开环传递函数为 ????????+?+??? ??++=1503.0250)141()1101( 30)()(2s s s s s s H s G 试绘制其伯德图。(绘制的图见4.23) 解:(1)将开环传递函数中典型环节化为常数项为1的标准形式。振荡环节也可采用固有频率表示的标准形式;注意,比例环节K 值将会发生变化。本例的开环传递函数中各环节都是标准形式。 (2)计算K lg 20 54.2930lg 20lg 20==K dB (3)开环传递函数中没有积分环节,则绘出K lg 20 dB 的水平直线 开环传递函数中有积分环节,则绘出过(ω=1,K lg 20dB)点、斜率为-20dB/dec 的直线。本例有积分环节,因此过(1,29.5 dB)点b 、斜率为-20dB/dec 的直线,此斜率线即为比例和积分环节对数幅频特性叠加的结果。 (4)从低到高列写各环节的转折频率,并标注在频率轴上。本例有: 惯性环节41=T ω,如图中c 点对应的频率;一阶微分环节102=T ω,如图中d 点的频率;振荡环节503=T ω,如图中e 点的频率; (5)从低到高,在原斜线转折频率对应处,将对应环节高频段近似线的斜率加到原斜线的斜率上,并从该转折频率对应点开始,按叠加所得斜率,绘制斜线,直至下一个环节的转折频率,再按频率叠加方法继续作图。在本例中: 在比例和积分环节叠加的斜线上,找到41=T ω对应的点c ,把惯性环节高频段斜率-20dB/dec 加到原斜率-20dB/dec 上,为-40dB/dec ,从c 点按-40dB/dec 斜率绘制斜线直到,102=T ω的d 点处,叠加上一阶微分环节的斜率,得-20dB/dec ,从d 点出发绘制-20dB/dec 斜率线到503=T ω的e 点处,叠加振荡环节的斜率,得-60dB/dec ,从e 点出发绘制-60dB/dec 斜率线。 为什么可以在转折频率处叠加斜率?因为惯性、一阶微分、振荡环节在其转折频率前的低频段,它们的对数幅频特性都是0dB ,并不影响该环节转折频率前的叠加结果,即不起作用。换言之,在其转折频率后,该环节才影响开环对数幅频特性,可用下面的表达式进一步说明之。 在10T ωω≤<的频段,ωωlg 20lg 20)(-=K L ,惯性、一阶微分、振荡环节都是0dB ; 在21T T ωωω≤<的频段,ωωω25.0lg 20lg 20lg 20)(--=K L ,加入惯性环节的影响,一阶微分、振荡环节仍然是0dB ; 在32T T ωωω≤<的频段,ωωωω1.0lg 2025.0lg 20lg 20lg 20)(+--=K L ,加入一阶微分环节的影响,振荡环节仍然是0dB ; 在3T ωω>之后,ωωωωω02.0lg 401.0lg 2025.0lg 20lg 20lg 20)(-+--=K L 上式等号右边的项,依次为比例、积分、惯性、一阶微分、振荡环节。

非最小相位系统特性分析及其伯德图绘制

最小相位系统与非最小相位系统 以及非最小相位系统的伯德图绘制方法 一、研究目的 1)掌握区分最小相位系统与非最小相位系统的方法 2)了解非最小相位系统的伯德图绘制方法 二、直观定义 最小相位传递函数:在s平面右半平面没有零极点的传递函数非最小相位传递函数:在s平面右半平面有零极点的传递函数最小相位系统:拥有最小相位传递函数的系统 非最小相位系统:拥有非最小相位传递函数的系统 三、典例分析 G1(s)=(最小相位),G2(s)=(非最小相位); 做出G1(s)伯德图如下: 做出G2(s)伯德图如下:

由图并进一步分析观察可以得出一般性结论: 1)对于两张图中的相频和幅频曲线可看出它们具有相同的幅值特性,但是相频曲线却不同。 2)对于最小相位系统,其传递函数由单一的幅值曲线唯一确定,对非最小相位系统则不是这种情况。 3)在具有相同幅值特性的系统中,最小职能范围系统传递函数的相角范围在这类系统中是最小的,任何非最小相位系统传递函数的相角范围都大于最小相位系统的相角范围。 4)最小相位系统的幅值特性和相角特性具有唯一对应关系。 5)若系统幅值曲线在0-的全部频率上给定,则相角曲线也被唯一确定,这仅仅对最小系统系统成立。 提出疑问: 1)为什么具有延迟环节的系统就是非最小相位系统? 由于e-τs1-,显然,有一正根1/,在s右半平面必定有一个零点,所以具有延迟环节的系统一定是非最小相位系统‘ 2)常见的非最小相位系统有哪些? ○1存在延迟环节 ○2存在局部正反馈(有待进一步探究) 四、非最小相位系统的伯德图 (1)非最小相位环节共有5种(除延迟环节外) ①不稳定比例环节: -K; ②不稳定惯性环节: 1/(-Ts+1),(T>0); ③不稳定一阶微分环节: -Ts+1,(T>0); ④不稳定振荡环节: , ⑤不稳定二阶微分环节: , 下面讨论非最小相位环节和对应的最小相位环节的Bode图特点: ①最小相位的比例环节和非最小相位的比例环节: 最小相位比例环节: G(s)=K, L(ω)=20lgk, φ(ω)=0° 非最小相位比例环节:G(s)=-K, L(ω)=20lgk, φ(ω)=-180° ②最小相位的惯性环节和非最小相位的惯性环节: 最小相位的惯性环节: G(s)=1/(1+Ts),(T>0),L(ω)=-10lg(1+T2ω2),φ(ω)=-tan-1Tω非最小相位的惯性环节: G(s)=1/(1-Ts),(T>0),L(ω)=-10lg(1+T2ω2),φ(ω)=-180+tan-1Tω

bode图画图过程

电机定位系统校正 (BODE图) MATLAB软件具有强大的计算能力和绘图功能,能够快速、准确地做出频域特性曲线。利用MATLAB绘制系统的Bode图,为控制系统设计和分析提供了极大的方便。 1. 创建M-file文挡,并输入如下程序,运行后生成LTI对象my_sys: J=; b=; K=; R=4; L=; num=[0 0 0 K]; den=[(J*K) (J*R+(L*b)) ((b*R)+K^2) 0]; my_sys=tf(num,den); 打开软件,并新建一个空文档,将程序复制到文档内,如图1所示: 图1 2.运行程序并保存运行结果。如图2所示: 图2 3.打开 Start-Toolboxes—Control System—SISO Design Tool。启动SISO Design,如图3所示

图3 4. 将my_sys程序导入到SISO Design Tool中,File-Import 如图4所示 图4 5. 在View菜单中,关闭根轨迹显示,只显示开环的Bode图。如图5所示

图5 6. 加积分环节;加零点(60角频率)将各个参数进行积分:空白处右键—Add Pole/Zero—Integrator。如图6所示: 图6 7.在magnitude曲线加零点,然后Analysis菜单下Response to Step Command指令。如图7所示:

图7 8. 在管理反馈界面中,只显示闭环的r与y的关系—LT1 Viewer For SISO Design Tool界面空白处右键—Systems—Closed Loop :r to u (green),如图8所示: 图8 9. 添加零点和极点,如图8所示,并移动极点、零点和线的位置,调整LT1 Viewer For SISO Design Tool窗口中函数图像的变化直到符合Bode图,如图9所示:

基于伯德图的相位超前校1

2013 - 2014学年第1学期 《MATLAB论文》 基于伯德图的相位超前校正 题目:基于伯德图的相位超前校正 专业:电气工程及其自动化 班级: XX电气工程及其自动化(X) 姓名: XXX 代课教师: XXX 成绩:

基于伯德图的相位超前校正 校正的含义 就是在调整放大器增益后仍然不能全面满足设计要求的性能指标的情况下,加入一些参数可以根据需要而改变的机构或装置,使系统整个特性发生变化,达到设计要求。 超前校正的应用方法 待校正闭环系统的稳态性能要求,可通过选择已校正系统的开环增益来保证。用频域法设计无源超前网络的步骤如下: 1) 根据稳态误差要求,确定开环增益K ,并绘制未校正前系统的伯德图。 2) 利用已确定的开环增益,计算待校正系统的相角裕度。 3) 根据截止频率''c ω的要求,计算a 和T 。令''m c ωω=,以保证系统的响应速 度,并充分利用网络的相角超前特性。显然''m c ωω=成立的条件是 )(m '+=''c ωγ?γ '''()()10l g c c m L L a ωω-== 根据上式不难求出a 值,然后由(1-3)确定T 。 4) 验算已校正系统的相角裕度''γ。验算时,由式(1-4)求得m ?,再由已知 的''c ω算出待校正系统在''c ω时的相角裕度''()c γω。最后,按下式算出 )(m '+=''c ωγ?γ 校验指标,绘制系统校正后的伯德图,检验是否满足给定的性能指标是否满足要求;如果验算结果不满足指标要求,要重选m ω,一般使m ω增大,然后重复以上步骤。 控制系统的超前校正 假设一传递函数为:12()(10.2)(10.4) G s s s s =++ 上式为最小相位系统,其MATLAB 伯德图如图1所示。 程序: []()12,0.08 0.06 1 0G tf =;[kg,r]=margin(G) []()12,0.08 0.06 1 0G tf =;margin(G)

实验二:绘制控制系统的Bode图(学生用)

实验二:绘制控制系统的Bode图 Bode Graphics of Controlling System 一、实验目的 1.利用计算机做出开环系统的伯德图; 2.观察记录控制系统的开环频域性能; 3.控制系统的开环频率特性分析。 二、实验步骤 1.在Windows界面上双击matlab图标,即可打开MATLAB命令平台。 2.练习相关M函数 (1)伯德图绘图函数: bode(sys) bode(sys,{wmin,wmax}) bode(sys,w) [m,p,w]=bode(sys) 函数功能:对数频率特性作图函数,即伯德图作图。 格式1:给定开环系统的数学模型对象sys作伯德图,频率向量w自动给出。 格式2:给定变量w的绘图区间为{wmin,wmax}。 格式3:频率向量w由人工给出。w的单位为[弧度]/秒,可以由命令logspace得到对数等分的w值。 格式4:返回变量格式,不作图。 m为频率特性G(jω)的幅值向量,m=︱G(j)︳。 p为频率特性G(jω)的幅角向量,p=arg[G(jω)],单位为角度(°)。 w为频率向量,单位为[弧度]/秒。 更详细的命令说明,可键入“help bode”在线帮助查阅。 例如,系统开环传递函数为 作图程序为 num=[10]; den=[1 2 10]; sys=tf(num,den); bode(sys); grid on 上面两句或者直接换为:bode(num,den); 绘制伯德图如图1所示。 或者给定人工变量 w=logspace(-1,1,32); % w范围和点数n ,下面对该函数做了详细的说明 bode(num,den,w); %或者sys=tf(num,den); bode(sys,w); grid on

新版本matlab中绘制bode图技巧

百度文库里有一篇《matlab绘制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) 这样,我们就可以得到以下的伯德图: 下面对其进行更改,使得: 一、横坐标是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); 这时,我们可以得到以下的伯德图:

相关文档