先记住一句话
状态是预测未来所需的最小记忆,输入是控制器能改变的量,输出是传感器或任务真正关心的量。
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ᵀfcontactM 是惯量,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 + DuA: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. 建模从哪里开始
- 写清 objective、可控 input 与可测 output;
- 选能覆盖主要 energy storage 的 state;
- 从物理定律或 system identification 得参数;
- 明确单位、坐标系、sign、sample time 与 delay;
- 用 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。