主要内容

stepinfo

上升时间,沉降时间,以及其他阶跃响应特性

描述

stepinfo允许您计算动态系统模型或步进响应数据数组的步进响应特性。对于阶跃响应yt),stepinfo计算相对于的特征y初始化而且y最后,在那里y初始化初始偏移量,即应用步骤之前的值,和y最后为响应的稳态值。这些值取决于您使用的语法。

  • 对于动态系统模型sysstepinfo使用y初始化= 0和y最后=稳态值。

  • 用于阶跃响应数据数组(y, t)stepinfo使用y初始化= 0和y最后=的最后抽样值y,除非显式指定这些值。

以获取更多信息stepinfo计算阶跃响应特性,参见算法

下图说明了其中的一些特征stepinfo计算阶跃响应。对于这个响应,假设yt) = 0t< 0,所以y初始化= 0。

阶跃响应特性。图中显示了响应的峰值响应、峰值时间、上升时间、稳定时间和响应的瞬态时间。

例子

年代= stepinfo (sys计算一个动态系统模型的阶跃响应特性sys.此语法使用y初始化= 0和y最后=稳态值,用于计算依赖于这些值的特征。

使用此语法需要Control System Toolbox™许可证。

年代= stepinfo (yt从步进响应数据数组中计算步进响应特征y和一个相应的时间向量t.对于SISO系统响应,y向量的元素个数是否与t.对于MIMO响应数据,y是包含每个I/O通道响应的数组。此语法使用y初始化= 0和中的最后一个值y(或每个通道对应响应数据中的最后一个值)为y最后

例子

年代= stepinfo (ytyfinal计算相对于稳态值的阶跃响应特性yfinal.当您知道预期的稳态系统响应与中的最后一个值不同时,此语法非常有用y由于测量噪声等原因。此语法使用y初始化= 0。

对于SISO响应,t而且y向量长度相同吗NS.对于系统ν输入和纽约输出,您可以指定y作为一个NS——- - - - - -纽约——- - - - - -ν数组(见一步),yfinal作为一个纽约——- - - - - -ν数组中。stepinfo然后返回纽约——- - - - - -ν结构数组年代对应于每个I/O对的响应特征。

例子

年代= stepinfo (ytyfinalyinit计算相对于响应初始值的阶跃响应特性yinit.当您的y数据有初始偏移量;也就是说,y在步骤发生之前为非零。

对于SISO响应,t而且y向量长度相同吗NS.对于系统ν输入和纽约输出,您可以指定y作为一个NS——- - - - - -纽约——- - - - - -ν数组和yinit作为一个纽约——- - - - - -ν数组中。stepinfo然后返回纽约——- - - - - -ν结构数组年代对应于每个I/O对的响应特征。

例子

年代= stepinfo (___“SettlingTimeThreshold”,让您指定阈值用于定义沉降时间和瞬态时间。默认值为St = 0.02(2%)。您可以将此语法用于前面的任何输入-参数组合。

例子

年代= stepinfo (___“RiseTimeLimits”,RT允许您指定上升时间定义中使用的下限和上限阈值。默认情况下,上升时间是响应从初始值到稳态值从10%上升到90%所需的时间(Rt = [0.1 0.9]).上限阈值RT (2)也是用来计算的吗SettlingMin而且SettlingMax.这些值是响应达到上阈值后发生的响应的最小值和最大值。您可以将此语法用于前面的任何输入-参数组合。

例子

全部折叠

计算一个动态系统模型的阶跃响应特性,如上升时间、沉降时间和超调量。对于这个例子,使用一个连续时间传递函数:

年代 y 年代 年代 2 + 5 年代 + 5 年代 4 + 1 6 5 年代 3. + 5 年代 2 + 6 5 年代 + 2

创建传递函数并检查其阶跃响应。

Sys = tf([1 5 5],[1 1.65 5 6.5 2]);步骤(系统)

图中包含一个轴对象。axis对象包含一个line类型的对象。该节点表示sys。

该图显示,响应在几秒钟内上升,然后下降到约2.5的稳态值。计算此响应的特征stepinfo

S = stepinfo(sys)
S =带字段的结构:RiseTime: 3.8456 TransientTime: 27.9762 SettlingTime: 27.9762 SettlingMin: 2.0689 SettlingMax: 2.6873 Overshoot: 7.4915 Undershoot: 0 Peak: 2.6873 PeakTime: 8.0530

这里,函数使用 y 初始化 = 0来计算动态系统模型的特征sys

默认情况下,稳定时间是误差保持在2%以下所需的时间 | y 初始化 - y 最后 | .结果S.SettlingTime说明了sys,这种情况发生在大约28秒后。上升时间的默认定义是响应从10%上升到90%所需的时间 y 初始化 = 0到 y 最后 S.RiseTime说明了sys,这种上升在不到4秒的时间内发生。最大超调量返回S.Overshoot.对于这个系统,是峰值S.Peak,这发生在当时S.PeakTime,超过了稳态值的7.5%左右。

对于MIMO系统,stepinfo返回一个结构数组,其中每个条目包含系统相应I/O通道的响应特征。在本例中,使用双输出、双输入离散时间系统。计算阶跃响应特性。

A = [0.68 -0.34;0.34 - 0.68);B = [0.18 -0.05;0.04 - 0.11);C = [0 -1.53;-1.12 - -1.10);D = [0 0;0.06 - -0.37);sys = ss(A,B,C,D,0.2);S = stepinfo(sys)
S =2×2包含字段的struct数组:RiseTime TransientTime SettlingTime SettlingMin SettlingMax Overshoot Undershoot Peak Peak time

通过索引访问特定I/0通道的响应特性年代.例如,检查从第一个输入到第二个输出的响应特征sys,对应于(2, 1)

(2, 1)
ans =带字段的结构:RiseTime: 0.4000 TransientTime: 2.8000 SettlingTime: 3 SettlingMin: -0.6724 SettlingMax: -0.5188 Overshoot: 24.6476 Undershoot: 11.1224 Peak: 0.6724 PeakTime: 1

要访问特定的值,请使用点表示法。例如,提取(2,1)通道的上升时间。

rt21 = S(2,1)。上升时间
Rt21 = 0.4000

你可以使用SettlingTimeThreshold而且RiseTimeThreshold方法中所述,分别更改结算时间和上升时间的默认百分比算法部分。对于这个例子,使用给出的系统:

sys 年代 2 + 5 年代 + 5 年代 4 + 1 65 年代 3. + 6 5 年代 + 2

创建传递函数。

Sys = tf([1 5 5],[1 1.65 5 6.5 2]);

的响应中出现错误所花费的时间sys保持在缺口的0.5%以下 | y 最后 - y 初始化 | .为此,设置SettlingTimeThreshold到0.5%,即0.005。

S1 = stepinfo(sys,“SettlingTimeThreshold”, 0.005);st1 = S1。年代ettlingTime
St1 = 46.1325

计算响应所花费的时间sys从5%上升到95%的过程 y 初始化 y 最后 .为此,设置RiseTimeThreshold到一个包含这些边界的向量。

S2 = stepinfo(sys,“RiseTimeThreshold”[0.05 - 0.95]);rt2 = S2。上升时间
Rt2 = 4.1690

您可以在同一个计算中为沉降时间和上升时间定义百分比。

S3 = stepinfo(sys,“SettlingTimeThreshold”, 0.005,“RiseTimeThreshold”(0.05 - 0.95))
S3 =带字段的结构:RiseTime: 4.1690 TransientTime: 46.1325 SettlingTime: 46.1325 SettlingMin: 2.0689 SettlingMax: 2.6873 Overshoot: 7.4915 Undershoot: 0 Peak: 2.6873 PeakTime: 8.0530

即使没有系统模型,也可以从步进响应数据中提取步进响应特征。例如,假设您已经测量了系统对一个步进输入的响应,并将结果响应数据保存在一个向量中y泰晤士报的响应值存储在另一个向量中t.加载响应数据并对其进行检查。

负载StepInfoDataty情节(t, y)

图中包含一个轴对象。axis对象包含一个line类型的对象。

利用此响应数据计算步进响应特性stepinfo.如果不指定稳态响应值yfinal,然后stepinfo假设响应向量的最后一个值y是稳态响应。因为数据有一些噪声,最后的值在y可能不是真正的稳态响应值。当你知道稳态值应该是多少时,你就可以把它提供给stepinfo.对于本例,假设稳态响应为2.4。

S1 = stepinfo(y,t,2.4)
S1 =带字段的结构:RiseTime: 1.2897 TransientTime: 19.6478 SettlingTime: 19.6439 SettlingMin: 2.0219 SettlingMax: 3.3302 Overshoot: 38.7575 Undershoot: 0 Peak: 3.3302 PeakTime: 3.4000

由于数据中的噪声,默认的沉降时间定义过于严格,导致几乎20秒的任意值。为了考虑噪声,将沉降时间阈值从默认的2%提高到5%。

S2 = stepinfo(y,t,2.4,“SettlingTimeThreshold”, 0.05)
S2 =带字段的结构:RiseTime: 1.2897 TransientTime: 10.4201 SettlingTime: 10.4149 SettlingMin: 2.0219 SettlingMax: 3.3302 Overshoot: 38.7575 Undershoot: 0 Peak: 3.3302 PeakTime: 3.4000

当误差达到峰值时,沉降时间和瞬态时间相等 e 马克斯 等于这个差 | y 最后 - y 初始化 | (见算法(控制系统工具箱)),对于没有下冲或馈通且超冲小于100%的模型也是如此。对于具有馈通、原点为零、不稳定零(欠调)或大超调的模型,它们往往有所不同。

考虑以下模型。

S = tf(“年代”);Sys1 = 1+tf(1,[1 1]);%直通的Sys2 = tf([1 0],[1 1]);原点为% 0Sys3 = tf([-3 1],[1 2 1]);%带欠冲的非最小相位Sys4 = (s/0.5 + 1)/(s²+ 0.2*s + 1);大超调百分比步骤(sys1、sys2 sys3 sys4)网格传奇(“引线”“原点为零”“带欠冲的非最小相位”“大超调”

图中包含一个轴对象。axis对象包含4个line类型的对象。这些物体分别代表馈通、原点零点、带下冲的非最小相位、大超冲。

计算阶跃响应特性。

S1 = stepinfo(sys1)
S1 =带字段的结构:RiseTime: 1.6095 TransientTime: 3.9121 SettlingTime: 3.2190 SettlingMin: 1.8005 SettlingMax: 2.0000 Overshoot: 0 Undershoot: 0 Peak: 2.0000 PeakTime: 10.5458
S2 = stepinfo(sys2)
S2 =带字段的结构:RiseTime: 0 TransientTime: 3.9121 SettlingTime: NaN SettlingMin: 2.6303e-05 SettlingMax: 1 Overshoot: Inf Undershoot: 0 Peak: 1 PeakTime: 0
S3 = stepinfo(sys3)
S3 =带字段的结构:RiseTime: 2.9198 TransientTime: 6.5839 SettlingTime: 7.3229 SettlingMin: 0.9004 SettlingMax: 0.9991 Overshoot: 0 Undershoot: 88.9466 Peak: 0.9991 PeakTime: 10.7900
S4 = stepinfo(sys4)
S4 =带字段的结构:RiseTime: 0.3896 TransientTime: 40.3317 SettlingTime: 46.5052 SettlingMin: -0.2796 SettlingMax: 2.7571 Overshoot: 175.7137 Undershoot: 27.9629 Peak: 2.7571 PeakTime: 1.8850

检查情节和特点。对于这些模型,由于峰值误差超过了初始值和最终值之间的差值,其沉降时间和瞬态时间有所不同。对于模型,例如sys2时,该时间返回为因为稳态值是零。

在本例中,从具有初始偏移量的步进响应数据计算步进响应特征。这意味着在该步骤发生之前,响应数据的值是非零的。

加载步进响应数据并检查图。

负载stepDataOffset.mat情节(stepOffset.Time stepOffset.Data)

图中包含一个轴对象。axis对象包含一个line类型的对象。

如果您没有指定yfinal而且yinit,然后stepinfo假设yfinal是响应向量的最后一个值吗y而且yinit是零。当你知道稳态和初始值是什么时,你可以把它们提供给stepinfo.这里是响应的稳态yfinal0.9和初始偏移量是多少yinit是0.2。

从响应数据计算步进响应特性。

S = stepinfo(stepOffset.Data,stepOffset.Time,0.9,0.2)
S =带字段的结构:上升时间:0.0084瞬变时间:1.0662结算时间:1.0662结算分钟:0.8461结算最大:1.0878超调:26.8259下调:0.0429峰值:0.8878峰值时间:1.0225

这里,响应的峰值是0.8878,因为stepinfo测量的最大偏差yinit

输入参数

全部折叠

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

  • 连续时间或离散时间数值LTI模型,例如特遣部队(控制系统工具箱)zpk(控制系统工具箱),或党卫军(控制系统工具箱)模型。

  • 广义的或不确定的LTI模型,如一族(控制系统工具箱)号航空母舰(鲁棒控制工具箱)模型。(使用不确定模型需要鲁棒控制工具箱™软件。)对于广义模型,stepinfo利用可调块的当前值和不确定块的标称值计算步进响应特性。

  • 确定的LTI模型,例如idtf中的难点,或idproc模型。

步进响应数据,指定为以下之一:

  • 对于SISO响应数据,长度向量Ns,在那里Ns响应数据中的样本数量是多少

  • 对于MIMO响应数据Ns——- - - - - -纽约——- - - - - -ν数组,纽约系统输出的数量和ν系统输入的数量是多少

时间向量对应的响应数据y,指定为长度向量Ns

稳态值,指定为标量或数组。

  • 对于SISO响应数据,指定一个标量值。

  • 对于MIMO响应数据,指定纽约——- - - - - -ν数组,其中每个条目为相应的系统通道提供稳态响应值。

如果你不提供yfinal,然后stepinfo的对应通道中的最后一个值y为稳态响应值。

只有在提供步进响应数据作为输入时,才支持此参金宝app数。对于动态系统模型sys作为输入,stepinfo使用y最后=稳态值来计算依赖于此值的特征。

的价值y在执行该步骤之前,指定为标量或数组。

  • 对于SISO响应数据,指定一个标量值。

  • 对于MIMO响应数据,指定纽约——- - - - - -ν数组,其中每个条目为相应的系统通道提供响应初始值。

如果你不提供yinit,然后stepinfo使用0作为响应初始值。

响应y(0)t= 0等于y初始化对于没有馈通的系统。然而,这两个量不同的存在馈通,因为在不连续t= 0。

例如,下图显示了带馈通系统的阶跃响应Sys = tf([-1 0.2 1],[1 0.7 1])

馈通系统的阶跃响应等于负1

在这里,y初始化为0,而馈通值为-1。

只有在提供步进响应数据作为输入时,才支持此参金宝app数。对于动态系统模型sys作为输入,stepinfo使用y初始化= 0以计算依赖于此值的特征。

定义沉降时间和瞬态时间的阈值,指定为0到1之间的标量值。若要更改默认的确定时间和瞬态时间定义(请参阅算法),设置换一个不同的值。例如,要测量误差何时下降到5%以下,请设置到0.05。

定义上升时间的阈值,指定为0到1之间的非降序值的2元素行向量。若要更改默认的上升时间定义(请参阅算法),设置RT换一个不同的值。例如,要将上升时间定义为响应从初始值上升到稳态值从5%到95%所需的时间,请设置RT(0.05 - 0.95)

输出参数

全部折叠

阶跃响应特征,作为包含字段的结构返回:

  • 上升时间

  • TransientTime

  • SettlingTime

  • SettlingMin

  • SettlingMax

  • 过度

  • 未达到目标

  • PeakTime

以获取更多信息stepinfo定义这些特征,参见算法

对于MIMO模型或响应数据,年代是一个结构数组,其中每个条目包含相应I/O通道的阶跃响应特征。例如,如果您提供3输入3输出模型或响应数据数组,则(2、3)包含从第三个输入到第二个输出的响应特征。有关示例,请参见MIMO系统的阶跃响应特性

如果sys是不稳定的,那么所有的阶跃响应特征都是,除了而且PeakTime,分别是

算法

对于阶跃响应yt),stepinfo计算相对于的特征y初始化而且y最后.对于动态系统模型sysstepinfo使用y初始化= 0和y最后=稳态值。

下表显示了如何stepinfo计算每个特征。

阶跃响应特性 描述
上升时间 反应从10%上升到90%所需的时间y初始化y最后
TransientTime

第一次T这样错误|yt) - - -y最后|≤SettlingTimeThreshold×e马克斯tT,在那里e马克斯最大误差是|吗yt) - - -y最后|对t≥0。

默认情况下,SettlingTimeThreshold= 0.02(峰值误差的2%)。暂态时间测量暂态动态消失的速度。

SettlingTime

第一次T这样错误|yt) - - -y最后|≤SettlingTimeThreshold×|y最后- - - - - -y初始化|对tT

默认情况下,SettlingTime度量误差保持在|的2%以下所花费的时间y最后- - - - - -y初始化|。

SettlingMin 最小值yt)一旦反应上升
SettlingMax 最大值yt)一旦反应上升
过度 过度百分比。相对于常态化响应y规范t) =yt) - - -y初始化) / (y最后- - - - - -y初始化,超调量为0和中较大的一个100 × max(y规范t) - 1)
未达到目标 比例未达到目标。相对于常态化响应y规范t)时,下冲值为0和中较小的值-100 × max(y规范t) - 1)
|的峰值yt) - - -y初始化|
PeakTime 峰值出现的时间

版本历史

在R2006a中引入

全部展开

R2021b的行为发生了变化

另请参阅

|