Main Content

State-Space

实现线性状态空间系统

  • State-Space block

库:
Simulink / Continuous

描述

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

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

其中 x 是状态向量,u 是输入向量,y 是输出向量,x0 是状态向量的初始条件。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
类型:字符向量、字符串
值: 标量 | 向量 | 矩阵 | 稀疏矩阵
默认值:'1'

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

编程用法

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

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

编程用法

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

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

编程用法

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

指定初始状态向量。

限制

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

编程用法

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

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

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

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

注意

当 D = 0 时,要调整模块的 D 矩阵,则必须启用允许最初指定为零的 D 矩阵具有非零值参数。

编程用法

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

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

注意

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

编程用法

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

变步长求解器在选择步长时使用绝对和相对容差来确定状态计算中的误差是否可接受。

要从绝对容差配置参数继承绝对容差,请将此参数值指定为 auto-1

要为此模块指定一个绝对容差来覆盖为绝对容差配置参数指定的值,请执行以下操作:

  • 输入用于计算所有模块状态的正实数标量值。

  • 输入实数向量,其维度与模块的连续状态的维度匹配。

编程用法

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

使用此参数可选择为此模块的状态指定名称。您指定的名称仅应用于此模块的状态。

  • 要使用默认状态名称,请将此字段留空 ('')。

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

  • 要为多个状态指定名称,请将此参数值指定为字符向量元胞数组。元胞数组中的每个名称必须唯一。例如,要指定名称 abc,请输入 {'a','b','c'}

  • 要使用 MATLAB 变量指定名称,请输入不带引号的变量名称。例如,要使用变量 names 来指定状态名称,请输入 names

您指定的名称数量可以少于模块中的状态数量。在这种情况下,状态名称用于多个状态,状态的数量必须能够被状态名称的数量均分。例如,当您为具有四个状态的模块指定两个名称时,第一个名称用于前两个状态,第二个名称用于后两个状态。

编程用法

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

模块特性

数据类型

double

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

版本历史记录

在 R2006a 之前推出