PID制御 プログラム

Melsec

制御プログラムにおいて、速度とトルク制御、トルク張力と計測値制御など複合要因が多い部分で、うまく制御できないので人が微調整して運転する装置があります。どうにかできないかと検討するに当たりPID制御を応用して使えないか考えてみました。

実際に運転操作を聞くとこの条件でこうなったときに、アクションをこうする・・というのは見えているのです。例えば、速度とトルク制御では、トルクを一定(または設定した範囲)にしたいが、トルク制御ではうまく制御できないため、トルク値をみて速度を調整することがあります。これは、速度を上げるとトルクが下がるという装置なのでトルク制御ではうまくいかないのです。(機械の構造上こうなります)

PID制御について

PID制御を簡単に説明すると以下のような制御です。

目標値と実値の偏差を演算し、

 ・絶対値に応じて制御量を決めるのがP制御

 ・積算値に応じて制御量を決めるのがI制御

 ・微分値に応じて制御量を決めるのがD制御

ブロック図を簡単に記述すると以下の通りとなります。

三角形の中にKp,Ki,Kdと書いているのはゲインで、それぞれKp,Ki,Kdを乗じるという意味です。 このゲインを調整することで制御器の応答性や安定性などが決まります。

PID制御方式には、完全、不完全微分がありますが、制御でよく使われるのは、不完全微分のほうです。制御動作には正動作、逆動作がありますが、温調制御などでは逆動作が使われます。制御PIDのK(係数)を決めるには、AT(オートチューニング)する方法があり、温調器やプロセス制御ではAT機能が標準であるので係数を決めることが簡単にできます。

PID専用命令「Melsecラダーで使う場合」

三菱電機PLCの専用命令PIDについてですが、標準の命令語にはなくて専用の命令になっています。FBで専用命令を使う場合はそのまま使うことをお勧めします。プロセスPLCの場合は、標準で使えます。

Qシリーズのラダー言語で使う場合について説明します。まずは、なぜそんなことをするのかですが、既存設備の改造なので位置から部分的に使うPID制御のためにFBを使用するように改造するリスクが高いからです。(新規なら構造化ラダーでFBを使えばいいです)

三菱のサイトでラダー用のサンプル、PIDがあります。参考URL:MELSEC-Q シーケンサ MELSEC 制御機器 ダウンロード |三菱電機 FA (mitsubishielectric.co.jp)

この資料だとGX DevelpoerとGT1000なのでWorks2とGT2000に変換して、多少シミュレーションできるように改造したものをアップします。

参考では、わざとMVで50%調整がとれるようにしていますが、実際には0-100制御となります。

プログラムダウンロード変換

PID制御作成

装置のトルクー回転数制御について

モーターの入力トルクを記録してPIDを演算。可変するのはモーターの回転数とする。

回転数を変更した場合、トルクに反映されるのは60secほど後となる。また、回転数を上げるとトルクは下がる(製品をスクリューで押し出す装置なので、回転数をあげると内容物が減るのでトルクがさがる)

PID演算処理

入力トルクをΔt秒で実数10個記録する。扱いは実数演算します。

偏差、積分、微分の処理はFor-NEXTで処理します。演算処理数が変わっても対応可能です。

PID出力について

入力演算した値と実際の調整の状況をみてK係数を決めます。

P偏差とD微分の補正で回転数の増減をし、I積分値で60秒のフィードバック間隔を調整します。リニアに調整すると大きくハンチングするので、最低でも20秒以上は操作しないようにし、かつ1.5回転以上1度に変化しないリミット制限をして出力します。

この辺の調整は機械の特性によることになるかと思います。

PID制御の前後比較

AT(オートチューニング)について

最適なPID定数を求めるAT(オートチューニング)の方法としてステップ応答法、限界感度法等があります。

ステップ応答法

目標温度設定値を制御対象の最もよく使用される値に選び設定しておきます。
(1)操作量100%をステップ状に印加し、目標温度設定値になるまで測定を続け、その間の最大温度傾斜Rを算出します。
(2)目標温度になれば操作量をゼロにし、温度が降下するまでの時間を逆ステップによる むだ時間Lとして計測し、RとLより最適PID定数を算出します。

限界感度法

ステップ応答法で得られたPID定数による制御結果が十分でない場合、設定値付近で再度チューニングし、更に最適なPID定数を算出する方法です。
限界感度法スタート(A点)でP(比例)制御に入り、振動が発生するまで比例帯を狭くし、この時の比例帯Pcと振動周期TcよりPID定数を算出します。

まとめ

FBやプロセス使えば簡単ですが、現行機に機能追加する上では、このようにプログラムを自作するのもいいかと思います。

コメント

  1. まっき より:

    はじめまして同業者のものです。
    楽しくサイトを拝見させて頂いたついでに
    1、速度型PIDなるものが存在していて良さげですが
      ・何に応用できるのか
      ・PLCで実現できるのか
    2、I-PD制御なるものが存在していて良さげですが
      ・何に応用できるのか
      ・PLCで実現できるのか
    お時間ございましたら貴殿のご意見お聞かせください。
    本サイトで取り上げて頂けましたら必ず拝見いたします。かなり期待(笑)

    追伸
    昨今の電気部品入手困難どのように対応されていますか。
    当方も死活問題になりつつあります。

    • gorism1010 gorism1010 より:

      まっきさん
      PID制御ですが、また、続編でわかりやすく説明します。わかりにくかったら、ごめんなさい。
      PID制御自体は三菱PLCの場合、ラダー命令語もありますが、うまく使いこなせません。そこで今回のように制御プログラムを検討してみた次第です。
       電気部品の入手こまりますよね。
      1.K社さんの機器に切り替えする。(メインPLCが別メーカーでも制御ネットワークリンクさせて使ってます)
      2.スイッチ関係はMヤス電機さんは入手可能みたいなのでそこで買う予定です。
      3.あとは、予備品とか中古品で一時対応して新品が入ったら交換
      と対応しています。
      今後ともサイト共々、可能でしたらお仕事も共有させていただればと思いますのでどうぞよろしくお願いいたします。

タイトルとURLをコピーしました