求助火山pid算法封装
如题。。。。。。。。。。。。。。。。。。。。。。。豆包: “用递归火山软件中文编程进行pid算法封装" pid是什么? <火山程序 类型 = "通常" 版本 = 1 />
类 PID算法 <公开>
{
方法 PID初始化_Position <公开 折叠>
参数 采样周期 <类型 = 小数>
参数 最大调整值 <类型 = 小数>
参数 最小调整值 <类型 = 小数>
参数 KP <类型 = 小数>
参数 KI <类型 = 小数>
参数 KD <类型 = 小数>
{
PID.采样周期 = 采样周期
PID.最大调整值 = 最大调整值
PID.最小调整值 = 最小调整值
PID.KP = KP
PID.KI = KI
PID.KD = KD
PID.积分和 = 0
PID.上次偏差 = 0
PID.当前偏差 = 0
}
方法 PID算法_Y <公开 类型 = 整数 折叠>
参数 目标Y <类型 = 整数>
参数 视角Y <类型 = 整数>
{
变量 比例部分 <类型 = 小数>
变量 积分部分 <类型 = 小数>
变量 误差变化率 <类型 = 小数>
变量 微分部分 <类型 = 小数>
变量 控制输出 <类型 = 小数>
PID.当前偏差 = 目标Y - 视角Y
比例部分 = PID.KP * PID.当前偏差
PID.积分和 = PID.积分和 + PID.当前偏差 * PID.采样周期
积分部分 = PID.KI * PID.积分和
误差变化率 = (PID.当前偏差 - PID.上次偏差) / PID.采样周期
微分部分 = PID.KD * 误差变化率
控制输出 = 比例部分 + 积分部分 + 微分部分
PID.上次偏差 = PID.当前偏差
返回 ((整数)四舍五入 (控制输出, 0))
}
方法 PID算法_X <公开 类型 = 整数 折叠>
参数 目标X <类型 = 整数>
参数 视角X <类型 = 整数>
{
变量 比例部分 <类型 = 小数>
变量 积分部分 <类型 = 小数>
变量 误差变化率 <类型 = 小数>
变量 微分部分 <类型 = 小数>
变量 控制输出 <类型 = 小数>
PID.当前偏差 = 目标X - 视角X
比例部分 = PID.KP * PID.当前偏差
PID.积分和 = PID.积分和 + PID.当前偏差 * PID.采样周期
积分部分 = PID.KI * PID.积分和
误差变化率 = (PID.当前偏差 - PID.上次偏差) / PID.采样周期
微分部分 = PID.KD * 误差变化率
控制输出 = 比例部分 + 积分部分 + 微分部分
PID.上次偏差 = PID.当前偏差
返回 ((整数)四舍五入 (控制输出, 0))
}
#
#
}
类 PID <公开 折叠 "">
{
变量 采样周期 <公开 静态 类型 = 小数>
变量 最大调整值 <公开 静态 类型 = 小数>
变量 最小调整值 <公开 静态 类型 = 小数>
变量 KP <公开 静态 类型 = 小数>
变量 KI <公开 静态 类型 = 小数>
变量 KD <公开 静态 类型 = 小数>
变量 积分和 <公开 静态 类型 = 小数>
变量 上次偏差 <公开 静态 类型 = 小数>
变量 当前偏差 <公开 静态 类型 = 小数>
#
}
页:
[1]