与Arduino PID库同出于一位作者:Brett Beauregard
下面将解释一下本库之中的函数使用方法。与上篇PID库的指南一样,笔者在此不会详细地阐述PID的内部实现方法和原理。建议看过PID算法
Brett Beauregard的博客地址,配合此文档阅读本文效果更佳。之后笔者或许会翻译一下。。。(最近比较忙orz):http://brettbeauregard.com/blog/2012/01/arduino-pid-autotune-library/
PID_ATune()
创建一个自动调节器,函数参数为PID库中要使用到的Input和Output输入输出参量。
Runtime()
类似Compute()函数,它是调节器所需要的函数,也需要在loop()函数之中调用。大多数情况下不执行就直接返回。这取决于调节过程的进度。
返回值:
返回参数 | 含义 |
---|---|
0 | 自动调节仍需进行 |
1 | 调节过程已经结束 |
Cancel()
若调试过程还未结束,可调用此函数提前结束调试过程。
SetOutputStep()、GetOutputStep()
设置或读取输出步长值。
语法格式:
SetOutputStep(step); // step: 输出步长值 (>0)
GetOutputStep(); // 返回当前步长值
SetControlType()、GetControlType()
设置/获取是否在调用GetKp()、GetKi()、GetKd()等函数时返回PI或PID调整参数。
语法格式:
SetControlType(type); // type: 0 = PI, 1 = PID
GetControlType(); // 返回当前控制类型
SetNoiseBand()、GetNoiseBand()
设置/获取在步长输出之前将忽略什么级别的输入噪声。此内容在原作者博客之中有详细描述。
语法格式:
SetNoiseBand(noise); // 要尽可能使噪声足够小且实现钳位,有点类似于施密特触发器?
GetNoiseBand(); // 返回当前噪声值
SetLookbackSec()、GetLookbackSec()
设置/获取回溯时间。
语法格式:
SetLookbackSec(seconds); // second为int类型,需要思考一下距离波峰的位置有多远。通常情况下,1/4到1/2是个不错的选择
GetLookbackSec(); // 返回当前的回溯时间
其他函数
与PID库类似,都有属性的获取函数,即GetKp()、GetKi()、GetKd()。具体用法不再赘述。