stepplot

绘制阶跃响应图,并提供更多绘图自定义选项

语法

h = stepplot(sys)

h = stepplot(sys1,sys2,…,sysN)

h = stepplot(sys1,LineSpec1,…,sysN,LineSpecN)

h = stepplot(___,tFinal)

h = stepplot(___,t)

h = stepplot(AX,___)

h = stepplot(___,plotoptions)

h = stepplot(___,dataoptions)

说明

stepplot 允许您绘制动态系统的阶跃响应图,并提供比 step 函数更广泛的绘图自定义选项。您可以使用 stepplot 获取绘图句柄,并用它来自定义绘图,例如修改坐标轴标签、限制和单位。您还可以使用 stepplot 在由坐标轴句柄表示的现有坐标轴集上绘制阶跃响应图。要使用绘图句柄自定义现有的阶跃响应图:

  1. 获取绘图句柄
  2. 使用 getoptions 获取选项集
  3. 使用 setoptions 更新绘图以修改所需的选项

有关更多信息,请参阅 从命令行自定义响应图。要使用默认选项创建阶跃响应图或提取阶跃响应数据,请使用 step

h = stepplot(sys) 绘制动态系统模型 sys 的阶跃响应,并返回该图的绘图句柄 h。您可以使用此句柄 h 通过 getoptionssetoptions 命令自定义绘图。

h = stepplot(sys1,sys2,…,sysN) 在同一张图上绘制多个动态系统 sys1,sys2,…,sysN 的阶跃响应。使用此语法时,所有系统必须具有相同数量的输入和输出。

h = stepplot(sys1,LineSpec1,…,sysN,LineSpecN) 为每个系统的阶跃响应设置线型、标记类型和颜色。使用此语法时,所有系统必须具有相同数量的输入和输出。

h = stepplot(___,tFinal) 模拟从 t = 0 到最终时间 t = tFinal 的阶跃响应。以系统时间单位指定 tFinal,该单位在 sysTimeUnit 属性中指定。对于采样时间未指定 (Ts = -1) 的离散时间系统,stepplottFinal 解释为要模拟的采样间隔数。

h = stepplot(___,t) 使用时间向量 t 模拟阶跃响应。以系统时间单位指定 t,该单位在 sysTimeUnit 属性中指定。

h = stepplot(AX,___) 在当前图形中,在句柄为 AXAxes 对象上绘制阶跃响应。

h = stepplot(___,plotoptions) 使用 plotoptions 中指定的选项集绘制阶跃响应。您可以使用这些选项通过命令行自定义阶跃响应图的外观。您在 plotoptions 中指定的设置将覆盖运行 stepplot 的 MATLAB® 会话中的首选项设置。因此,当您希望编写脚本以生成多个外观相同的图,而不受本地首选项影响时,此语法非常有用。

h = stepplot(___,dataoptions) 使用 dataoptions 中指定的选项集绘制阶跃响应。您可以使用此语法通过选项集 dataoptions 指定阶跃幅度和输入偏移等选项。当您希望编写脚本以生成具有相同选项集的多个图时,此语法非常有用。使用 stepDataOptions 创建选项集。

示例

使用绘图句柄自定义阶跃响应图

在此示例中,使用绘图句柄将时间单位更改为分钟并打开网格。

生成一个具有 5 个状态的随机状态空间模型,并使用绘图句柄 h 创建阶跃响应图。

rng("default")
sys = rss(5);
h = stepplot(sys);

将时间单位更改为分钟并打开网格。为此,使用 setoptions 编辑绘图句柄 h 的属性。

setoptions(h,'TimeUnits','minutes','Grid','on');

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

当您调用 setoptions 时,阶跃响应图会自动更新。

或者,您也可以使用 timeoptions 命令来指定所需的绘图选项。首先,基于工具箱首选项创建一个选项集。

plotoptions = timeoptions('cstprefs');

通过将时间单位设置为分钟并启用网格来更改选项集的属性。

plotoptions.TimeUnits = 'minutes';
plotoptions.Grid = 'on';
stepplot(sys,plotoptions);

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

您可以使用相同的选项集创建具有相同自定义设置的多个阶跃响应图。根据您自己的工具箱首选项,您获得的图可能与此图不同。只有您明确设置的属性(在此示例中为 TimeUnitsGrid)会覆盖工具箱首选项。

在阶跃响应图上显示归一化响应

为两个动态系统生成阶跃响应图。

sys1 = rss(3);
sys2 = rss(3);
h = stepplot(sys1,sys2);

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent sys1, sys2.

每个阶跃响应都稳定在不同的稳态值。使用绘图句柄对绘制的响应进行归一化。

setoptions(h,'Normalize','on')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent sys1, sys2.

现在,响应稳定在相同的值,以任意单位表示。

绘制带置信区域的辨识模型的阶跃响应

比较参数辨识模型与非参数(经验)模型的阶跃响应,并查看它们的 3-σ 置信区域。(辨识模型需要 System Identification Toolbox™ 软件。)

从样本数据中辨识一个参数模型和一个非参数模型。

load iddata1 z1
sys1 = ssest(z1,4); 
sys2 = impulseest(z1);

绘制两个辨识模型的阶跃响应。使用绘图句柄显示 3-σ 置信区域。

t = -1:0.1:5;
h = stepplot(sys1,'r',sys2,'b',t);
showConfidence(h,3)
legend('parametric','nonparametric')

Figure contains an axes object. The axes object with title From: u1 To: y1 contains 2 objects of type line. These objects represent parametric, nonparametric.

非参数模型 sys2 显示出更高的不确定性。

在指定时间绘制自定义阶跃响应图

在此示例中,检查以下零极点增益模型的阶跃响应,并将阶跃响应图限制在 tFinal = 15 秒。为标题使用 15 磅蓝色文本。无论生成此图的 MATLAB 会话的首选项如何,此图看起来都应该相同。

sys = zpk(-1,[-0.2+3j,-0.2-3j],1)*tf([1 1],[1 0.05]);
tFinal = 15;

首先,使用 timeoptions 创建一个默认选项集。

plotoptions = timeoptions;

接下来更改选项集 plotoptions 所需的属性。

plotoptions.Title.FontSize = 15;
plotoptions.Title.Color = [0 0 1];

现在,使用选项集 plotoptions 创建阶跃响应图。

h = stepplot(sys,tFinal,plotoptions);

Figure contains an axes object. The axes object contains an object of type line. This object represents sys.

由于 plotoptions 始于一组固定的选项,因此绘图结果独立于 MATLAB 会话的工具箱首选项。

绘制非线性辨识模型的阶跃响应

加载用于估计非线性 Hammerstein-Wiener 模型的数据。

load twotankdata
z = iddata(y,u,0.2,'Name','Two tank system');

z 是一个存储输入输出估计数据的 iddata 对象。

使用估计数据估计一个阶数为 [1 5 3] 的 Hammerstein-Wiener 模型。将输入非线性指定为分段线性,输出非线性指定为一维多项式。

sys = nlhw(z,[1 5 3],idPiecewiseLinear,idPolynomial1D);

创建一个选项集以指定输入偏移和阶跃幅度水平。

opt = RespConfig(InputOffset=2,Amplitude=0.5);

使用指定的选项绘制直到 60 秒的阶跃响应。

stepplot(sys,60,opt);

Figure contains an axes object. The axes object with title From: u1 To: y1 contains an object of type line. This object represents sys.

输入参数

sys — 动态系统

动态系统模型 | 模型数组

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

  • 连续时间或离散时间数值 LTI 模型,例如 tfzpkss 模型。
  • 稀疏状态空间模型,例如 sparssmechss 模型。使用稀疏模型时必须指定最终时间 tFinal
  • 广义或不确定 LTI 模型,例如 genssuss (Robust Control Toolbox) 模型。(使用不确定模型需要 Robust Control Toolbox™ 软件。)
    • 对于可调控制设计模块,该函数在其当前值处评估模型以绘制阶跃响应数据。
    • 对于不确定控制设计模块,该函数绘制模型的标称值和随机样本。
  • 辨识的 LTI 模型,例如 idtf (System Identification Toolbox)、idss (System Identification Toolbox) 或 idproc (System Identification Toolbox) 模型。(使用辨识模型需要 System Identification Toolbox™ 软件。)

如果 sys 是模型数组,则该函数在同一坐标轴上绘制数组中所有模型的阶跃响应。

LineSpec — 线型、标记和颜色

字符向量 | 字符串

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

示例: '--or' 表示带圆形标记的红色虚线

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

tFinal — 阶跃响应计算的最终时间

标量

阶跃响应计算的最终时间,指定为标量。以系统时间单位指定 tFinal,该单位在 sysTimeUnit 属性中指定。对于采样时间未指定 (Ts = -1) 的离散时间系统,stepplottFinal 解释为要模拟的采样间隔数。

t — 阶跃响应模拟的时间

向量

阶跃响应模拟的时间,指定为向量。以系统时间单位指定时间向量 t,该单位在 sysTimeUnit 属性中指定。时间向量必须是实数、有限值,并且必须包含单调递增且均匀分布的时间样本。

时间向量 t 为:

  • t = T_initial:T_sample:T_final,对于离散时间系统。
  • t = T_initial:dt:T_final,对于连续时间系统。此处,dt 是连续时间系统的离散近似的采样时间。

AX — 目标坐标轴

Axes 对象

目标坐标轴,指定为 Axes 对象。如果未指定坐标轴且当前坐标轴是笛卡尔坐标轴,则 stepplot 在当前坐标轴上绘图。在创建阶跃响应图时,使用 AX 将图绘制到特定的坐标轴中。

plotoptions — 阶跃响应图选项集

TimePlotOptions 对象

阶跃响应图选项集,指定为 TimePlotOptions 对象。您可以使用此选项集自定义阶跃响应图的外观。使用 timeoptions 创建选项集。您在 plotoptions 中指定的设置将覆盖运行 stepplot 的 MATLAB 会话中的首选项设置。因此,当您希望编写脚本以生成多个外观相同的图,而不受本地首选项影响时,plotoptions 非常有用。

有关可用选项的列表,请参阅 timeoptions

dataoptions — 阶跃响应数据选项集

step 对象

阶跃响应数据选项集,指定为 step 对象。使用选项集 dataoptions 指定阶跃幅度和输入偏移等选项。当您希望编写脚本以生成具有相同阶跃幅度和输入偏移值的多个图时,这非常有用。使用 stepDataOptions 创建选项集。

输出参数

h — 绘图句柄

句柄对象

绘图句柄,以句柄对象形式返回。使用句柄 h 通过 getoptionssetoptions 获取和设置阶跃响应图的属性。有关可用选项的列表,请参阅 从命令行自定义响应图 中的 属性和值参考 部分。

版本历史记录

在 R2006a 之前推出

另请参阅

getoptions | setoptions | step | stepDataOptions | timeoptions

主题

  • 从命令行自定义响应图

主题

  • 从命令行自定义响应图

版权标注与来源说明

本文译文对应的原文内容,均来源于 MathWorks 官方网站(https://www.mathworks.com/)及官方帮助中心,原文版权均独家归属MathWorks 公司所有。

译文系基于原文进行的非官方翻译,仅为方便个人学习、理解MathWorks相关产品(含MATLAB等)的功能、操作及技术细节而制作,不代表MathWorks公司官方立场,也不构成官方翻译版本。

建议使用者优先查阅官方原文。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐