機構制御系のモデリング(その2) 〜回転1関節機構系を設計する〜1Dモデリングの勘所(37)(2/4 ページ)

» 2024年11月11日 09時00分 公開

 運動方程式で、インダクタンスと負荷トルクを無視して電圧Eを求めると、式3となる。

式3 式3

 このように、電圧には角速度だけでなく、角加速度が関係し、角変位制御駆動の直線駆動では、角加速度がt1=0.1で+∞、t2=0.2で−∞となるために、図3のような結果となった。これを避けるためには、角加速度が連続的に変化するようにすればよい。そのための方法が、図4に示す角速度制御駆動で、この場合も直線駆動と正弦波駆動が考えられる。このとき、駆動時間は一定であるため、Δt=t4−t1となる。また、図4においてt1=0.1、t2=0.13、t3=0.17、t4=0.2とする。

角速度制御駆動 図4 角速度制御駆動[クリックで拡大]

 図4の直線駆動の場合をModelicaでテキスト表現すると下記となる(リスト3 ※変更部分のみ記す)。

model rigidlinearV
―――省略―――
parameter Real t1=0.1;
parameter Real t2=0.13;
parameter Real t3=0.17;
parameter Real t4=0.2;
equation
thetav=der(theta);
thetaa=der(thetav);
E=V+R*i+L*der(i);
i=T/Kt;
V=Ke*der(theta);
T=J*thetaa+Tloss;
J=M*r^2;
thetav0=1.43*theta0/(t4-t1);
thetav = if (time<t1) then 0
elseif (time>=t1 and time<t2) then (thetav0/(t2-t1))*(time-t1)
elseif (time>=t2 and time<t3) then thetav0
elseif (time>=t3 and time<t4) then thetav0-(thetav0/(t4-t3))*(time-t3)
elseif (time>=t4) then 0
else 0;
end rigidlinearV;
リスト3 Modelicaでテキスト表現(直線駆動の場合)

 同様に、図4の正弦波駆動の場合は以下となる(リスト4)。

model rigidcosV
―――省略―――
parameter Real t1=0.1;
parameter Real t2=0.13;
parameter Real t3=0.17;
parameter Real t4=0.2;
equation
thetav=der(theta);
thetaa=der(thetav);
E=V+R*i+L*der(i);
i=T/Kt;
V=Ke*der(theta);
T=J*thetaa+Tloss;
J=M*r^2;
thetav0=1.43*theta0/(t4-t1);
thetav = 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 rigidcosV;
リスト4 Modelicaでテキスト表現(正弦波駆動の場合)

 上記を解析した結果を、直線駆動と正弦波駆動で示す(図5)。このように、直線駆動、正弦波駆動で波形は異なるものの、大きさは同程度となっている。以上から、モーターのことを考えると角速度制御駆動の正弦波駆動がよいと考えられる。

角速度制御駆動の応答例 図5 角速度制御駆動の応答例[クリックで拡大]

Copyright © ITmedia, Inc. All Rights Reserved.