ja-jp_commands:reference:ipidrun
文書の過去の版を表示しています。
IpidRun()
コマンド
| コマンド | 引数 | 戻り値 | 動作 |
|---|---|---|---|
IpidRun(id, pv, sv) | uint8_t id — PIDループ番号。0 ~ 255を使用可能float pv — 現在値。Present Valuefloat sv — 目標値。Set Value | float | 現在値と設定値を使ってPID出力を計算します。 |
使用例
void setup() { IpidSet(1, 5.0, 0.5, 1.0, 100, 0, 65535); } void loop() { float pv = ntcRead(4) / 10.0; float sv = 50.0; uint16_t output = (uint16_t)IpidRun(1, pv, sv); PWM(12, output, true); }
注意事項
- PID出力は現場機器に直接影響する場合があるため、最初は低い出力範囲と小さなゲインでテストしてください。
IpidRun()はsampleMs周期に達するまでは直前の出力値を保持します。loop()で繰り返し呼び出しても構いません。- 積分項は出力制限を基準に自動制限され、ワインドアップを低減します。追加の制限が必要な場合は
IpidItermLimit()を使用します。 - 微分項は設定値変更による急激な跳ねを抑えるため、PV変化量を基準に計算します。
IpidReset()は積分項、直前のPV、直前の出力値を初期化します。- 同じ
idは1つの制御ループだけに使用します。
ja-jp_commands/reference/ipidrun.1788785590.txt.gz · 最終更新: by 127.0.0.1
