主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

bodemag

频率响应的仅幅度波特图

说明

bodemag 使您能够生成仅幅度图来可视化动态系统的幅值频率响应。

如需更全面的函数,请参阅 bodebode 提供幅值和相位信息。如果您有 System Identification™ 工具箱,bode 还会返回计算值,包括统计估计值。

有关更多可自定义的绘图选项,请参阅 bodeplot

bodemag(sys) 创建动态系统模型 sys 的频率响应的波特幅值图。该图显示了系统响应的幅值(以 dB 为单位)作为频率的函数。bodemag 根据系统动态特性自动确定要绘制的频率。

如果 sys 是多输入多输出 (MIMO) 模型,则 bodemag 会生成数组波特幅值图,其中每个图显示一个 I/O 对的频率响应。

如果 sys 是具有复系数的模型,则有如下情形:

  • 在对数频率刻度中,图显示两个分支,一个分支用于正频率,另一个分支用于负频率。图中还显示了箭头,以指示各分支的频率值增大的方向。请参阅具有复系数的模型的波特图

  • 在线性频率刻度中,图显示单个分支,其对称频率范围以频率值零为中心。

示例

bodemag(sys1,sys2,...,sysN) 在同一张图上绘制多个动态系统的频率响应。所有系统必须有相同数目的输入和输出。

示例

bodemag(sys1,LineSpec1,...,sysN,LineSpecN) 为图中的每个系统指定颜色、线条样式和标记。

示例

bodemag(___,w) 绘制由 w 指定的频率的系统响应。您可以指定频率范围或频率向量。您可以将此语法与先前语法中的任何输入参数组合一起使用。

示例

示例

全部折叠

创建以下连续时间 SISO 动态系统的波特幅值图。

H(s)=s2+0.1s+7.5s4+0.12s3+9s2

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
bodemag(H)

MATLAB figure

bodemag 根据系统动态特性自动选择绘图范围。

在指定的频率范围内创建波特幅值图。当您要关注特定频率范围内的动态特性时,请使用这种方法。

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
bodemag(H,{1,100})
grid on

MATLAB figure

元胞数组 {1,100} 指定了波特幅值图中的最小和最大频率值。当您以这种方式提供频率界限时,该函数会选择频率响应数据的中间点。

或者,指定用于计算和绘制频率响应的频率点向量。

w = [1 5 10 15 20 23 31 40 44 50 85 100];
bodemag(H,w,'.-')
grid on

MATLAB figure

bodemag 仅绘制指定频率下的频率响应。

在同一波特图上比较连续时间系统与等效离散系统的频率响应幅值。

创建连续时间和离散时间动态系统。

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');

创建一个显示两个系统响应的波特幅值图。

bodemag(H,Hd)

MATLAB figure

离散时间系统的波特幅值图包括一条标记系统奈奎斯特频率的垂直线。

使用 LineSpec 输入参量指定波特幅值图中每个系统的颜色、线型或标记。

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
bodemag(H,'r',Hd,'b--')

MATLAB figure

第一个 LineSpec 参量 'r'H 的响应指定一条实红线。第二个 LineSpec 参量 'b--'Hd 的响应指定了一条虚线蓝线。

对于此示例,创建一个 2 输出 3 输入的系统。

rng(0,'twister'); % For reproducibility
H = rss(4,2,3);

对于该系统,bodemag 在单个图中以单独的图绘制了每个 I/O 通道的仅幅度频率响应。

bodemag(H)

MATLAB figure

输入参数

全部折叠

动态系统,指定为 SISO 或 MIMO 动态系统模型或动态系统模型数组。您可以使用以下类型的动态系统:

  • 连续时间或离散时间数值 LTI 模型,如 tf (Control System Toolbox)zpk (Control System Toolbox)ss (Control System Toolbox) 模型。

  • 稀疏状态空间模型,如 sparss (Control System Toolbox)mechss (Control System Toolbox) 模型。

  • 广义或不确定的 LTI 模型,如 genss (Control System Toolbox)uss (Robust Control Toolbox) 模型。使用不确定模型需要 Robust Control Toolbox™ 软件。

    • 对于可调控制设计模块,该函数根据其当前值计算模型以绘制响应。

    • 对于不确定的控制设计模块,该函数绘制模型的标称值和随机样本。

  • 辨识的 LTI 模型,如 idtfidssidproc 模型。

如果 sys 是模型数组,则图会在同一坐标区中显示该数组中所有模型的响应。

线型、标记和颜色,指定为包含符号的字符串或字符向量。符号可以按任何顺序显示。您不需要指定所有三个特征。例如,指定标记并省略线条样式,则绘图仅显示标记而不显示线条。

示例: '--or' 表示带有空心圆点标记的红色虚线。

线型描述
"-"实线
"--"虚线
":"点线
"-."点划线
标记描述
"o"空心圆点
"+"加号
"*"星号
"."
"x"叉号
"_"水平线
"|"垂直线
"s"实心方块
"d"菱形
"^"上三角
"v"下三角
">"右三角
"<"左三角
"p"五角形
"h"六角形
颜色描述
"r"红色
"g"绿色
"b"蓝色
"c"青色
"m"品红
"y"黄色
"k"黑色
"w"白色

要计算响应的频率,指定为以下值之一:

  • {wmin,wmax} 形式的元胞数组 - 计算 wminwmax 范围内的频率下的响应。如果 wmax 大于 sys 的奈奎斯特频率,则仅计算不高于奈奎斯特频率时的响应。

  • 频率向量 - 计算在每个指定频率下的响应。例如,使用 logspace 生成一个具有对数间距频率值的行向量。向量 w 可以同时包含正频率和负频率。

  • [] - 根据系统动态特性自动选择频率。

对于具有复系数的模型,如果您为绘图指定的频率范围为 [wmin,wmax],则有如下情形:

  • 在对数频率刻度中,图频率范围设置为 [wmin,wmax],图显示两个分支,一个分支用于正频率 [wmin,wmax],另一个分支用于负频率 [–wmax,–wmin]。

  • 在线性频率刻度中,图频率范围设置为 [–wmax,wmax],图显示单个分支,该分支的对称频率范围以频率值零为中心。

以 rad/TimeUnit 为单位指定频率,其中 TimeUnit 是模型的 TimeUnit 属性。

算法

软件通过如下步骤计算频率响应:

  1. 计算动态系统的零极点增益 (zpk (Control System Toolbox)) 表示。

  2. 根据系统各输入/输出通道的零点、极点和增益数据计算频率响应的增益和相位。

    • 对于连续时间系统,bodemag 函数计算虚轴 s = 处的频率响应,并且只考虑正频率。

    • 对于离散时间系统,bodemag 函数计算单位圆上的频率响应。为了便于解释,该命令将单位圆的上半部分参数化为:

      z=ejωTs,0ωωN=πTs,

      其中 Ts 是采样时间,ωN 是奈奎斯特频率。然后,该软件将等效连续时间频率 ω 用作 x 轴变量。由于 H(ejωTs) 呈周期性且周期为 2ωN,因此 bodemag 函数仅绘制不超过奈奎斯特频率 ωN 时的响应。如果 sys 是具有未指定采样时间的离散时间模型,则 bodemag 函数使用 Ts = 1。

替代功能

您还可以使用 bodeplot 创建仅幅度的频率响应。为此,将 bodeplot 对象的 PhaseVisible 属性设置为 "off"

bp = bodeplot(sys);
bp.PhaseVisible = "off";

版本历史记录

在 R2012a 中推出