Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

State-Space

实现线性状态空间系统

  • 库:
  • Simulink / Continuous

  • State-Space block

说明

State-Space 模块可实现具有您定义的如下行为的系统:

x˙=Ax+Buy=Cx+Dux|t=t0=x0,

其中 x 是状态向量,u 是输入向量,y 是输出向量,x 是状态向量的初始条件。A、B、C、D 矩阵可以指定为稀疏矩阵或稠密矩阵。矩阵系数必须具有以下特征:

  • A 必须是 n×n 矩阵,其中 n 是状态的数量。

  • B 必须是 n×m 矩阵,其中 m 是输入的数量。

  • C 必须是 r×n 矩阵,其中 r 是输出的数量。

  • D 必须是 r×m 矩阵。

一般情况下,模块有一个输入端口和一个输出端口。C 或 D 矩阵中的行数与输出端口的宽度相同。B 或 D 矩阵中的列数与输入端口的宽度相同。如果您要建立不带任何输入端口的自治线性系统模型,请将 B 和 D 设置为空矩阵。在这种情况下,模块相当于没有输入端口但有一个输出端口的源模块,并实现以下系统:

x˙=Axy=Cxx|t=t0=x0.

Simulink® 软件可将包含零值的矩阵转换为稀疏矩阵,以提高乘法运算的效率。

端口

输入

全部展开

double 类型的实数值输入向量,其宽度等于 BD 矩阵中的列数。有关详细信息,请参阅说明

数据类型: double

输出

全部展开

数据类型为 double 的实数值输出向量,其宽度等于 CD 矩阵中的行数。有关详细信息,请参阅说明

数据类型: double

参数

全部展开

将矩阵系数 A 指定为实数值 n×n 矩阵,其中 n 是状态的数量。有关矩阵系数的详细信息,请参阅说明

编程用法

模块参数:A
类型:字符向量、字符串
Values: 标量 | 向量 | 矩阵 | 稀疏矩阵
默认值:'1'

将矩阵系数 B 指定为实数值 n×m 矩阵,其中 n 是状态的数量,m 是输入的数量。有关矩阵系数的详细信息,请参阅说明

编程用法

模块参数:B
类型:字符向量、字符串
Values: 标量 | 向量 | 矩阵 | 稀疏矩阵
默认值:'1'

将矩阵系数 C 指定为实数值 r×n 矩阵,其中 r 是输出的数量,n 是状态的数量。有关矩阵系数的详细信息,请参阅说明

编程用法

模块参数:C
类型:字符向量、字符串
Values: 标量 | 向量 | 矩阵 | 稀疏矩阵
默认值:'1'

将矩阵系数 D 指定为实数值 r×m 矩阵,其中 r 是输出的数量,m 是输入的数量。有关矩阵系数的详细信息,请参阅说明

编程用法

模块参数:D
类型:字符向量、字符串
Values: 标量 | 向量 | 矩阵 | 稀疏矩阵
默认值:'1'

指定初始状态向量。

限制

此模块的初始条件不能为 infNaN

编程用法

模块参数:X0
类型:字符向量、字符串
值:标量 | 向量
默认值:'0'

使用 Simulink Compiler™ 的加速仿真模式和部署仿真的状态空间矩阵(A、B、C 和 D)的可调性级别。当设置为 “Auto” 时,Simulink 会选择适当的参数可调性级别。

对于稀疏矩阵系数,将参数设置为 “Optimized” 允许对非零元素进行调整,同时保持非零元素的模式和数量不变。将此参数设置为 “Unconstrained” 则允许对所有元素进行调整,前提是非零元素的数量保持不变,即您可以更改稀疏矩阵的模式。

对于稠密矩阵系数,选择 “Optimized” 允许对所有矩阵元素进行调整,前提是矩阵中最初指定的非零元素数量保持不变。将此参数设置为 “Unconstrained” 允许对所有矩阵元素进行全部调整。

注意

当 D = 0 时,要调整模块的 D 矩阵,则必须启用 Allow non-zero values for D matrix initially specified as zero 参数。

编程用法

模块参数ParameterTunability
类型:字符向量 | 字符串
'Auto' | 'Optimized' | 'Unconstrained'
默认值:'Auto'

启用此参数将支持对 D 进行调整,即使 D = 0 也是如此。

注意

启用此参数会启用 State-Space 模块的直接馈通。

编程用法

模块参数AllowTunableDMatrix
类型:字符向量 | 字符串
值:'off' | 'on'
默认值:'off'

用于计算模块状态的绝对容差,指定为正值、实数值、标量或向量。要从 Configuration Parameters 继承绝对容差,请指定 auto-1

  • 如果输入实数标量,则在计算所有模块状态时,该值会覆盖 Configuration Parameters 对话框中的绝对容差。

  • 如果输入实数向量,则该向量的维度必须匹配模块中连续状态的维度。这些值将覆盖 Configuration Parameters 对话框中的绝对容差。

  • 如果输入 auto 或 -1,则 Simulink 会使用 Configuration Parameters 对话框中的绝对容差值(请参阅Solver 窗格)来计算模块状态。

编程用法

模块参数: AbsoluteTolerance
类型:字符向量、字符串
值:'auto' | '-1' | 任何正实数值标量或向量
默认值:'auto'

为每个状态分配唯一名称。如果此字段为空 (' '),则不会分配任何名称。

  • 要为单个状态分配名称,请输入名称并用引号引起来,例如 'position'

  • 要为多个状态分配名称,请输入以逗号分隔的列表并用花括号括起来,例如 {'a', 'b', 'c'}。每个名称都必须是唯一的。

  • 要在 MATLAB® 工作区中分配带变量的状态名称,请输入不带引号的变量。变量可以是字符向量、字符串、元胞数组或结构体。

限制

  • 状态名称只会应用于所选模块。

  • 状态数量必须能够被状态名称的数量均分。

  • 指定的名称数量可以少于状态数量,但不能多于状态数量。

    例如,可以在具有四个状态的系统中指定两个名称。第一个名称应用于前两个状态,第二个名称应用于后两个状态。

编程用法

模块参数:ContinuousStateAttributes
类型:字符向量、字符串
值:' ' | 用户定义
默认值:' '

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

在 R2006a 之前推出