2. 数学模型基础:状态空间表示法、离散时间系统模型、连续时间系统模型

做控制这么多年,我越来越觉得:数学模型就是控制算法的灵魂。你想想看,如果连被控对象的数学描述都搞不清楚,那控制发散几乎是必然的。

今天咱们就来聊聊目标点跟踪中最基础的数学模型。这部分内容,说白了就是回答三个问题:

  • 系统当前处于什么状态?
  • 系统下一步会变成什么样?
  • 我们怎么用数学语言描述这个过程?

2.1 状态空间表示法:控制界的通用语言

我个人习惯用状态空间法来描述系统。为什么?因为它直观、统一,而且特别适合计算机实现。

一个典型的状态空间模型长这样:

状态方程:  ẋ(t) = A·x(t) + B·u(t)
输出方程:  y(t) = C·x(t) + D·u(t)

这里:

  • x(t) — 状态向量,描述系统内部的所有变量
  • u(t) — 输入向量,也就是我们施加的控制量
  • y(t) — 输出向量,我们能测量到的量
  • A, B, C, D — 系统矩阵,决定了系统的动态特性

核心要点:状态空间法把高阶微分方程降阶为一阶微分方程组。你想想看,一阶微分方程多好处理啊!

我在项目中遇到过这样一个坑:有个同事直接用传递函数做目标跟踪,结果系统阶次一高,模型就乱套了。换成状态空间法后,问题迎刃而解。嗯,这里要注意:状态变量的选择不是唯一的,但选得好不好,直接影响后续控制器的设计难度。

2.2 连续时间系统模型:物理世界的真实写照

真实世界是连续的。电机转动、机械臂运动、无人机飞行——这些都是连续时间过程。

连续时间系统的状态方程一般写成:

dx/dt = f(x, u, t)

如果是线性系统,就简化为:

dx/dt = A·x + B·u

举个例子,一个简单的移动机器人目标跟踪问题:

状态变量:x = [位置, 速度]ᵀ
控制输入:u = [加速度]
系统矩阵:A = [[0, 1], [0, 0]]
          B = [[0], [1]]

这个模型描述的是什么?说白了就是:位置的变化率等于速度,速度的变化率等于加速度。就这么简单。

我的经验:刚开始做控制时,我总想把模型建得特别精细。后来发现,对于目标跟踪问题,线性化模型往往就够用了。过度建模反而会让控制器变得脆弱。

2.3 离散时间系统模型:计算机能理解的语言

计算机是离散的。你给它一个连续模型,它没法直接处理。所以我们需要把连续模型离散化。

离散时间系统的标准形式:

x(k+1) = A_d·x(k) + B_d·u(k)
y(k)   = C·x(k) + D·u(k)

这里 k 表示第 k 个采样时刻。A_d 和 B_d 是离散化后的系统矩阵。

最常见的离散化方法是零阶保持法:

A_d = e^(A·T)
B_d = ∫₀ᵀ e^(A·τ) dτ · B

其中 T 是采样周期。

避坑指南:我曾经因为采样周期选得太大,导致离散化后的模型完全失真。控制器设计得再好,实际跑起来就是发散。后来我总结了一条经验:采样频率至少是系统最高频率的10倍,否则别怪模型不准。

2.4 连续 vs 离散:什么时候用哪个?

这个问题我经常被问到。我的建议很简单:

场景 推荐模型 原因
理论分析、稳定性证明 连续模型 数学工具更成熟,李雅普诺夫方法等
嵌入式实现、实时控制 离散模型 直接对应代码,没有近似误差
仿真验证 两者皆可 但要注意离散化误差
高频系统(如电机控制) 离散模型优先 采样效应不可忽略

你想想看,如果你在STM32上跑控制算法,却用连续模型去设计控制器,那不是自找麻烦吗?

2.5 本章知识体系

下面这张图是我自己整理的,把本章的核心逻辑串起来了:

数学模型基础:知识体系 数学模型 状态空间表示法 连续时间系统模型 离散时间系统模型 状态方程 输出方程 微分方程 线性化 差分方程 零阶保持 核心:模型决定控制性能的上限

2.6 一个简单的例子:一维目标跟踪

光说不练假把式。咱们来看个具体例子。

假设我们要控制一个小车跟踪一个移动目标。小车的状态是位置 p 和速度 v,控制输入是加速度 a。

连续模型:

状态向量:x = [p, v]ᵀ
控制输入:u = [a]

状态方程:
dp/dt = v
dv/dt = a

矩阵形式:
dx/dt = [[0, 1], [0, 0]]·x + [[0], [1]]·u

离散模型(采样周期 T=0.1s):

x(k+1) = [[1, 0.1], [0, 1]]·x(k) + [[0.005], [0.1]]·u(k)

你看,离散化之后,矩阵里的数字就变成了具体的数值。这就是计算机能直接用的东西。

关键洞察:控制发散往往不是因为算法不好,而是模型和实际系统不匹配。我见过太多人花大量时间调PID参数,结果问题出在模型离散化时采样周期选错了。

2.7 本章小结

好了,咱们把今天的内容捋一捋:

  • 状态空间法是描述系统的通用语言,适合计算机实现
  • 连续模型描述物理世界的真实动态,适合理论分析
  • 离散模型是计算机能直接处理的版本,适合实际控制
  • 从连续到离散,采样周期是关键参数,选不好就等着发散吧

我个人觉得,数学模型这部分再怎么强调都不过分。你想想看,如果模型本身就有问题,后面再高级的控制算法也是白搭。这就好比盖房子,地基没打好,装修再漂亮也没用。

下一章咱们会深入讨论控制发散的具体原因和诊断方法。到时候你会发现,很多发散问题追根溯源,都能回到今天讲的数学模型上。

一个小建议:刚开始做目标跟踪时,先用最简单的模型(比如一阶或二阶系统)跑通流程,再逐步增加复杂度。这样出了问题也容易定位。

可可精品资料库