3. 控制系统建模基础

在多体动力学与控制系统联合仿真中,机械侧通常以微分方程描述刚体、关节与柔性体的运动,控制侧则以传感器采样、控制器计算、执行器输出构成闭环。两侧能否正确耦合,取决于控制系统的建模描述是否与机械求解器的积分方式、采样周期和信号接口一致。本节围绕连续与离散描述、状态空间模型、传递函数以及控制器的实现形式展开,重点说明它们在联合仿真中的具体写法与对应关系。

连续系统与离散系统:同一控制器的两种描述

连续系统用微分方程描述被控对象或控制器,形式为 ẋ(t) = f(x(t), u(t), t),输出 y(t) = g(x(t), u(t), t)。它假设信号在任意时刻都有定义,适合描述机械动力学、电机电流环等物理过程。离散系统则只在采样时刻 t_k = kT_s 上定义状态与输出,形式为 x[k+1] = f_d(x[k], u[k], k),y[k] = g_d(x[k], u[k], k),其中 T_s 为采样周期。

联合仿真中,机械求解器一般以变步长或固定小步长积分连续动力学,而数字控制器以固定采样周期运行。若控制器在仿真中被当作连续环节处理,会忽略采样保持、计算延时和量化效应,导致高频段相位误差被低估。因此,实际工程中常把控制器建成离散模型,再通过零阶保持器与机械侧连接。零阶保持器在采样间隔内保持输入不变,其传递函数为 G_ZOH(s) = (1 - e^{-T_s s}) / s,是连接连续与离散两侧的关键环节。

连续模型离散化常用方法包括前向欧拉、后向欧拉、双线性变换(Tustin)和零极点匹配。以积分环节 1/s 为例,前向欧拉得到 T_s / (z - 1),后向欧拉得到 T_s z / (z - 1),双线性变换得到 T_s (z + 1) / (2(z - 1))。三者在低频段接近,但高频段相位特性不同:前向欧拉可能引入不稳定极点,双线性变换保稳定性但会频率畸变。选择时需结合采样频率与被控对象带宽,一般要求采样频率为闭环带宽的 10 倍以上。

状态空间模型:多体与控制耦合的通用形式

状态空间模型把系统写成一阶微分方程组,便于处理多输入多输出、时变和非线性问题。线性时不变形式为:

ẋ = A x + B u
y  = C x + D u

其中 x 为状态向量,u 为输入向量,y 为输出向量,A、B、C、D 为系数矩阵。在多体动力学中,若机械系统有 n 个自由度,取广义坐标 q 与广义速度 q̇ 组成状态 x = [q; q̇],则状态维数为 2n。控制器若为 m 阶,可将其状态并入整体状态向量,形成机械—控制联合状态空间。

以一个单自由度质量—弹簧—阻尼系统为例,质量 m = 1 kg,阻尼 c = 0.5 N·s/m,刚度 k = 4 N/m,控制力 u 作用于质量块,位移为输出。取状态 x = [x1; x2],其中 x1 为位移、x2 为速度,则:

A = [0, 1; -k/m, -c/m] = [0, 1; -4, -0.5]
B = [0; 1/m] = [0; 1]
C = [1, 0]
D = 0

若采用比例—微分(PD)控制器 u = -Kp x1 - Kd x2,代入后闭环矩阵为 A_cl = A - B [Kp, Kd]。取 Kp = 20、Kd = 5,则 A_cl = [0, 1; -24, -5.5],特征值为 -2.75 ± j4.07,闭环稳定且阻尼比约 0.56。这一过程说明:状态空间模型不仅描述对象,也直接承载控制器结构,便于在联合仿真中统一积分。

传递函数与状态空间的对应

传递函数描述单输入单输出系统在零初始条件下的输入输出关系,定义为 G(s) = Y(s)/U(s)。对上述质量—弹簧—阻尼系统,传递函数为:

G(s) = 1 / (m s^2 + c s + k) = 1 / (s^2 + 0.5 s + 4)

传递函数与状态空间可通过 G(s) = C (sI - A)^{-1} B + D 相互转换。传递函数直观展示极点、零点与频率响应,适合控制器频域设计;状态空间便于处理多变量、初值和非线性问题,适合联合仿真中的数值积分。两者不是互斥关系,而是同一系统的不同视图。实际建模时,常用传递函数设计控制器参数,再转换为状态空间形式嵌入仿真。

离散传递函数写作 G(z) = Y(z)/U(z),与连续传递函数通过 z = e^{sT_s} 关联。例如对 G(s) = 1/(s+1) 采用零阶保持器离散化,采样周期 T_s = 0.01 s,得到 G(z) = (1 - e^{-0.01}) / (z - e^{-0.01}) ≈ 0.00995 / (z - 0.99005)。该离散模型可直接用于数字控制器实现。

控制器的实现形式与联合仿真接口

控制器在仿真中有三种常见实现形式。第一种是连续传递函数形式,直接以 s 域表达式参与连续求解,适合模拟电路或理想连续控制器。第二种是离散传递函数形式,以差分方程递推计算,例如对 G_c(z) = (b0 + b1 z^{-1}) / (1 + a1 z^{-1}),实现为 u[k] = b0 e[k] + b1 e[k-1] - a1 u[k-1]。第三种是状态空间形式,以矩阵运算更新状态,适合多输入多输出和现代控制方法。

在联合仿真中,控制器通常作为独立模块与机械求解器通过接口变量交换数据。接口变量包括采样时刻的测量输出 y[k]、控制器输出 u[k] 以及使能、复位等控制信号。为保证数值稳定,控制器模块的采样周期应与机械求解器的通信步长协调:若机械求解器步长大于控制器采样周期,需在控制器内部做子步递推;若小于,则需保持控制器输出直到下一采样时刻。

连续—离散混合控制回路与联合仿真接口 机械连续对象 ẋ = A x + B u y = C x + D u m=1, c=0.5, k=4 零阶保持器 G_ZOH(s) T_s = 0.01 s 数字控制器 u[k]=b0e[k]+b1e[k-1] −a1u[k-1] Kp=20, Kd=5 采样器 y[k]=y(kT_s) T_s = 0.01 s 反馈测量 y(t) → y[k] u(t) u[k] y[k] 联合仿真接口:机械侧连续积分 ↔ 控制器离散递推,通过 ZOH 与采样器交换 u[k]、y[k] 采样周期 T_s 与求解器步长需协调,避免混叠与数值不稳定

上图给出连续机械对象、零阶保持器、数字控制器与采样器构成的混合回路。机械侧以连续状态空间积分,控制器以离散差分方程递推,两者通过保持器和采样器交换信号。实际搭建时,需要确认三个参数:控制器采样周期 T_s、机械求解器通信步长 h 以及接口变量的更新顺序。若 h > T_s,控制器在一个通信步内需多次递推;若 h < T_s,控制器输出应保持到下一采样时刻。忽略这一协调关系,容易出现信号混叠、相位滞后或数值发散。

建模检查要点:先确认控制器是连续还是离散实现,再确认采样周期与求解器步长的关系,最后检查接口变量的更新顺序是否与真实信号流一致。三者一致,联合仿真结果才具备可信度。