※【更新:2024年11月14日】記事公開時点の内容を見直し一部改訂しました。主な変更点:図9、図9以下の説明および式、リスト6、図10、図10以下の説明(図11の削除含む)
前節で述べたように、アームが弾性体の場合には振動が発生する。そこで、図9に示すような制御を行うことにする。
制御入力をT、目標値をθtag、観測値を先端質量の角変位θtとすると、運動方程式は以下となる。なお、制御は前回述べた位置+速度フィードバックを適用する。
モーターに関して、
制御則として、
モーターのトルクとアームの弾性力、減衰力のつり合いから、
質量とアームから構成される振動系に関して、
となる。
以上を、Modelicaでテキスト表現すると以下となる(リスト6)。
model flexControl import Modelica.Constants.pi; Real E; Real i; Real T; Real J; Real V; Real theta; Real thetav; Real thetaa; Real thetav0; Real Id; Real kc; Real cc; Real thetar; Real thetarv; Real thetara; Real thetat; Real thetatag; Real thetatagv; parameter Real R = 1; parameter Real Ke = 1.2e-3; parameter Real Kt = 1.2e-3; parameter Real L = 1e-5; parameter Real M = 0.01; parameter Real r = 0.05; parameter Real Tloss = 1e-5; parameter Real theta0 = pi/4; parameter Real t1 = 0.1; parameter Real t2 = 0.13; parameter Real t3 = 0.17; parameter Real t4 = 0.2; parameter Real tp = 5; parameter Real td = 0.3; parameter Real rr = 1e-3; parameter Real Ey = 2.1e11; parameter Real ita = 0.003; equation Id = pi*rr^4/4; kc = 2*Ey*Id/r; cc = ita*sqrt(J*kc); thetav = der(theta); thetaa = der(thetav); thetarv = der(thetar); thetara = der(thetarv); thetat = theta + thetar; thetatagv=der(thetatag); E = V + R*i + L*der(i); i = T/Kt; V = Ke*der(theta); -T=cc*thetarv + kc*thetar; T = tp*(thetatag - thetat) + td*(thetatagv - der(thetat)); J*thetara +cc*thetarv + kc*thetar + Tloss = -J*thetaa; J = M*r^2; thetav0 = 1.43*theta0/(t4 - t1); thetatagv = if (time < t1) then 0 elseif (time >= t1 and time < t2) then 0.5*thetav0*(1 - cos((pi/(t2 - t1))*time - (pi/(t2 - t1))*t1)) elseif (time >= t2 and time < t3) then thetav0 elseif (time >= t3 and time < t4) then 0.5*thetav0*(1 + cos((pi/(t4 - t3))*time - (pi/(t4 - t3))*t3)) elseif (time >= t4) then 0 else 0; end flexControl;
上記を解析した結果を、制御がない場合と比較して示す(図10)。
このように制御することにより、電圧(角加速度)が振動的になっていないことが分かる。制御ゲインは運動方程式から分かるように、位置ゲインは回転ばね定数に、速度ゲインは回転減衰に対応している。ちなみに、アームの回転ばね定数、回転減衰定数は、
となる。振動が収まらないのは回転減衰定数が小さいためと考えられるので、制御の際の速度ゲインを図10の場合はtd=0.01とした。位置ゲインは、アームの回転ばね定数を参考に適宜調整した。
次回は、2関節機構の運動学、動力学について考える。 (次回へ続く)
大富浩一(https://1dcae.jp/profile/)
日本機械学会 設計研究会
本研究会では、“ものづくりをもっと良いものへ”を目指して、種々の活動を行っている。1Dモデリングはその活動の一つである。
Copyright © ITmedia, Inc. All Rights Reserved.