主要内容

lsim

绘制动态系统到任意输入的模拟时间响应;模拟响应数据

描述

响应图

例子

lsim(SYS.T.绘制模拟的时间响应曲线动态系统模型SYS.输入历史记录(T.).矢量T.指定模拟的时间样本。对于单输入系统,输入信号是与之相同的矢量矢量T..对于多输入系统,是一个有时间样本(长度(t))和有输入一样多的列SYS.

例子

lsim(SYS.T.X0.进一步指定了向量X0.初始状态值,何时SYS.是一个状态空间模型。

lsim(SYS.T.X0.方法指定如何lsim插值样本之间的输入值,何时SYS.是一个连续时间模型。

例子

lsim(SYS.1.SYS.2,......,SYS.NT.___模拟几个动态系统模型的响应到相同的输入历史记录,并在单个数字上绘制这些响应。所有系统必须具有相同数量的输入和输出。你也可以使用X0.方法计算多个模型的响应时输入参数。

例子

lsim(SYS.1.线路专业版1.SYS.N线路专业版N___为图中的每个系统指定颜色、线条样式和标记。当您需要额外的情节定制选项时,请使用lsimplot.反而。

响应数据

例子

y= lsim (SYS.T.返回系统响应y,在同一时间抽样T.作为输入。对于单输出系统,y是与之相同的矢量矢量T..对于多输出系统,y是一个数组,在有时间样本(长度(t))和输出的列数SYS..这种语法不会生成图形。

y= lsim (SYS.T.X0.进一步指定了向量X0.初始状态值,何时SYS.是一个状态空间模型。

y= lsim (SYS.T.X0.方法指定如何lsim插值样本之间的输入值,何时SYS.是一个连续时间模型。

例子

[y吹牛X] = LSIM(___返回状态轨迹X, 什么时候SYS.是一个状态空间模型。X一个数组的行数是否和时间样本一样多,列数是否和状态一样多SYS.. 此语法还返回中用于模拟的时间样本吹牛

线性仿真工具

lsim(SYS.打开“线性模拟”工具。有关使用此工具进行线性分析的详细信息,请参见使用线性模拟工具

例子

全部折叠

考虑以下传输功能。

sys = tf(3,[[1 2 3])
sys = 3 ------------- S ^ 2 + 2 s + 3连续时间传递函数。

要将该系统的响应计算为任意输入信号,请提供lsim以时代为矢量T.要计算响应和向量的值包含相应的信号值。例如,绘制系统对时刻从0开始的陡增阶跃信号的响应t = 0,坡道从0次t = 1到1 at.t = 2,然后在1.定义时保持稳定T.并计算

t = 0:0.04:8;%201分u = max(0,min(t-1,1));

使用lsim没有输出参数来绘制系统对信号的响应。

LSIM(SYS,U,T)网格在…上

图包含轴。轴包含2个类型的型号。这些对象代表驾驶输入,SYS。“width=

该图显示了应用的输入(U,T)在灰色和蓝色的系统响应中。

使用lsim使用输出参数获取模拟响应数据。

Y = LSIM(SYS,U,T);尺寸(y)
ans =1×22011

矢量y中对应时刻的模拟响应T.

使用根希创建周期输入信号,如正弦波和方波,以供使用lsim.模拟以下SISO状态空间模型对方波的响应。

a = [-3 -1.5;5 0];b = [1;0];c = [0.5 1.5];d = 0;sys = ss (A, B, C, D);

对于本例,创建一个周期为10秒、持续时间为20秒的方波。

[u,t]=gensig(“正方形”,10,20);

根希返回载体T.时间步骤和向量包含输入信号的相应值。(如果你没有指定一个样本时间T., 然后根希每个周期生成64个样本。)使用这些lsim并绘制系统响应。

LSIM(SYS,U,T)网格在…上

图包含轴。轴包含2个类型的型号。这些对象代表驾驶输入,SYS。“width=

该图显示了灰色的应用方波和蓝色的系统响应。称呼lsim使用输出参数以获取每个点的响应值T.

[y,~]=lsim(sys,u,t);

当您模拟离散时间系统的响应时,时间向量T.必须是表格TI:DT:TF, 在哪里DT.是模型的采样时间。模拟以下离散时间传递函数对斜坡步骤输入的响应。

SYS = TF([0.06 0.05],[1-1.56 0.67],0.05);

该传递函数具有0.05秒的采样时间。使用相同的采样时间来生成时间向量T.和一个斜坡的步骤信号

t = 0:0.05:4;u = max(0,min(t-1,1));

绘制系统响应。

LSIM(SYS,U,T)

图包含轴。轴包含2个类型的型号。这些对象代表驾驶输入,SYS。“width=

要模拟离散时间系统对周期性输入信号的响应,请使用与相同的采样时间根希生成输入。例如,模拟系统对周期为1 s、持续时间为4 s的正弦波的响应。

[u,t]=gensig(“正弦”,1,4,0​​.05);

绘制系统响应。

LSIM(SYS,U,T)

图包含轴。轴包含2个类型的型号。这些对象代表驾驶输入,SYS。“width=

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

H=tf(4[11025]);C1=皮顿(H,'pi'); C2=皮顿(H,'PID');

形成闭环系统。

sys1 =反馈(H * C1, 1);sys2 =反馈(H * C2, 1);

绘制两个系统对周期为4 s的方波的响应。

[u,t]=gensig(“正方形”,4,12);LSIM(SYS1,SYS2,U,T)网格在…上传奇(“圆周率”“PID”

图包含轴。轴包含3个类型的线。这些对象代表驾驶输入,PI,PID。“width=

默认情况下,lsim为绘制的每个系统选择不同的颜色。控件可以指定颜色和线条样式线路专业版输入参数。

LSIM(SYS1,“r——”,sys2,“b”,u,t)网格在…上传奇(“圆周率”“PID”

图包含轴。轴包含3个类型的线。这些对象代表驾驶输入,PI,PID。“width=

首先线路专业版r——”指定具有PI控制器的响应的虚线红线。第二线路专业版B“为PID控制器的响应指定实蓝色线。图例反映了指定的颜色和线条风格。更多情节定制选项,请使用lsimplot.

在MIMO系统中,每次步骤T.,输入你(t)是一个矢量,其长度是输入的数量。使用lsim,你指定作为具有尺寸的矩阵新界-经过-怒族, 在哪里怒族系统输入和的数量是多少新界为长度T..换句话说,每一列输入信号是否施加到相应的系统输入。例如,为了模拟具有用于201次步骤的四个输入的系统,提供作为四列201行的矩阵,其中每行u(i,:)是输入值的矢量一世th时间步长;每一列u (:, j)信号是否施加在j输入。

同样,输出y (t)计算lsim是一个矩阵,其列在每个系统输出处表示信号。当你使用时lsim要绘制模拟响应,lsim为每个输出提供单独的轴,表示每个输出通道中的系统响应到输入你(t)应用于所有输入。

考虑具有以下状态空间矩阵的双输入,三输出状态空间模型。

A = [-1.5 -0.2 1.0;-0.2 -1.7 0.6;1.0 0.6 -1.4);B = [1.5 0.6;-1.8 - 1.0;0 0];C = [0 -0.5 -0.1;0.35 -0.1 -0.15 0.65 0 0.6];D = [0.5 0;0.05 0.75 0 0]; sys = ss(A,B,C,D);

绘制的响应SYS.在第一个输入的时期4 s的平方浪潮中施加到第一个输入SYS.并且每3秒施加到第二输入的脉冲。为此,创建表示方波和脉冲信号的列向量根希.然后将列堆叠到输入矩阵中。为了确保两个信号具有相同数量的样本,请指定相同的结束时间和采样时间。

Tf=10;Ts=0.1[uSq,t]=gensig(“正方形”,4,tf,ts);[Up,〜] = Gensig(“脉搏”3 Tf Ts);u = [uSq uP];LSIM(SYS,U,T)

图包含3个轴。轴1包含3个类型的线。这些对象代表驾驶输入,SYS。轴2包含3个类型的线。这些对象代表驾驶输入,SYS。轴3包含3个类型的线。这些对象代表驾驶输入,SYS。“width=

每个轴都显示了三个系统中的一个输出到信号的响应应用于所有输入。每个图还以灰色显示所有输入信号。

默认情况下,lsim模拟模型假设在仿真开始时所有状态都为零。在模拟状态空间模型的响应时,请使用可选X0.输入参数以指定非零初始状态值。考虑以下两个状态SISO状态空间模型。

a = [-1.5 -3;3 -1];B = [1.3;0];c = [1.15 2.3];d = 0;sys = ss (A, B, C, D);

假设您希望允许系统从已知的一组初始状态演变,没有输入2 s,然后应用单位步骤改变。指定载体X0.初始状态值,并创建输入向量。

x0 = [-0.2 0.3];t = 0:0.05:8;u =零(长度(t),1);U(t> = 2)= 1;LSIM(SYS,U,T,X0)网格在…上

图包含轴。轴包含2个类型的型号。这些对象代表驾驶输入,SYS。“width=

图的前半部分显示了系统从初始状态值到自由演化的过程[-0.2 0.3]. 在t = 2输入的步骤改变,并且图表显示了从当时的状态值开始的新信号的系统响应。

当你使用时lsim使用输出参数,它返回数组中的模拟响应数据。对于SISO系统,响应数据作为相同长度的列向量返回T.. 例如,提取SISO系统对方波的响应。使用创建方波根希

sys = tf([2 5 1],[1 2 3]);[u,t]=gensig(“正方形”,4,10,0.05);[y,t] = lsim(sys,u,t);尺寸(y)
ans =1×22011

矢量y包含中每个时间步的模拟响应T..(lsim返回时间向量T.方便起见。)

对于MIMO系统,响应数据在尺寸阵列中返回N-经过-纽约-经过-怒族, 在哪里纽约怒族是动态系统的输出和输入数量。例如,考虑以下状态空间模型,表示具有两个输入和三个输出的三态系统。

A = [-1.5 -0.2 1.0;-0.2 -1.7 0.6;1.0 0.6 -1.4);B = [1.5 0.6;-1.8 - 1.0;0 0];c = [0 -0.1 -0.2;0.7 -0.2 -0.3 -0.65 0 -0.6];d = [0.1 0;0.1 1.5 0 0]; sys = ss(A,B,C,D);

提取三个输出通道对应用于两个输入端的方波的响应。

嗯= [你你];[y,t] = lsim(sys,um,t);尺寸(y)
ans =1×2201 3

Y(:,j)是包含响应的列矢量j输出到应用于两个输入的方波。那是,义,:)是三个值的矢量,输出值一世步骤。

因为SYS.是一个状态空间模型,可以响应输入信号提取状态值的时间演变。

(y, t, x) = lsim (sys,嗯,t);大小(x)
ans =1×2201 3

每行X包含状态值[x1,x2,x3]在相应的时间T..换句话说,x(我,:)是国家矢量一世步骤。绘制状态值。

plot(t,x)

图包含轴。轴包含3个类型的线。“width=

多个系统到相同输入的示例绘图响应显示了如何在单个轴上绘制几个单独系统的响应。当您在模型阵列中排列多个动态系统时,lsim一次绘出他们的所有反应。

创建模型数组。对于此示例,使用具有不同自然频率的二阶传输函数的一维阵列。首先,preal分配模型阵列的内存。以下命令创建一个1×5行的零增益SISO传输函数。前两个维度代表模型输出和输入。剩余尺寸是阵列尺寸。(有关模型阵列的更多信息以及如何创建它们,请参阅模型阵列.)

sys = tf(零(1,1,1,5));

填充数组。

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

绘制阵列中所有模型对方波输入的响应。

[u,t]=gensig(“正方形”,5,15);LSIM(SYS,U,T)

图中包含一个轴。轴包含6个类型为line的对象。这些对象表示驱动输入sys。“width=

lsim对数组中所有条目的响应使用相同的行样式。区分条目的一种方法是使用SamplingGrid.动态系统模型的属性将每个条目与相应的数组相关联W0.价值

sys.SamplingGrid=struct('频率', w0);

现在,当您在Matlab Fign窗口中绘制响应时,可以单击一条迹线以查看它对应的频率值。

负荷估计数据来估计一个模型。

加载(全氟(MatlaBroot,“工具箱”“识别”“iddemos”“数据”'dcmotordata'));z = iddata(y,u,0.1,'姓名'直流电机的);

Z.是一个iddata.存储单输入的双输出估计数据的对象,采样时间为0.1秒。

使用估计数据估计订单4的状态空间模型Z.

[sys,x0] = n4sid(z,4);

SYS.估计模型是和吗X0.是估计的初始状态。

模拟响应SYS.使用与用于估计和由估计命令返回的初始状态相同的输入数据。

(y, t, x) = lsim (sys、z.InputData [], x0);

在这里y是系统响应,T.是用于模拟的时间矢量,和X是国家轨迹。

比较模拟响应y到测量的反应z.outputdata.对于这两个输出。

子图(211),plot(t,z.outputdata(:,1),'K',t,y(:,1),'r') 传奇('衡量''模拟')次要情节(212)、图(t, z.OutputData (:, 2),'K',t,y(:,2),'r') 传奇('衡量''模拟'

图包含2个轴。轴1包含2个类型的2个物体。这些对象表示测量,模拟。轴2包含2个类型的2个物体。这些对象表示测量,模拟。“width=

采样时间的选择会严重影响模拟结果。为了说明为什么,考虑下面的二阶模型。

S. y S. S. = ω. 2 S. 2 + 2 S. + ω. 2 ω. = 62.83

使用0.1s的采样时间,模拟该模型对周期为1s的方波的响应。

w2=62.83^2;sys=tf(w2[12 w2]);tau=1;Tf=5;Ts=0.1[u、 t]=gensig(“正方形”,tau,tf,ts);LSIM(SYS,U,T)

LSIM警告消息:输入信号是欠采样。“height=

lsim使用指定的输入信号模拟模型,但发出输入信号采样不足的警告。lsim建议采样时间,每个输入周期至少生成64个采样.要了解为什么这项建议就是模拟SYS.再次使用小于建议最大值的采样时间。

图TS2 = 0.01;[U2,T2] = Gensig(“正方形”,tau,tf,ts2);LSIM(SYS,U2,T2)

该响应具有强烈的振荡行为,隐藏在欠采样版本中。

输入参数

全部折叠

动态系统,指定为SISO或MIMO动态系统模型或动态系统模型阵列。可以模拟其响应的动态系统包括:

  • 连续时间或离散时间数值LTI模型,如TF.ZPK.SS.模型。

  • 广义或不确定LTI模型,如雄鸡美国军舰模型。(使用不确定模型需要鲁棒控制工具箱™软件。)

    • 对于可调控制设计块,函数将以当前值计算模型的打印和返回响应数据。

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

  • 稀疏状态空间模型,例如脚尔斯机械模型。

  • 识别LTI模型,例如idtfIDS.Idroc模型。对于已识别的型号,您也可以使用sim卡(系统识别工具箱)命令,可以计算模拟响应和状态轨迹的标准偏差。sim卡还可以模拟所有类型的模型,具有非零初始条件,可以模拟非线性识别的模型。(使用所识别的型号需要系统识别工具箱™软件。)

lsim不支持频率响应数据金宝app模型,如的朋友根弗里德IDFRD.模型。

如果SYS.是一个模型数组,该函数在同一轴上绘制数组中所有模型的响应。看见模型阵列中系统的响应

用于模拟的输入信号,指定为单输入系统的向量,以及用于多输入系统的阵列。

  • 对于单输入系统,是与之相同的矢量矢量T.

  • 对于多输入系统,是一个有时间样本(长度(t))和有输入一样多的列SYS..换句话说,每一行u(i,:)表示在输入中应用的值SYS.当时t(i).每栏u (:, j)该信号是否应用于j输入SYS.

计算响应的时间样本,指定为形式的向量0:dT:Tf.这lsim命令解释T.与有单位指定的单位时间单位模型的性质SYS.

连续时间SYS., 这lsim命令使用时间步DT.离散模型。如果DT.相对于系统动态(under采样)太大了,lsim问题推荐更快的采样时间。进一步讨论采样时间对模拟的影响,见采样时间对模拟的影响

离散时间SYS.,时间步长DT.必须等于的采样时间SYS..或者,您可以省略T.或者把它设置为[]. 那么,,lsimT.向量的长度等于它从0开始,时间步长等于sys.ts.

用于模拟状态空间模型的初始状态值,指定为具有每个状态的一个条目的向量SYS..如果你省略这个参数,那么lsim将所有状态设置为零t = 0

采样连续时间模型的离散化方法,具体如下。

  • “zoh”- 零阶保持

  • “福”-一等舱

什么时候SYS.是一个连续时间模型,lsim通过使用等于时间步骤的采样时间将模型离散化模型来计算时间响应dt = t(2)-t(1)属于T..如果你没有指定离散化方法,那么lsim根据信号的平滑度自动选择方法.有关这两种离散化方法的更多信息,请参阅连续-离散转换方法

线条样式,标记和颜色,指定为一个,两个或三个字符的字符串或向量。字符可以显示任何顺序。您无需指定所有三种特征(线条样式,标记和颜色)。例如,如果省略了线条样式并指定标记,则绘图仅显示标记和无行。有关配置此参数的详细信息,请参阅线路专业版输入参数情节函数。

例子:'r--'指定红色虚线

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

例子:“y”指定黄线

输出参数

全部折叠

模拟响应数据,作为数组返回。

  • 对于单输入系统,y是与相同长度的列向量T.

  • 对于多输出系统,y是一个有时间样本(长度(t))和输出的列数SYS..就这样j柱子yY(:,j),包含位于j产出到应用于所有输入。

用于模拟的时间向量,作为列向量返回。指定输入时间向量时T.形式0:dT:Tf, 然后兜售= t.如果T.几乎是平衡的,lsim调整模拟的样本时间并返回结果吹牛.离散时间SYS.,你可以省略T.或者把它设置为[]. 那么,,lsimT.向量的长度等于它从0开始,时间步长等于sys.ts.,并返回结果吹牛

状态轨迹,作为阵列返回。什么时候SYS.是一个状态空间模型,X包含状态的演变SYS.对输入的响应。X是一个数组,有很多行,因为有时间样本(长度(t))和SYS中有许多列。

提示

  • 当您需要额外的情节定制选项时,请使用lsimplot.反而。

算法

对于离散时间传递函数,

S. y S. Z. 1 = 一种 0. + 一种 1 Z. 1 + ...... + 一种 N Z. N 1 + B. 1 Z. 1 + ...... + B. N Z. N

lsim基于与此传输功能关联的递归过滤输入:

y [ K. ] = 一种 0. [ K. ] + ...... + 一种 N [ K. N ] B. 1 y [ K. 1 ] ...... B. N [ K. N ]

离散时间ZPK.模型,lsim通过一系列一阶或二阶部分过滤输入。该方法避免形成分子和分母多项式,这可能导致更高阶模型的数值不稳定性。

对于离散时间状态空间模型,lsim传播离散时间的状态空间方程,

X [ N + 1 ] = 一种 X [ N ] + B. [ N ] y [ N ] = C X [ N ] + D. [ N ]

对于连续时间系统,lsim首先离散系统使用c2d,然后传播得到的离散时间状态空间方程。除非您用方法输入参数,lsim当输入信号平滑时使用一阶保持离散化方法,当输入信号不连续时(例如脉冲或方波)使用零阶保持离散化方法。离散化的采样时间为间距DT.在您提供样品的时间间隔内T.

在R2006a之前引入