主要内容

一步

动态系统的阶跃响应图;阶跃响应数据

描述

阶跃响应图

例子

步骤(sys绘制a的响应动态系统模型到单位振幅的阶跃输入。该模型sys可以是连续或离散时间,以及单点输入输出或多点输入输出。对于MIMO系统,该图显示每个I/O通道的阶跃响应。一步根据系统动力学自动确定仿真的时间步长和持续时间。

例子

步骤(systFinal模拟的阶跃响应T = 0直到最后一刻t = tFinal.该函数使用系统动力学来确定中间的时间步骤。

例子

步骤(syst在向量中指定的时间处绘制阶跃响应t

例子

步骤(sys1,sys2……sysN,___在同一图上绘制多个动态系统的阶跃响应。所有系统必须有相同数量的输入和输出。您可以使用前面的任何输入-参数组合来使用多个动态系统。

例子

步骤(sys1,LineSpec1、……sysN,LineSpecN,___为绘图中的每个系统指定颜色、线条样式和标记。你可以使用LineSpec使用任何前面的输入-参数组合。当您需要额外的情节定制选项时,请使用stepplot代替。

例子

步骤(___选择指定用于计算步进响应的其他选项,例如步进振幅或输入偏移。使用stepDataOptions创建选项集选择.你可以使用选择使用之前的输入-参数和输出-参数组合。

步骤响应数据

例子

y=步骤(syst返回动态系统模型的阶跃响应sys在向量中指定的时间t.此语法不绘制图形。

y吹捧= step(sys也返回一个时间向量吹捧对应于中的响应y.如果不提供输入向量t次,一步选择的长度和时间步长吹捧基于系统动力学。

y吹捧= step(systFinal计算一直到结束时间的阶跃响应tFinal一步的时间步长吹捧基于系统动力学。

ytx= step(sys也返回状态轨迹x,当sys状态空间模型是否为党卫军中的难点模型。

例子

ytxysd= step(sys还计算了标准差ysd阶跃响应y,当sys是否有一个已识别的模型,例如中的难点idtf,或idnlarx模型。

例子

___= step(___选择指定用于计算步进响应的其他选项,例如步进振幅或输入偏移。使用stepDataOptions创建选项集选择.你可以使用选择使用之前的输入-参数和输出-参数组合。

例子

全部折叠

用下列传递函数表示连续时间系统的阶跃响应。

sys 年代 4 年代 2 + 2 年代 + 10

对于本例,创建一个特遣部队表示传递函数的模型。您可以类似地绘制其他动态系统模型类型的阶跃响应,例如零极增益(zpk)或状态空间(党卫军)模型。

Sys = tf(4,[1 2 10]);

画出阶跃响应。

步骤(系统)

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

一步图中自动包含一条虚线,表示稳态响应。在MATLAB®图形窗口中,您可以右键单击图形以查看其他步进响应特征,如峰值响应和稳定时间。有关这些特征的详细信息,请参见stepinfo

画出离散时间系统的阶跃响应。该系统的采样时间为0.2 s,由以下状态空间矩阵表示。

A = [1.6 -0.7;1 0];B = [0.5;0);C = [0.1 0.1];D = 0;

创建状态空间模型并绘制其步骤响应。

sys = ss(A,B,C,D,0.2);步骤(系统)

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

阶跃响应反映了模型的离散化,显示每0.2秒计算一次的响应。

检验以下传递函数的阶跃响应。

sys = zpk (1, (-0.2 + 3 j, -0.2 3 j], 1) *特遣部队([1],0.05 [1])
sys = (s + 1) ^ 2  ---------------------------- ( s + 0.05) (s ^ 2 + 0.4 + 9.04)连续时间零/钢管/增益模型。
步骤(系统)

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

默认情况下,一步选择一个显示响应趋向于的稳态的结束时间。然而,这个系统有快速的瞬态,在这个时间尺度上是模糊的。为了更仔细地观察瞬态响应,将阶跃图限制为t= 15秒。

步骤(sys, 15)

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

或者,您可以指定您想要检查阶跃响应的确切时间,前提是它们被一个常数间隔隔开。例如,检查从暂态结束到系统达到稳态的响应。

T = 20:0.2:120;步骤(sys, t)

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

尽管这个情节开始于t= 20,一步始终应用步长输入t= 0。

考虑以下二阶状态空间模型:

x ˙ 1 x ˙ 2 - 0 5 5 7 2 - 0 7 8 1 4 0 7 8 1 4 0 x 1 x 2 + 1 - 1 0 2 u 1 u 2 y 1 9 6 9 1 6 4 4 9 3. x 1 x 2

A = [-0.5572,-0.7814;0.7814,0];B = [1,-1;0,2];C = [1.9691,6.4493];sys = ss(A,B,C,0);

这个模型有两个输入和一个输出,所以它有两个通道:从第一个输入到输出,从第二个输入到输出。每个通道都有自己的阶跃响应。

当你使用一步,计算各通道的响应。

步骤(系统)

图中包含2个轴对象。在(1)中包含一个line类型的对象。该节点表示sys。轴对象2标题From:在(2)中包含一个类型为line的对象。该节点表示sys。

左图显示了第一个输入通道的阶跃响应,右图显示了第二个输入通道的阶跃响应。当你使用一步为了绘制MIMO模型的响应,它生成了一个表示模型的所有I/O通道的图数组。例如,创建一个具有五个状态、三个输入和两个输出的随机状态空间模型,并绘制其阶跃响应。

Sys = rss(5,2,3);步骤(系统)

图中包含6个轴对象。在(1)中包含一个line类型的对象。该节点表示sys。坐标轴对象2包含一个line类型的对象。该节点表示sys。轴对象3标题From:在(2)中包含一个类型为line的对象。该节点表示sys。Axes对象4包含一个line类型的对象。该节点表示sys。轴对象5的标题From:在(3)中包含一个类型为line的对象。 This object represents sys. Axes object 6 contains an object of type line. This object represents sys.

在MATLAB图形窗口中,可以通过右键单击绘图并选择将绘图限制为通道的子集I / O选择器

一步允许您在同一轴上绘制多个动态系统的响应。例如,比较PI控制器和PID控制器系统的闭环响应。创建系统的传递函数并调优控制器。

H = tf(4,[1 2 10]);C1 = pidtune(H,“π”);C2 = pidtune(H,“PID”);

建立闭环系统并绘制它们的阶跃响应。

sys1 = feedback(H*C1,1);sys2 = feedback(H*C2,1);步骤(sys1 sys2)传说(“π”“PID”“位置”“东南”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表PI PID。

默认情况下,一步为您绘制的每个系统选择不同的颜色。属性指定颜色和线条样式LineSpec输入参数。

步骤(sys1,“r——”sys2,“b”)传说(“π”“PID”“位置”“东南”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表PI PID。

第一个LineSpec“r——”为PI控制器的响应指定一条红色虚线。第二个LineSpec“b”为PID控制器的响应指定一条蓝色实线。图例反映了指定的颜色和线条样式。有关更多情节定制选项,请使用stepplot

比较多个系统的响应示例展示了如何在单个轴上绘制多个单独系统的响应。当你有多个动态系统排列在一个模型数组中,一步同时画出他们所有的反应。

创建一个模型数组。对于这个例子,使用具有不同固有频率的二阶传递函数的一维数组。首先,为模型数组预分配内存。下面的命令创建一个1 × 5的零增益SISO传递函数行。前两个维度表示模型输出和输入。剩下的维度是数组维度。

Sys = tf(0 (1,1,1,5));

填充数组。

W0 = 1.5:1:5.5;%固有频率Zeta = 0.5;%阻尼常数i = 1:长度(w0)系统(:,:,1,我)=特遣部队(w0 (i) ^ 2,[1 2 *ζ* w0 (i) w0 (i) ^ 2]);结束

(有关模型数组和如何创建它们的更多信息,请参见模型阵列)。在数组中绘制所有模型的阶跃响应。

步骤(系统)

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

一步对数组中所有条目的响应使用相同的线型。项之间的区分方法之一是使用SamplingGrid属性将数组中的每个项与相应的项关联w0价值。

sys。SamplingGrid = struct(“频率”, w0);

现在,当您在MATLAB图形窗口中绘制响应时,您可以单击一条跟踪来查看它对应的频率值。

当你给它一个输出参数时,一步返回一个响应数据数组。对于SISO系统,响应数据作为长度等于响应采样的时间点数量的列向量返回。你可以提供时间点的向量t,或者允许一步根据系统动力学为您选择时间点。例如,提取一个SISO系统在101个时间点之间的阶跃响应t= 0和t= 5秒。

Sys = tf(4,[1 2 10]);T = 0:05:5;Y = step(sys,t);大小(y)
ans =1×2101年1

对于MIMO系统,响应数据以维数组的形式返回N——- - - - - -纽约——- - - - - -ν,在那里纽约而且ν是动态系统的输出和输入的数量。例如,考虑下面的状态空间模型,它表示一个双输入一输出系统。

A = [-0.5572,-0.7814;0.7814,0];B = [1,-1;0,2];C = [1.9691,6.4493];sys = ss(A,B,C,0);

提取该系统之间200个时间点的阶跃响应t= 0和t= 20秒。

T = linspace(0,20,200);Y = step(sys,t);大小(y)
ans =1×3200 1 2

y (:, i, j)列向量是否包含阶跃响应j的Th输入泰晤士报的输出t.例如,提取从第二个输入到输出的步骤响应。

Y12 = y(:,1,2);情节(t,日元)

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

创建一个有延迟的反馈循环,并绘制其步骤响应。

S = tf(“年代”);G = exp(-s) * (0.8*s²+s+2)/(s²+s);sys = feedback(ss(G),1);步骤(系统)

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

系统阶跃响应显示混乱。具有内部延迟的系统的阶跃响应可能表现出奇怪的行为,例如重复的跳跃。这种行为是系统的特征,而不是软件异常。

默认情况下,一步应用从0到1的输入信号t= 0。要自定义振幅和偏移量,使用stepDataOptions.例如,计算SISO状态空间模型对从1到-1到at的信号的响应t= 0。

A = [1.6 -0.7;1 0];B = [0.5;0);C = [0.1 0.1];D = 0;sys = ss(A,B,C,D,0.2);opt = stepDataOptions;opt.InputOffset = 1;opt.StepAmplitude = -2; step(sys,opt)

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

对于任意输入信号的响应,使用lsim

比较参数识别模型的阶跃响应与非参数(经验)模型。同时查看他们的3个 σ 地区的信心。

加载数据。

负载iddata1z1

估计一个参数模型。

Sys1 = sest(z1,4);

估计一个非参数模型。

Sys2 =冲量(z1);

画出阶跃响应以便比较。

T = (0:0.1:10)';[y1, ~, ~, ysd1] = step(sys1,t);[y2, ~, ~, ysd2] = step(sys2,t);情节(t, y1,“b”, t, y +3*ysd1,”乙:“, t, y -3*ysd1,”乙:“)举行情节(t, y2,‘g’t, y2+3*ysd2,“旅客:”, t, y2-3*ysd2,“旅客:”

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

计算一个确定的时间序列模型的阶跃响应。

时间序列模型,也称为信号模型,是没有测量输入信号的模型。该模型的阶跃图使用其(未测量的)噪声通道作为应用阶跃信号的输入通道。

加载数据。

负载iddata9

估计一个时间序列模型。

Sys = ar(z9,4);

y是模型的形式吗A y(t) = e(t),在那里e (t)表示噪声通道。阶跃响应的计算,e (t)作为输入通道,并命名为e@y1

画出阶跃响应。

步骤(系统)

图中包含一个轴对象。标题为From: e@y1 To: y1的axes对象包含一个line类型的对象。该节点表示sys。

通过比较线性和非线性模型的小振幅阶跃响应,验证非线性ARX模型的线性化。

加载数据。

负载iddata2z2

估计一个非线性ARX模型。

nlsys = nlarx(z2,[4 3 10],idTreePartition,“自定义”, {“罪(y1 (2) * u1 (t)) + y₁(2)* u1 (t) + u1 (t)。* u1 (t-13) '“日元(t-5) * y1 (t-5) * (t - 1)”},“nlr”,[1:5, 7 - 9]);

确定的平衡工作点nlsys对应于稳态输入值1。

U0 = 1;[X,~,r] = findop(nlsys,“稳定”1);y0 = r.s signallevels . output;

得到的线性逼近nlsys在这个操作点。

sys = linearize(nlsys,u0,X);

验证sys将其小幅度阶跃响应与nlsys

非线性系统nlsys是在一个均衡水平上运行(y0情况).对该稳态引入大小为0.1的阶跃扰动,并计算相应的响应。

opt = stepDataOptions;opt.InputOffset = u0;opt.StepAmplitude = 0.1;T = (0:0.1:10)';Ynl = step(nlsys, t, opt);

线性系统sys表示输入扰动与输出相应扰动之间的关系。它不知道非线性系统的平衡值。

画出线性系统的阶跃响应。

opt = stepDataOptions;opt.StepAmplitude = 0.1;Yl = step(sys, t, opt);

加上稳态偏移量,y0,到线性系统的响应,并绘制响应图。

Plot (t, ynl, t, yl+y0)图例(“非线性”“带偏移量的线性”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示非线性,线性偏移。

输入参数

全部折叠

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

  • 连续时间或离散时间数值LTI模型,例如特遣部队zpk,或党卫军模型。

  • 广义的或不确定的LTI模型,如一族号航空母舰模型。(使用不确定模型需要鲁棒控制工具箱™软件。)

    • 对于可调控制设计块,该函数在绘制和返回响应数据时对模型的当前值进行评估。

    • 对于不确定的控制设计块,该函数绘制模型的标称值和随机样本。当使用输出参数时,该函数仅为标称模型返回响应数据。

  • 稀疏状态空间模型,如桅杆而且mechss模型。

  • 确定的LTI模型,例如idtf中的难点,或idproc模型。对于这样的模型,该函数还可以绘制置信区间并返回频率响应的标准差。看到具有置信区域的已识别模型的阶跃响应(使用识别的模型需要系统识别工具箱™软件。)

一步不支持频率响应数据金宝app模型,如的朋友genfrd,或idfrd模型。

如果sys是一个模型数组,函数将数组中所有模型的响应绘制在同一轴上。看到模型阵列中系统的阶跃响应

步骤响应的结束时间,指定为正标量值。一步模拟的阶跃响应T = 0t =tFinal

  • 对于连续时间系统,该函数根据系统动力学自动确定步长和点数。表达tFinal中指定的系统时间单位TimeUnit的属性sys

  • 对于离散时间系统,该函数使用的采样时间为sys步长。表达tFinal中指定的系统时间单位TimeUnit的属性sys

  • 对于样本时间未知的离散系统(Ts = -1),一步解释tFinal作为模拟的采样周期数。

计算阶跃响应的时间向量,指定为正标量值的向量。表达t中指定的系统时间单位TimeUnit的属性sys

  • 对于连续时间模型,请指定t在表格中Ti: dt: Tf.为了获得每个时间步的响应,函数使用dt作为连续系统的离散近似的采样时间(见算法).

  • 对于离散时间模型,指定t在表格中Ti: Ts: Tf,在那里Ts样品时间是sys

一步始终应用步长输入T = 0,不管“透明国际”

线条样式、标记和颜色,指定为一个、两个或三个字符的字符串或向量。字符可以以任何顺序出现。您不需要指定所有三个特征(线条样式、标记和颜色)。例如,如果省略了线条样式并指定了标记,那么绘图将只显示标记而不显示线条。有关配置此参数的详细信息,请参见LineSpec的输入参数。情节函数。

例子:“r——”指定一个红色虚线

例子:‘* b”指定蓝色星号标记

例子:“y”指定黄线

输入偏移量和应用步进信号的振幅,指定为astepDataOptions选项设置。默认情况下,一步每次应用从0到1的输入T = 0.使用此input参数可更改步进输入的初始值和最终值。看到对自定义步骤输入的响应举个例子。

输出参数

全部折叠

步骤响应数据,作为数组返回。

  • 对于SISO系统,y列向量的长度和t(如提供)或吹捧(如你没有提供t).

  • 对于单输入多输出系统,y是一个矩阵,其行数与时间采样数相等,列数与输出数相等。因此,j的第Th列y,或y (:, j),包含从输入到的阶跃响应j输出。

  • 对于MIMO系统,每个输入通道的阶跃响应沿的第三维叠加y.的维度y然后N——- - - - - -纽约——- - - - - -ν,地点:

    • N是时间样本的个数。

    • 纽约是系统输出的数量。

    • ν是系统输入的数量。

    因此,y (:, i, j)列向量是否包含阶跃响应j的Th输入中指定的时间处的输出t吹捧

计算步骤响应的时间,作为向量返回。当你不提供一个特定的向量t次,一步根据系统动力学选择该时间向量。时间单位为sys

状态轨迹,作为数组返回。当sys是一个状态空间模型,x包含了状态的演化sys在每一次t吹捧.的维度xN——- - - - - -Nx——- - - - - -ν,地点:

  • N是时间样本的个数。

  • Nx是状态数。

  • ν是系统输入的数量。

这样,状态的演化就响应于一个步骤的注入kTh输入由数组给出x (:,:, k).行向量x(我:k)控件上的状态值时间步长。

已识别的模型的阶跃响应的标准偏差,作为相同维度的数组返回y.如果sys不包含参数协方差信息,则ysd是空的。

提示

  • 当您需要额外的情节定制选项时,请使用stepplot代替。

  • 要模拟系统对任意输入信号的响应,使用lsim

算法

为获得连续时间模型无内部延迟的样本,一步将此类模型转换为状态空间模型,并使用输入上的零阶保持符对其进行离散化。一步根据系统动态自动选择此离散化的采样时间,除非您提供输入时间向量t在表格中t = 0:dt:Tf.这样的话,一步使用dt为采样时间。得到的仿真时间步长吹捧是否与间距相等dt

对于具有内部延迟的系统,控制系统工具箱™软件使用可变步长求解器。结果,时间就会步进吹捧不是等分的。

参考文献

[1] L.F. Shampine和P. Gahinet,“控制理论中的延迟微分代数方程”,应用数值数学,第56卷,3-4期,第574-588页。

R2006a之前介绍