先记住一句话

状态是预测未来所需的最小记忆,输入是控制器能改变的量,输出是传感器或任务真正关心的量。

真实 plant选 state/input/output写连续动力学工作点线性化离散化验证预测
Plantẋ=f(x,u,d)
Sensory=h(x)+noise
Controlleru=π(y,reference)
模型、测量和控制输入必须分开;反馈环靠 measurement 修正模型预测。

1. Plant、controller 与 disturbance

reference r ─→ controller ─u→ plant ─y→ sensor
                         disturbance d ↗    │
                              feedback ←────┘

plant 是被控对象,包括机器人刚体、关节、传动、电机和必要的环境;u 可能是 voltage、current/torque command 或期望关节位置;d 是外力、负载变化和未建模摩擦。

2. 连续时间动力学

ẋ = f(x,u,t), y = h(x,u,t)

例如质量—弹簧—阻尼器满足 m q̈ + b q̇ + k q = F。取 x=[q,q̇],二阶方程就变为两个一阶状态方程。机械机器人常写成:

M(q)q̈ + C(q,q̇)q̇ + g(q) + τfriction = Sᵀτ + Jᵀfcontact

M 是惯量,C 含速度耦合,g 是重力,右边是 actuator 与接触力。模型是否包含 motor/transmission dynamics,取决于 controller 的时间尺度。

3. State 不等于 measurement

encoder 可测 position,IMU 测 angular velocity/acceleration,但 base velocity、contact force、bias 等常是 latent state,要由 estimator 融合得到。若 sensor history 对未来有影响却不在 x 里,当前 state representation 就不是 Markov 的。

4. 线性状态空间

ẋ = Ax + Bu, y = Cx + Du
  • A:state 自身怎样耦合演化;
  • B:每个 actuator input 能推动哪些 state;
  • C:sensor/output 看见 state 的哪种组合;
  • D:input 是否直接穿到 output。

线性不是“简单”的同义词;高维柔性结构可线性,而摆的大角度运动是低维非线性。

5. Transfer function 看输入—输出

对零初值的 SISO LTI 系统做 Laplace transform,可写 G(s)=Y(s)/U(s)。分母 roots 是 poles,决定自然 mode;分子 roots 是 zeros,改变输入到输出的路径。transfer function 很适合 Bode、loop gain 和频域设计,却把内部 state 隐掉,多输入多输出与 constraint 处理也更笨重。

6. 在 operating point 附近线性化

对 nonlinear dynamics 在 (x*,u*) 做一阶 Taylor expansion:

δẋ ≈ Aδx + Bδu, A=∂f/∂x|*, B=∂f/∂u|*

平衡机器人常在直立点线性化;trajectory tracking 则沿 nominal trajectory 得到 time-varying A_t,B_t。线性 controller 只在偏差足够小、contact mode 没变化的邻域可信。

7. 离散化和 Zero-Order Hold

数字 controller 每 Δt 读一次 sensor 并保持 command。连续 LTI 的精确 ZOH 离散化是:

xₖ₊₁ = A_d xₖ + B_d uₖ
A_d=e^(AΔt), B_d=∫₀^Δt e^(Aτ)B dτ

Forward Euler 的 A_d≈I+AΔt, B_d≈BΔt 只是一阶近似;步长过大会制造数值不稳定或错误阻尼。

8. Sampling、带宽与 delay

Nyquist 条件只是防 alias 的下限,不是控制 loop rate 设计准则。实际采样要显著快于 closed-loop bandwidth,并预算 sensor exposure、filter、compute、bus 和 actuator delay。delay 增加 phase lag,常比少量 model error 更快吃掉 stability margin。

9. 建模从哪里开始

  1. 写清 objective、可控 input 与可测 output;
  2. 选能覆盖主要 energy storage 的 state;
  3. 从物理定律或 system identification 得参数;
  4. 明确单位、坐标系、sign、sample time 与 delay;
  5. 用 step/sine/held-out trajectory 验证,而非只拟合训练 log。

10. 四个建模与采样计算

例 1:一阶连续系统

x_dot = -2x + u,当前 x=1、u=3,则 x_dot=1。Euler 步长 0.1 s 后 x_next=1+0.1×1=1.1

例 2:离散状态空间

A=[[1,0.1],[0,1]], B=[[0.005],[0.1]],state=[position=2, velocity=1],input=4,则下一 state=[2+0.1+0.02, 1+0.4]=[2.12,1.4]。

例 3:transfer function DC gain

G(s)=2/(s+4) 的 DC gain 是 G(0)=2/4=0.5;单位 step 的稳态输出约 0.5。

例 4:sampling 与 delay

Control 100 Hz 的周期是 10 ms;sensor+compute 共 35 ms,相当于 3.5 个 sample delay。若 crossover 接近 10 Hz,delay phase lag 约 360°×10×0.035=126°,已经危险。

常见误解:

“模型越精细越适合控制”不一定。太复杂的模型会让 estimation 与 online optimization 赶不上 deadline;正确目标是对 controller 关心的时域和状态范围足够准确。

自测

1. position 可测,为什么还要 velocity state?

未来 position 也取决于当前 velocity;它通常要由编码器差分、IMU 与模型融合估计。

2. transfer function 与 state-space 最大差异是什么?

前者强调输入—输出频率关系,后者保留内部状态,天然适合 MIMO、估计和优化控制。

3. 为什么不能把仿真步长直接当控制频率?

仿真 integrator 可有多个 substeps;真实控制还受 sensor、通信、计算和 actuator 更新延迟限制。

学习资料

密歇根大学的 Control Tutorials:System Modeling系统介绍 state-space、transfer function 与物理建模;MIT Signals and Systems覆盖 frequency response、feedback 与 sampling。