連載
» 2015年07月23日 10時00分 UPDATE

無償ソフトで技術計算しよう【制御工学応用編】(3):いかに速く安定して目標値に到達させるか (1/2)

【制御工学応用編】では、制御系の応答性や安定性を評価する方法とPIDコントローラーの設計について説明する。今回は、PIDコントローラー付バネ・マス・ダンパモデルを元に、指示された目標値に「いかに早く安定して」到達させるかについて解説する。

[伊藤孝宏,MONOist]

 制御工学応用編として、前回は安定性について説明しました。安定に動作すると、次は、より良い制御が課題となります。今回は、指示された目標値に、いかに速く安定して到達させるかについて、PIDコントローラー付バネ・マス・ダンパモデルを元に説明します。

フィードバック制御系の過渡特性

 「いかに速く安定して」という定性的な目標を達成させるには、まず評価指標を明確にする必要があります。そこで、評価指標として過渡特性の表し方について説明します。

 フィードバック制御系の過渡特性は、速応性と安定性で評価されます。速応性は入力に対する応答の速さで、立ち上がり時間などで表されます。一方の安定性は応答の振動しにくさで、最大行過ぎ量や整定時間などで表されます。過渡特性を表す指標はこれ以外にもありますが、今回は最大行過ぎ量、立ち上がり時間、整定時間について、図1に基づいて説明し、FreeMatで算出してみます。

yk_freemat_seigyo2_03_01.jpg 図1:過渡特性

 最大行過ぎ量Amaxは、出力が目標値を超え、最大となる値です。また、立上り時間Trは出力が目標値の10%を超え90%に達するまでの時間です。ここでは、目標値は1とします。整定時間Tsは、出力が目標値のある誤差範囲内に達するまでの時間です。一般に目標値の±2%や±5%が誤差範囲とされます。ここでは、±2%とします。

 グラフから読み取っても構いませんが、最大行過ぎ量、立上り時間、整定時間もFreeMatに計算させるように、ex510.m(前回参照)を改造したのがex511.mです。

clear;m=1;c=1;k=10;kp=5;ki=14.6;kd=5;yset=1;
dydt=@(t,y) [y(2);(-(c+kd)*y(2)-(k+kp)*y(1)+kp*yset+y(3))/m;ki*(yset-y(1))];
[t,y]=ode45(dydt,[0,20],[0;0;0]);yy=y(:,1);
plot(t,yy);grid('on');
xlabel('Time[s]');ylabel('Height[m]');
Amax=max(yy);
Tr=max(t(find(yy>0.1 & yy<0.9)))-min(t(find(yy>0.1 & yy<0.9)));
Ts=max(t(find(yy<0.98 | yy>1.02)));
title(['Amax=',num2str(Amax),' Tr=',num2str(Tr),' Ts=',num2str(Ts)]);
ex511.m

>>「ex511.m」ダウンロード

 変更点として、まず処理しやすいように、数値計算結果のうち、変位のデータである「y(:,1)」を「yy」という変数に代入します。次に最大行過ぎ量はyyの最大値と考え、「max(yy)」で最大値を求めます。立ち上り時間は、目標値(今回は1)の10〜90%となる時間であるため、「find(yy>0.1 & yy<0.9)」として、yyの値が0.1超え0.9未満となる箇所を求めて、時間配列tに渡します。次に、得られた時間配列の最大値から最小値を引けばyyが0.1超え0.9となる時間、すなわち立上り時間が求められます。整定時間は、目標値の±2%となる時間であるため、「find(yy<0.98 | yy>1.02)」として、yyが0.98を下回るか、1.02を上回る箇所を求めて、時間配列tに渡します。次に、得られた時間配列のうち最大値が整定時間となります。以上の結果をグラフのタイトル欄に表示させています。

Excelの重回帰分析とソルバーによる最適値の探索

 ex511.m内のkp、ki、kdを書き換えて動作させると、PIDコントローラーを任意の値に設定した結果が得られます。試行錯誤で最適な値を見つけるという手もありますが、変数が3種類もあるため、効率的とはいえません。そこで、Excelの重回帰分析とソルバーを用いて、PIDコントローラーの最適値を探索してみます。ここで、最適の目標としては、行過ぎ量が目標値に対して1.1倍以下、整定時間が3秒以内で、立上り時間ができるだけ短くなるようにします。

 概略を説明すると、適当なkp、ki、kdの組み合わせで、立上り時間Tr、行過ぎ量Amax、整定時間Tsをex511.mで求めます。次いで、重回帰分析で、Tr、Amax、Tsの回帰式を求めます。その後、ソルバーで目標を満足するkp、ki、kdをExcelに探索させます。

 では、順に説明して行きます。はじめに、Excelのデフォルトでは分析ツールとソルバーは表示されないため、これを設定します(既に設定済の方は以下は不要です)。ファイル→オプション→アドインと進んで、下にある「設定」ボタンをクリックすると、アドインの一覧が表示されます。ここで、「分析ツール」と「ソルバー」のチェックボックスをクリックしてチェックマークを入れて、OKをクリックすると、リボンのデータグループの右側に「ソルバー」「データ分析」という表示がでます。

 準備ができたら、Excelシートの適当な箇所に、図2に示すようにKp、ki、kdの組み合わせを入力します。

yk_freemat_seigyo2_03_02.jpg 図2:条件設定と解析結果の入力

 ここでは、kp、ki、kdは5〜20の範囲とします。それぞれの組み合わせをex511.mに入力し、表示されたグラフタイトルから、Excelシートの立上り時間Tr、行過ぎ量Amax、整定時間Tsの欄に結果を転記します。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.