機構制御系のモデリング(その2) 〜回転1関節機構系を設計する〜:1Dモデリングの勘所(37)(4/4 ページ)
「1Dモデリング」に関する連載。連載第37回では「機構制御系のモデリング(その2)」と題し、回転1関節機構系の設計問題について考える。
制御による振動抑制
※【更新: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モデリングはその活動の一つである。
- 最新著書:1Dモデリングの方法と事例(日本機械学会)
- 研究会HP:https://1dcae.jp/
- 代表者アドレス:ohtomi@1dcae.jp
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 1Dモデリングの方法にもさまざまなアプローチがある
「1Dモデリング」に関する連載。連載第4回では、本題である1Dモデリングの方法を取り上げる。まず、1Dモデリングの方法には大きく「モデル生成」「低次元化モデリング」「類推モデリング」の3つのアプローチがあることを説明。特に本稿では1Dモデリング固有の考え方としての類推モデリングについて詳しく解説する。 - 0Dモデリングとは? 理論・経験に基づく理論式・経験則が究極の1Dモデリング!?
「1Dモデリング」に関する連載。連載第3回は、理論・経験に基づく理論式・経験則が究極の1Dモデリングであることを、0Dモデリングの定義、3Dモデリングとの関係、幾つかの事例を通して説明する。また、理論・理論式を考えるに当たって重要な“単位”に関して、なぜ単位が必要なのかその経緯も含めて紹介する。 - 1Dモデリングとは? モデリングをさまざまな視点から捉えることで考える
「1Dモデリング」に関する連載。連載第2回は、モデリングをその表現方法から2種類の“3つのモデリング”に分けて考える。次に1Dモデリングが必要となる背景について、1DCAEとMBDという2つの製品開発の考え方を紹介し、これらと1Dモデリングの関係を示す。さらに、リバース1DCAEと1DCAEを通して、より具体的に1Dモデリングのイメージを明らかにする。以上を通して、最後に“1Dモデリングとは”について考察する。 - モデリングとは何か? 設計プロセスと製品設計を通して考える
「1Dモデリング」に関する連載。連載第1回は、いきなり1Dモデリングの話に入るのではなく、そもそもモデリングとは何なのか? について考えることから始めたい。ものづくり(設計)のプロセス、製品そのものを構成する要因を分析することにより、モデリングとは何かを明らかにしていく。 - なぜ今デライトデザインなのか? ものづくりの歴史も振り返りながら考える
「デライトデザイン」について解説する連載。第1回では「なぜ今デライトデザインなのか?」について、ものづくりの変遷を通して考え、これに関する問題提起と、その解決策として“価値づくり”なるものを提案する。この価値を生み出す考え方、手法こそがデライトデザインなのである。 - デライトデザインとは? 3つのデザイン、類似の考え方を通して読み解く
「デライトデザイン」について解説する連載。第2回では、デライトデザインとは? について考える。まず、設計とデザインの違いについて触れ、ユーザーが製品に期待する3つの品質に基づくデザインの関係性にも言及する。さらにデライトデザインを実行する際に参考となる考え方や手法を紹介するとともに、DfXについて説明し、デライトデザインの実践に欠かせない要件を明確にする。