matlab伯德图画法
- 格式:docx
- 大小:164.05 KB
- 文档页数:6
实验六 基于MATLAB 控制系统的Nyquist 图及其稳定性分析 一、实验目的1、熟练掌握使用MATLAB 命令绘制控制系统Nyquist 图的方法。
2、能够分析控制系统Nyquist 图的基本规律。
3、加深理解控制系统乃奎斯特稳定性判据的实际应用。
4、学会利用奈氏图设计控制系统。
二、实验原理奈奎斯特稳定性判据(又称奈氏判据)反馈控制系统稳定的充分必要条件是当从变到时,开环系统的奈氏曲线不穿过点且逆时针包围临界点点的圈数R 等于开环传递函数的正实部极点数。
奈奎斯特稳定性判据是利用系统开环频率特性来判断闭环系统稳定性的一个判据,便于研究当系统结构参数改变时对系统稳定性的影响。
1、对于开环稳定的系统,闭环系统稳定的充分必要条件是:开环系统的奈氏曲线不包围点。
反之,则闭环系统是不稳定的。
2、对于开环不稳定的系统,有个开环极点位于右半平面,则闭环系统稳定的充分必要条件是:当从变到时,开环系统的奈氏曲线逆时针包围点次。
三、实验内容1、绘制控制系统Nyquist 图例1、系统开环传递函数,绘制其Nyquist 图。
210()210G s s s =++M-fileclcclear all den=[10]; num=[1 2 10]; sys=tf(den,num) nyquist(sys);2、根据奈氏曲线判定系统的稳定性例2、已知绘制Nyquist 图,判定系统的稳定性。
M-fileclcclear320.5()()20.5G s H s s s s =+++den=[0.5];num=[1 2 1 0.5];sys=tf(den,num);nyquist(sys)roots(num)ans =-1.5652-0.2174 + 0.5217i-0.2174 - 0.5217i【分析】由于系统奈氏曲线没有包围且远离(-1,j 0)点,且p=0,因此系统闭环稳定。
四、实验能力要求1、熟练使用MATLAB绘制控制系统Nyquist曲线的方法,掌握函数nyquist ( )的三种调用格式,并灵活运用。
G(S)=10
描绘该传递函数的对数幅频曲
0.25S+1(S2+S+1)
线:
黑色线是人工绘制的伯德图,红色线是MATLAB绘制的
注意◎1:幅度曲线里的斜率分别是0db、-40db、-60db,手工绘制的图像和MATLAB绘制的吻合!
◎2:相角曲线里手工绘制的过点(1,-90)、(4,-225),而实际上:相角曲线近似过(1,-90),没过(4,-225),前者原因是MATLAB模拟有误差,后者是人工绘制时有误差,当W=4
时,两个惯性环节1
相位角还没到-180(当W=无穷大时,
(S+S+1)
相位角趋近于-180),此时相位角为165.0686,另外一个惯性环在W=4时相位角为-45,所以在W=4时,各个环节相位节1
0.25S+1
角之和为210.0686,这个是真实值,也就是说,人工绘制时简单地看做是(-180-45)=-225,导致了上述的误差!。
使用MATLAB 绘制频率特性曲线姓名 黄勇 班级 16电气本三 学号 4702160186一、频率特性在定义谐波输入下,输出响应中与输入同频率的谐波分量与谐波输入的幅值之比A(ω)为幅频特性,相位之差)(ωϕ为相频特性,并称其指数表达形式:()()()j G j A e ϕωωω=为系统的频率特性。
总结上述我们可知:频率特性由两个部分组合而成,分别是幅频特性和相频特性。
稳态系统的输出信号与输入信号的相位之差我们称其为相频特性。
稳态系统输出与输入的幅值之比称为幅频特性。
另外频率响应对稳定系统和不稳定系统都适应,其中稳定系统的频率特性可以通过实验的方法确定。
二、频率特性的几何表示法⏹ 幅相频率特性曲线简称幅相特性曲线,或幅相特性,或极坐标图。
⏹ 对数频率特性曲线又称为伯德曲线或伯德图。
⏹ 对数幅相曲线又称为尼科尔斯曲线或尼科尔斯图。
三、惯性环节频率特性的绘制惯性环节的表达式为: ()11G s Ts =+T 的取值分别为2、4、7,使用MATLAB 软件绘制MATLABA的函数指令如下:指令说明:num为分子指令;den为分母指令;此次画图调用了伯德图画法(bode指令)。
绘制图如下:T=2时。
MATLABA的函数指令如下:绘制图如下:同理当T=4时。
MATLABA的函数指令如下:绘制图如下:四、振荡环节频率特性的绘制振荡环节的传递函数为: ()221=21nnGs ssζωω++在201取值,本次取值分别为0.1 0.3 0.5 0.707 0.85 0.91 1。
方法一:使用伯德图画MATLAB函数程序指令如下:MATLAB图形显示如下:方法二:使用奈奎斯特图画取值分别为0.1 0.3 0.5 0.707 0.85 0.91 1。
MATLAB函数程序指令如下:MATLAB图形显示如下:。
控制系统的伯德图11020016 奚瑶1、实验目的(1) 利用计算机做出开环系统的伯德图;(2) 观察记录控制系统的开环频域特性;(3) 控制系统的开环频率特性分析。
2、实验步骤(1) 打开MATLAB(2) 练习相关函数3、实验内容(1)121)(22++=Ts s T s G ξ{T=0.1 01.0,1.0,5.0,1,2=ξ}分别作图并保持 >>num=[1];den=[0.01 0.4 1];bode(num,den)>> hold on>> den1=[0.01 0.2 1];bode(num,den1)>> hold on>> den2=[0.01 0.01 1]; bode(num,den2)>> hold on>> den3=[0.01 0.02 1];bode(num,den3)>> hold on >>den4=[0.01 0.002 1];bode(num,den4)(2))11.0)(101.0(6.31)(++=s s s s G 要求:1)做伯德图,在曲线上标出:幅频特性——初始段斜率、高频段斜率、开环截止频率、中频段穿越斜率 相频特性——低频段渐进相位角、高频段渐进相位角、-180°的穿越频率num=[31.6];den=[0.001 0.11 1 0];bode(num,den)grid初始段斜率=dec dB 202.211.001.1508.29-≈-=-- 高频段斜率= dec dB 3.57-≈dec dB 60-开环截止频率=16.3中频段穿越斜率= dec dB 4.40-≈dec dB 40-低频段相位角=-91.1°高频段相位角=-269°-180°线的穿越频率=322)由稳定裕度命令计算系统的稳定裕度c γ和g L ,并确定系统的稳定性 num=[31.6];den=[0.001 0.11 1 0] ;sys=tf(num,den);margin(num,den);[Gm(0),Pm(0),wg(0),wp(0)]=margin(sys);g L =11 c γ=180-158=22°稳定裕度g L > 6dB 相位裕度 c γ> 0°,但<30°所以系统稳定,但是相位裕度低于30°,接近于临界稳定点,系统趋于等幅震荡,稳定性相对较差。
可编辑修改精选全文完整版目录1 滞后-超前校正设计目的和原理 (1)1.1 滞后-超前校正设计目的 ............................................................................... 1 1.2 滞后-超前校正设计原理 ............................................................................... 1 2 滞后-超前校正的设计过程 .. (2)2.1 校正前系统的参数 (2)2.1.1 用MATLAB 绘制校正前系统的伯德图 .............................................. 3 2.1.2 用MATLAB 求校正前系统的幅值裕量和相位裕量 .......................... 3 2.1.3 用MATLAB 绘制校正前系统的根轨迹 .............................................. 4 2.1.4 对校正前系统进行仿真分析 ............................................................. 5 2.2 滞后-超前校正设计参数计算 .. (6)2.2.1 选择校正后的截止频率c ω ................................................................ 6 2.2.2 确定校正参数β、2T 和1T ................................................................. 6 2.3 滞后-超前校正后的验证 . (7)2.3.1 用MATLAB 求校正后系统的幅值裕量和相位裕量 .......................... 7 2.3.2 用MATLAB 绘制校正后系统的伯德图 .............................................. 8 2.3.3 用MATLAB 绘制校正后系统的根轨迹 .............................................. 9 2.3.4 用MATLAB 对校正前后的系统进行仿真分析 .. (10)3 心得体会.................................................................................................................. 12 参考文献 . (13)用MATLAB进行控制系统的滞后-超前校正设计1 滞后-超前校正设计目的和原理1.1 滞后-超前校正设计目的所谓校正就是在系统不可变部分的基础上,加入适当的校正元部件,使系统满足给定的性能指标。
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这个函数是用来画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波特图绘制在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等等。
一、概述在控制系统工程中,频率响应是系统性能分析的重要手段之一。
Bode 图是频率响应的常用图示方法之一,它能够直观地展现系统的幅频特性和相频特性。
在MATLAB中,我们可以利用bode函数来绘制系统的Bode图,对系统的频率响应进行分析和评估。
二、bode函数的基本语法MATLAB中bode函数的基本语法如下:[bode_mag, bode_phase, w] = bode(sys)其中,sys表示系统的传递函数模型或状态空间模型;bode_mag和bode_phase分别表示系统的幅频特性和相频特性;w表示频率范围。
三、bode函数的使用方法1. 导入系统模型在使用bode函数之前,首先需要导入系统的传递函数模型或状态空间模型。
对于传递函数模型G(s),可以使用以下命令进行导入:sys = tf([1],[1 2 1])2. 绘制Bode图一旦导入了系统模型,就可以利用bode函数来绘制系统的Bode图。
使用以下命令可以实现:[bode_mag, bode_phase, w] = bode(sys)3. 显示Bode图绘制Bode图之后,可以使用以下命令来显示幅频特性和相频特性:figuresubplot(2,1,1)semilogx(w,20*log10(bode_mag))grid onxlabel('Frequency (rad/s)')ylabel('Magnitude (dB)')title('Bode Magnitude Plot')subplot(2,1,2)semilogx(w,bode_phase)grid onxlabel('Frequency (rad/s)')ylabel('Phase (deg)')title('Bode Phase Plot')四、实例演示下面我们以一个具体的系统为例,演示bode函数的使用方法。
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201811607368.9(22)申请日 2018.12.27(71)申请人 燕山大学地址 066000 河北省秦皇岛市海港区河北大街西段438号(72)发明人 姚静 尹钰鑫 董兆胜 寇成浩 田月 (74)专利代理机构 北京孚睿湾知识产权代理事务所(普通合伙) 11474代理人 韩燕(51)Int.Cl.G06T 11/20(2006.01)G06K 9/00(2006.01)G06F 17/15(2006.01)G01R 23/02(2006.01)(54)发明名称用MATLAB处理扫频数据获得伯德图的方法(57)摘要本发明公开了一种用MATLAB处理扫频数据获得伯德图的方法,包括如下步骤:数据导入;初步筛选;再次筛选;精准筛选;数据计算;图像绘制。
具体为:将扫频数据按频率分段,将每个数据点与前后m个点比较得到峰值点,将得到的峰值点中相邻时间小于n的峰值点去除;将峰值点组对,并保证每对峰值点中实际信号是滞后的;将同一频率下计算得到的幅值比、相位差取平均值。
使用MATLAB处理扫频数据并绘制伯德图,整个过程快速准确、简单省力。
该方法流程简单,易于操作,通用性强,准确可靠,可以用于处理扫频数据,更加快速准确的得到伯德图。
权利要求书2页 说明书5页 附图2页CN 109472846 A 2019.03.15C N 109472846A1.一种用MATLAB处理扫频数据获得伯德图的方法,其特征在于,包括如下步骤:S1、进行扫频实验,将实验数据导入MATLAB中,实验数据包括时间、频率、频率对应的指令信号以及实际信号;S2、按时间顺序在扫频数据中依次选取指令信号和实际响应曲线中的数据点,针对每一点处的数值,用循环结构使该数值与前后各m个数值相比较,若该数值在前后各m个数值中是最大值,则确定此时为峰值点,其中m为整数,m取值区间为小于等于最大频率对应的一周期内的采样点数且大于等于其半周期内的采样点数;确定扫频数据的所有峰值点及相应的时间值;S3、对筛选出的峰值点再次筛选,去除相邻峰值点间隔时间小于n值的峰值点,以去除连续的峰值点,从而得到更精确的峰值点,n值为扫频数据中最大频率所对应的周期的一半;S4、对得到的指令信号峰值点和实际信号峰值点按时间顺序进行组对,每对峰值点的实际信号对应的时间大于指令信号对应的时间,且其差小于该频率对应的周期,因此,当某对峰值点的实际信号对应时间小于指令信号时间,则删除该实际信号峰值点且后面的实际信号峰值点依次上移并进行组对,直至该对峰值点满足要求;当某对峰值点的实际信号与指令信号的时间差大于该频率下对应的周期,则删除该指令信号峰值点且后面的指令信号峰值点依次上移并进行组对,直至该对峰值点满足要求;S5、运用MATLAB进行数组运算,对成对的峰值点的峰值、指令信号和实际信号的时间间隔及其对应的频率进行计算,得到幅值比、相位差及其相应频率;S6、使用semilogx函数绘制伯德图。