Arduino PID-Auto Tune库函数指南

来源:互联网 发布:嵌入式linux项目实战 编辑:程序博客网 时间:2024/06/05 19:25

与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 = PIDGetControlType();       // 返回当前控制类型

SetNoiseBand()、GetNoiseBand()

设置/获取在步长输出之前将忽略什么级别的输入噪声。此内容在原作者博客之中有详细描述。

语法格式:

SetNoiseBand(noise);    // 要尽可能使噪声足够小且实现钳位,有点类似于施密特触发器?GetNoiseBand();         // 返回当前噪声值

SetLookbackSec()、GetLookbackSec()

设置/获取回溯时间。

语法格式:

SetLookbackSec(seconds);    // second为int类型,需要思考一下距离波峰的位置有多远。通常情况下,1/4到1/2是个不错的选择GetLookbackSec();           // 返回当前的回溯时间

其他函数

与PID库类似,都有属性的获取函数,即GetKp()、GetKi()、GetKd()。具体用法不再赘述。