直線運動系を「案内」と「駆動」に分けて設計する
リニアガイドはテーブルの姿勢と荷重経路を拘束する案内要素、ボールねじは回転運動を直進運動に変換する駆動要素である。両者を組み合わせても、定格荷重だけで機械の位置決め性能が決まるわけではない。
設計で確認すべきものは、荷重方向、重心と推力の作用位置、ブロック配置、動静定格荷重、寿命、予圧、剛性、取付誤差、熱変位、ねじ軸の危険速度と座屈、支持軸受、モータ能力である。「動く」「壊れない」「要求精度で動く」は別の合否判定として扱う。
| 要素 | 主な役割 | 最初に決めること | 代表的な不具合 |
|---|---|---|---|
| プロファイルレール形リニアガイド | 上下・左右の力と各軸回りのモーメントを受ける | レール間隔、ブロック間隔、荷重方向 | フレーキング、局部過負荷、走行抵抗増加 |
| ボールねじ | 軸方向推力と送り量をつくる | リード、軸径、支持方式、ナット | 転動疲労、循環不良、発熱、座屈 |
| 支持軸受・サポートユニット | ねじ軸の位置決め、軸方向荷重の受け渡し | 固定側・支持側、剛性、許容回転数 | 発熱、振れ、軸方向がた |
| テーブル・ベース・ブラケット | 荷重と変位を分配する構造体 | 曲げ・ねじり剛性、取付基準 | 取付誤差、荷重集中、位置ずれ |
設計フローの全体像
flowchart TD
A[要求: 荷重・ストローク・速度・精度・寿命] --> B[荷重経路と重心・推力位置を定義]
B --> C[レールとブロックの配置を仮決め]
C --> D[各ブロックの荷重・モーメントを評価]
D --> E{静定格・動定格寿命を満たすか}
E -- いいえ --> C
E -- はい --> F[リード・ねじ径・支持方式を仮決め]
F --> G[推力・トルク・回転数・寿命を計算]
G --> H{危険速度・座屈・剛性・精度を満たすか}
H -- いいえ --> F
H -- はい --> I[予圧・公差・潤滑・組立・保全を検証]
I --> J[型式固有データで最終照合]原理と設計変数
ガイドは力だけでなくモーメントを受ける
座標を送り方向 x、レール間方向 y、鉛直上向き z とする。テーブルに働く力は F_x、F_y、F_z、モーメントは M_x(ロール)、M_y(ピッチ)、M_z(ヨー)で整理できる。
同じテーブル重量でも、重心が片側へ偏ればブロック荷重は均等にならない。加減速の慣性力や加工反力がレール取付面から離れて作用すると、追加のピッチング/ローリングモーメントが発生する。1ブロックのモーメント負荷は、製品別のモーメント等価係数や許容静的モーメントで評価する。単純にモーメントを4ブロックで均等に割ることはできない。
ボールねじは推力と回転数を結びつける
リード p はねじ軸1回転当たりのナットの進み量であり、ねじ溝のピッチと同一とは限らない(多条ねじでは異なる)。リードを大きくすると同一回転数で高速になるが、同一推力を得るための必要トルクも増える。
| 設計変数 | 記号 | 単位 | 設計上の意味 |
|---|---|---|---|
| 移動質量 | m | kg | 加減速時の慣性力 |
| 重力加速度 | g | m/s² | 垂直荷重・鉛直軸の推力 |
| 送り方向加速度 | a_x | m/s² | 加減速荷重 |
| 送り方向推力 | F_a | N | ボールねじと支持軸受の軸方向荷重 |
| ブロック等価荷重 | P_c | N | リニアガイド寿命計算用の型式別荷重 |
| ガイド基本動定格荷重 | C_g | N | 必ず50 km/100 kmの基準を確認 |
| ガイド基本静定格荷重 | C_0g | N | 最大静的荷重・衝撃荷重との比較 |
| ボールねじ基本動定格荷重 | C_a | N | 100万回転基準の動定格荷重 |
| ボールねじ基本静定格荷重 | C_0a | N | 最大軸方向荷重との比較 |
| ねじリード | p | mm/rev | 速度・トルク・分解能を規定 |
| ねじ軸回転数 | n | min⁻¹ | 危険速度・DN制限の照合 |
| 正方向駆動効率 | η | 1 | 推力から回転トルクへの変換 |
| ガイド間隔/前後ブロック間隔 | B/A | mm | モーメントによる反力分配 |
| 予圧 | F_pre | N | 剛性・摩擦・寿命のトレードオフ |
| 系の軸方向剛性 | K_sys | N/mm | 負荷による弾性位置ずれ |
単位の注意: ねじリードを mm/rev として扱う場合、トルクの計算では m/rev に換算する。寿命の走行距離は km、ボールねじ寿命は rev で管理し、混同しない。
主要計算式と成立条件
1. 送り推力・速度・駆動トルク
水平軸の概算では、送り方向の運動方程式を
$$ F_a=m a_x+F_{\mathrm{process}}+F_{\mathrm{guide}} $$
と置く。F_process は加工・押付けなどの外力、F_guide は案内抵抗であり、符号は移動方向と荷重方向で決める。鉛直軸では mg を荷重方向に応じて加減する。加速・等速・減速・停止保持・非常停止を別々に計算する。
回転数 n(min⁻¹)、リード p(mm/rev)、送り速度 v(mm/s)の関係は、
$$ v=\frac{pn}{60} $$
正方向に回転駆動して軸推力を発生させる理想化した負荷トルクは、
$$ T_{\mathrm{load}}=\frac{F_a(p/1000)}{2\pi\eta} $$
ここで T_load は N·m、F_a は N、η は無次元である。F_a × p/1000 の単位は N·m であり、次元が整合する。これはボールねじの負荷変換トルクであって、ナット予圧トルク、支持軸受損失、シール損失、ねじ軸・カップリング・モータロータの回転慣性トルクを含まない。
モータ軸側の概算では、これらを追加し、速度依存損失と加減速ピークを評価する。m a_x を F_a に含めた場合、同じ並進質量の換算慣性トルクを再度加算しない。換算慣性方式を使うなら、外力分と慣性分を分離して計算する。
2. リニアガイドの定格寿命と静的安全係数
ボール形ガイドで、メーカーが50 km基準の基本動定格荷重 C_g を提示し、荷重が一定で適用条件を満たす場合の基本定格寿命は、
$$ L_{10,g}=50\left(\frac{C_g}{P_c}\right)^3 $$
L_10,g は km、C_g と P_c は同じ単位 N。荷重比は無次元である。ころ形ガイドでは指数が 10/3 となる場合があり、基準距離も異なる。**50 km基準と100 km基準のC値を、そのまま比較してはならない。**短ストローク、潤滑不良、振動・衝撃、密着ブロック、予圧などではメーカー指定の補正と適用可否の確認が必要となる。
簡略化した一定係数の荷重補正例として、
$$ P_{\mathrm{design}}=f_w P_c $$
を使う場合もあるが、f_w は運転条件とメーカー資料に基づく入力であり、すべての形式に一律適用する定数ではない。さらに、製品によっては硬さ・温度・接触係数などを定格側に適用する。二重補正を避ける。
最大荷重時の静的安全係数の基本形は、
$$ f_s=\frac{C_{0g}}{P_{0,\mathrm{eq}}} $$
である。P_0,eq は型式固有の静的等価荷重。静的安全係数の必要値は衝撃条件とメーカーの推奨値で決める。寿命の長さだけで静的安全性は保証されない。
3. モーメントと4ブロック反力の一次近似
レール2本・各2ブロック、左右対称の4点支持を仮定する。ブロック中心を (x_i,y_i)=(±A/2,±B/2)、鉛直下向きの合力を W、その作用点の偏心を (x_c,y_c) とする。送り方向の水平力 F_x がガイド面から高さ z_h に作用し、駆動反力がガイド面にあると仮定すると、ピッチングに寄与するモーメントの大きさは F_x z_h である。
剛体テーブル、同一鉛直ばね剛性、全ブロックが接触、対称配置、微小変位、鉛直反力のみを考えるという限定条件で、各点の鉛直反力を一次近似すると、
$$ R_i=\frac{W}{4}+\frac{W x_c+F_x z_h}{4(A/2)}s_{xi}+\frac{W y_c}{4(B/2)}s_{yi} $$
ここで s_xi、s_yi はそれぞれ前後・左右の位置を表す +1 または −1。分子のモーメントは N·mm、分母の長さは mm なので、各項の単位は N となる。モーメントの正負は実機の座標と外力向きに合わせて設定する。
この式は初期レイアウトの荷重偏りを把握するためだけのモデルである。ブロック内の接触荷重、横荷重、ヨー、実際の予圧、取付面のたわみ、モーメント等価荷重は計算していない。負の反力が出る場合、現実の予圧ガイドが直ちに浮くことを意味するわけではなく、モデルの仮定が成立しないことを示す警告として扱う。
4. ボールねじの寿命・荷重変動
ボールねじの基本動定格荷重 C_a が100万回転基準で、軸方向荷重 F_eq が一定とみなせるとき、
$$ L_{10,s}=10^6\left(\frac{C_a}{F_{\mathrm{eq}}}\right)^3 $$
L_10,s は rev、C_a と F_eq は N。荷重段階 j における軸方向荷重 F_j と、その段階の回転数比率 q_j を使う簡略モデルは、
$$ F_{\mathrm{eq}}=\left(\sum_j q_j |F_j|^3\right)^{1/3},\qquad\sum_j q_j=1 $$
である。正負荷重の方向が反転する運転では、この絶対値の一括平均をメーカーの正式寿命判定に流用しない。 予圧形式、接触方向、メーカーの正負別平均荷重手順を照合する。また、短ストロークや不十分な潤滑、過大予圧では寿命式だけで実寿命を予測できない。
静的安全係数の基本形は、
$$ f_{s,a}=\frac{C_{0a}}{F_{a,\max}} $$
である。支持軸受・ねじ軸端・ナットブラケットも同じ最大推力を伝えるため、ナット単体だけの判定で終えない。
5. 剛性、バックラッシ、熱変位、精度
軸方向に直列となる部材の微小変位を線形化すると、
$$ \frac{1}{K_{\mathrm{sys}}}=\frac{1}{K_{\mathrm{shaft}}}+\frac{1}{K_{\mathrm{nut}}}+\frac{1}{K_{\mathrm{support}}}+\frac{1}{K_{\mathrm{bracket}}} $$
$$ \delta_{\mathrm{elastic}}=\frac{F_a}{K_{\mathrm{sys}}} $$
各 K は N/mm、δ は mm。ねじ軸の単純な軸伸縮モデルでは、
$$ K_{\mathrm{shaft}}=\frac{EA}{L} $$
E は N/mm²、A は mm²、L は mm であり、結果は N/mm。ねじ軸の固定方式とナット位置で有効長が変わるため、長さは全軸長と同一とは限らない。ナット剛性は予圧と負荷に対して非線形になり得るため、メーカーの荷重―変位特性を優先する。
熱による長さ変化の一次近似は、
$$ \Delta L=\alpha L\Delta T $$
α は 1/K、L は mm、ΔT は K で、結果は mm。鋼材の熱膨張係数を仮に 12×10⁻⁶ /K とすれば、長さ800 mm、温度上昇10 Kで ΔL=0.096 mm となる。これは材料・温度分布・拘束条件を単純化した参考値であり、実際の位置決め誤差そのものではない。
繰返し位置決め精度、リード精度、バックラッシ、走り平行度、熱変位、荷重たわみは異なる指標である。予圧によるがた低減だけでリード誤差やベースの変形は消えない。
6. 危険速度・座屈・支持方式
ボールねじの許容回転数は、ねじ軸の曲げ固有振動による危険速度と、ナット循環機構のDN値等による限界回転数の小さい方を採る。危険速度は支持端条件、支持間距離、ねじ軸の谷径・剛性に強く依存する。
圧縮推力を受ける長尺ねじ軸には、座屈も検討する。理想的な一様円柱のEuler座屈荷重は、
$$ F_{\mathrm{cr}}=\frac{\pi^2 E I}{(K_e L)^2} $$
である。I は mm⁴、K_e は端部条件による有効長係数、L は mm、結果は N。ねじ軸は溝付き断面であり、単純円柱の外径を用いた計算を最終判定にしない。 メーカーが指定する谷径・支持条件・安全係数・許容荷重表を使い、降伏・軸端強度も別に検討する。固定―支持、固定―固定、固定―自由では危険速度も座屈も異なる。
代表設計計算:水平直動ステージ120 kg
以下は架空の設計条件による一次設計演習である。C_g、C_a、補正係数は説明用の仮定値であり、実在する特定製品の保証値ではない。
入力条件
| 項目 | 値 | 注記 |
|---|---|---|
| 移動質量 m | 120 kg | テーブルと搭載物の合計 |
| 加速度 a_x | 2.0 m/s² | 正方向最大 |
| 加工等の外力 F_process | 500 N | 加速と同じ向きに抵抗 |
| ガイド抵抗 F_guide | 40 N | 予備計算用仮定 |
| ガイド間隔 B | 240 mm | 左右2本 |
| 前後ブロック間隔 A | 360 mm | 各レール2ブロック |
| 重心偏心 x_c、y_c | +40 mm、+20 mm | テーブル中心基準 |
| 水平荷重作用高さ z_h | 100 mm | ガイド面基準 |
| ストローク | 600 mm | 片道 |
| リード p | 10 mm/rev | 仮選定 |
| 最大送り速度 | 400 mm/s | 加減速時は変動 |
| 効率 η | 0.90 | 仮定、実機要照合 |
| ガイド仮定動定格 C_g | 6000 N | 50 km基準、ボール形 |
| ガイド仮定荷重係数 f_w | 1.5 | 適用の妥当性は別途確認 |
| ボールねじ仮定動定格 C_a | 6000/8000 N | 候補2案 |
| 寿命要求 | 4000 h | 10往復/minで運転 |
計算1:最大推力と駆動トルク
$$ F_a=120\times2+500+40=780\ \mathrm{N} $$
$$ T_{\mathrm{load}}=\frac{780\times0.010}{2\pi\times0.90}=1.379\ \mathrm{N\cdot m} $$
$$ n=\frac{60\times400}{10}=2400\ \mathrm{min}^{-1} $$
結果:最大推力780 N、ボールねじの負荷変換トルク1.38 N·m、最大回転数2400 min⁻¹。 モータ選定ではねじ軸・ロータの回転慣性、予圧トルク、支持軸受損失、加減速時の実効トルク、温度を追加する。2400 min⁻¹での危険速度とDN制限は未判定である。
計算2:4ブロックの荷重偏り
$$ W=120\times9.81=1177.2\ \mathrm{N} $$
$$ M_{\mathrm{pitch}}=780\times100=78000\ \mathrm{N\cdot mm} $$
$$ R_{\max}=\frac{1177.2}{4}+\frac{1177.2\times40+78000}{4\times180}+\frac{1177.2\times20}{4\times120}=517.08\ \mathrm{N} $$
$$ R_{\min}=\frac{1177.2}{4}-\frac{1177.2\times40+78000}{4\times180}-\frac{1177.2\times20}{4\times120}=71.52\ \mathrm{N} $$
最大反力は約517 N、最小反力は約71.5 N。 全荷重を4等分した294.3 Nと比べて最大ブロックの荷重は約1.76倍となる。この数値は鉛直反力の一次近似であり、メーカー指定の等価荷重と同義ではない。ピッチ・ロールの影響が大きいことを把握したうえで、横方向・ヨーを含む全荷重を型式固有の計算法で再評価する。
計算3:ガイドの仮定寿命
この例だけの暫定的な荷重補正として P_design=1.5×517.08=775.63 N とすると、
$$ L_{10,g}=50\left(\frac{6000}{775.63}\right)^3\approx23146\ \mathrm{km} $$
算術上の定格寿命は約2.31万 km。 ただし、短ストローク、各方向の等価荷重、予圧、接触係数、静的安全係数、実際の運転プロファイルを反映していない。長い計算寿命は実機の寿命保証を意味しない。
計算4:ボールねじの要求寿命と候補比較
片道600 mm、1往復1.2 m、10往復/min、4000 hとする。
$$ S_{\mathrm{req}}=1.2\times10\times60\times4000=2880000\ \mathrm{m}=2880\ \mathrm{km} $$
$$ N_{\mathrm{req}}=\frac{2880000}{0.010}=288000000\ \mathrm{rev} $$
運転距離の半分で780 N、残り半分で400 Nが同方向に作用するものと仮定すると、
$$ F_{\mathrm{eq}}=\left(0.5\times780^3+0.5\times400^3\right)^{1/3}=645.75\ \mathrm{N} $$
暫定荷重係数1.5を適用した F_design=968.63 N を用いる。
$$ L_{10,s}(C_a=6000)=10^6\left(\frac{6000}{968.63}\right)^3\approx2.377\times10^8\ \mathrm{rev} $$
$$ L_{10,s}(C_a=8000)=10^6\left(\frac{8000}{968.63}\right)^3\approx5.634\times10^8\ \mathrm{rev} $$
| 仮定候補 | 算術上の基本寿命 | 2.88億revの要求に対する暫定判定 |
|---|---|---|
| C_a = 6000 N | 約2.38億rev | 不足 |
| C_a = 8000 N | 約5.63億rev | 寿命計算だけは通過 |
設計判断: この仮定では6000 N候補を棄却し、8000 N以上の候補を詳細検討へ進める。ただし、予圧と荷重反転、最大荷重での静的安全係数、支持軸受、危険速度、座屈、ナットの許容回転数、潤滑、精度、組立誤差が未確認なので採用決定ではない。
計算5:精度の支配要因を見つける
例えば軸方向に有効なねじ軸長さ800 mm、鋼の線膨張係数を仮に 12×10⁻⁶ /K、一様温度上昇を10 Kとすると、
$$ \Delta L=12\times10^{-6}\times800\times10=0.096\ \mathrm{mm} $$
熱伸びの一次近似は96 μm。 位置決め公差が±20 μmなら、単純な熱伸びの大きさだけでも無視できない。実際の位置誤差は軸の固定条件、温度勾配、補正制御、スケール位置に依存するため、96 μmをそのまま軸端位置誤差と断定しない。
実務選定の手順と判断基準
手順1:負荷ケースを固定する
通常搬送、加速、減速、加工中、非常停止、停電、垂直保持、保守時の各ケースについて、力とモーメントの向き・作用点・継続距離・回転数を記録する。外力と慣性力の二重計上を防ぐ。
手順2:レール・ブロック配置を先に決める
レール間隔を広げるとロールモーメントに対する反力差が小さくなり、前後ブロック間隔を広げるとピッチモーメントに対する反力差が小さくなる。ただし装置寸法、取付面精度、熱膨張拘束との兼ね合いがある。重心・加工点・推力線を図面上で明示する。
手順3:ガイドの静定格・寿命・剛性を別々に評価する
各ブロックの方向別荷重とモーメントから、製品別の等価荷重を求める。最大荷重で静的安全係数、荷重履歴で動定格寿命、荷重―変位特性で剛性を判定する。特に1ブロックのモーメント等価係数、逆ラジアル方向の定格、予圧による内部荷重を無視しない。
手順4:ねじリードと支持方式を組み合わせて選ぶ
リードで必要回転数・負荷トルクを算出し、ねじ軸長さと支持条件で危険速度・座屈・軸剛性を評価する。最大回転数は危険速度限界とDN等の限界の小さい方以下にする。長尺高速軸では回転ナット方式や軸径・支持条件の変更も候補となる。
手順5:予圧を剛性だけで決めない
ガイド・ナットの予圧はがたと弾性変位を減らす一方、内部荷重、発熱、摩擦、駆動トルク、取付誤差感度を増やす。高予圧が常に長寿命とは限らない。 無予圧、軽予圧、中予圧を要求精度と運転条件で比較し、メーカー固有の補正条件を適用する。
手順6:精度と組立性を最終照合する
位置決め精度の予算には、ねじリード誤差、軸方向弾性変位、支持軸受変位、ガイドの走り精度、取付面平面度・平行度、熱変位、制御系の追従誤差を分けて計上する。基準レール・従動レールの基準面、取付ねじの締付け順序、芯出し、シム調整、給脂経路、防塵カバーの可否も図面レビューに含める。
誤設計・例外条件・故障モード
| 誤った判断/故障モード | 何が起きるか | 設計・検証上の対策 |
|---|---|---|
| 荷重を単純に4等分 | 偏心・推力高さによる局部過負荷 | 重心・作用点とモーメントを反映 |
| 動定格荷重Cだけで採用 | 衝撃時の永久変形、姿勢変化 | 静定格・静的モーメントも評価 |
| 50 km基準と100 km基準を混同 | メーカー間の寿命比較を誤る | 定格基準と換算条件を記録 |
| 予圧を過大に設定 | 摩擦・発熱・疲労・異常音 | 予圧を含む寿命・トルク評価 |
| 取付面の平行度・平面度不良 | レール拘束、内部荷重、走行抵抗増 | 基準面、公差、締結順序、実測 |
| 異物・切粉・冷却液侵入 | 軌道損傷、ボール循環不良 | シール・ワイパ・カバー・給脂 |
| 危険速度/DN限界超過 | 共振、振れ、ナット異常 | 支持間距離・軸径・回転数の照合 |
| 長尺ねじの圧縮座屈 | 軸の横たわみ、破損 | 圧縮荷重、支持方式、谷径を確認 |
| ナット・支持軸受の剛性不足 | 荷重で位置が逃げる | 系の直列剛性と熱変位を計算 |
| 垂直軸で停電時保持を見落とす | 逆駆動・落下 | ブレーキ・機械式落下防止を別途設計 |
| 短ストロークを通常寿命式で断定 | 転動体の偏った負荷・潤滑不足 | 適用範囲をメーカーに確認 |
| モータ慣性トルクの二重計上 | モータを不必要に大型化 | 力学モデルとトルク内訳を統一 |
規格・一次資料と適用範囲(2026年10月16日確認)
| 規格・資料 | 確認した内容 | 注意点 |
|---|---|---|
| ISO 14728-1:2017 | 直動転がり軸受の動定格荷重・寿命。ISOサイトでPublished、2022年確認 | 対象と寿命基準を照合 |
| ISO 14728-2:2017 | 直動転がり軸受の静定格荷重・静的安全係数。2022年確認 | 静的等価荷重は形式依存 |
| ISO 3408-5:2006 | ボールねじの動・静軸方向定格荷重と寿命。公開情報でPublished、2026年レビュー記録あり | 改訂の動向は継続確認 |
| ISO 3408-3:2006 | ボールねじの受渡条件・受渡試験。2026年4月再確認 | 精度等級の実測条件を確認 |
| JIS B 1192-2:2025 | 呼び径、呼びリード、ナット寸法、取付ボルト。日本規格協会で有効 | 2018年版を現行扱いしない |
| THK LMガイド選定資料 | モーメント等価、50/100 km基準、予圧、精度、取付誤差 | 型式ごとに係数が異なる |
| THK ボールねじ選定資料 | 推力、寿命、座屈、危険速度、DN、剛性、トルク | 製品別の数値を確認 |
一次資料: ISO 14728-1 / ISO 14728-2 / ISO 3408-5 / ISO 3408-3 / JIS B 1192-2:2025 / THK LMガイド選定 / THK LMガイド荷重計算 / THK LMガイド寿命 / THK LMガイド予圧 / THK ボールねじ寿命 / THK ボールねじ許容回転数 / THK ボールねじ剛性。
確認できていない事項: 仮定した6/8 kNの定格荷重に該当する具体的な型番、個別ガイドのモーメント等価係数、ナット予圧トルク、支持軸受の剛性、実機の取付面公差、危険速度、DN値、ねじ軸谷径、メーカー別の寿命補正、運転時温度。これらは実際の採用品番を決めてから一次資料・試験で確定する。
設計チェックリスト
- □ 荷重ケースごとに質量、重心、外力、慣性力、作用点、符号を定義した。
- □ 4ブロックの各方向荷重とモーメントを製品別手順で評価した。
- □ 1ブロックの静的等価荷重、許容静的モーメント、静的安全係数を確認した。
- □ 動定格荷重の50 km/100 km基準と荷重補正の適用条件を確認した。
- □ ガイドの予圧、走り精度、剛性、摩擦、寿命の関係を評価した。
- □ ボールねじの最大推力、速度、リード、回転数、トルクを算出した。
- □ ボールねじの最大静的荷重、動定格寿命、荷重方向反転を確認した。
- □ 危険速度、DN値、座屈、ねじ軸端の強度、支持軸受を照合した。
- □ ナット、ねじ軸、支持軸受、ブラケットの合成剛性を確認した。
- □ リード誤差、バックラッシ、熱変位、取付誤差を精度予算へ反映した。
- □ 防塵、潤滑、給脂アクセス、組立手順、交換性を確認した。
- □ 垂直軸では逆駆動・落下防止を独立して検証した。
- □ 未評価項目を合格扱いせず、採用判断を保留した。
知識資産化できる項目
データ構造と判定ルール
工学知識を再利用するには、計算可能な一般式とメーカー固有の製品データを分離する。status は pass、fail、not_evaluated を区別し、未入力を自動合格にしない。
{
"element_type": "linear_axis",
"schema_version": "1.0",
"units": {"force": "N", "length": "mm", "torque": "N_m", "speed": "rpm"},
"inputs": {"mass_kg": 120, "accel_m_s2": 2, "process_force_N": 500,
"guide_resistance_N": 40, "lead_mm_rev": 10, "efficiency": 0.90,
"guide_span_x_mm": 360, "rail_span_y_mm": 240},
"equations": ["thrust", "speed_lead", "load_torque", "four_point_vertical_reaction",
"guide_l10_50km", "ballscrew_l10_revolutions", "axial_series_stiffness"],
"constraints": {"required_life_rev": 288000000,
"critical_speed_rpm": null, "dn_limit_rpm": null,
"buckling_allowable_N": null},
"manufacturer_data": {"guide_model": null, "ball_screw_model": null,
"moment_equivalent_factors": null,
"preload_torque_N_m": null},
"failure_modes": ["rolling_fatigue", "misalignment", "contamination",
"recirculation_failure", "buckling", "overspeed"],
"outputs": {"thrust_N": 780, "load_torque_N_m": 1.3793,
"max_speed_rpm": 2400},
"review_checks": {"kinematics": "pass", "guide_life": "not_evaluated",
"ballscrew_life": "not_evaluated", "critical_speed": "not_evaluated",
"buckling": "not_evaluated", "mounting_accuracy": "not_evaluated"}
}
Pythonで一次計算を関数化する
次のコードは単位を明示した一次設計用の純粋関数である。メーカー固有の寿命補正、荷重方向反転、接触剛性を自動判定するものではない。
from dataclasses import dataclass
from math import pi
def thrust_n(mass_kg: float, accel_m_s2: float,
process_force_n: float, guide_resistance_n: float) -> float:
return mass_kg * accel_m_s2 + process_force_n + guide_resistance_n
def load_torque_nm(thrust_n_value: float, lead_mm_rev: float,
efficiency: float) -> float:
if not (0 < efficiency <= 1) or lead_mm_rev <= 0:
raise ValueError("efficiency or lead is invalid")
return thrust_n_value * lead_mm_rev / 1000 / (2 * pi * efficiency)
def speed_rpm(speed_mm_s: float, lead_mm_rev: float) -> float:
if lead_mm_rev <= 0:
raise ValueError("lead must be positive")
return 60 * speed_mm_s / lead_mm_rev
def guide_l10_km(c_50_n: float, equivalent_load_n: float) -> float:
if c_50_n <= 0 or equivalent_load_n <= 0:
raise ValueError("load and rating must be positive")
return 50 * (c_50_n / equivalent_load_n) ** 3
def screw_l10_rev(ca_n: float, equivalent_axial_load_n: float) -> float:
if ca_n <= 0 or equivalent_axial_load_n <= 0:
raise ValueError("load and rating must be positive")
return 1_000_000 * (ca_n / equivalent_axial_load_n) ** 3
def cube_mean_load_n(loads_n: tuple[float, ...],
fractions: tuple[float, ...]) -> float:
if len(loads_n) != len(fractions) or not loads_n:
raise ValueError("length mismatch")
if any(f < 0 for f in fractions) or abs(sum(fractions) - 1) > 1e-9:
raise ValueError("fractions must sum to 1")
return sum(f * abs(load) ** 3 for load, f in zip(loads_n, fractions)) ** (1 / 3)
@dataclass(frozen=True)
class FourBlockInput:
mass_kg: float
span_x_mm: float
span_y_mm: float
cg_x_mm: float
cg_y_mm: float
thrust_height_mm: float
thrust_n: float
def vertical_reactions_n(inp: FourBlockInput) -> tuple[float, float, float, float]:
"""Symmetric rigid plate, equal vertical spring stiffness; preliminary only."""
if inp.span_x_mm <= 0 or inp.span_y_mm <= 0:
raise ValueError("span must be positive")
w = inp.mass_kg * 9.81
dx = (w * inp.cg_x_mm + inp.thrust_n * inp.thrust_height_mm) / (2 * inp.span_x_mm)
dy = w * inp.cg_y_mm / (2 * inp.span_y_mm)
return tuple(w / 4 + sx * dx + sy * dy
for sx, sy in ((1, 1), (1, -1), (-1, 1), (-1, -1)))
if __name__ == "__main__":
f = thrust_n(120, 2, 500, 40)
assert f == 780
assert abs(load_torque_nm(f, 10, 0.9) - 1.37934284) < 1e-6
assert speed_rpm(400, 10) == 2400
loads = vertical_reactions_n(FourBlockInput(120, 360, 240, 40, 20, 100, f))
assert abs(max(loads) - 517.08333333) < 1e-6
assert abs(min(loads) - 71.51666667) < 1e-6
assert abs(sum(loads) - 1177.2) < 1e-6
feq = cube_mean_load_n((780, 400), (0.5, 0.5)) * 1.5
assert screw_l10_rev(6000, feq) < 288_000_000
assert screw_l10_rev(8000, feq) > 288_000_000
print("preliminary calculation: OK; product verification: NOT EVALUATED")
CSV/DB/CADへ発展させるための分割
| 資産 | 主キー例 | 保存すべき項目 | 自動化できる判定 |
|---|---|---|---|
| LoadCase | case_id | 外力ベクトル、作用点、加速度、距離比 | 力・モーメントの釣合い |
| GuideLayout | layout_id | レール間隔、ブロック間隔、重心 | 一次反力、偏り警告 |
| GuideCatalog | maker、model、revision | C、C0、方向別定格、モーメント係数 | 静的安全、寿命の詳細照合 |
| ScrewCatalog | maker、model、revision | リード、谷径、Ca、C0a、予圧、DN | 寿命、回転数、座屈の詳細照合 |
| AxisReview | axis_id、check_id | status、根拠資料、担当者、確認日 | 未評価項目の一覧化 |
CAD連携では、レール間隔・ブロック間隔・支持軸受位置をパラメータ化し、荷重ケースの座標と一致させる。型番データに出典・版・取得日を持たせることが、更新可能な設計知識資産の条件になる。
