内容へ移動
Ganon開発所 ロボット情報wiki
ユーザ用ツール
ユーザー登録
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ユーザー登録
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
モーターの選定
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== モーターの選定 ====== 設計の際に毎回計算している気がするからツールを作ってみた。 ===== トルク定数と逆起電圧定数の関係 ===== ==== 逆起電圧定数 ==== 1[V/rpm] = 60[V/rps] = 60/(2 * PI) [V・s/rad] ==== トルク定数 ==== 逆起電圧定数の単位系が[V・s/rad]のとき トルク定数 [N・m/A] = 逆起電圧定数 トルク定数と逆起電圧定数は以下のように相互変換可能 K_t:トルク定数 [N・m/A], K_e:逆起電圧定数[V/rpm]とすると以下が成立 K_t = 60/(2 * PI) * K_e K_e = (2 * PI) / 60 * K_t <html> 逆起電圧定数[V/rpm]のときトルク定数[N・m/A]を求める:<br> 逆起電圧定数[V/rpm]=<input id="K_e" type="text" value="" /><br> <input type="button" value="計算" onclick="K_e2K_t();" /><span id="output_K_t"> ⇒ [N・m/A]</span> <script type="text/javascript"> function K_e2K_t(){ target = document.getElementById("output_K_t"); val = parseFloat(document.getElementById("K_e").value) *60/(2*3.14159265) target.innerText =" ⇒ "+val+" [N・m/A]"; } </script> </html> <html> トルク定数[N・m/A]のとき逆起電圧定数[V/rpm]を求める:<br> トルク定数[N・m/A]=<input id="K_t" type="text" value="" /><br> <input type="button" value="計算" onclick="K_t2K_e();" /><span id="output_K_e"> ⇒ [V/rpm]</span> <script type="text/javascript"> function K_t2K_e(){ target = document.getElementById("output_K_e"); val = parseFloat(document.getElementById("K_t").value) *(2*3.14159265)/60; target.innerText =" ⇒ "+val+" [V/rpm]"; } </script> </html> ===== モーター回転数と速度の関係 ===== n:モーター回転数[rpm], d:タイヤ直径[m], ギヤ比:rのとき速度v[m/s]は v = d * PI * n / (60 * r) <html> 回転数[rpm]から速度[m/s]を求める:<br> 回転数[rpm]=<input id="n" type="text" value="" /> タイヤ直径[m]=<input id="d" type="text" value="" /> ギヤ比=<input id="r" type="text" value="" /><br> <input type="button" value="計算" onclick="rpm2v();" /><span id="output_v"> ⇒ [m/s]</span> <script type="text/javascript"> function rpm2v(){ target = document.getElementById("output_v"); n = parseFloat(document.getElementById("n").value); d = parseFloat(document.getElementById("d").value); r = parseFloat(document.getElementById("r").value); val = d * 3.14159265 * n / (60 * r); target.innerText =" ⇒ "+val+" [m/s]"; } </script> </html> <html> 速度[m/s]から回転数[rpm]を求める:<br> 速度[m/s]=<input id="v_" type="text" value="" /> タイヤ直径[m]=<input id="d_" type="text" value="" /> ギヤ比=<input id="r_" type="text" value="" /><br> <input type="button" value="計算" onclick="v2rpm();" /><span id="output_rpm"> ⇒ [rpm]</span> <script type="text/javascript"> function v2rpm(){ target = document.getElementById("output_rpm"); v = parseFloat(document.getElementById("v_").value); d = parseFloat(document.getElementById("d_").value); r = parseFloat(document.getElementById("r_").value); val = v * 60 * r / (d * 3.14159265); target.innerText =" ⇒ "+val+" [rpm]"; } </script> </html> ===== 速度と逆起電圧の関係 ===== v:速度[m/s], r:ギア比, d:タイヤ直径[m], K_e:逆起電圧定数[V/rpm] のときに発生する逆起電圧[V]は以下になる K_e * v * 60 * r / (d * PI) [V] <html> <!-- Plotly.js --> <head> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> </head> タイヤ直径[m]=<input id="d__" type="text" value="" /> ギヤ比=<input id="r__" type="text" value="" /><br> 逆起電圧定数[V/rpm]=<input id="K_e__" type="text" value="" /><br> <input type="button" value="描画" onclick="draw_v_vs_revV();" /> 速度 vs 逆起電圧 <div id="v_vs_revV" style="width:90%;height:250px;"></div> <script type="text/javascript"> TESTER = document.getElementById('v_vs_revV'); Plotly.newPlot( TESTER, [{ x: [0], y: [0]}], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '逆起電圧[V]', showline: false } } ); function draw_v_vs_revV(){ TESTER = document.getElementById('v_vs_revV'); d = parseFloat(document.getElementById("d__").value); r = parseFloat(document.getElementById("r__").value); K_e = parseFloat(document.getElementById("K_e__").value); X = []; Y = []; v = 0.0; while(v < 10.0){ rpm = v * 60 * r / (d * 3.14159265); X.push(v); Y.push(rpm*K_e); v += 0.1; } Plotly.newPlot( TESTER, [{ x: X, y: Y}], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '逆起電圧[V]', showline: false } } ); } </script> </html> ===== 速度・加速度とPWMのdutyの関係 ===== K_t:トルク定数 [Nm/A], R:端子間抵抗[Ω], d:タイヤ直径[m], V:電源電圧[V], r:ギア比, n_m:モーター数, m:質量[Kg]のとき v:速度[m/s]でPWMのdutyを100%にしたときのa:加速度[m/s/s]は以下のように算出される. この加速度は古典力学が成立する世界において, そのモーターで実現できる加速度の理論限界である. (実際これに、安全率や摩擦トルクの影響が加わるため, あくまで設計上の目安) V - K_e * v * 60 * r / (d * PI) = IR V - 2 * K_t * v * r / d = IR I = (V - 2 * K_t * v * r / d)/R 最大発生トルク = K_t * r * (V - 2 * K_t * v * r / d)/R 1モーターが発生する最大力 = トルク/半径 = 2 * K_t * r * (V - 2 * K_t * v * r / d)/(R * d) 最大加速度 = n_m * 1モーターが発生する最大力/m 最大加速度 = n_m * トルク/(半径 * m) = n_m * 2 * K_t r * (V - 2 * K_t * v * r / d)/(R * d * m) <html> <head> <!-- Plotly.js --> <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> </head> トルク定数[N・m/A]:<br> <input type="text" id="K_t_a" value=""><br> 端子間抵抗[Ω]:<br> <input type="text" id="R_a" value=""><br> モータードライバON抵抗+コネクタ等の抵抗[Ω]:<br> <input type="text" id="R_2_a" value=""><br> タイヤ直径[m]:<br> <input type="text" id="d_a" value=""><br> 電源電圧[V]:<br> <input type="text" id="V_a" value=""><br> ギア比:<br> <input type="text" id="r_a" value=""><br> モーター数:<br> <input type="text" id="m_n_a" value=""><br> 質量[Kg]:<br> <input type="text" id="m_a" value=""><br> <input type="button" value="描画" onclick="draw_v_vs_max_a();" /><br> 速度 vs 最大加速度 <div id="v_vs_max_a" style="width:100%;height:300px;"></div> 速度 vs 最大加速時の電流値(1モーター分) <div id="v_vs_max_i" style="width:100%;height:300px;"></div> <script type="text/javascript"> g_v_vs_max_a = document.getElementById('v_vs_max_a'); g_v_vs_max_i = document.getElementById('v_vs_max_i'); Plotly.newPlot(g_v_vs_max_a, [ {x: [0], y: [0], name:"duty 100%"}, {x: [0], y: [0], name:"duty 75%"}, {x: [0], y: [0], name:"duty 50%"} ], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '最大加速度[m/s/s]', showline: false } } ); Plotly.newPlot(g_v_vs_max_i, [ {x: [0], y: [0], name:"duty 100%"}, {x: [0], y: [0], name:"duty 75%"}, {x: [0], y: [0], name:"duty 50%"} ], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '最大電流値[A]', showline: false } } ); function draw_v_vs_max_a(){ g_v_vs_max_a = document.getElementById('v_vs_max_a'); g_v_vs_max_i = document.getElementById('v_vs_max_i'); K_t = parseFloat(document.getElementById("K_t_a").value); R = parseFloat(document.getElementById("R_a").value) + parseFloat(document.getElementById("R_2_a").value); d = parseFloat(document.getElementById("d_a").value); V = parseFloat(document.getElementById("V_a").value); r = parseFloat(document.getElementById("r_a").value); m_n = parseFloat(document.getElementById("m_n_a").value); m = parseFloat(document.getElementById("m_a").value); X = []; Y_100 = []; Y_75 = []; Y_50 = []; Y_max_i_100 = []; Y_max_i_75 = []; Y_max_i_50 = []; v = 0.0; while(v < 10.0){ max_a_100 = m_n * 2 * K_t * r * (V - 2 * K_t * v * r / d)/(R * d * m); max_a_75 = m_n * 2 * K_t * r * (V*0.75 - 2 * K_t * v * r / d)/(R * d * m); max_a_50 = m_n * 2 * K_t * r * (V*0.5 - 2 * K_t * v * r / d)/(R * d * m); max_i_100 = (V - 2 * K_t * v * r / d)/R; max_i_75 = (V*0.75 - 2 * K_t * v * r / d)/R; max_i_50 = (V*0.5 - 2 * K_t * v * r / d)/R; X.push(v); Y_100.push(max_a_100); Y_75.push(max_a_75); Y_50.push(max_a_50); Y_max_i_100.push(max_i_100); Y_max_i_75.push(max_i_75); Y_max_i_50.push(max_i_50); v += 0.1; } Plotly.newPlot(g_v_vs_max_a, [ {x: X, y: Y_100, name:"duty 100%"}, {x: X, y: Y_75, name:"duty 75%"}, {x: X, y: Y_50, name:"duty 50%"} ], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '最大加速度[m/s/s]', showline: false } } ); Plotly.newPlot(g_v_vs_max_i, [ {x: X, y: Y_max_i_100, name:"duty 100%"}, {x: X, y: Y_max_i_75, name:"duty 75%"}, {x: X, y: Y_max_i_50, name:"duty 50%"} ], { margin: { t: 0 }, xaxis: { title: '速度[m/s]', showgrid: false, zeroline: false }, yaxis: { title: '最大電流値[A]', showline: false } } ); } </script> </html> ===== 主要モーターの定数 ===== ^ モーター名 ^ 逆起電圧定数[V/rpm] ^ トルク定数[N・m/A] ^ 端子間抵抗[Ω] ^ ソース ^ | 1717003SR | 0.000207 |0.00198 |1.07| データシート| | 1717006SR | 0.000414 |0.00396 |4.3| データシート| | CL‐0614‐10250‐7 | 0.0000804ぐらい? | 0.0007677ぐらい? |3.11ぐらい?|https://ameblo.jp/neophile/entry-11894295577.html | | mk06-4.5 | 0.00006225ぐらい? | 0.000594501ぐらい? |4.5-5.5ぐらい? |http://kojimousenote.blogspot.jp/2010/06/4.html| | DCX 6 M Ø6 mm 1.5V | 0.0000813 | 0.000779 |2.58|maxon社サイト |
モーターの選定.txt
· 最終更新: 2018/12/03 23:31 by
ganon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ