主要内容

党卫军

状态空间模型

描述

使用党卫军创建实值或复值状态空间模型,或进行转换动态系统模型到状态空间模型形式。你也可以使用党卫军要创建广义状态空间(一族)模型或不确定状态空间(号航空母舰(鲁棒控制工具箱))模型。

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

在连续时间中,状态空间模型的形式如下:

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

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

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

  • 进行线性分析

  • 表示线性时不变(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(系统识别工具箱)中的难点(系统识别工具箱)idproc(系统识别工具箱)idpoly(系统识别工具箱)idgrey(系统识别工具箱)对象。

sys= ss (ssSys“最小”)返回没有不可控制或不可观察状态的最小状态空间实现。这个实现相当于minreal (ss (sys))在矩阵一个具有最小的可能维度。

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

例子

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

输入参数

全部展开

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

输入到状态矩阵,指定为Nx——- - - - - -ν矩阵,Nx状态数和ν是输入的数量。这个输入设置属性的值B

状态到输出的矩阵,指定为纽约——- - - - - -Nx矩阵,Nx状态数和纽约是输出的数量。这个输入设置属性的值C

馈通矩阵,指定为纽约——- - - - - -ν矩阵,纽约输出的数量和ν是输入的数量。这个输入设置属性的值D

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

动态系统转换为状态空间形式,指定为SISO或MIMO动态系统模型或者动态系统模型的数组。可以转换的动态系统包括:

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

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

    得到的状态空间模型假设

    • 可调控制设计块的可调组件的当前值。

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

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

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

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

  • “噪音”-转换的噪声成分sys

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

组件仅适用于以下情况sys是一个确定的LTI模型。

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

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

输出参数

全部展开

输出系统模型,返回为:

  • 状态空间(党卫军)模型对象,当输入一个BC而且D数值矩阵或当从另一个模型对象类型转换时。

  • 广义状态空间模型(一族)对象,当一个或多个矩阵一个BC而且D包括可调参数,例如realp参数或广义矩阵(genmat).有关示例,请参见创建具有固定参数和可调参数的状态空间模型

  • 不确定状态空间模型(号航空母舰)对象,当一个或多个输入一个BC而且D包含不确定矩阵。使用不确定模型需要鲁棒控制工具箱软件。

属性

全部展开

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

  • 模型标准形式

  • 伴生标准形

  • 可观察标准形式

  • 可控标准形

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

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

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

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

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

指示是否启用或禁用伸缩的逻辑值,指定为任意一种01

按比例缩小的设置为0(禁用),然后大多数数值算法作用于状态空间模型sys自动重新缩放状态矢量,以提高数值精度。您可以通过设置来防止这种自动缩放按比例缩小的1(使)。

有关缩放的更多信息,请参见预分频

州名,指定为下列之一:

  • 字符向量——对于一阶模型,例如,“速度”

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

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

在线性化中方便状态块路径管理的状态路径,指定为以下之一:

  • 字符向量-用于一阶模型

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

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

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

  • 字符向量——对于一阶模型,例如,“米/秒”

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

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

模型中的内部延迟,指定为一个向量。例如,在有延迟的系统上关闭反馈循环时,或者在串联或并联延迟系统时,会出现内部延迟。有关内部延迟的详细信息,请参见用时间延迟关闭反馈循环

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

您可以使用该属性修改内部延迟的值InternalDelay.但是,条目的数量sys。我ntern一个lDelay不能更改,因为它是模型的结构属性。

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

  • 标量——为单输入输入系统指定输入延迟,或为多输入系统的所有输入指定相同的延迟。

  • ν-by-1 vector -为多输入系统的输入指定单独的输入延迟,其中ν是输入的数量。

方法所指定的时间单位指定输入延迟TimeUnit财产。对于离散时间系统,指定输入延迟为采样时间的整数倍,Ts

有关更多信息,请参见线性系统中的时间延迟

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

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

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

方法所指定的时间单位指定输出延迟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是组名,字段值是每个组的输入通道。例如,输入以下内容创建名为控制而且噪音包括输入通道1而且2,3.而且5,分别。

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

然后,您可以从控制输入到所有输出使用以下。

sys (:,“控制”

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

输出通道名称,指定为以下之一:

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

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

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

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

sys。OutputName =“测量”

输出名称自动展开为{“测量(1)”,“测量”(2)}

你也可以使用速记符号y请参阅OutputName财产。例如,sys.y等于sys。OutputName

使用OutputName:

  • 识别模型显示和图上的通道。

  • 提取MIMO系统的子系统。

  • 对接模型时,请指定连接点。

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

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

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

  • ,不指定任何输出通道的单位。

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

输出通道组,指定为结构。使用OutputGroup将MIMO系统的输出通道划分为组,并以名称引用每个组。的字段名OutputGroup是组名,字段值是每个组的输出通道。例如,创建名为温度而且测量包括输出通道1,3.而且5,分别。

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

的所有输入中提取子系统测量使用以下输出。

系统(“测量”:)

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

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

希望与系统关联的用户指定文本,指定为字符向量或字符向量的单元格数组。例如,“系统是MIMO”

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

模型数组的采样网格,指定为结构数组。

使用SamplingGrid跟踪与模型数组中每个模型相关的变量值,包括已识别的线性时不变(IDLTI)模型数组。

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

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

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

类似地,你可以创建一个6乘9的模型数组,,通过独立抽样两个变量,ζ而且w.下面的代码映射(ζ,w)

[zeta,w] = ndgrid(zeta> <6个值,w > <9个值)“ζ”ζ,' 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生成的模型数组金宝app®在多个参数值或工作点建模,软件进行填充SamplingGrid自动使用对应于数组中每个条目的变量值。例如,金宝appSimulink控制设计™命令线性化(金宝appSimulink控制设计)而且slLinearizer(金宝appSimulink控制设计)填充SamplingGrid自动。

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

对象的功能

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

全部展开

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

例子

全部折叠

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

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

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

A = [-1.5,-2;1,0];B = [0.5;0];C = [0,1];D = 0;sys = ss(A,B,C,D)
sys = A = x1 x2 x1 -1.5 -2 x2 1 0 B = u1 x1 0.5 x2 0 C = x1 x2 y1 0 1 D = u1 y1 0连续时间状态空间模型。

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

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

指定状态空间矩阵。

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

指定采样时间。

Ts = 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

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

J = [8 -3 -3;3 - 8 -3;3 -3 - 8];F = 0.2*眼(3);A = -j \ f;B = inv(J);C =眼睛(3);D = 0;sys = ss(A,B,C,D)
sys = A = x1 x2 x3 x1 -0.04545 -0.02727 -0.02727 -0.02727 x3 -0.02727 -0.02727 x3 -0.02727 -0.04545 B = u1 u2 u3 x1 0.2273 0.1364 0.1364 x2 0.1364 0.2273 0.1364 0.1364 x3 0.1364 0.1364 0.1364 x3 0.1364 0.1364 0.2273 C = x1 x2 x3 y1 1 0 0 0 y2 0 1 0 y3 0 0 1 D = u1 u2 u3 y1 0 0 0 y2 0 0 0 y3 0 0 0 0 0连续时间状态空间模型。

sys是MIMO,因为系统包含3个输入和3个输出从矩阵观察C而且D.有关MIMO状态空间模型的更多信息,请参见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)
sys = A = x1 x2 x1 -7 0 x2 0 -10 B = u1 u2 x1 5 0 x2 0 2 C = x1 x2 y1 1 -4 y2 -4 0.5 D = u1 u2 y1 0 -2 y2 2 0采样时间:0.2秒离散时间状态空间模型。

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

A = [0 1;-5 -2];B = [0;3];C = [0 1];D = 0;Ts = 0.05;

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

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

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

在处理MIMO系统的响应图时,命名输入和输出是有用的。

步骤(系统)

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

注意输入名称在阶梯响应图的标题中。

对于本例,创建一个状态空间模型,该模型具有继承自另一个状态空间模型的相同时间和输入单元属性。考虑以下状态空间模型:

一个 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

首先,创建一个状态空间模型sys1TimeUnit而且InputUnit属性设置为'分钟”。

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

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

propValues1 = [sys1.TimeUnit,sys1.InputUnit]
propValues1 =1 x2单元格{“分钟”}{“分钟”}

使用继承自的属性创建第二个状态空间模型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 =1 x2单元格{“分钟”}{“分钟”}

在本例中,您将创建一个静态增益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);

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

大小(系统)
具有2个输出、1个输入和5个状态的状态空间模型。

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

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

sys = ss(H,“最低”);大小(系统)
具有2个输出、1个输入和3个状态的状态空间模型。

结果模型的阶数为3,这是需要表示的最小状态数H年代).要查看这个数量的状态,重构H年代)是一阶系统和二阶系统的产物。

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

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

加载Box-Jenkins多项式模型ltiSysidentifiedModel.mat

负载(“identifiedModel.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 x2 1 0 B = u1 x1 0.5 x2 0 C = x1 x2 y1 -0.2851 0.3916 D = u1 y1 0输入延迟(采样周期):2采样时间:0.04秒离散时间状态空间模型。
sysNoise = ss(ltiSys,“噪音”
sysNoise = A = x1 x2 x3 x1 1.026 -0.26 0.3899 x2 10 0 x3 0 0.5 0 B = v@y1 x1 0.25 x2 0 x3 0 C = x1 x2 x3 y1 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 = [10 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——”

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象表示sysd、syse。坐标轴对象2包含2个line类型的对象。这些对象表示sysd、syse。

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

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

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

使用创建可调参数realp

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

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

A = [1 A +b;0 A *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:标量参数,出现2次。b:标量参数,2次。输入“ss(sys)”查看当前值,输入“get(sys)”查看所有属性,输入“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矩阵。

A = [-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 x2 1 0 B = u1 x1 0.5 x2 0 C = x1 x2 y1 0 1 D = u1 y1 0输入延时(秒):0.5输出延时(秒):2.5连续时间状态空间模型。

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

(系统)
A: [2x2 double] B: [2x1 double] C: [0 1] D: 0 E: [] Scaled: 0 StateName: {2x1 cell} StatePath: {2x1 cell} statunit: {2x1 cell} InternalDelay: [0x1 double] InputDelay: 0.5000 OutputDelay: 2.5000 Ts: 0 TimeUnit: 'seconds' InputName: {"} InputUnit: {"} InputGroup: [1x1 struct] OutputName: {"} OutputUnit: {"} OutputGroup: [1x1 struct]备注:[0x1 string] UserData: [] Name: " 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 = feedback(sys,1);P =极点(sysFeedback)
P =3×1复杂-0.2305 + 1.3062i -0.2305 - 1.3062i -0.7389 + 0.0000i

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

rlocus(系统)

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

环路增益的变化只是鲁棒稳定性的一个方面。一般来说,不完善的植物建模意味着增益和相位都不能准确地知道。由于建模误差在增益交叉频率(开环增益为0dB的频率)附近具有最不利的影响,因此在该频率下可以容忍多少相位变化也很重要。

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

波德(sys)网格

图中包含2个轴对象。Axes对象1包含一个line类型的对象。该节点表示sys。坐标轴对象2包含一个line类型的对象。该节点表示sys。

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

在本例中,为如下矩阵表示的系统设计一个目标带宽为0.75 rad/s的2-DOF 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 x2 1 0 B = u1 x1 1 x2 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并联形式的连续时间2自由度PID控制器。

使用类型“PID2”原因pidtune生成2-DOF控制器,表示为pid2对象。显示屏证实了这一结果。显示屏也显示了这一点pidtune调优所有控制器系数,包括设定值权重b而且c,以平衡性能和健壮性。

有关实时编辑器中的交互式PID调优,请参阅整定PID控制器实时编辑器任务。该任务允许您交互式地设计PID控制器,并自动为您的实时脚本生成MATLAB代码。

对于交互式PID调优在一个独立的应用程序,使用PID调谐器.看到快速参考跟踪的PID控制器设计这是一个使用应用程序设计控制器的例子。

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

对于本例,考虑两个连续时间状态空间模型G而且K用以下一组矩阵表示:

一个 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 = 0.3 = 0.4 (x1, x2) x3 x1 3 x2 -0.5 -2.8 -0.8 x3 0.2 - 0.8 3 B = u1, u2 u3 u4 u5 x1 0.4 0 1 0.1 -0.9 -0.5 -0.2 0.3 - 0.2 0 x2 x3 0.6 0.9 0.5 0.2 0 C = -0.1 (x1, x2) x3 y1 0 1 y2 0 -0.2 1.6 y3日元-0.7 1.5 1.2 -1.4 -0.2 0 D = u1, u2 u3 u4 u5 y1 0 0 0 0 1 y2 0 0.3 0.4 - -0.7 0.9 y3 0 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 = A = x1 x2 x3 x1 -0.2 2.1 0.7 x2 -2.2 -0.1 -2.2 x3 -0.4 2.3 -0.2 B = u1 u2 u3 x1 -0.1 -2.1 -0.3 x2 -0.1 0 0.6 x3 1 0 0.8 C = x1 x2 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连续时间状态空间模型。

定义feedout而且feedin基于输入和输出的矢量被连接在一个反馈回路中。

Feedin = [4 2];馈出= [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 0 0.1 x6 0.16 0 0 0 1 C = (x1, x2) x3 x4 x5 x6 y1 0 -0.1 - 1 0 0 0 y2 y3 -0.672 -0.296 1.6 0.16 0.08 -0.12 -1.204 1.428 1.2 0.12 0.06 -0.09 -1.4 - -0.2 y4 0000D=u1u2 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.
大小(系统)
具有4个输出、5个输入和6个状态的状态空间模型。

sys的指定输入和输出连接所得到的闭环状态空间模型是G而且K

R2006a之前介绍