磁界解析において、FEMモデル上の導体部品へ電気回路を介して通電条件を与える方法の一つとして、巻線設定機能があります
巻線設定機能を使用するには、回路への巻線素子の追加、巻線領域の設定、ならびに巻線パラメータの設定の3ステップが必要になります。
このスクリプトでは、巻線設定機能の利用に必要な一連の設定を実行します。
前提条件
- コイルの形状に回転周期性のあるモデルで磁界解析スタディ、または効率マップ解析スタディが1つ以上作成されていること
- スロット数がSLOTS、極数がPOLESとして方程式に定義されていること
- 巻線領域となるのコイル部品がセットとして作成済みであり、そのセットタイトルが既知であること
- 設定値の単位は、作成されているモデルに設定されている単位系に従う
スクリプトにおける設定内容
- 回路に巻線3相コイル素子を作成し配置。回路は作成済みか否かを確認し未作成であれば作成
結線方法をスター結線、グランド素子を含めるをONと設定 - 巻線領域を追加する
スロット数を方程式のSLOTS、極数を方程式のPOLES、コイル領域に部品セットの”CoilSet”を設定 - 3相巻線設定を追加する
先に作成した巻線領域を関連付け - 巻線設定-コイルの各パラメータを設定
入力項目を相抵抗、巻数を40.5turn、設定タイプを丸線寸法、素線径を0.5、占積率を71.5%、相抵抗を0.407、漏れインダクタンスの入力項目を自動、漏れインダクタンスの補正係数を1と設定 - 巻線設定-巻線の各パラメータを設定
先に作成した巻線3相コイル素子を関連付け、並列数を4、巻線方法を自動(タイプ1)、層数を1、コイルピッチを5、相順をUWVと設定
# 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 createWindingThreePhaseCoil(circuit, circuitCompName):
"""巻線3相コイル素子を回路に配置する"""
circuitComponent = circuit.CreateComponent(u"WindingThreePhaseCoil", circuitCompName)
circuit.CreateInstance(circuitCompName, 10, 2)
circuitComponent.SetValue(u"ConnectionType", u"Star")
circuitComponent.SetValue(u"IncludeGround", u"On")
def createWindingRegionOfThreePhase(study, windingRegionName, coilRegionPartSet):
"""巻線領域(形状)を作成する"""
windingRegion = study.CreateWindingRegion(windingRegionName, 0)
windingRegion.SetSlots(u"SLOTS")
windingRegion.SetPoles(u"POLES")
windingRegion.AddCoilRegion(u"Coil Region A")
windingRegion.AddSet(0, coilRegionPartSet)
def createWindingSettingOfThreePhase(study, windingRegionName, circuitCompName):
"""巻線設定を作成、巻線領域と巻線素子を関連付けし各パラメータを設定する"""
windingDefinition = study.CreateWinding(u"ThreePhase", u"Three Phase")
windingDefinition.SetRegion(windingRegionName)
# コイルタブ
windingDefinition.SetInputType(u"Resistance")
windingDefinition.SetWireType(u"Round")
windingDefinition.SetTurns(40.5)
windingDefinition.SetWireDiameter(0.5)
windingDefinition.SetSlotFillFactor(71.5)
windingDefinition.SetResistance(0.407)
windingDefinition.SetLeakageInductanceInputType(u"Auto")
windingDefinition.SetLeakageInductanceCorrectionFactor(1)
# 巻線タブ
windingDefinition.SetComponent(circuitCompName)
windingDefinition.SetParallelCoils(4)
windingDefinition.SetWindingScheme(u"Auto")
windingDefinition.SetLayers(1)
windingDefinition.SetCoilPitch(5)
windingDefinition.SetPhaseOrder(u"UWV")
app = designer.GetApplication()
study = app.GetCurrentStudy()
circuit = getCircuitInStudy(study)
circuitCompName = u"Winding Three Phase Coil"
createWindingThreePhaseCoil(circuit, circuitCompName)
windingRegionName = u"Coil Region"
set = app.GetCurrentModel().GetSetList().GetSet(u"CoilSet")
createWindingRegionOfThreePhase(study, windingRegionName, set)
createWindingSettingOfThreePhase(study, windingRegionName, circuitCompName)


