使用simulink bode图的绘制

合集下载

(完整版)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: 0PhaseUnits:’deg’PhaseVisible: 'on'PhaseWrapping: 'off'PhaseMatching:’off’PhaseMatchingFreq: 0PhaseMatchingValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;P。

BODE图的讲解

BODE图的讲解
§5.6 利用开环频率特性分析系统的性能
§5.7 利用闭环频率特性分析系统的性能
共二十三页
§5.3
对数(duì shù)频率特性 ( Bode )
Bode图介绍
(jièshào)
共二十三页
§5.3
对数(duì shù)频率特性 ( Bode)(2)
Bode图介绍(jièshào)
横轴 按 lg 刻度,dec “十倍频程”
绘制开环系统(xìtǒng)Bode图的 步骤
⑴ 化G(j)为尾1标准型
⑵ 顺序列出转折频率
例1
G(s)
s(
40(s 0.5) 0.2)( s2 s 1)
100( s 1)
G(s)
0.5
s( s 1)(s2 s 1)
0.2
0.2 惯性环节
0.5 一阶复合微分
1 振荡环节
⑶ 确定低频特性
例1 根据(gēnjù)Bode图确定系统传递函数。
解. 依图有 G(s) K
Ts 1
30
20lg K 30 K 1020 31.6
转折频率 2 1 T T 0.5
G(s)
3.16 s 1
2
• Bode图与Nyquist图之间的对应(duìyìng)
关系: • 截止频率c:G( jc ) 1
最小转折频率之左 的特性或其延长线
基准点 ( 1, L(1) 20lg K ) 斜率 20 v dB dec
⑷ 叠加作图
一阶
二阶
惯性环节 -20dB/dec
复合微分 +20dB/dec
振荡环节 -40dB/dec
复合微分 +40dB/dec
共二十三页
0.2 惯性环节 -20

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: 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处的频率值。

simulink算电路的截止频率计算

simulink算电路的截止频率计算

simulink算电路的截止频率计算Simulink是一种广泛应用于建模、仿真和分析动态系统的工具,其中包括电路系统。

在电路中,截止频率(也称为角频率)是一个重要的参数,用于确定系统的频率响应特性。

在Simulink中计算电路的截止频率可以通过不同的方法实现,下面将介绍两种主要的方法。

方法一:利用传递函数在Simulink中,可以使用传递函数模块来建立电路系统的传递函数模型。

传递函数是描述系统输入与输出之间关系的数学表达式,通常用多项式来表示。

传递函数的形式为:H(s) = N(s)/D(s)其中s是复数变量,N(s)和D(s)分别表示传递函数的分子和分母多项式。

首先,需要将电路系统转换为传递函数模型。

可以使用Simulink中的各种模块来建立电路的元件模型,并将它们串联或并联来模拟整个电路。

然后,将各个元件的电压和电流关系转换为传递函数的形式,并计算出传递函数的分子和分母多项式。

接下来,利用传递函数计算截止频率。

传递函数的截止频率是指当输入信号的频率达到一定值时,输出信号幅度的下降到一定比例(通常是-3dB)的频率。

可以使用Bode图来表示传递函数的频率响应特性。

在Simulink中,可以使用Bode模块来生成传递函数的Bode图,并从图中读取截止频率。

方法二:利用频域分析工具Simulink还提供了丰富的频域分析工具,可以直接用于计算电路的截止频率。

首先,同样需要建立电路的模型。

可以使用Simulink中的各种模块来建立电路的元件模型,并将它们连接起来。

然后,在电路模型中添加频域分析工具,例如频谱分析器或频率响应分析器。

这些工具会对输入信号进行频域分析,并计算出特定频率下的幅度和相位信息。

接下来,运行模型并观察输出结果。

频域分析工具会生成相关图表,其中包括幅度和相位频谱。

从幅度频谱中找到幅度下降到一定比例(通常是-3dB)的频率即可得到截止频率。

需要注意的是,截止频率的计算通常是基于理想情况下的模型和假设,实际电路中可能会存在各种非线性和非理想特性,因此计算结果可能与实际情况存在差异。

simulink频率响应曲线

simulink频率响应曲线

simulink频率响应曲线
在Simulink中绘制频率响应曲线,可以通过使用频率响应分
析工具箱中的块以及Matlab中的快速傅里叶变换(FFT)函
数来实现。

以下是一种常用的方法:
1. 建立一个输入信号源模块,可以是恒定的幅度和频率的正弦波信号。

2. 将输入信号传递给一个系统模型,该系统模型是你想分析频率响应的模型。

这可以是一个已经建立的Simulink模型,也
可以是一个自定义的系统。

3. 将系统模型的输出连接到一个快速傅里叶变换(FFT)模块。

FFT模块将时域信号转换为频域信号。

4. 将FFT模块的输出传递给一个幅度谱和相位谱测量模块。

这将计算频域信号的振幅和相位。

5. 将幅度谱和相位谱通过作图工具显示出来,即可得到频率响应曲线。

需要注意的是,频率响应曲线的绘制是基于离散频率的,因此需要给定适当的采样率来表示连续频率范围。

此外,还可以使用计算工具箱中的其他分析工具,如频率响应分析工具、Bode图等来绘制频率响应曲线。

(完整版)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图(学生用)

实验二:绘制控制系统的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绘制伯德图如图2所示。

图3 伯德图图4 伯德图(2)对数分度函数:logspace(d1,d2)logspace(d1,d2,n)函数功能:产生对数分度向量。

格式1:从10d1到10d2之间作对数等分分度,产生50个元素的对数等间隔向量。

MATLAB中bode图绘制技巧

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处的频率值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在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图
稍等片刻,便出现了图1中output port和input port的bode图了。

是不是很简单?!
图5 model的bode图
至此,bode已经画完。

如果此时还想看看step response或者Nyquist图,也是可以的。

只需在bode图上右击,选择Plot Types->Step或者Nyquist等等,as you need!我们选择step,便会出现阶跃响应图。

如图6、7所示。

图6 画阶跃响应
图7 显示阶跃响应
上面的bode图和step response都没有网格,看着不精确,没关系。

在图上右击,选择Grid,就能出现网格了。

想要知道曲线上某点的坐标时,只需在该点上单击,就会显示出该点的坐标值。

如图8a,8b。

图8a
图8b 显示网格和曲线上的坐标
关于图画里的操作,就介绍这么多,其他的功能自己去摸索。

回到图3中的Control and Estimation Tools Manager窗口。

在该窗口中,除了可以画bode 图之外,还可以看到系统的状态方程、传递函数或者零极点方程。

运行完“Linearize Model”后,单击左侧“Linearization Task”下的“Model”,在下方的下拉列表里选择“Zero Pole Gain”(也可以选择“State Space”或者“Transefer Funciton”),就能看到系统输入输出的零极点增益方程。

如下图9。

图9 查看系统输入输出之间的关系描述(状态议程、零极点增益、传递函数)
通过Linear Analysis工具,我们可以得到很多关于系统的直观的或者非直观的信息,如bode图、Nyquist图、状态方程、传递函数等等。

以上简单介绍了Matlab/Simulink中利用Control Design的Linear Analysis绘制系统的bode 图,及查看系统输入输出关系的描述。

Matlab的功能十分强大,还有许多功能需要探索,以便其更好的帮助我们完成系统建模仿真和控制等。

相关文档
最新文档