あるモデルのPID制御について

2 views (last 30 days)
saitoa
saitoa on 6 Jan 2018
Commented: saitoa on 9 Jan 2018
Simulinkで水で動かすモータのブロックを作りました。それをP、pi、pid制御のどれかでモータの角度を制御したいと思ってます。そこで、やってみたのですが、うまくいきません。どこで、間違えているのか教えてください。 モータの可動範囲は、±45°です。 水の圧力の範囲は、0~1.75MPaとします。
  2 Comments
saitoa
saitoa on 9 Jan 2018
説明不足で申し訳ありません。オープンループは、モータの角速度を見る限りできています。その後のフィードバック制御を行い、PIDコントローラを入れて、値を入力すると全くフィードバック制御されていないグラフを描いてしまいます。

Sign in to comment.

Answers (1)

Hiroumi Mita
Hiroumi Mita on 9 Jan 2018
添付のように、 このモデルのプラント(制御対象モデル)は、入力値の大小は関係なく ある閾値を境として+側に動く、-側に動きます。 入力の大少に関係なく、同じように動くので、いかなる制御でも制御はできません。 つまり、制御対象のモデルが適切ではありません。
多分、このモデルは圧力と流量に関するものと思われますが、 一般に、油圧、水圧系のモデルは圧力と流量を如何に変換するかがモデルの最重要点になります。また、そこが最も難しい点になります。 ここがちゃんとしてないと、まともにモデルは動きません。 拝見した限りでは、流量から圧力に積分で変換するところがもっとも怪しいです。 if条件分岐がありますが、ここも怪しいです。
そこで次のようにするとよいと思います。
#1. まず、簡単なモデルで流量と圧力の関係をしっかり固める。
#2. それがPID制御できるか確認する。
#3. その後にモデルを複雑にする。
今のモデルではなく、もっと簡単にします。まず、#1,#2をクリアーします。
また、圧力が高くなると、その分流量が多くなるので抜ける量が多くなります。 抜ける量が多くなるとその分圧力も下がるような仕掛けがあれば、 流量から圧力の変換積分で無制限に増大圧力が増大するようなことにはなりません。 そのあたりも再確認しましょう、
  1 Comment
saitoa
saitoa on 9 Jan 2018
回答ありがとうございます。わかりやすく手順まで載せて頂きありがとうございます。 if条件分岐は、ある値で流量の式が切り替わるためswichを使うつもりでしたが、式が切り替わるところ付近がおかしかったので、使ったという経緯です。なので、本当にこれでいいのか疑問でした。 その2つの怪しいところを確認しつつ、手順に従ってやっていこうと思います。 ありがとうございました。

Sign in to comment.

Categories

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!