# L1 · 从指令到延迟力矩

位置指令告诉关节要转到哪里。要让它动起来，控制器还需要根据当前的位置误差和速度计算力矩。这里使用固定的 PD 控制器：

$$
c_k = k_p\left(q^{des}_k-q_k\right)-k_d\,\dot q_k,
\qquad \tau_k = \operatorname{delay}(c)_k.
$$

在本实验中，延迟位于 **控制器算出力矩指令之后、力矩实际作用于摆臂之前**。缓存保存的是已经算出的力矩指令 `c`，不是目标位置。根据 `delay_s` 从缓存选择或插值；第一条记录指令之前的历史为零。Oracle 和 Student 共用固定的控制增益和积分设置。

把延迟移到编码器、控制器前的位置指令，或力矩传感器上，就定义了不同的实验。

为什么 CAD 或控制器模型仍可能预测错误？CAD 的臂质量和重力可以是对的，却假定指令瞬时到达；控制器增益可以是对的，却忽略固件、通信、调度或采样接口引入的延迟。低频时偏差可能不明显；频率升高后，相同延迟会使力矩及角度响应产生更明显的相位差。

L1 固定机械与控制器参数，让我们可以集中观察延迟的影响。估计值描述这段指令路径的时序；如果改变延迟所在的位置或采样设置，就需要重新理解它的含义。它不能直接当作电机的物理时间常数。

## 拟合与验证输入

拟合使用频率随时间升高的扫频输入。留出验证使用单独定义、频率/相位组成不同的换向波形；每个划分都重置到相同初始状态。程序根据扫频观测选择延迟，再固定参数去预测验证运动。

本课假设位置测量理想。用于拟合的速度 `qd` 由相邻位置的差分计算；模拟器内部的精确速度没有交给拟合程序。

## 想一想

初始模型延迟为零、真实系统存在延迟时，相位线索会出现在静态臂几何、目标指令还是力矩/角度响应中？答案是力矩/角度响应。静态示意图只是一个状态快照，无法显示隐藏的指令缓存。
