Appearance
算法模块 AI 规范
本文档用于 AI 生成 Lua 算法控制代码。参数规则已按运行时代码 HexLuaAPI_Algorithm.hpp 校对。
基础规则
- 所有控制器对象必须先创建,再用冒号调用成员方法。
- 所有数值参数都按
number生成,不要传字符串。 Updata是运行时实际方法名,不要改成Update。Count方法通常每轮循环调用一次,输入当前误差,返回控制输出。Reset用于清空内部状态,切换目标或重新开始控制时调用。
函数速查
| 功能 | 创建/调用 | 返回值 |
|---|---|---|
| 平滑移动 | Smooth_function(rel_x) | number |
| 增量 PID | IncrementalPID() | PID 对象 |
| 限幅 PID | PID_limit(kp, ki, kd, limit) | PID 对象 |
| 前馈增量 PID | FeedForwardIncrementalPID(kp, ki, kd, reaction_time, feedforward_gain) | PID 对象 |
| ADRC | ADRC_X(w0, b0, w_n, sigma, time_delta) | ADRC 对象 |
IncrementalPID
lua
local pid = IncrementalPID()
pid:IncrementalPID_Updata(0.3, 0.01, 0.05)
local output = pid:IncrementalPID_Count(error)
pid:IncrementalPID_Reset()参数:
IncrementalPID_Updata(Kp, Ki, Kd):三个number。IncrementalPID_Count(error):error为当前误差,number。
PID_limit
lua
local pid = PID_limit(0.3, 0.01, 0.05, 20)
local output = pid:PID_limit_Count(error)参数:
kp, ki, kd:PID 参数,number。limit:输出限幅,number。PID_limit_Updata(Kp, Ki, Kd):重新设置 PID 参数。PID_limit_Reset():重置内部状态。
FeedForwardIncrementalPID
lua
local pid = FeedForwardIncrementalPID(0.3, 0.01, 0.05, 0.02, 1.0)
local output = pid:FeedForwardIncrementalPID_Count(error)参数:
kp, ki, kd:PID 参数。reaction_time:反应时间。feedforward_gain:前馈增益。
ADRC_X
lua
local adrc = ADRC_X(0.001, 2, 1, 0.01, 0.001)
local output = adrc:ADRC_X_Count(y, yref)参数:
w0:自然频率。b0:阻尼系数。w_n:自然频率。sigma:阻尼比。time_delta:时间步长。ADRC_X_Count(y, yref):y为当前值,yref为目标值。
运动预测函数
运行时还注册了预测辅助函数:
lua
resetPred()
setRecordMoveX(value)
setAvgDetectTime(value)
updatePred(...)
setDynamicPrediction(enabled)
setPredictThreshold(value)这些函数用于内部运动预测调参。AI 只有在用户明确要求预测逻辑时才生成。
AI 生成禁忌
- 不要写
pid.Update(...),必须写pid:IncrementalPID_Updata(...)等真实方法名。 - 不要把控制器对象当普通表访问内部字段。
- 不要在高频循环里重复创建 PID/ADRC 对象,应在循环外创建。
- 不要省略
Reset场景说明;目标突变或模式切换时建议重置。