党卫军

状态空间模型

描述

使用党卫军创建实值或复值状态空间模型,或进行转换动态系统模型到状态空间模型形式。你也可以用党卫军要创建广义状态空间(雄鸡)模型或不确定状态空间(我们)模型。

状态空间模型是物理系统作为一阶微分方程相关的输入、输出和状态变量的集合的数学表示。状态变量定义输出变量的值。的党卫军模型对象可以表示连续时间或离散时间下的SISO或MIMO状态空间模型。

在连续时间下,状态空间模型为:

x ˙ 一个 x + B u y C x + D u

在这里,xuy表示状态的输入和输出分别,而一个BCD是状态空间矩阵。的党卫军对象表示在MATLAB一个状态空间模型®存储一个BCD以及其他信息,如样本时间、名称和特定于输入和输出的延迟。

您可以通过直接指定状态、输入和输出矩阵,或者通过转换另一种类型的模型(例如传递函数模型)来创建状态空间模型对象特遣部队),以状态空间形式。有关更多信息,请参见状态空间模型.你可以用党卫军模型对象:

  • 进行线性分析

  • 表示线性时变(LTI)模型来进行控制设计

  • 与其他LTI模型结合,表示更复杂的系统

创建

描述

例子

sys= ss (一个BCD创建一个连续时间状态空间模型对象,其形式如下:

x ˙ 一个 x + B u y C x + D u

例如,考虑一种植物Nx状态,纽约输出,且ν投入。状态空间矩阵为:

  • 一个是一个Nx——- - - - - -Nx实值或复数矩阵。

  • B是一个Nx——- - - - - -ν实值或复数矩阵。

  • C是一个纽约——- - - - - -Nx实值或复数矩阵。

  • D是一个纽约——- - - - - -ν实值或复数矩阵。

例子

sys= ss (一个BCDts使用示例时间创建如下表单的离散时间状态空间模型对象ts(以秒为单位):

x n + 1 一个 x n + B u n y n C x n + D u n

离开样品的时间不确定,集ts-1

例子

sys= ss (一个BCDltiSys使用从模型继承的属性,如输入和输出名称、内部延迟和示例时间值,创建状态空间模型ltisys

例子

sys= ss (D创建一个表示静态增益的状态空间模型,D.输出状态空间模型相当于党卫军 ([],[],[], D)

例子

sys= ss (___名称,价值使用一个或多个设置状态空间模型的属性名称,价值对任何以前输入参数组合的参数。

例子

sys= ss (ltiSys转换动态系统模型ltiSys到状态空间模型。如果ltiSys包含可调或不确定元素,党卫军分别使用这些元素的当前值或标称值。

例子

sys= ss (ltiSys组件皈依党卫军物体由被测分量、噪声分量或两者组成组件已识别的线性时不变(LTI)模型ltiSys. 仅在以下情况下使用此语法ltiSys是已识别(LTI)模型,例如idtf.中的难点idprocIpolyidgrey对象。

sys= ss (ssSys, '最小')返回没有不可控或不可观察状态的最小状态空间实现。这个实现等价于minreal(SS(SYS))其中矩阵一个具有尽可能小的尺寸。

在SISO的情况下,状态空间形式的转换不是唯一定义的。在MIMO的情况下,也不能保证产生最小的实现。有关更多信息,请参见推荐的工作表现

例子

sys= ss (ssSys,“显式”)返回显式状态空间实现(E = I)动态系统状态空间模型SSsys党卫军如果出现以下情况,则返回错误ssSys是不恰当的。有关显式状态空间实现的更多信息,请参见状态空间模型

输入参数

全部展开

状态矩阵,指定为Nx——- - - - - -Nx矩阵,Nx是州数。此输入设置属性的值一个

输入状态矩阵,指定为Nx——- - - - - -ν矩阵,Nx状态数是和吗ν为输入的个数。此输入设置property的值B

状态-输出矩阵,指定为纽约——- - - - - -Nx矩阵,Nx状态数是和吗纽约为输出数。此输入设置property的值C

馈通矩阵,指定为纽约——- - - - - -ν矩阵,纽约是输出的数目和ν为输入的个数。此输入设置property的值D

样本时间,指定为标量。有关更多信息,请参见Ts财产。

动态系统转换为状态空间形式,指定为SISO或MIMO动态系统模型或动态系统模型的阵列。动力系统,你可以转换包括:

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

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

    结果状态空间模型假设

    • 可调谐控制设计块所述可调谐元件的电流值。

    • 不确定控制设计块的标称模型值。

  • 经鉴定LTI模型,如idtf.中的难点idprocIpoly, 和idgrey模型。要选择要转换的已识别模型的组件,请指定组件. 如果您没有指定组件党卫军默认情况下转换已识别模型的测量组件。(使用标识模型需要系统辨识工具箱™软件。)

要转换的标识模型的组件,指定为以下之一:

  • “测量”- 转换的所测量的分量sys

  • “噪音”- 转换噪声分量sys

  • “增强”-转换的测量和噪声成分sys

组件只适用于当sys是一个确定的LTI模型。

有关已识别的LTI模型及其测量和噪声成分的更多信息,请参见确定了LTI模型

动态系统模型转换为最小实现或显式形式,指定为一个党卫军模型对象。

输出参数

全部展开

输出系统模型,返回为:

  • 一个整数(党卫军)模型对象,当输入一个BCD是数值矩阵,或者从另一个模型对象类型转换时。

  • 广义状态空间模型(雄鸡)对象,当一个或多个矩阵的一个BCD包括可调参数,例如雷阿尔卑参数或广义矩阵(Genmat.).例如,看到创建具有固定和可调参数的状态空间模型

  • 不确定状态空间模型(我们)对象,当一个或多个输入一个BCD包括不确定的矩阵。使用不确定模型需要鲁棒控制工具箱软件。

属性

全部展开

状态矩阵,指定为Nx——- - - - - -Nx矩阵Nx是状态数。根据所需的状态空间模型实现方式,状态矩阵可以有多种表示方式,如:

  • 模式规范形式

  • 同伴规范形式

  • 可观察到的规范形式

  • 控规范型

有关更多信息,请参见状态空间实现规范化

输入状态矩阵,指定为Nx——- - - - - -ν矩阵Nx状态数是和吗ν为输入的个数。

状态-输出矩阵,指定为纽约——- - - - - -Nx矩阵Nx状态数是和吗纽约为输出数。

馈通矩阵,指定为纽约——- - - - - -ν矩阵纽约是输出的数目和ν为输入的个数。D也称为静态增益矩阵,表示稳态条件下输出与输入的比值。

用于隐式或描述状态空间模型的矩阵,指定为Nx——- - - - - -Nx矩阵。E默认为空,表示状态方程是显式的。指定一个隐式状态方程EDX./DT.斧头+,将此属性设置为与之大小相同的方阵一个.看到dss有关创建描述符状态空间模型的更多信息。

指示伸缩是启用还是禁用的逻辑值,指定为其中之一01

什么时候缩放设置为0(禁用),然后大多数数值算法作用于状态空间模型sys自动缩放状态向量,以提高数值精度。你可以通过设置来阻止这种自动缩放缩放1(启用)。

有关缩放的详细信息,请参见预分频

国家名称,指定为下列之一:

  • 特征向量 - 对于一阶模型,例如,'速度'

  • 字符向量单元阵列-用于具有两个或多个状态的模型

attnename.是空的' '默认为所有状态。

国家单位,指定为以下单位之一:

  • 特征向量 - 对于一阶模型,例如,“米/秒”

  • 字符向量单元阵列-用于具有两个或多个状态的模型

使用StateUnit来记录每个状态的单位。StateUnit对系统行为没有影响。StateUnit是空的' '默认为所有状态。

模型中的内部延迟,指定为向量。例如,当关闭带有延迟的系统的反馈回路时,或串联或并联延迟的系统时,会出现内部延迟。有关内部延迟的更多信息,请参见带时滞的闭环反馈

对于连续时间模型,内部延迟在由所指定的时间单位表示TimeUnit模型的属性。对于离散时间模型,内部延迟被表示为采样时间的整数倍Ts.例如,InternalDelay = 3表示三个采样周期的延迟。

您可以使用该属性修改内部延迟值InternalDelay.然而,条目的数量系统内部延迟不能更改,因为它是模型的结构属性。

每个输入通道的输入延迟,指定为如下之一:

  • 标量-指定SISO系统的输入延迟或多输入系统的所有输入延迟。

  • ν-by-1向量-为多输入系统的输入指定单独的输入延迟ν为输入的个数。

对于连续时间系统,用指定的时间单位指定输入延迟TimeUnit财产。对于离散时间系统中,指定的采样时间的整数倍的输入延迟,Ts

有关更多信息,请参见线性系统的时滞

每个输出通道的输出延迟,指定为下列之一:

  • 标量-指定SISO系统的输出延迟或多输出系统的所有输出的相同延迟。

  • 纽约-by-1向量-为多输出系统的输出指定单独的输出延迟,其中纽约为输出数。

对于连续时间系统,用指定的时间单位指定输出延迟TimeUnit财产。对于离散时间系统,请在示例时间的整数倍数中指定输出延迟,Ts

有关更多信息,请参见线性系统的时滞

采样时间,规定为:

  • 0连续时间系统。

  • 表示离散时间系统采样周期的正标量。指定Ts在指定的时间单位TimeUnit财产。

  • -1对于具有未指定采样时间的离散时间系统。

改变Ts不离散或重新取样模型。要在连续时间表示和离散时间表示之间进行转换,请使用汇集d2c.要改变的一个离散时间系统中,使用采样时间d2d

时间可变单元,指定为以下之一:

  • '纳秒'

  • 微秒的

  • '毫秒'

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

改变TimeUnit对其他属性没有影响,但是改变了整个系统的行为。使用chgTimeUnit时间单位之间的转换,而无需修改系统行为。

输入通道名称,指定为下列之一:

  • 一个字符向量,用于单输入模型。

  • 字符向量的单元阵列,用于多输入模型。

  • '',没有为任何输入通道指定名称。

或者,您可以使用自动向量展开为多输入模型分配输入名称。例如,如果sys是一个双输入模式,输入:

sys。我nputName =“控制”

输入名称将自动展开为{“控制(1)”,“控制”(2)}

您可以使用速记表示法u参考InputName财产。例如,sys.u相当于sys。我nputName

使用InputName到:

  • 在模型显示和绘图中识别通道。

  • 提取MIMO系统的子系统。

  • 在连接模型时指定连接点。

输入通道单位,指定为下列单位之一:

  • 一个字符向量,用于单输入模型。

  • 字符向量的单元阵列,用于多输入模型。

  • '',没有为任何输入通道指定单位。

使用InputUnit指定输入信号单元。InputUnit对系统行为没有影响。

输入通道组,指定为结构。使用InputGroup分配MIMO系统的输入通道进行分组,并通过名称来引用每个组。的字段名InputGroup是组名,字段值是每个组的输入通道。例如:

sys.InputGroup.controls = [1 2];sys.InputGroup.noise = [3-5];

创建名为控制噪音包括输入通道12, 和3.5,分别。然后您可以从控制输入到所有输出,使用:

SYS(:,“控制”

默认情况下,InputGroup是一个没有字段的结构。

输出通道名称,指定为以下任意一个:

  • 字符向量,用于单输出模型。

  • 字符向量的单元数组,用于多输出模型。

  • '',没有为任何输出通道指定名称。

或者,可以使用自动向量展开为多输出模型指定输出名称。例如,如果sys是一个双输出模型,输入:

sys。OutputName ='测量'

输出名称将自动展开为{'测量(1)';'测量(2)'}

您也可以使用速记表示法y参考outputName.财产。例如,sys.y相当于sys。outputName.

使用outputName.到:

  • 在模型显示和绘图中识别通道。

  • 提取MIMO系统的子系统。

  • 在连接模型时指定连接点。

输出通道单元,指定为以下之一:

  • 字符向量,用于单输出模型。

  • 字符向量的单元数组,用于多输出模型。

  • '',没有为任何输出通道指定单位。

使用OutputUnit指定输出信号单元。OutputUnit对系统行为没有影响。

输出信道组,指定为结构。使用OutputGroup将MIMO系统的输出通道分组,并按名称引用每一组。的字段名OutputGroup是组名称和字段值的每个组的输出通道。例如:

sys.OutputGroup.temperature = [1];sys.InputGroup.measurement = [3 5];

创建名为的输出组温度测量包括输出通道1, 和3.5,分别。然后可以从所有的输入中提取子系统测量输出使用:

系统('测量':)

默认情况下,OutputGroup是一个没有字段的结构。

系统名称,指定为字符向量。例如“system_1”

要与系统关联的用户指定文本,指定为字符向量或字符向量的单元格数组。例如系统分配的

要与系统关联的用户指定的数据,指定为任何MATLAB数据类型。

抽样模型阵列网格,指定为结构阵列。

使用SamplingGrid要跟踪与模型阵列中的每个模型关联的变量值,包括识别的线性时间不变(IDLTI)模型阵列。

将结构的字段名设置为抽样变量的名称。将字段值设置为与数组中每个模型相关联的采样变量值。所有抽样变量必须是数值标量,所有抽样值的数组必须与模型数组的维数相匹配。

例如,你可以创建一个11乘1的线性模型数组,sysarr,通过在时间拍摄线性时变系统的快照t = 0:10.下面的代码使用线性模型存储时间样本。

sysarr。SamplingGrid =结构(“时间”0:10)

类似地,可以创建一个6×9模型排列,,通过对两个变量独立抽样,ζw.以下代码地图映射(ζ,w)

[zeta,w] = ndgrid(的<6值>,<9值的w>)m.amplinggrid = struct(“ζ”ζ,'W'w)

当您显示,阵列中的每个条目都包括相应的ζw值。

(:: 1, - 1)(ζ= 0.3 w = 5) = 25  -------------- s ^ 2 + 3 s + 25米(:,:,2,1)[ζ= 0.35 w = 5] = 25  ---------------- s ^ 2 + 3.5 s + 25…

对于由线性化的Simulink生成的模型阵列万博1manbetx®模型在多个参数值或操作点,软件填充SamplingGrid自动使用数组中每个条目对应的变量值。例如,万博1manbetxSimulink控制设计™命令线性化slLinearizer填充SamplingGrid自动。

默认情况下,SamplingGrid是一个没有字段的结构。

对象功能

下面列出包含您可以使用该功能的子集代表党卫军模型对象。一般来说,任何函数都适用于动态系统模型适用于党卫军对象。

全部展开

一步 动态系统阶跃响应图;阶跃响应数据
冲动 动态系统的脉冲响应图;脉冲响应数据
lsim 模拟动态系统对任意输入的时间响应
b 频率响应的波德图,或幅值和相位数据
奈奎斯特 奈奎斯特响应的曲线图
尼泊尔斯 尼古尔斯频率响应图
带宽 频率响应带宽
动力系统极点
Siso动态系统的零和增益
pzplot 具有绘图自定义选项的动态系统模型的零极点绘图
保证金 获得裕度,相位保证金和交叉频率
zpk 创建zero-pole-gain模型;转换为零极增益模型
特遣部队 传递函数模型
汇集 将模型从连续时间转换为离散时间
d2c 将模型从离散时间转换为连续时间
d2d 重采样离散时间模型
反馈 多种模式的反馈连接
连接 动态系统的框图互连
系列 两种型号串联连接
平行 两种型号并联
Pidtune. 线性对象模型的PID整定算法
rlocus 动态系统的根轨迹图
等方面 线性二次调节器(LQR)设计
lqg Linear-Quadratic-Gaussian (LQG)设计
lqi 线性二次积分控制
卡尔曼 卡尔曼滤波器设计,卡尔曼估计

例子

全部收缩

创建由下列状态空间矩阵定义的SISO状态空间模型:

一个 - 1 5 - 2 1 0 B 0 5 0 C 0 1 D 0

指定A, B, C和D矩阵,并创建状态空间模型。

一个= [-1.5,2;1,0];B = (0.5; 0);C = [0, 1];D = 0;sys = ss (A, B, C, D)
(1) C (2) y (1) 0 (1) D (1) y (1) 0 (1)

创建具有0.25秒的采样时间和以下状态空间矩阵的状态空间模型:

一个 0 1 - 5 - 2 B 0 3. C 0 1 D 0

指定状态空间矩阵。

A = [0 1;- 1];B = [0; 3);C = [0 1];D = 0;

指定示例时间。

t = 0.25;

创建状态空间模型。

sys = ss (A, B, C, D, Ts);

对于这个例子,考虑一个用惯性张量绕其角旋转的立方体J还有一个阻尼力F0.2级。系统的输入是驱动力矩,而角速度是输出。立方体的状态空间矩阵为:

一个 - J - 1 F B J - 1 C D 0 w h e r e J 8 - 3. - 3. - 3. 8 - 3. - 3. - 3. 8 一个 n d F 0 2 0 0 0 0 2 0 0 0 0 2

指定一个BCD矩阵,并创建连续时间状态空间模型。

J = [8 -3 -3;3 8 3;3 3 8];F = 0.2 *眼(3);= - j \ F;B =发票(J);C =眼(3);D = 0;sys = ss (A, B, C, D)
sys=A=x1x2x3x1-0.04545-0.02727-0.02727x2-0.02727-0.04545-0.02727x3-0.02727-0.02727-0.04545b=u1u2u3x10.22730.136430.136430.1364x30.136440.2273c=x1x2x30y10y20y20y20y20d=u1u2u3y0y0y0y0y0y0连续时间空间模型。

sys是MIMO,因为系统包含3个输入和从基质观察到的3个输出CD.有关MIMO状态空间模型的更多信息,请参见天线系统状态空间模型

使用下列带有样本时间的离散时间、多输入、多输出状态矩阵创建状态空间模型TS = 0.2秒:

一个 - 7 0 0 - 1 0 B 5 0 0 2 C 1 - 4 - 4 0 5 D 0 - 2 2 0

指定状态空间矩阵和创建的离散时间MIMO状态空间模型。

a = [-7,0; 0,-10];B = [5,0; 0.2];c = [1,-4; -4,0.5];d = [0,-2; 2,0];ts = 0.2;sys = ss (A, B, C, D, ts)
C = x1 x2 y1 1 -4 y2 -4 0.5 D = u1 u2 y1 0 -2 y2 2 0采样时间:0.2秒

创建状态空间矩阵并指定采样时间。

A = [0 1;- 1];B = [0; 3);C = [0 1];D = 0;t = 0.05;

创建状态空间模型,使用名称值对指定状态和输入名称。

sys = ss (A, B, C, D, Ts,“StateName”, {“位置”'速度'},...“InputName”'力量');

状态和输入名称的数量必须与的维度一致一个BC, 和D

与MIMO系统响应曲线打交道时命名输入和输出可以是有用的。

步骤(系统)

注意输入名在阶跃响应曲线的称号。

对于此示例,创建具有与另一状态空间模型继承的同一时间和输入单元属性的状态空间模型。考虑以下国家空间模型:

一个 1 - 1 5 - 2 1 0 B 1 0 5 0 C 1 0 1 D 1 5 一个 2 7 - 1 0 2 B 2 0 8 5 2 C 2 1 0 1 4 D 2 2

首先,创建一个状态空间模型sys1TimeUnitInputUnit属性设置为'分钟'。

A1=[-1.5,-2;1,0]; B1=[0.5;0]; C1=[0,1];D1=5;sys1=ss(A1,B1,C1,D1,“时间单位”“分钟”“InputUnit”“分钟”);

验证时间和输入单位的属性sys1设置为'分钟'。

propValues1 = [sys1.TimeUnit sys1.InputUnit]
propValues1 =1x2细胞{“分钟”}{“分钟”}

使用继承自的属性创建第二个状态空间模型sys1

A2 = [7, 1, 0, 2];B2 = (0.85; 2);C2 = (10, 14);D2 = 2;sys2 = ss (A2, B2, C2, D2, sys1);

验证时间和输入单位sys2遗传自sys1

propValues2 = [sys2.TimeUnit sys2.InputUnit]
propValues2 =1x2细胞{“分钟”}{“分钟”}

在本例中,您将创建静态增益MIMO状态空间模型。

考虑以下两输入两输出静态增益矩阵

D 2 4 3. 5

指定增益矩阵,并创建静态增益状态空间模型。

D=[2,4;3,5]; sys1=ss(D)
sys1 = D = u1 u2 y1 2 4 y2 3 5静态增益。

计算以下传递函数的状态空间模型:

H 年代 年代 + 1 年代 3. + 3. 年代 2 + 3. 年代 + 2 年代 2 + 3. 年代 2 + 年代 + 1

创建传递函数模型。

H = [tf([1 1],[1 3 3 2]);Tf ([1 0 3],[1 1 1])];

将此模型转换为状态空间模型。

sys = ss (H);

检查状态空间模型的大小。

大小(SYS)
状态空间模型,有2个输出,1个输入,5个状态。

状态数等于中SISO条目的累积顺序H年代).

获得最小的实现H年代),输入

SYS = SS(H,“最低”);大小(SYS)
状态空间模型,有2个输出,1个输入,3个状态。

生成的模型有三个数量级,这是需要表示的最小状态数H年代).要查看这些状态的数量,请重构H年代)为一阶系统和二阶系统的乘积。

H 年代 1 年代 + 2 0 0 1 年代 + 1 年代 2 + 年代 + 1 年代 2 + 3. 年代 2 + 年代 + 1

对于这个例子,提取一个被识别的多项式模型的测量和噪声成分到两个独立的状态空间模型中。

加载Box-Jenkins多项式模型ltiSys识别模型

负载('IdentiedModel.mat'“ltiSys”);

ltiSys为已识别的离散时间模型,其形式为: y t B F u t + C D e t ,在那里 B F 表示测量的组件和 C D 的噪声成分。

提取测量和噪声分量作为状态空间模型。

sysMeas = ss (ltiSys,“测量”
sysMeas = A = X1 X2 X1 1.575 -0.6115×2 1 0 B = U1 X1 X2 0.5 0 C = X1 X2 Y1 -0.2851 0.3916 d = U1 Y1 0输入延迟(采样周期):2采样时间:0.04离散时间状态-space模型。
结合sysNoise = ss (ltiSys,“噪音”
SYSNOISE = A = X1 X2 X3 X1 1.026 -0.26 0.3899×2 1 0 0×3 0 0.5 0 B = V @ Y1 X1 X2 0.25 0 0 X3 C = X1 X2 X3 Y 1 0.319 -0.04738 0.07106 d = V Y1 @ Y1 0.04556输入组:名称通道噪声1采样时间:0.04离散时间状态空间模型。

被测分量可以作为被测对象的模型,而噪声分量可以作为控制系统设计的扰动模型。

创建描述符状态空间模型(E).

A = [2 -4;4 2];B = [-1;0.5];C = [-0.5,-2];d = [-1];E = [1 0;-3 0.5];SYSD = DSS(A,B,C,d,E);

计算系统的显式实现(E).

syse = ss(sysd,“明确”
syse = a = x1 x2 x1 2 -4 x2 20 -20 b = u1 x1 -1 x2 -5 c = x1 x2 y1 -0.5 -2 d = u1 y1 -1连续时间状态空间模型。

确认描述符和显式实现具有等效动态。

bodeplot (sysd syse,“g——”

这个例子展示了如何创建状态空间雄鸡模型具有固定和可调参数。

一个 1 一个 + b 0 一个 b B - 3. 0 1 5 C 0 3. 0 D 0

在哪里一个b是可调参数,其初始值是-13.,分别。

创建使用可调参数雷阿尔卑

一个= realp (“一个”1);b = realp (“b”,3);

用矩阵的代数表达式定义一个广义矩阵一个b

A=[1 A+b;0a*b];

一个广义矩阵是谁的阻碍属性包含一个b.的初始值一个(1 2; 0 3)的初始值一个b

创建固定值的状态空间矩阵。

B = [-3.0, 1.5];C = [0.3 0];d = 0;

使用党卫军以创建状态空间模型。

sys = ss (A, B, C, D)
SYS =具有1个输出,1个输入,2个状态的广义连续时间 - 空间模型,以及以下块:A:Scalar参数,2个出现。B:标量参数,2个出现。键入“ss(sys)”以查看当前值,“get(sys)”以查看所有属性,以及“sys.blocks”与块交互。

sys是广义LTI模型(雄鸡)和可调参数一个b

对于这个例子,考虑一个由以下状态空间矩阵定义的SISO状态空间模型:

一个 - 1 5 - 2 1 0 B 0 5 0 C 0 1 D 0

考虑输入延迟为0.5秒,输出延迟为2.5秒,创建状态空间模型对象来表示a, B, C, D矩阵。

一个= [-1.5,2;1,0];B = (0.5; 0);C = [0, 1];D = 0;sys = ss (A, B, C, D,“InputDelay”, 0.5,'OutputDelay',2.5)
SYS = A = X1 X2 X1 -1.5 -2×2 1 0 B = U1 X1 X2 0.5 0 C = X1 X2 Y1 0 1 d = U1 Y1 0输入的延迟(秒):0.5输出延迟(秒):2.5连续时间状态空间模型。

你也可以用the得到命令以显示MATLAB对象的所有属性。

获取(sys)
[2 x2双]B: [2 x1双]C: [0 1] D: 0 E:[]扩展:0 StateName: {2 x1细胞}StateUnit: {2 x1细胞}InternalDelay: [0 x1双]InputDelay: 0.5000 OutputDelay: 2.5000 Ts: 0 TimeUnit:“秒”InputName: {"} InputUnit: {"} InputGroup: [1 x1 struct] OutputName: {"} OutputUnit: {"} OutputGroup: [1 x1 struct]指出:[0 x1字符串]用户数据:[]名称:“SamplingGrid: [1x1 struct]”

有关为LTI模型指定时间延迟的详细信息,请参阅指定时间延迟

对于这个示例,考虑表示以下状态矩阵的状态空间系统对象:

一个 - 1 2 - 1 6 0 1 0 0 0 1 0 B 1 0 0 C 0 0 5 1 3. D 0

创建一个状态空间对象sys使用党卫军命令。

a = [-1.2,-1.6,0; 1,0,0; ​​0,1,0];b = [1; 0; 0];c = [0,0.5,1.3];D = 0;sys = ss(a,b,c,d);

然后,计算一个单位负增益的闭环状态空间模型,求出闭环状态空间系统对象的极点sysFeedback

sysFeedback=反馈(sys,1);P=极点(系统反馈)
P =3×1复杂-0.2305+1.3062i-0.2305-1.3062i-0.7389+0.0000i

单位增益的反馈回路是稳定的,因为所有极点都有负实部。检查闭环极点提供了稳定性的二元评估。在实践中,了解稳定性的鲁棒性(或脆弱性)更为有用。鲁棒性的一个指标是在失去稳定性之前,环路增益可以改变多少。您可以使用根轨迹图来估计k循环是稳定的值。

rlocus(系统)

循环增益的变化仅是稳定稳定性的一个方面。通常,不完美的工厂建模意味着两个增益和阶段都不完全知道。由于建模误差具有靠近增益交叉频率(开环增益为0dB的频率)附近最有害的效果,因此还可以在此频率容忍多相变化。

您可以在Bode图上显示增益和相位裕度,如下所示。

波德(sys)网格

有关更详细的例子,请参阅评估增益和相位裕度

针对本例,为如下矩阵表示的系统设计一个目标带宽为0.75 rad/s的二自由度PID控制器:

一个 - 0 5 - 0 1 1 0 B 1 0 C 0 1 D 0

创建一个状态空间对象sys使用党卫军命令。

A = [-0.5,-0.1; 1,0];B = [1; 0];C = [0, 1];D = 0;sys = ss (A, B, C, D)
SYS = A = X1 X2 X1 -0.5 -0.1×2 1 0 B = U1 X1 X2 1 0 C = X1 X2 Y1 0 1 d = U1 Y1 0连续时间状态空间模型。

使用目标带宽,使用Pidtune.生成一个二自由度控制器。

wc = 0.75;C2 = pidtune (sys,“PID2”wc)
C2 = 1 u = Kp (b*r-y) + Ki——(r-y) + Kd*s (c*r-y) s,具有Kp = 0.513, Ki = 0.0975, Kd = 0.577, b = 0.344, c = 0并联形式的连续二自由度PID控制器。

使用类型“PID2”原因Pidtune.生成一个二自由度控制器,表示为apid2对象。显示器证实了这个结果。显示屏上也显示了这一点Pidtune.调整所有控制器系数,包括设定点权重bc,以平衡性能和健壮性。

对于在现场编辑器互动PID自整定,见调整PID控制器住编辑任务。这个任务让您交互式设计一个PID控制器,并自动生成MATLAB代码为您的生活脚本。

对于独立应用程序中的交互式PID调优,请使用PID调谐器.看到PID控制器的设计快速参考跟踪有关使用应用程序设计控制器的示例。

考虑一个状态空间工厂G具有五个输入、四个输出和一个状态空间反馈控制器K有三个输入和两个输出。1, 3,和4的产量G必须连接控制器吗K输入,控制器输出到设备的输入4和2。

对于此示例,请考虑两个连续时间状态空间模型GK由以下一组矩阵表示:

一个 G - 3. 0 4 0 3. - 0 5 - 2 8 - 0 8 0 2 0 8 - 3. B G 0 4 0 0 3. 0 2 0 - 0 2 - 1 0 1 - 0 9 - 0 5 0 6 0 9 0 5 0 2 0 C G 0 - 0 1 - 1 0 - 0 2 1 6 - 0 7 1 5 1 2 - 1 4 - 0 2 0 D G 0 0 0 0 - 1 0 0 4 - 0 7 0 0 9 0 0 3. 0 0 0 0 2 0 0 0 0

一个 K - 0 2 2 1 0 7 - 2 2 - 0 1 - 2 2 - 0 4 2 3. - 0 2 B K - 0 1 - 2 1 - 0 3. - 0 1 0 0 6 1 0 0 8 C K - 1 0 0 - 0 4 - 0 2 0 3. D K 0 0 0 0 0 - 1 2

AG) = [3, 0.4, 0.3, -0.5, -2.8, -0.8, 0.2, 0.8, 3];BG = [0.4, 0, 0.3, 0.2, 0; -0.2,, 0.1, -0.9, -0.5, 0.6, 0.9, 0.5, 0.2, 0];CG =[0、-0.1、1;0,-0.2,1.6,-0.7,1.5,1.2,-1.4,-0.2,0];DG = [0, 0, 0, 0, 1, 0, 0.4, -0.7, 0, 0.9, 0, 0.3, 0, 0, 0, 0.2, 0, 0, 0, 0);sysG = ss (AG)、BG、CG DG)
sysg = a = x1 x2 x3 x1 -3 0.4 0.3 x2 -0.5 -2.8 -0.8 x 3 0.2 0.8 -3 b = u1 u2 u3 u4 u5 x1 0.4 0 0.3 0.2 0 x 2 -0.2 -1 0.1 -0.9 -0.5 x3 0.6 0.90.5 0.2 0 C = X1 X2 X3 Y1 0-0.1 -1 Y2 0 -0.2 1.6 Y3 -0.7 1.5 1.2 Y4 -1.4 -0.2 0 D = U1 U2 U3 U4 U5 Y1 0 0 0 0 -1 Y2 0 0.4 -0.7 00.9 Y3 0 0.3 0 0 0 Y4 0.2 0 0 0 0连续时间状态空间模型。
正义与发展党= (-0.2,2.1,0.7,-2.2,-0.1,-2.2,-0.4,2.3,-0.2);BK = (-0.1, -2.1, -0.3, -0.1, 0, 0.6; 1, 0, 0.8);CK = [1, 0, 0, -0.4, -0.2, 0.3);DK = [0, 0, 0, 0, 0, -1.2);sysK = ss (AK, BK, CK, DK)
sysK = = (x1, x2) x3 x1 x2 -0.2 2.1 0.7 -2.2 -0.1 -2.2 x3 -0.4 2.3 -0.2 B = u1, u2 u3 x1 0.6 -0.1 -0.1 -2.1 -0.3 x2 0 x3 1 0 x1 0.8 C = x3 y1 1 0 0 y2 -0.4 -0.2 0.3 D = u1, u2 u3 y1 0 0 0 y2 0 0 -1.2连续时间状态空间模型。

定义进料feedin基于输入和输出连接在反馈回路中的向量。

Feedin = [4 2];Feedout = [1 3 4];sys =反馈(sysG sysK、feedin feedout, 1)
sys = = (x1, x2) x3 x4 x5 x6 x1 3 0 0 x2 1.18 -2.56 -0.8 0.4 0.3 0.2 -1.3 -1.312 - 0.584 -0.2 - 0.3 x3 3 x4 -0.27 0.56 - 0.18 2.948 -2.929 -2.42 -2.2 -0.84 -0.11 0.1 -2.2 -0.1 -0.452 1.974 0.889 x5 x6 1 -1.12 -0.26 -0.4 2.3 -0.2 B = u1, u2 u3 u4 u5 x1 0.4 0 1 0.1 -0.9 -0.5 -0.44 0.3 - 0.2 0 x2 x3 0.816 0.9 0.5 0.2 0 x4 -0.2112 - -0.63 0 0 0.1 x5 0.12 0 0 00。1x60。16000 -1 C = x1 x2 x3 x4 x5 x6 y1 0 -0.1 -1 0 0 0 y2 -0.672 -0.296 1.6 0.16 0.08 -0.12 y3 -1.204 1.428 1.2 0.12 0.06 -0.09 y4 -1.4 -0.2 0 0 0 0 D = u1 u2 u3 u4 u5 y1 0 0 0 0 -1 y2 0.096 0.4 -0.7 0 0.9 y3 0.072 0.3 0 0 0 y4 0.2 0 0 0 0 Continuous-time state-space model.
大小(SYS)
有4个输出,5个输入,6个状态的状态空间模型。

sys是通过连接指定的输入和输出而获得的结果闭环状态空间模型GK

在R2006A之前介绍