Files
ParkingRobot/参考文档/辨识.txt
T

129 lines
2.4 KiB
Plaintext

对,当前日志足够做分层建模,但物理因果顺序要明确:
```text
目标舵角 TargetTh
舵角PID/前馈控制器
左右电机实际下发命令 SentLeft / SentRight
左右电机实际速度 ActualLeft / ActualRight
左右轮差速产生舵轮转动
实际舵角 ActualTh
```
你可以建立以下几层模型。
1. 单个电机响应模型
分别辨识:
```text
SentLeft → ActualLeft
SentRight → ActualRight
```
例如左前舵轮:
```matlab
G_LFL = ActualLFL / SentLFLMps;
G_LFR = ActualLFR / SentLFRMps;
```
这可以得到左右电机各自的延迟、时间常数和增益,判断两个电机是否同步。
2. 差速轮对模型
计算:
```matlab
uDiff = (SentRightMps - SentLeftMps) / 2;
vDiff = (ActualRight - ActualLeft) / 2;
```
辨识:
```text
uDiff → vDiff
```
它表示控制器给出的差速命令,到两个电机真正形成差速运动的过程。
3. 差速运动到舵角模型
辨识:
```text
vDiff → ActualTh
```
理论运动学关系是:
\[
\dot{\theta}=\frac{v_R-v_L}{d}
=\frac{2v_{\mathrm{diff}}}{d}
\]
所以这一层理论上主要是积分环节:
\[
\theta(s)=\frac{2}{d\,s}v_{\mathrm{diff}}(s)
\]
实际数据中还会包含摩擦、轮胎滑动、机械间隙和舵角反馈延迟。
4. 整体舵轮对象模型
直接辨识:
```text
uDiff → ActualTh
```
这一模型包含:
- 两个电机的响应延迟
- 左右电机不同步
- 差速转舵运动学
- 摩擦和机械滞后
- 舵角传感器延迟
这是后续设计舵角PID最有用的模型。
5. 完整闭环模型
还可以辨识:
```text
TargetTh → ActualTh
```
它包含当前PID参数,适合评价现有系统的上升时间、超调和稳定时间,但不适合单独用来重新设计PID对象。
因此建议在Simulink中建立:
```text
TargetTh
Controller
Motor Pair Dynamics
Differential Steering Mechanics
ActualTh
└────────反馈────────┘
```
第一版控制率设计优先使用:
```text
输入:uDiff
输出:ActualTh
```
单电机模型用于解释左右不同步和优化补偿。
需要注意:模式切换时主要激励的是差速通道,`uCommon≈0`。所以现有三组实验足够辨识转舵过程,但不能完整辨识车轮公共滚动速度对舵角的干扰。以后如果要研究车辆自转运行中的舵角漂移,还需补一次低速公共轮速实验。