ハルバッハ配列は、磁化方向を周期的に回転させるの着磁パターンです。
特定の方向への磁場強度を最大化する特徴があります。
JMAG-Designerでは、永久磁石、着磁材料の着磁パターンとしてハルバッハ配列を設定できます。
このスクリプトでは円周方向に配置した永久磁石にパラレル円周パターン(ハルバッハ配列)を設定します。
前提条件
- 磁界解析スタディが1つ以上作成されていること
このスクリプト例では、プロジェクトツリー上でアクティブなスタディに対して実行している - 磁石、または着磁材料を割り当てる部品の名前が既知であること
- ハルバッハ配列の着磁パターンはJMAG-Designer v25.0以降で使用可能
スクリプトにおける設定内容
- Rotor/Magnetと言う名前の部品に永久磁石材料を割り当て
- 着磁パターンをパラレル円周パターン(ハルバッハ配列)に設定
- 磁化方向のパラメータを設定
- 極数、基準軸からの角度、一極当たりの分割数、強磁界方向を設定
# Copyright (c) 2026 JSOL CORPORATION
#
# 本スクリプトはMITライセンスのもとで公開しています。
# ライセンス全文は以下を参照してください。
# https://www.jmag-international.com/jp/scriptlibrary/jmag_script_library_mit/
def setHalbachArrayMagnetizationPattern(study, partName, properties):
"""永久磁石の着磁パターンに、ハルバッハ配列を設定する"""
study.SetMaterialByName(partName, properties["material_name"])
material = study.GetMaterial(partName)
material.SetOriginXYZ(0, 0, 0)
# 基準軸の方向
material.SetDirectionXYZ(1, 0, 0)
material.SetPattern(properties["pattern"])
material.SetValue(u"Poles", properties["poles"])
material.SetValue(u"StartAngle", properties["start_angle"])
material.SetValue(u"DivisionPerPole", properties["division_per_pole"])
material.SetValue(u"StrongSide", properties["strong_side"])
material.SetOrientation(False) # False = Inward
partName = u"Rotor/Magnet"
magnetProperty = {
"material_name": u"Reversible/NdFeB_Br=1.4(T)",
"pattern": u"ParallelCircularHalbachArray",
"poles": 8,
"start_angle": 22.5,
"division_per_pole": 5,
"strong_side": u"Internal",
}
app = designer.GetApplication()
study = app.GetCurrentStudy()
setHalbachArrayMagnetizationPattern(study, partName, magnetProperty)


