コイルエンド冷却素子は、等温度境界パターン(回転)条件と組み合わせて使用する冷却モデルです。
主として回転機のコイルエンドの冷却のモデル化に使用します。
熱回路構成として、コピー数に相当するコイルスロット毎に熱抵抗素子、熱コンデンサ素子を持ち、等温度境界素子でモデルとリンクします。
動的なマクロ素子としてモデル化されているため、等温度境界パターン(回転)条件におけるコピー数に追随します。
このスクリプトでは等温度境界パターン(回転)条件、コイルエンド冷却素子と温度プローブ素子を配置するとともに、スタディプロパティでCSVファイルへの端子温度の出力設定を行います。
前提条件
- 熱解析スタディまたは熱応力解析スタディが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブなスタディに対して実行している - 等温度境界パターンのコピー数がSLOTSとして方程式に定義されていること
- 設定対象面がセットとして作成済みであり、そのセットタイトルが既知であること
- 設定値の単位は、作成されているモデルに設定されている単位系に従う
スクリプトにおける設定内容
- タイトルが”up”のコイルエンド冷却素子を作成し配置。回路は作成済みか否かを確認し未作成であれば作成
- 温度プローブ素子を作成し、コイルエンド冷却素子の端子に接続するように配置。
- コイルエンド冷却素子のパラメータを設定
熱抵抗(コイルエンド)を0.016、熱容量(コイルエンド)を0.012、冷却タイプを一定値、熱抵抗(冷却)を1.2、コイルエンドの温度をモニターするをONと設定 - 面セット”CoilSet”を対象に等温度境界パターン(回転)条件を設定
参照する回路素子を”up”、コピー数をSLOTSと設定 - スタディプロパティのCSVファイル出力設定で端子温度(熱回路)をONに設定
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def getCircuitInStudy(study):
"""スタディのCircuitオブジェクトを取得し存在しない場合は新しく回路を作成する"""
if study.HasCircuit():
circuit = study.GetCircuit()
else:
circuit = study.CreateCircuit()
return circuit
def createCoilEndCoolingWithThermalProbe(circuit, targetCompName):
"""コイルエンド冷却素子と温度プローブ素子を回路に配置してパラメータを設定する"""
CECComp = circuit.CreateComponent(u"CoilEndCooling", targetCompName)
posX = -2
posY = 8
circuit.CreateComponentInstance(CECComp, posX, posY)
TPComp = circuit.CreateComponent(u"ThermalProbe", u"TP")
# コイルエンド冷却素子の端子に温度プローブを配置
circuit.CreateComponentInstance(TPComp, posX, posY + 3)
CECComp.SetValue(u"ThermalResistance", 0.016)
CECComp.SetValue(u"HeatCapacity", 0.012)
CECComp.SetValue(u"CoolingType", u"Thermal Resistance (Constant)")
CECComp.SetValue(u"ThermalResistanceCooling1", 1.2)
CECComp.SetValue(u"MonitorCoilEndTemp", u"On")
def createConditionOfSameTemperatureBoundaryPattern(study, targetCompName, patternOriginalFaceSet):
"""等温度境界パターン(回転)条件を作成し、指定されたコイルエンド冷却素子を関連付ける"""
condition = study.CreateCondition(u"SameTemperatureBoundaryPattern", targetCompName)
# 回路素子を名前で指定するためユニークなタイトルである必要
condition.SetLink(targetCompName)
condition.SetValue(u"NumCopies", u"SLOTS")
condition.AddSet(patternOriginalFaceSet, 0)
def applyCsvResultTypeOnTerminalTemperature(study):
"""スタディプロパティのCSV出力設定で端子温度(熱回路)をONにする"""
study.GetStudyProperties().SetValue(u"CsvResultTypes", u"TerminalTemperature")
app = designer.GetApplication()
study = app.GetCurrentStudy()
circuit = getCircuitInStudy(study)
circuitCompName = u"up"
createCoilEndCoolingWithThermalProbe(circuit, circuitCompName)
set = app.GetCurrentModel().GetSetList().GetSet(u"CoilSet")
createConditionOfSameTemperatureBoundaryPattern(study, circuitCompName, set)
applyCsvResultTypeOnTerminalTemperature(study)


