主要内容

lsim

情节模拟时间响应的动态系统任意输入;模拟响应数据

描述

响应图

例子

lsim (sys,u,t)阴谋的模拟时间响应动态系统模型sys输入历史(t,u)。向量t指定样品的时间模拟。对于单输入系统,输入信号u是一个向量的长度一样吗t。对于多输入系统,u是一个数组和尽可能多的行有时间样本(长度(t))和尽可能多的列有输入sys

例子

lsim (sys,u,t,x0)进一步指定一个向量x0初始状态的值,当sys是一个状态方程模型。

例子

lsim (sys,u,t,x0,p)指定参数轨迹pLPV模型。

lsim (sys,u,t,x0,方法)指定如何lsim篡改样本之间的输入值,当sys是一个连续时间模型。

例子

lsim (sys1,sys2……sysN,u,t,___)模拟几个动态系统模型的反应相同的输入历史和情节这些反应在一个数字。所有系统必须有相同数量的输入和输出。您还可以使用x0方法输入参数时,计算多个模型的反应。

例子

lsim (sys1,LineSpec1、……sysN,LineSpecN,___)指定一个颜色、线型和标记每个系统的阴谋。当你需要额外的定制选项,使用lsimplot代替。

响应数据

例子

y= lsim (sys,u,t)返回系统响应y在同一时间,采样t作为输入。对于系统y是一个向量的长度一样吗t。对于多输出系统,y是一个数组有尽可能多的行有时间样本(长度(t))和尽可能多的列有输出sys。这个语法不生成一个阴谋。

y= lsim (sys,u,t,x0)进一步指定一个向量x0初始状态的值,当sys是一个状态方程模型。

例子

y= lsim (sys,u,t,x0,p)指定参数轨迹pLPV模型。

y= lsim (sys,u,t,x0,方法)指定如何lsim篡改样本之间的输入值,当sys是一个连续时间模型。

例子

(y,吹捧,x)= lsim (___)返回状态轨迹x,当sys是一个状态方程模型。x是一个数组和尽可能多的行有时间样品和尽可能多的列有州sys。这个语法也返回用于模拟样品的时间吹捧

(y,吹捧,x,撅嘴)= lsim (sys,u,t,x0,p)还返回参数轨迹撅嘴,当sys是一个LPV模型。

线性仿真工具

lsim (sys)打开线性模拟工具。关于使用这个工具的更多信息进行线性分析,明白了使用线性模拟工具

例子

全部折叠

考虑下面的传递函数。

sys =特遣部队(3 (1 2 3))
sys = 3 - - - - - - - - - - - - - ^ 2 + 2年代+ 3连续时间传递函数。

计算这个系统任意输入信号的响应,提供lsim与时代的一个向量t你想计算响应和一个向量u包含相应的信号值。例如,绘制系统响应信号,增加一步从0开始t = 0,坡道从0t = 11在t = 2,然后保持稳定在1。定义t和计算的值u

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

使用lsim没有一个输出参数绘制系统响应信号。

lsim (sys, u, t)网格

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入系统。”width=

图显示了应用输入(u, t)在灰色和蓝色的系统响应。

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

y = lsim (sys, u, t);大小(y)
ans =1×2201年1

向量y包含了模拟响应在相应的时间t

使用gensig创建周期性输入信号正弦波和方波等使用lsim。模拟的方波响应以下状态空间模型的输出。

一个= [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);

gensig返回向量t时间的步骤和向量u包含相应的输入信号的值。(如果你不指定一个样品时间t,然后gensig生成64样本/期。)使用这些lsim并画出系统响应。

lsim (sys, u, t)网格

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入系统。”width=

情节展示了应用方波灰色和蓝色的系统响应。调用lsim和一个输出参数获取每个点的响应值t

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

模拟一个离散时间系统的响应时,向量的时间t必须的形式Ti: dT: Tf,在那里dT的样品时间模型。模拟的反应后斜阶跃输入离散传递函数。

特遣部队(sys = (0.06 - 0.05), -1.56 - 0.67 [1], 0.05);

这一传递函数示例0.05秒的时间。使用相同的样品时间生成向量t和增加信号u

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

绘制系统响应。

lsim (sys, u, t)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入系统。”width=

模拟响应离散时间系统的周期性输入信号,使用相同的样品时间gensig生成的输入。例如,模拟系统响应周期的正弦波1 s, 4 s的持续时间。

(u, t) = gensig (“正弦”,1,4,0.05);

绘制系统响应。

lsim (sys, u, t)

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入系统。”width=

lsim允许你情节多个动态系统的模拟反应在同一轴。例如,比较系统的闭环响应和PI控制器和PID控制器。创建一个系统的传递函数和优化控制器。

特遣部队(H = 4, 10 25 [1]);C1 = pidtune (H,“π”);C2 = pidtune (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选择不同的颜色为每个系统图。您可以指定颜色和线条样式使用LineSpec输入参数。

lsim (sys1“r——”sys2,“b”u, t)网格传奇(“π”,“PID”)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。这些对象代表驾驶输入、PI、PID。”width=

第一个LineSpecr——”指定虚线红线与PI控制器的响应。第二个LineSpecb”指定了一个坚实的蓝线响应的PID控制器。传说反映了指定的颜色和线条样式。更多的定制选项,使用lsimplot

在MIMO系统中,在每个时间步t,输入u (t)是一个向量的长度是输入的数量。使用lsim,您指定u作为一个矩阵维度Nt——- - - - - -ν,在那里ν系统输入和数量吗Nt的长度是t。换句话说,每一列的u是输入信号应用到相应的系统输入。例如,201次模拟系统有四个输入步骤,提供u四列的矩阵和201行,每一行u(我,:)向量的输入值吗th时间步长;每一列u (:, j)应用在信号吗j输入。

类似地,输出y (t)计算lsim是一个矩阵的列表示信号在每个系统的输出。当你使用lsim绘制模拟响应,lsim为每一个人提供了单独的轴输出,代表在每个输出通道输入系统响应u (t)应用于所有输入。

考虑到两个输入,用下面的状态空间模型三个的输出状态空间矩阵。

(-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.6 0];(0.5 D = 0;0.05 - 0.75 0 0]; sys = ss(A,B,C,D);

情节的反应sys的方波周期4 s,适用于第一个输入sys和一个脉冲每3 s应用到第二个输入。为此,创建列向量代表方波脉冲信号使用gensig。然后栈列成一个输入矩阵。确保两个信号具有相同数量的样本,指定相同的结束时间和样品时间。

Tf = 10;t = 0.1;(澳大利亚,t) = gensig (“广场”4 Tf Ts);(,~)= gensig (“脉搏”3 Tf Ts);u =[澳大利亚];lsim (sys, u, t)

图包含3轴对象。轴与ylabel对象1:(1)包含3线类型的对象。这些对象代表驾驶输入系统。轴与ylabel对象2:(2)包含3类型的对象。这些对象代表驾驶输入系统。轴与ylabel对象3:(3)包含3线类型的对象。这些对象代表驾驶输入系统。”width=

每个轴显示了响应的三个系统的输出信号u应用于所有输入。每一个情节还在灰色显示所有输入信号。

默认情况下,lsim模拟了模型假设所有状态为零的模拟。当状态空间模型的响应模拟,使用可选的x0输入参数来指定非零初始状态值。考虑以下两个状态空间模型的输出。

= (-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 = 0(长度(t), 1);u (t > = 2) = 1;lsim (sys, u, t, x0)网格

图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入系统。”width=

上半年的情节展示了自由演化系统从初始状态值(-0.2 - 0.3)。在t = 2有一个阶跃变化的输入,情节显示了这个新系统响应信号开始从国家价值观。

当你使用lsim输出参数,它将返回数组中的模拟响应数据。对于输出系统,返回响应数据作为一个列向量的长度相同t。例如,提取一个方波的输出系统的反应。创建使用方波gensig

sys =特遣部队([2 5 1],[1 2 3]);(u, t) = gensig (“广场”、4、10、0.05);[y, t] = lsim (sys, u, t);大小(y)
ans =1×2201年1

向量y包含了模拟响应在每个时间步t。(lsim返回时间向量t作为方便。)

的MIMO系统,响应数据返回数组的维度N——- - - - - -纽约——- - - - - -ν,在那里纽约ν数量的输出和输入的动态系统。例如,考虑以下,状态空间模型代表一个三态系统与两输入三输出。

(-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.6 0];(0.1 D = 0;0.1 - 1.5 0 0]; sys = ss(A,B,C,D);

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

嗯= [u u];[y, t] = lsim (sys,嗯,t);大小(y)
ans =1×2201年3

y (:, j)是一个列向量包含响应的j应用th输出的方波输入。也就是说,y(我,:)三个值是一个向量,输出值的吗时间步长。

因为sys状态空间模型是一个,你可以提取的时间演化状态值的输入信号。

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

每一行的x包含状态值(x1, x2, x3)在相应的时间t。换句话说,x(我,:)状态向量的吗时间步长。情节状态值。

情节(t, x)

图包含一个坐标轴对象。坐标轴对象包含3线类型的对象。”width=

情节回应的多个系统相同的输入的例子显示了如何绘制反应的几个独立系统在一个轴上。当你有多个动态系统模型阵列排列的,lsim情节所有他们的反应。

数组创建一个模型。对于这个示例,使用一维数组的二阶传递函数有不同的固有频率。首先,preallocate数组内存模型。下面的命令创建一个1-by-5排零增益输出传递函数。前两个维度代表模型的输出和输入。其余尺寸数组维度。(更多信息模型数组和如何创建它们,看到的模型阵列。)

sys =特遣部队(0 (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行类型的对象。这些对象代表驾驶输入系统。”width=

lsim使用相同的线条样式为数组中的所有条目的反应。区分的一种方式是使用的条目SamplingGrid财产的动态系统模型,将数组中的每一项都与相应的相关联w0价值。

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

现在,当你在MATLAB绘制反应图窗口中,您可以单击跟踪看到它所对应的频率值。

负荷估算数据估计模型。

负载(fullfile (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),情节(t, z.OutputData (: 1),“k”、t、y (: 1),“r”)传说(“测量”,“模拟”)次要情节(212)、图(t, z.OutputData (:, 2),“k”、t、y (:, 2),“r”)传说(“测量”,“模拟”)

图包含2轴对象。坐标轴对象1包含2线类型的对象。这些对象代表测量,模拟。坐标轴对象包含2线类型的对象。这些对象代表测量,模拟。”width=

对于这个示例,fcnMaglev.m定义了矩阵和磁悬浮系统的补偿。磁悬浮控制悬浮球的高度使用线圈电流上创建了一个磁力球。这个例子模拟模型在开环。

创建一个LPV模型。

lpvSys = lpvss (“h”@fcnMaglev)
连续时间状态LPV模型1输出,输入,2个州和1个参数。模型属性

你可以设置附加属性使用点符号。

lpvSys。StateName = {“h”,“hdot”};lpvSys。InputName =“当前”;lpvSys。InputName =“高度”;

这个模型的模拟响应一个任意的正弦输入电流。

h0 = 1;[~,~,~,~,~,~,x0,情况,~]= fcnMaglev ([], h0);t = 0:1e-2:1;u =情况* (1 + 0.1 * sin (10 * t));y = lsim (lpvSys, u, t, x0, @ (t, x, u) x (1));
* * iter = 20,剩余:3.32 e-01 * * iter = 7,剩余:4.33平台以及

情节响应。

情节(t, y, t, u /情况)传说(“高度”,“当前”)

球被磁铁吸引当前第一次增加时(h减少)。随后的减少电流不足以把它带回来。

h= 0是这个模型的奇点,即球冲击磁铁。LPV模型不再是有效的在这一点上。

样本的选择时间可以大大影响仿真结果。为了说明为什么,考虑下面的二阶模型。

年代 y 年代 ( 年代 ) = ω 2 年代 2 + 2 年代 + ω 2 , ω = 62.83

这个模型的模拟响应的方波周期1 s,使用一个示例0.1秒的时间。

w2 = 62.83 ^ 2;sys =特遣部队(w2, [1 2 w2]);τ= 1;Tf = 5;t = 0.1;(u, t) = gensig (“广场”τ,Tf, Ts);lsim (sys, u, t)

undersampled lsim警告消息:输入信号。”height=

lsim模拟模型使用指定的输入信号,但它发出警告,undersampled输入信号。lsim推荐一个样本时间产生至少64样本/输入u。为什么这个建议很重要,模拟sys再次使用一个样本的时间小于推荐的最大。

图Ts2 = 0.01;(u2, t2) = gensig (“广场”τ,Tf, Ts2);lsim (sys, u2, t2)

这个响应表现出强烈的振荡行为隐藏在undersampled版本。

输入参数

全部折叠

动态系统,指定为输出或MIMO动态系统模型的动态系统模型。你可以模拟动态系统的反应包括:

  • 数字连续时间和离散时间线性时不变模型,如特遣部队,zpk,或党卫军模型。

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

    • 可调控制设计模块、功能评估模型以当前价值的策划并返回响应数据。

    • 不确定的控制设计模块,功能块模型的标称值和随机样本。当你使用输出参数,函数返回响应数据仅供名义模型。

  • 稀疏状态空间模型等桅杆mechss模型。

  • 确定了LTI模型,如idtf,中的难点,或idproc模型。为确定模型,还可以使用sim卡(系统辨识工具箱)命令,该命令可以计算模拟响应的标准偏差和状态轨迹。sim卡也可以模拟各种类型的模型与非零初始条件,并能模拟非线性识别模型。(使用识别模型需要系统辨识工具箱™软件。)

  • 线性时变(ltvss)和线性变参数(lpvss)模型。

lsim不支持频率特性等数金宝app据模型的朋友,genfrd,或idfrd模型。

如果sys模型是一个数组,函数块数组中的所有模型的反应在同一坐标轴。看到阵列响应的系统模型

模拟输入信号,输入系统指定为一个向量,和多输入系统的数组。

  • 对于单输入系统,u是一个向量的长度一样吗t

  • 对于多输入系统,u是一个数组和尽可能多的行有时间样本(长度(t))和尽可能多的列有输入sys。换句话说,每一行u(我,:)代表了应用的输入值sys在时间t(我)。每一列u (:, j)信号应用到吗jth的输入sys

时间的样本来计算响应,指定为一个向量的形式T0: dT: Tf。的lsim命令解释t中指定的单位TimeUnit模型的属性sys

对连续时间sys,lsim命令使用时间步dT离散化模型。如果dT太大相对于系统动力学(采样),lsim问题一个警告建议更快的取样时间。为进一步讨论采样时间的影响在模拟,明白了样品时间仿真的效果

对于离散时间sys,时间步长dT必须等于样本的时间吗sys。或者,你可以省略t或设置它[]。在这种情况下,lsimt一个向量的长度相同u开始与一个时间步等于0sys.Ts

初始状态,状态空间模型模拟值指定为一个向量为每个州有一个条目sys。如果您省略这个论点lsim集所有国家为零t = 0

参数LPV模型的轨迹,指定为一个矩阵或一个函数处理。

  • 对于外生或显式轨迹,指定p作为一个矩阵维度N——- - - - - -Np,在那里N是样品和数量的时间Np参数的数量。

    因此,行向量p(我,:)包含的参数值时间步长。

  • 内源性或隐含的轨迹,指定p作为表单的处理函数p=F(t,x,u)在连续时间和p=F(k,x,u)在离散时间参数作为时间的函数t或时间样本k,国家x,输入u

    这个选项是有用的,当你想模拟quasi-LPV模型。

离散化方法取样连续时间模型,指定为以下之一。

  • “zoh”——零举行

  • “呸”——一阶举行

sys是一个连续时间模型,lsim计算时间响应的离散化模型使用一个样本的时间等于时间步dT = t (2) - t (1)t。如果你不指定一个离散化方法lsim自动选择的方法基于信号的平滑u。关于这两个离散化方法的更多信息,请参阅Continuous-Discrete转换方法

线型、标志和颜色,指定为一个字符串或向量的两个或三个字符。可以出现在任何顺序的字符。你不需要指定三个特点(线型、标志和颜色)。例如,如果您省略线条样式和指定标记,然后情节只显示标记,也没有行。有关配置这个论点的更多信息,请参阅LineSpec输入参数的情节函数。

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

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

例子:“y”指定了一个黄线

输出参数

全部折叠

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

  • 对于单输入系统,y同样是一个列向量的长度吗t

  • 对于多输出系统,y是一个数组和尽可能多的行有时间样本(长度(t))和尽可能多的列有输出sys。因此,jth列y,或y (:, j),包含的响应jth输出u应用于所有输入。

时间向量用于模拟,作为一个列向量返回。当你指定一个输入向量t的形式0:dT: Tf,然后兜售= t。如果t几乎equisampled,lsim调整仿真样本时间和返回结果吹捧。对于离散时间sys,你可以省略t或设置它[]。在这种情况下,lsimt一个向量的长度相同u开始与一个时间步等于0sys.Ts,并返回结果吹捧

状态轨迹,作为一个数组返回。当sys是一个,状态空间模型x包含状态的演变sys为了应对输入。x是一个数组和尽可能多的行有时间样品吗(长度(t))和尽可能多的列有状态sys

参数轨迹,作为一个数组返回。当sys是一个线性参数不同(lpvss)模型,撅嘴包含参数的演变sys撅嘴是一个数组和尽可能多的行有时间样品吗(长度(t))和尽可能多的列有参数sys

提示

  • 当你需要额外的定制选项,使用lsimplot代替。

算法

离散传递函数,

年代 y 年代 ( z 1 ) = 一个 0 + 一个 1 z 1 + + 一个 n z n 1 + b 1 z 1 + + b n z n ,

lsim基于递归滤波器的输入与此相关传递函数:

y ( k ] = 一个 0 u ( k ] + + 一个 n u ( k n ] b 1 y ( k 1 ] b n ( k n ]

对于离散时间zpk模型,lsim过滤器的输入通过一系列的一阶或二阶部分。这种方法可以避免形成分子和分母多项式,从而导致数值不稳定的高阶模型。

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

x ( n + 1 ] = 一个 x ( n ] + B u ( n ] , y ( n ] = C x ( n ] + D u ( n ]

对于连续时间系统,lsim第一个可获得系统使用汇集,然后传播产生的离散时间状态空间方程。否则,除非你指定的方法输入参数,lsim使用一阶保持器的离散化方法,当输入信号平滑,和零输入信号不连续时,如脉冲和方波。样品时间离散化是间距dT样品你供应之间的关系t

版本历史

之前介绍过的R2006a