2. 实时对象建模的数学基础
半实物仿真中,被控对象(如舵机、发动机、飞行器刚体)在物理世界中本质上是连续时间系统,而实时仿真计算机以固定步长周期性地求解模型。因此,实时对象建模的核心任务可以概括为:用连续时间数学描述物理对象,再把它转换为可在固定步长下稳定运行的离散递推形式。本节围绕这条主线,梳理微分方程、状态空间、传递函数、离散化与数值积分稳定性五个环节。
一、连续系统的三种等价描述
设对象输入为 u(t),输出为 y(t),内部状态为 x(t)。最原始的物理建模结果是微分方程,例如一个二阶舵机位置回路可写为
J·θ''(t) + b·θ'(t) + k·θ(t) = K·u(t)
其中 J 为等效转动惯量,b 为阻尼系数,k 为刚度,K 为增益。这类方程直接来自牛顿定律或基尔霍夫定律,物理意义清晰,但不便于多变量耦合与计算机求解。
引入状态变量 x₁ = θ,x₂ = θ',可改写为状态空间表示:
x₁' = x₂
x₂' = -(k/J)·x₁ - (b/J)·x₂ + (K/J)·u
y = x₁
写成矩阵形式即 ẋ = A·x + B·u,y = C·x + D·u。状态空间的最大优势是:它把高阶方程化为一阶向量方程,天然支持多输入多输出,并且是数值积分器直接求解的形式。在半实物仿真中,状态空间是实时模型最常用的内部表示。
对线性定常系统,在零初始条件下对微分方程取拉普拉斯变换,可得传递函数:
G(s) = Y(s)/U(s) = K / (J·s² + b·s + k)
传递函数把系统表示为代数分式,便于频域分析、串联并联化简和控制器设计。三种描述的关系是:微分方程是物理原型,状态空间是时域实现形式,传递函数是频域分析形式,三者可相互转换。
二、离散化方法:从连续到递推
实时仿真计算机无法直接求解连续微分方程,必须把模型转换为离散时间递推式。常用方法有三类。
(1)前向欧拉法。用一阶差商近似导数:ẋ ≈ (x[k+1] − x[k]) / Ts,代入状态方程得
x[k+1] = x[k] + Ts·(A·x[k] + B·u[k])
= (I + Ts·A)·x[k] + Ts·B·u[k]
前向欧拉实现最简单,每步只需一次矩阵乘加,适合实时性要求高的场合。但它是有条件稳定的:当 Ts 超过系统最快时间常数的约两倍时,数值解会发散。
(2)后向欧拉法。用 x[k+1] 处的导数近似:
x[k+1] = x[k] + Ts·(A·x[k+1] + B·u[k])
= (I − Ts·A)⁻¹·(x[k] + Ts·B·u[k])
后向欧拉是 A-稳定的,对刚性系统更友好,但每步需要求解线性方程组或预先计算逆矩阵,计算量略大。
(3)双线性变换(Tustin)。用梯形积分近似,把 s 替换为 (2/Ts)·(z−1)/(z+1)。它保持稳定性映射,精度高于欧拉法,是传递函数离散化的常用手段。例如对 G(s)=K/(Js²+bs+k),代入后整理可得关于 z⁻¹ 的差分方程,直接用于实时递推。
此外,零阶保持器(ZOH)方法把连续状态空间精确离散为 Ad = e^(A·Ts),Bd = ∫₀^Ts e^(A·τ)·B dτ。它精度最高,但需要矩阵指数运算,通常离线计算好 Ad、Bd 后在线只做乘加。
三、数值积分稳定性:实时仿真的生命线
离散化后模型是否稳定,取决于步长 Ts 与系统特征值的关系。对连续系统特征值 λ,前向欧拉离散后的特征值为 1 + Ts·λ。稳定条件要求 |1 + Ts·λ| < 1,即 Ts < 2/|λ|。若系统最快模态对应时间常数 τ = 1/|λ|,则 Ts 必须小于约 2τ。
以本节舵机模型为例,取 J = 0.01 kg·m²,b = 0.5 N·m·s/rad,k = 2 N·m/rad,K = 1。特征方程为 J·s² + b·s + k = 0,解得 λ₁,₂ ≈ −25 ± j·11.2,|λ| ≈ 27.4 rad/s。前向欧拉的稳定上限为 Ts < 2/27.4 ≈ 0.073 s。若实时步长取 Ts = 0.001 s,则 1 + Ts·λ 的模约为 0.973,远离单位圆边界,数值稳定且精度可接受。
工程判断:实时仿真步长通常取系统最快时间常数的 1/10 到 1/20。若 Ts 接近稳定上限,即使模型本身稳定,数值解也会出现振荡或发散,表现为输出幅值逐周期增大。此时应减小 Ts、改用后向欧拉或双线性变换,或对刚性模态做降阶处理。
四、实时实现中的关键约束
在半实物仿真中,模型计算必须在每个 Ts 内完成,否则会破坏实时性。因此离散化方法的选择不只是精度问题,更是计算预算问题。前向欧拉每步计算量最小,适合 Ts 较小且系统非刚性的场景;后向欧拉和双线性变换需要额外运算,但允许更大步长,适合刚性系统或计算资源受限的嵌入式目标机。
另一个关键点是输入输出时序:实时模型在每个周期开始时读取上一周期保持的输入 u[k],计算 x[k+1] 和 y[k+1],然后在周期结束前输出。若传感器采样与模型计算不同步,会引入额外延迟,等效于增大 Ts,可能把稳定裕度消耗掉。因此,实际工程中常把模型离散化、I/O 时序和步长调度放在一起设计,而不是孤立地选择积分方法。
总结来看,实时对象建模的数学基础是一条从物理方程到可执行递推式的完整链路:微分方程给出物理原型,状态空间提供时域实现,传递函数支持频域分析,离散化完成连续到离散的转换,数值积分稳定性则决定这条链路能否在实时步长下可靠运行。理解每一步的适用条件和约束,是后续搭建半实物仿真模型的前提。