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

実モデル寄りモータ定常熱解析サンプル

この showcase は、混在 CHEXA/CPENTA BDF mesh、BDF QVOL loss、JSONで追加する coil copper loss / PM loss、FEMH surface cooling、thermal equivalent circuit、stator/rotor gap coupling を組み合わせたモータ定常熱解析サンプルです。

目的は、温度絶対値を実測に合わせることではありません。電気機器設計向けの熱解析ワークフローとして、損失入力、境界条件、熱等価回路、gap coupling、surface assignment、CSV diagnostics を確認できることを重視しています。

公開サンプルは次のフォルダにあります。

Examples/thermal/realistic_motor_steady/

使用するBDFは同じフォルダ内の次のファイルです。

Examples/thermal/realistic_motor_steady/QVOL_loss_mix.bdf

Model and mesh

このモデルは、stator側とrotor側を別の bulk section として持つBDFメッシュです。外側空気領域は磁界解析用メッシュには含まれますが、熱伝導解析では motor solid 領域だけを対象にするため、exclude_property_ids で除外します。

ComponentBulk sectionRole
Stator0stator core、slot coil領域、stator側損失
Rotor1rotor core、permanent magnet領域、rotor側損失
Motor thermal mesh

BDFから element geometry、property ID、bulk section、QVOL heat source を読み込みます。coil copper loss と PM loss はBDF QVOLを上書きせず、JSONから追加発熱として与えます。

Loss inputs

代表ケースで使用する発熱量は次の通りです。

SourceInput methodHeat
BDF QVOLQVOL_loss_mix.bdf1.091336675596593 W
Coil copper lossthermal_volume_heat_sources, mode = "coil_copper_loss"23.004 W
PM magnet lossthermal_volume_heat_sources, mode = "total_heat"1.25 W
TotalBDF QVOL + JSON volume heat25.345336675596593 W

coil copper loss は相電流実効値と相抵抗から計算します。

P_phase = I_rms^2 * R_phase
= 3.0^2 * 0.852
= 7.668 W

P_total = 3 * P_phase = 23.004 W

各相の対象property IDは次の通りです。

PhaseProperty IDs
U10000, 10001
V10004, 10005
W10002, 10003

PM loss は永久磁石領域 property_id = 50000 に与えます。

RegionProperty IDHeat input
Permanent magnet500005.0 W * 0.25 = 1.25 W

coil_fill_factor は導体体積基準の発熱密度診断に使います。FEM RHSへ入れる I^2 R 損失を再スケールする値ではありません。

JSON cases

JSON filePurpose
input_realistic_motor_steady_import_summary.jsonBDF import、PSOLID/MAT diagnostics、QVOL heat、coil loss、PM lossを確認します。
input_realistic_motor_steady_all_external_balance.json全外表面をFEMH接続し、熱収支が閉じることを確認する基準ケースです。物理境界条件ではなく検証用です。
input_realistic_motor_steady_physical_no_gap.jsongap面を外部FEMH冷却から除外し、gap couplingなしで物理境界条件の基準を確認します。
input_realistic_motor_steady_physical_gap_h20.jsonh = 20 W/m2/K のgap couplingを追加します。
input_realistic_motor_steady_physical_gap_nu1.jsonmode = "nu", Nu = 1, k_air = 0.026 W/m/K, gap = 0.001 m でgap couplingを指定します。
input_realistic_motor_steady_physical_gap_h20_interface_resistance.jsoncoil/stator interface と PM/rotor interface に shared-node interface thermal resistance を追加します。
input_realistic_motor_steady_physical_gap_h20_interface_axial_endcool.json上下面から end_space_air へ逃げる軸方向端面冷却経路を追加します。coil-end heat escape の一次近似もこの経路で表現します。
input_realistic_motor_steady_mount_shaft_network.jsonhousing、mount、shaft、bearingを含む説明用thermal equivalent circuitです。係数は説明用の仮値です。

外側空気領域は熱FEMから除外します。

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

これにより、stator外周面をFEMH境界として housing や thermal equivalent circuit に接続できます。

Boundary conditions and FEMH connections

FEMHは、選択したFEM surface groupとthermal-network nodeを接続する境界条件です。これにより、housing、shaft、bearing、mount、ambientなどの集中定数熱回路ノードとFEM領域を連成できます。

物理境界条件ケースで主に使うsurface groupは次の通りです。

Surface groupTypical use
stator_externalstator側の全外表面。診断と差集合のbaseに使います。
rotor_externalrotor側の全外表面。診断と差集合のbaseに使います。
stator_gap_candidate_filteredstator側gap候補面。gap coupling専用です。
rotor_gap_candidate_filteredrotor側gap候補面。gap coupling専用です。
stator_external_coolinggap面を除外したstator外部冷却面です。
rotor_external_coolinggap面を除外したrotor外部冷却面です。
stator_radial_external_cooling端面とgap面を除外したstator外周冷却面です。
rotor_radial_external_cooling端面とgap面を除外したrotor外周冷却面です。
stator_end_facesstator上下面です。end_space_airへ接続します。
rotor_end_facesrotor上下面です。end_space_airへ接続します。

重要なルールは、gap couplingに使う面を外部FEMH冷却面として同時に使わないことです。

femh_and_gap_overlap area = 0

この値は thermal_surface_assignment_summary.csv で確認できます。

Gap thermal coupling

statorとrotorは熱FEM上では別componentです。gapを介した熱移動は、stator側gap面とrotor側gap面の surface-to-surface thermal coupling として扱います。

現在のサンプルでは node_pair_lumped assembly を使います。

  1. stator/rotor のgap face pairを抽出します。
  2. face pairごとに有効面積を計算します。
  3. 指定したmodeからconductanceを計算します。
  4. source/target face nodeを座標で対応付けます。
  5. 2節点間のlumped thermal conductanceとしてFEM行列へ組み込みます。
ModeFormulaExample
hG = h * Ah = 20 W/m2/K
nuh_equiv = Nu * k_air / gap_thicknessNu = 1, k_air = 0.026 W/m/K, gap = 0.001 m

Nu = 1 の例では次の値になります。

h_equiv = 26.0 W/m2/K
gap total conductance = 6.800205753006171e-02 W/K

Thermal equivalent circuit

熱等価回路は、FEM meshの外側にある冷却経路を集中定数で表現するためのものです。今回の図では、radial方向のhousing/shaft経路、stator/rotor gap経路、上下面からend spaceへ逃げる軸方向経路を示しています。

Motor thermal equivalent circuit with axial end-space cooling

主な経路は次の通りです。

LabelMeaning
FEMH-SRstatorの非gap・非端面外周面から housing nodeへのFEMH接続です。
FEMH-RRrotorの非gap・非端面外周面から shaft nodeへのFEMH接続です。
G-gapstator/rotor gap surface couplingです。
FEMH-SEstator上下面から end_space_air nodeへのFEMH接続です。一層押し出しモデルでは coil-end heat escape の一次近似としても扱います。
FEMH-RErotor上下面から end_space_air nodeへのFEMH接続です。
R-EHend_space_air から housing へ逃げる端部空間の代表熱抵抗です。
R-EAend_space_air から ambient へ逃げる代表熱抵抗です。
R-HA, R-SAhousing / shaft から ambient側へ向かう代表熱抵抗です。

FEMH portはFEM surface temperatureとthermal-network nodeを接続します。RTH/GTH elementはnetwork node間の熱抵抗または熱コンダクタンスです。

network node温度と熱流は次のCSVで確認できます。

thermal_network_nodes.csv
thermal_network_element_flows.csv
thermal_cooling_path_summary.csv
thermal_femh_ports.csv

Shared-node interface thermal resistance

節点共有メッシュで coil/stator core 境界や PM/rotor core 境界に熱抵抗を入れる例です。

input_realistic_motor_steady_physical_gap_h20_interface_resistance.json

この機能は、指定したproperty group間の内部faceを抽出し、指定した側の熱節点を複製して、元節点と複製節点の間にlumped thermal conductanceを入れます。磁界解析用に節点共有されたメッシュをそのまま使いながら、熱解析では界面温度不連続を表現できます。

入力例です。

"interface_thermal_resistances": [
{
"name": "coil_to_stator_slot_liner",
"side_a": { "property_ids": [10] },
"side_b": { "property_ids": [10000, 10001, 10002, 10003, 10004, 10005] },
"split_side": "side_b",
"mode": "thin_layer",
"layer_thermal_conductivity": 0.2,
"layer_thickness": 0.0002,
"assembly": "shared_node_pair_lumped"
},
{
"name": "pm_to_rotor_adhesive",
"side_a": { "property_ids": [20] },
"side_b": { "property_ids": [50000] },
"split_side": "side_b",
"mode": "thin_layer",
"layer_thermal_conductivity": 0.2,
"layer_thickness": 0.0002,
"assembly": "shared_node_pair_lumped"
}
]

代表値は次の通りです。

InterfaceFacesAreah_equivTotal conductanceEquivalent resistance
coil_to_stator_slot_liner1561.187038579243427e-02 m21000 W/m2/K1.187038579243424e+01 W/K8.424326028538720e-02 K/W
pm_to_rotor_adhesive802.399721226189904e-03 m21000 W/m2/K2.399721226189901e+00 W/K4.167150705199728e-01 K/W

確認するCSVです。

thermal_interface_resistance_summary.csv
thermal_interface_resistance_node_pairs.csv
thermal_interface_resistance_node_splits.csv
thermal_matrix_diagnostics.csv
thermal_global_heat_balance.csv

Axial end-space cooling and coil-end equivalent path

input_realistic_motor_steady_physical_gap_h20_interface_axial_endcool.json は、shared-node interface thermal resistanceに加えて、軸方向の上下面から熱が逃げる経路を追加したケースです。

2D断面を軸方向に一層押し出した簡易モデルでは、実機3Dモデルに存在するend space、end bracket、oil、refrigerant側への熱流が不足しやすくなります。このケースでは、その不足を補うために上下面を end_space_air nodeへ接続します。

設定方針は次の通りです。

  • 外側空気 property 50 は熱FEM領域から除外します。
  • stator_radial_external_cooling は stator の非gap・非端面外周面として housing nodeへFEMH接続します。
  • rotor_radial_external_cooling は rotor の非gap・非端面外周面として shaft nodeへFEMH接続します。
  • stator_end_facesrotor_end_facesabs_normal_z_min = 0.9 で抽出し、end_space_air nodeへFEMH接続します。
  • end_space_airhousing および ambient へthermal resistanceで接続します。

このケースでは、コイルエンドを直接3D形状として作る代わりに、stator端面側のFEMH経路を「slot coil / stator end region から end space air へ逃げる代表経路」として扱っています。より詳細な評価では、coil endを別領域または熱等価回路ノードとして表現し、coil end loss と coil end cooling path を分けることを想定します。

代表結果です。

QuantityValue
stator radial cooling avg. temperature67.55 degC
stator end faces avg. temperature72.67 degC
rotor radial cooling avg. temperature44.38 degC
rotor end faces avg. temperature44.71 degC
stator gap avg. temperature67.92 degC
rotor gap avg. temperature52.15 degC
gap heat source-to-target0.824813796 W
global relative residual3.782002356724577e-11

このケースは、compressor motorの実測合わせ済みモデルではなく、境界条件設定を説明するためのサンプルです。FEMH係数とthermal-network resistanceは、実測case温度、冷媒/油の状態、end-space geometry、3D validation dataを使って調整してください。

Temperature result

Motor steady-state temperature result

この図は、端面冷却とcoil-end相当経路を含む代表的な温度分布です。カラーバーは自動調整した表示例であり、絶対温度は仮のFEMH係数と熱等価回路係数に依存します。

重要なのは、loss total、heat balance、surface overlap、cooling pathをCSVで追跡できることです。

Gap area result

Temperature around stator and rotor gap surfaces

Gap couplingに使う面は、外部FEMH cooling surfaceから除外します。thermal_surface_assignment_summary.csvfemh_and_gap_overlap area = 0 を確認してください。

Heat balance checks

まず input_realistic_motor_steady_all_external_balance.json で、損失合計と流出熱量が一致することを確認します。

FEM volume heat = 25.345336675596593 W
FEM RHS heat = 25.345336675596593 W
FEMH outflow ~= 25.345336675596593 W
network TEMP outflow ~= 25.345336675596593 W
global relative residual ~= 1e-11

端面冷却ケースでは、代表的に次のような値になります。

FEM RHS heat = 25.34533667559660 W
FEMH outflow = 25.34533667438468 W
network TEMP outflow = 25.34533667463804 W
global relative residual = 3.782002356724577e-11

CSV files to check

thermal_volume_heat_sources.csv
thermal_fem_volume_heat.csv
thermal_global_heat_balance.csv
thermal_surface_assignment_summary.csv
thermal_surface_temperature_summary.csv
thermal_component_heat_balance.csv
thermal_cooling_path_summary.csv
thermal_gap_coupling_summary.csv
thermal_gap_coupling_flow_summary.csv
thermal_network_nodes.csv
thermal_network_element_flows.csv
thermal_femh_ports.csv