介绍:是的,正如你们所想的,这是个简单的PID库,由于各种方面的原因,它也只能作为一个简单的PID库来使用。这个库虽然是个库,其实也可以理解成一个可以创建PID控制器对象的模板,目前提供了三种控制方式:PD、PI、PID,使用的时候需要将SimplePID赋值给一个新的变量用来创建一个PID控制器对象,随后这个PID控制器对象就可以作为一个独立的PID来使用了。
函数介绍:
1.PI控制:PIcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PI调整过的值
2.PD控制:PDcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PD调整过的值
3.PID控制:PIDcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PID调整过的值
4.内置参数调整模板函数:template(mode)
参数含义:
mode:表示模式的编号,这里的编号分别是0、1、2三个数字,每个数字对应的使用情况不同,应该在使用时根据情况更改
控制器对象参数介绍:
ki:积分控制系数
kd:微分控制系数
kp:比例控制系数
下面提供一个使用实例,如何让一个圆形在推进器的操控下在空中实现悬停:
第一步:通过使用PID0=SimplePID来创建一个PID控制器对象,输入PID0.template(2),将它的三个参数调整到位
第二步:创建一个圆形
第三步:在圆形中心创建一个垂直向上的推进器并【设置为不跟随几何体旋转(重要)】
第四步:在推进器中的poststep中写入
(e)=>{
force=PID0.PIDcontrol(10或者为一个任意的高度,pos(1));
}
第五步:运行看结果
至此,一个圆形在空中悬停的场景就实现了。
下面是SimplePID库的链接:https://pan.baidu.com/s/1MM6QIbBCZVRJ-VmMPefoMA?pwd=p097
函数介绍:
1.PI控制:PIcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PI调整过的值
2.PD控制:PDcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PD调整过的值
3.PID控制:PIDcontrol(targetValue,targetObject)
参数含义:
targetValue:表示目标值
targetObject:表示需要控制的值
函数返回值:返回一个经过PID调整过的值
4.内置参数调整模板函数:template(mode)
参数含义:
mode:表示模式的编号,这里的编号分别是0、1、2三个数字,每个数字对应的使用情况不同,应该在使用时根据情况更改
控制器对象参数介绍:
ki:积分控制系数
kd:微分控制系数
kp:比例控制系数
下面提供一个使用实例,如何让一个圆形在推进器的操控下在空中实现悬停:
第一步:通过使用PID0=SimplePID来创建一个PID控制器对象,输入PID0.template(2),将它的三个参数调整到位
第二步:创建一个圆形
第三步:在圆形中心创建一个垂直向上的推进器并【设置为不跟随几何体旋转(重要)】
第四步:在推进器中的poststep中写入
(e)=>{
force=PID0.PIDcontrol(10或者为一个任意的高度,pos(1));
}
第五步:运行看结果
至此,一个圆形在空中悬停的场景就实现了。
下面是SimplePID库的链接:https://pan.baidu.com/s/1MM6QIbBCZVRJ-VmMPefoMA?pwd=p097
M

