4. 被控对象建模方法
在控制器 HIL(Hardware-in-the-Loop)实时仿真系统中,被控对象模型是闭环的另一半。控制器是真实硬件,被控对象则运行在实时仿真机上。被控对象模型是否准确、是否能在固定步长下稳定求解,直接决定了 HIL 测试结果的可信度。本节围绕三种主流建模路径——基于物理方程、传递函数与状态空间——说明它们各自适合什么对象、如何构建,以及如何落地为可实时运行的模型。
一、三条建模路径的定位
物理方程建模从守恒定律出发,直接写出对象的微分方程,例如电机电压方程、机械转动方程、液压流量方程。它的优点是物理意义清晰、参数可追溯,适合非线性强、多物理域耦合的对象,如电机、液压缸、电池。缺点是方程复杂,实时求解负担重。
传递函数建模把对象视为线性时不变系统,用输入输出之间的拉普拉斯变换比描述,例如一阶惯性环节 G(s)=K/(Ts+1)。它适合线性度好、工作点固定的对象,如滤波器、简单温控对象。优点是阶次低、求解快,缺点是丢失内部状态,难以处理非线性与多输入多输出。
状态空间建模用一组一阶微分方程描述系统内部状态,形式为 ẋ=Ax+Bu、y=Cx+Du。它既能表达多输入多输出,又能保留内部状态,便于在实时系统中用数值积分逐步推进。对于 HIL 而言,状态空间往往是物理方程与传递函数之间的“通用落地形式”。
二、从物理方程到状态空间:以直流电机为例
设一台他励直流电机,电枢回路电压方程与机械转动方程为:
L·di/dt = u - R·i - Ke·ω
J·dω/dt = Kt·i - B·ω - TL
其中 u 为电枢电压,i 为电枢电流,ω 为角速度,R、L 为电枢电阻与电感,Ke、Kt 为反电动势常数与转矩常数,J 为转动惯量,B 为粘性阻尼,TL 为负载转矩。取状态 x=[i, ω]ᵀ,输入 u=[u, TL]ᵀ,输出 y=ω,可整理为状态空间形式:
A = [[-R/L, -Ke/L],
[ Kt/J, -B/J]]
B = [[1/L, 0],
[0, -1/J]]
C = [0, 1], D = [0, 0]
这一步是 HIL 建模的关键:物理方程一旦写成状态空间,就可以直接交给实时求解器按固定步长推进。示例参数可取 R=1.2 Ω、L=0.005 H、Ke=Kt=0.05、J=0.0002 kg·m²、B=1e-5。此时电气时间常数 L/R≈4.2 ms,机械时间常数 J/B=20 s,两者相差近三个数量级,属于刚性系统。
三、离散化与实时步长选择
实时仿真机以固定步长 Ts 运行,必须把连续状态空间离散化。最简单的是前向欧拉:
x(k+1) = x(k) + Ts·(A·x(k) + B·u(k))
y(k) = C·x(k) + D·u(k)
前向欧拉实现简单,但稳定性受步长限制。对上述电机,电气动态最快,要求 Ts 远小于 L/R。若取 Ts=1 ms,Ts/(L/R)=0.24,尚在稳定范围;若取 Ts=5 ms,比值达 1.2,电流状态会振荡甚至发散。因此工程上常取 Ts 为最快时间常数的 1/10 到 1/20,即 Ts≈0.2~0.4 ms。若实时机算力有限,可改用后向欧拉或梯形法,它们对刚性系统更稳定,代价是每步需要求解线性方程组。
四、传递函数与状态空间的相互转换
对于线性对象,传递函数与状态空间可以互相转换。以二阶系统 G(s)=ωn²/(s²+2ζωn·s+ωn²) 为例,取 ωn=100 rad/s、ζ=0.7,可写出可控标准型状态空间:
A = [[0, 1], [-ωn², -2ζωn]]
B = [[0], [ωn²]]
C = [1, 0], D = [0]
在 HIL 中,若被控对象本身以传递函数给出,可先转为状态空间再离散化,这样既保留了传递函数的频域特性,又获得了状态空间便于实时求解的形式。反之,若对象以状态空间给出,也可通过 G(s)=C(sI-A)⁻¹B+D 求传递函数,用于频域校核。
五、建模精度与实时性的权衡
HIL 建模不是越精确越好,而是在精度与实时性之间找平衡。物理方程最精确但计算量大;传递函数最轻量但只适用于线性工作点附近;状态空间居中,且可通过降阶、线性化、查表等方式进一步优化。实际工程中常见的做法是:对快变电气量用简化一阶模型,对慢变机械量保留二阶或三阶模型,对非线性环节(如死区、饱和)用分段线性或查表实现。这样既保证关键动态被复现,又让实时机在 1 ms 步长下稳定运行。
总结来说,物理方程提供建模依据,传递函数提供频域视角,状态空间提供实时落地形式。三者不是互斥选择,而是同一对象在不同阶段、不同精度要求下的表达方式。掌握它们之间的转换与离散化方法,是构建可信 HIL 被控对象模型的基础。