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