大规模集成电路

模拟动态系统对任意输入的时间响应

语法

lsim(系统、u、t)
lsim(系统,u,t,x0)
lsim (sys, u, t, x0,方法)
lsim (sys1…, sysn u t)
lsim (sys1 LineSpec1,…, sysN LineSpecN, u, t)
y=lsim(___)
[y,t,x]=大规模集成电路(___)
lsim(系统)

描述

大规模集成电路模拟连续或离散线性系统对任意输入的(时间)响应。在没有左手参数的情况下调用时,大规模集成电路在屏幕上绘制响应。

lsim(系统、u、t)生成动态系统模型系统输入历史,t型,u型. 矢量t型指定模拟的时间采样(以系统时间单位表示,在时间单位财产系统),由规则间隔的时间样本组成:

t=0:dt:t最终

输入u型是一个与时间样本(长度(t))以及尽可能多的列作为系统输入。例如,如果系统那么,是SISO系统吗u型是t×1的向量。如果系统有三个输入,那么u型是一个t×3的数组。每一行u(i,:)指定时间采样时的输入值t(一)。信号u型也出现在情节上。

模型系统可以是连续的或离散的,SISO或MIMO。在离散时间,u型必须以与系统相同的速率采样。在这种情况下,输入t型是冗余的,可以省略或设置为空矩阵。在连续时间内,时间采样dt=t(2)-t(1)是用来离散连续模型的。如果日期太大(采样不足),大规模集成电路发出警告,建议您使用更合适的样本时间,但将使用指定的样本时间。看到算法关于取样时间的讨论。

lsim(系统,u,t,x0)进一步指定初始条件x0个对于系统状态。此语法仅适用于系统是一个状态空间模型。x0个是一个向量,其条目是系统

lsim (sys, u, t, x0,方法)显式指定输入值应如何在样本之间插入,何时插入系统是一个连续的时间系统。指定方法作为下列值之一:

  • “佐赫”-使用零阶保持器

  • “呸”-使用线性插值(一阶保持器)

如果你不指定一个方法,大规模集成电路根据信号的平滑度自动选择插值方法u型

lsim (sys1…, sysn u t)模拟多个动态系统模型对相同输入历史的响应t型,u型并将这些反应绘制在一个图形上。您也可以使用x0个方法在计算多个模型的响应时输入参数。

lsim (sys1 LineSpec1,…, sysN LineSpecN, u, t)指定图中每个系统响应的行样式、标记和颜色。你也可以用x0个方法使用此语法的输入参数。每一个LineSpec参数被指定为一个由一个、两个或三个字符组成的向量。这些字符可以以任何顺序出现。例如,下面的代码将绘制的响应sys1作为一条黄色的虚线sys2以绿色虚线表示:

lsim(系统1,'y:',系统2,'g--',u,t,x0)

有关配置此参数的详细信息,请参阅LineSpec的输入参数情节功能。

y=lsim(___)返回系统响应是的,与输入同时采样(t型)。输出是的是一个与时间样本(长度(t))和系统输出一样多的列。屏幕上没有绘图。除了LineSpec参数。

[y,t,x]=大规模集成电路(___)也返回时间向量t型用于模拟和状态轨迹(仅适用于状态空间模型)。输出与时间样本(长度(t))以及系统状态的列数。除了LineSpec参数。

lsim(系统)打开线性仿真工具GUI。有关使用此GUI的更多信息,请参见使用线性模拟工具

例子

全部折叠

模拟并绘制以下系统对周期为4秒的方波的响应:

小时 ( s公司 ) = [ 2个 s公司 2个 + 5个 s公司 + 1个 s公司 2个 + 2个 s公司 + s公司 - 1个 s公司 2个 + s公司 + 5个 ]

创建传递函数,生成方波根西格. 在10秒内每0.1秒取样一次。

H = [tf([2 5 1],[1 2 3]);tf([1 -1],[1 1 5]);(u, t) = gensig ('方形'、4、10、0.1);

然后用模拟大规模集成电路

lsim (H, u, t)

图中显示了应用的信号和响应。

负载估计数据用来估计一个模型。

负载(fullfile (matlabroot“工具箱”,'识别','iddemos',“数据”,'dcmotordata'));z=iddata(y,u,0.1,'名称','直流电机');

z轴是一个iddata对象,存储采样时间为0.1秒的1输入2输出估计数据。

利用估计数据估计一个阶数为4的状态空间模型z轴

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

系统是估计模型和x0个是估计的初始状态。

模拟系统使用与用于估计的输入数据和估计命令返回的初始状态相同的输入数据。

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

在这里,是的是系统响应,t型是用于模拟的时间矢量,并且是状态轨迹。

比较模拟响应是的测量响应z、 输出数据对于两个输出。

子块(211),绘图(t,z.OutputData(:,1),“k”、t、y (: 1),“r”)传说('测量','模拟')次要情节(212)、图(t, z.OutputData (:, 2),“k”、t、y (:, 2),“r”)传说('测量','模拟')

算法

离散时间系统用ltitr公司(状态空间)或过滤器(传递函数和零极点增益)。

连续时间系统被离散化c2d型使用“佐赫”“呸”方法(“呸”用于平滑的输入信号和“佐赫”对于不连续的信号,如脉冲或方波)。采样时间设置为采样间隔日期在用户提供的时间样本之间t型

采样时间的选择会严重影响仿真结果。为了说明原因,考虑二阶模型

小时 ( s公司 ) = ω 2个 s公司 2个 + 2个 s公司 + ω 2个 , ω = 62.83分

要模拟其对周期为1秒的方波的响应,可以执行以下操作:

w2 = 62.83 ^ 2;h = tf(w2,[1 2 w2]);t = 0:0.1:5;时间样本的向量u=(雷姆(t,1)>=0.5);%方波值大规模集成制造(h,u,t)

大规模集成电路计算指定的采样时间,并发出警告:

警告:输入信号采样不足。每0.016秒或更快采样一次。

为了改善这种反应,离散化小时(s公司)使用建议的采样时间:

dt=0.016;ts=0:dt:5;us=(rem(ts,1)>=0.5);hd=c2d(h,dt);lsim(hd,us,ts)

这种反应表现出强烈的振荡行为,隐藏在欠采样版本。

之前介绍过的R2006a