メインコンテンツまでスキップ

input.json 概要

eMachineSim は JSON input control file を使って解析条件を指定します。Python API には JSON ファイル、または同等の Python dictionary を渡します。

最初は、目的に近い検証済みサンプルをコピーし、1 section ずつ変更する方法をおすすめします。

必須 metadata

すべての eMachineSim input control file には metaData object が必要です。他ツールの JSON を誤って読み込まないためのチェックに使います。

{
"metaData": {
"type": "eMachineSimInput",
"eMachineSimVersion": "0.1.1",
"comments": "Thermal analysis sample input."
}
}

type は必ず eMachineSimInput にしてください。

eMachineSimVersion はライセンス version と比較されます。比較に使うのは main.sub です。

input eMachineSimVersion main.sub <= license eMachineSimVersion main.sub

共通する考え方

Concept役割
analysis typethermal、structural、modal/NVH、electrostatic などを選択
meshFEMAP/ATLAS style file、BDF file などの mesh source
materials / propertiesmaterial data や imported property ID mapping
boundary conditionstemperature、heat flux、displacement、force、constraint、contact など
sources / loadsQVOL、JSON heat source、centrifugal load、imported nodal force など
outputsdiagnostic CSV や post file の出力設定

Thermal: 小規模 BDF QVOL

BDF import、QVOL integration、closed heat balance を確認するサンプルです。

Examples/thermal/bdf/input_sample_bdf_min_hexa_qvol.json
import eMachineSim

eMachineSim.thermal.run_file(
r"Examples\thermal\bdf\input_sample_bdf_min_hexa_qvol.json",
r"Examples\thermal\bdf",
)

Thermal: realistic motor steady

BDF/QVOL、coil copper loss、PM loss、FEMH thermal network、surface assignment diagnostics、gap coupling を含むサンプルです。

Examples/thermal/realistic_motor_steady/input_realistic_motor_steady_physical_gap_nu1.json

代表的な heat source section は次の通りです。

{
"thermal_volume_heat_sources": [
{
"name": "coil_copper_loss",
"mode": "coil_copper_loss",
"current_waveform": "sinusoidal_rms",
"frequency": 50.0,
"modeled_length_ratio": 1.0,
"coil_fill_factor": 0.35,
"distribution": "uniform_by_target_volume",
"phases": [
{"name": "U", "property_ids": [10000, 10001], "current_rms": 3.0, "phase_resistance": 0.852},
{"name": "V", "property_ids": [10004, 10005], "current_rms": 3.0, "phase_resistance": 0.852},
{"name": "W", "property_ids": [10002, 10003], "current_rms": 3.0, "phase_resistance": 0.852}
]
},
{
"name": "pm_magnet_loss",
"mode": "total_heat",
"target": {"property_ids": [50000]},
"total_heat": 5.0,
"modeled_fraction": 0.25,
"distribution": "uniform_by_target_volume"
}
]
}

外側空気領域など、BDFには含まれるが熱伝導解析から除外したいpropertyは bdf_import.exclude_property_ids で指定できます。 realistic motor sample では、外側空気 property 50 を除外し、ステータ外側面をFEMHまたは熱等価回路との接続面として扱います。

{
"bdf_import": {
"exclude_property_ids": [50]
}
}

Gap coupling の Nu 指定

{
"thermal_network": {
"gap_thermal_couplings": [
{
"name": "main_airgap_coupling",
"pairing": "main_airgap_filtered",
"enabled": true,
"mode": "nu",
"nu": 1.0,
"air_thermal_conductivity": 0.026,
"gap_thickness": 0.001,
"assembly": "node_pair_lumped"
}
]
}
}

Structural static: rotor

Examples/structural/rotor/input_rotor_2d_1500rpm_shaft_bc_no_contact.json
import eMachineSim

eMachineSim.structural.run_file(
r"Examples\structural\rotor\input_rotor_2d_1500rpm_shaft_bc_no_contact.json",
r"Examples\structural\rotor",
)

Structural sector boundary conditions

45度、90度、120度、180度などの rotor sector model では、13_Boundary_ConditionsSTRUCTURAL_CYCLIC_SECTOR_BC を指定すると、境界節点から角度最小側と角度最大側の周期境界面を自動抽出できます。 径方向変位を許容し、周方向変位だけを拘束する場合は FIX_RADIAL: 0FIX_TANGENTIAL: 1 とします。

シャフトをメッシュ化していない inner rotor model では、STRUCTURAL_RADIAL_SUPPORT_BC を併用できます。 この条件は、境界節点から周期境界面の節点を除外したうえで、SIDE: "INNER" なら最小半径、SIDE: "OUTER" なら最大半径の節点列を抽出し、円筒座標系の径方向・周方向・軸方向拘束を penalty 法で与えます。

{
"13_Boundary_Conditions": {
"STRUCTURAL_CYCLIC_SECTOR_BC": {
"ENABLED": 1,
"AUTO_DETECT": 1,
"AXIS_POINT": [0.0, 0.0, 0.0],
"MIN_RADIUS": 1e-8,
"FIX_RADIAL": 0,
"FIX_TANGENTIAL": 1,
"FIX_UZ": 0,
"PENALTY_STIFFNESS": 1e15
},
"STRUCTURAL_RADIAL_SUPPORT_BC": {
"ENABLED": 1,
"AUTO_DETECT": 1,
"SIDE": "INNER",
"AXIS_POINT": [0.0, 0.0, 0.0],
"EXCLUDE_CYCLIC_SECTOR_NODES": 1,
"MIN_RADIUS": 1e-8,
"RADIUS_TOLERANCE_ABS": 1e-6,
"RADIUS_TOLERANCE_REL": 1e-4,
"FIX_RADIAL": 1,
"FIX_TANGENTIAL": 0,
"FIX_UZ": 0,
"RADIAL_VALUE": 0.0,
"PENALTY_STIFFNESS": 1e15
}
}
}

STRUCTURAL_RADIAL_SUPPORT_BC は、シャフトを剛体支持として近似するための簡易条件です。シャフトの柔らかさや接触状態を評価したい場合は、シャフトを含む mesh、または contact condition を使うことをおすすめします。

Examples/structural/modal_stator/input_modal_stator_sparse_modal.json
Examples/structural/modal_stator/input_modal_stator_force_mapping.json
Examples/structural/modal_stator/input_modal_stator_frequency_response.json
Examples/structural/modal_stator/input_modal_stator_acoustic_radiation.json

Electrostatic

Examples/electrostatic/3by3/input_sample_3D_3by3.json
Examples/electrostatic/ring/input_sample_3D_ring.json