2026a

# pzmap


动态系统的零、极点图

函数库: TyControlSystems

# 语法

pzmap(sys)
pzmap(sys1, ..., sysN)
pzmap(___, opts; ishold, kwargs...)

p, z = pzmap(sys; flag=false)

# 说明

pzmap(sys) 创建连续或离散时间动态系统模型 sys 的极点零点图。x 和 o 分别表示极点和零点,如下图所示。

由上图所示,在以下情况下,开环线性时不变系统是稳定的:

  • 在连续时间内,复数 s 平面上的所有极点都必须在左半平面 (蓝色区域) 中,以确保稳定性。如果不同的极点位于虚轴上,即极点的实部为零,则系统是临界稳定的;
  • 在离散时间内,复数 z 平面中的所有极点都必须位于单位圆 (蓝色区域) 内。如果系统在单位圆上有一个或多个极点,则系统临界稳定。 示例

pzmap(sys1, ..., sysN) 绘制多个系统的零极点图。


pzmap(___, opts; ishold, kwargs...) 为图形绘制指定了绘图选项。


pz = pzmap(sys; flag=false) 将系统极点和传输零点作为列向量 p 和 z 返回。 示例

# 示例

动态系统的零极点图

绘制由以下传递函数表示的连续时间系统的极点和零点:

using TyControlSystems
H = tf([2, 5, 1], [1, 3, 5])
pzmap(H)
pzgrid(true)

打开网格显示恒定阻尼比(zeta)和恒定固有频率(wn)的线。 这个系统有两个实零点,在图上用 o 表示。该系统还有一对复极点,用 x 标记。

多模型的极点-零点图

对于本例,加载一个 3 乘 1 的传递函数模型数组。

using TyControlSystems
pkg_dir = pkgdir(TyControlSystems)
source_path = pkg_dir * "/examples/resources/System Attributes/tfdata/tfArray.jl"
include(source_path)
sys;
size(sys)
(3, 1)

用不同的颜色在数组中绘制每个模型的极点和零点

pzmap(sys[1], "r", sys[2], "g", sys[3], "b")
pzgrid(true)

flag=false 时 pzgrid 调用 sgrid 在极零图的 s 域绘制恒定阻尼比和固有频率的直线。

传递函数的极点和零点

使用 pzmap 计算以下传递函数的极点和零点:

using TyControlSystems
sys = tf([4.2, 0.25, -0.004], [1, 9.6, 17])
p, z = pzmap(sys; fig=false)
([-2.342358854511099, -7.2576411454889005], [0.013111769298521241, -0.07263557882233128])
识别接近抵消的极点-零点对

这个例子使用了一个八层楼的建筑模型,每层楼有三个自由度:两个位移和一个旋转。 这些位移中的任何一个的 I/O 关系都表示为具有 48 个状态的模型,其中每个状态表示一个位移或其变化率(速度)。

加载建筑模型。

using TyControlSystems
pkg_dir = pkgdir(TyControlSystems)
source_path = pkg_dir * "/examples/resources/System Attributes/pzmap/building.jl"
include(source_path)
G;
size(G)
(1, 1)

查看状态数

nstates(G)
48

画出系统的极点和零点。

pzmap(G)

从图中可以观察到,有许多近乎抵消的极零对可以被潜在地消除以简化模型,而对整体模型响应没有影响。 pzmap 有助于可视化地识别这种近乎抵消的极零对,从而进行极点、零点的化简。

# 输入参数

sys - 动态系统
传递函数模型 | 零极点增益模型 | 状态空间模型

动态系统,指定为 SISO 或 MIMO 动态系统模型。所支持的动态系统包括:

连续时间或离散时间数值 LTI 模型,如 tfzpkss 模型。

opts - 绘图选项
PZOptions 结构体

绘图选项,指定为 PZOptions 结构体,具有以下字段:

  • FreqUnits:频率单位,指定为以下字符串之一:"rad/TimeUnit"、"cycles/TimeUnit"、"Hz"、"kHz"、"MHz"、"GHz"、"rpm" 等;
  • TimeUnits:频率刻度,指定为以下字符串之一:"nanoseconds"、"microseconds"、"milliseconds"、"seconds"、"minutes"、"hours"、"days"、"weeks"、"months"、"years";

# 名称-值对组参数

ishold - 是否保留原绘图
布尔值

ishold 用于设置函数是否在原绘图基础上绘制,指定为布尔值,默认为 false。

数据类型: Bool

kwargs - 通用绘图选项
名称-值对组参数

通用绘图选项,指定为名称-值对组参数。有关配置此参数的详细信息,请参阅 scatter 函数的名称-值对组参数

fig - 绘图或返回数据
布尔值

绘图标志位,指定为布尔值。

数据类型: Bool

# 输出参数

p - 系统的极点
向量

系统的极点,返回为向量,以系统时间单位(目前只支持:秒(seconds))的倒数为单位进行表示,向量元素按幅值降序排列。对于幅值相同的极点,其顺序优先级为:不稳定的极点==不稳定极点的共轭>稳定的极点==稳定极点的共轭。

数据类型: Float | Int | Complex

z - 系统的传输零点
向量

系统的传输零点,返回为向量,以系统时间单位(目前只支持:秒(seconds))的倒数为单位进行表示,向量元素按幅值降序排列。对于幅值相同的零点,其顺序优先级为:不稳定的零点==不稳定零点的共轭>稳定的零点==稳定零点的共轭。

数据类型: Float | Int | Complex

# 其他描述

  • 使用函数 sgridzgrid 在极点零点图上的 s 域或 z 域中绘制具有恒定阻尼比和固有频率的线;
  • pzmap 兼容 pzmapdata 与 pzplot 的所有功能,其中 pzmapdata 返回响应数据,而 pzplot 返回零极点分布图。

# 另请参阅

pole | dsort | esort | syszero | damp