状态空间表示

2025 年 3 月 1 日 | 阅读 4 分钟

引言

状态空间表示是一种数学模型,它使用一组一阶微分(或差分)方程来描述控制系统中物理系统的行为。根据这种方法,一个包含表征系统在任何给定时间状态所需的所有相关变量的向量定义了它的状态。构成状态空间模型的两个主要方程是输出方程,它将系统的输出与其输入和状态联系起来;以及状态方程,它将系统的状态与其输入和当前状态联系起来。由于其高度的适应性,这种表示法可用于分析和设计广泛工程领域的系统,例如 机械电气 和航空航天。

MATLAB 中,状态空间表示通过使用内置命令和函数进行有效管理。MATLAB 中的 `ss` 函数可用于定义状态空间模型。要创建模型,它需要 A、B、C 和 D 矩阵作为输入。一旦定义了系统,您就可以使用各种 MATLAB 函数 来模拟系统对不同输入的响应或分析其属性,例如稳定性、可控性和可观性。MATLAB 是控制系统设计和分析的有效工具,因为它提供了在状态空间模型与其他表示形式(如传递函数)之间进行转换的工具。

语法和要点

在 MATLAB 中,`ss` 函数用于创建状态空间表示。以下是构建状态空间模型的基本描述和语法

语法

Sys = ss(A, B, C, D) 是描述。

  • A: 一个 n×n 的状态矩阵,其中 n 是状态的总数。
  • B: n×m 的输入矩阵,其中 m 是输入总数。
  • C: p×n 的输出矩阵,其中 p 是输出的总数。
  • D: 前馈矩阵 (p×m),也称为直接传输。

通过 A、B、C 和 D 矩阵,创建了一个连续时间状态空间模型 sys。

我们有 sys = ss(A, B, C, D, Ts)

  • Ts: 时间采样。如果 Ts 是正数,则该模型是具有给定采样时间的离散时间模型;否则,如果 Ts 设置为 0,则它是连续时间模型。

根据 Ts 的值,此变体用于构建具有连续或离散时间的状态空间模型。

代码

输出

State-Space Representation

说明

定义矩阵

  • A = [0 1; -2 -3];: 状态矩阵 A 定义了系统的动力学。它表示状态随时间如何演变。
  • B = [0; 1];: 输入矩阵 B 定义了输入如何影响状态。它表示控制输入对系统的影响。
  • C = [1 0];: 输出矩阵 C 将状态映射到输出。它决定了状态如何被测量或观察。
  • D = 0;: 前馈矩阵 D 表示输入对输出的直接影响。在此示例中,D 为零,表示没有直接前馈。

创建状态空间模型

  • sys = ss(A, B, C, D);: 此命令使用 A、B、C、D 矩阵创建状态空间模型 sys。

显示模型

  • disp('State-Space Model:'): 显示状态空间模型 sys。您可以查看系统矩阵和状态空间模型的格式。
  • 分析系统极点
  • poles = pole(sys);: 此命令计算系统的极点,即矩阵 A 的特征值。极点提供了有关系统稳定性和动态响应的见解。

模拟阶跃响应

  • step(sys);: 此命令模拟系统的阶跃响应并绘制出来。阶跃响应显示了系统在一段时间内对阶跃输入的响应。

检查可控性和可观性

  • ctrb_matrix = ctrb(A, B);: 此命令计算可控性矩阵。该矩阵的秩表明系统是否可控。
  • obsv_matrix = obsv(A, C);: 此命令计算可观性矩阵。该矩阵的秩表明系统是否可观。
  • rank(ctrb_matrix) 和 rank(obsv_matrix): 这些命令检查可控性矩阵和可观性矩阵的秩,以帮助确定系统是否完全可控和可观。

此示例演示了如何在 MATLAB 中创建、分析和模拟状态空间模型,涵盖了控制系统分析的基本概念。


下一个主题随机过程