[S8476] 誘起電圧(dφ/dt)を計算しグラフ化するスクリプト

 

スクリプトで誘起電圧(dφ/dt)を計算しグラフを表示したい。

Pythonスクリプトでの例は次の通りです。
# -*- coding: utf-8 -*-

import csv

#計算した誘起電圧結果の出力先パス

CSVpath = u"D:/WorkFolder/PythonTest/Vu noload.csv"

#作成するデータセットやグラフの名前

Name = u"Vu noload"

#[FEMコイルの鎖交磁束]結果データオブジェクトを取得

CoilFlux = app.GetCurrentStudy().GetResultTable().GetData("FEMCoilFlux")

#参照したい[FEMコイルの鎖交磁束]データの列IDを指定

col_CoilFlux = 0

app = designer.GetApplication()

#ステップコントロールの[ステップ刻みの定義タイプ]設定を取得

flg = app.GetCurrentStudy().GetStep().GetFlagAsString(u"StepType")

#[ステップ刻みの定義タイプ]が"等間隔"なら誘起電圧の計算処理を行う。違うならエラー処理する。

if flg == u"Uniform":

   #計算ステップ数を取得

   steps = app.GetCurrentStudy().GetStep().GetValue("Step")

   #ステップコントロールの[分割数]を取得

   stepdiv = app.GetCurrentStudy().GetStep().GetValue("StepDivision")

   #ステップコントロールの[終了時間]を取得

   stepend = app.GetCurrentStudy().GetStep().GetValueWithUnit("EndPoint",u"s")

   #時間刻みを計算

   dt = stepend / stepdiv

   #各ステップごとに誘起電圧を計算

   for i in range(1,int(steps+1)):

       #1ステップ目はdt=0なので、誘起電圧Ind=0を代入

       if i == 1:

           Ind = 0

       #2ステップ目以降は鎖交磁束結果をもとに誘起電圧Indを計算

       else:

           Fai1 = CoilFlux.GetValue(i-2, col_CoilFlux) #i-1ステップ目の鎖交磁束結果を取得

           Fai2 = CoilFlux.GetValue(i-1, col_CoilFlux) #iステップ目の鎖交磁束結果を取得

           Ind = (Fai2 - Fai1) / dt #誘起電圧Indを計算

       now_time = dt * (i-1) #iステップ目の時刻を計算

       #追記モードでCSVファイルを開く

       with open(CSVpath,mode='a', newline='') as f:

           writer = csv.writer(f)

           #iステップ目の計算結果をcsvに書き込む

           writer.writerow([now_time, Ind])

   #出力したCSVファイルからデータセットを作成

   dataset = app.GetDataManager().CreateFromFile(CSVpath,Name, u"Time, s", u"InducedVoltage, V")

   #作成したデータセットからグラフを作成

   app.GetDataManager().CreateGraphModel(dataset, Name)

   #作成したグラフを表示

   app.GetDataManager().Show(Name)

else:

   print(u"ステップコントロールの設定が終了時間(終了点)と分割数で設定されていないため、誘起電圧を計算できません")
※注意

・誘起電圧を計算するため、ステップコントロールは終了時間と分割数を指定している必要があります。

・本サンプルを実行する前に次の確認が必要です。

 ・CSVpathで指定しているCSVファイルが存在しないこと

 ・Nameで指定しているデータセットやグラフが存在しないこと。

ファイルご利用の注意点

JMAGスクリプトライブラリをご利用されるに際し、以下の利用規約をよくお読みいただき、ご同意の上ご利用下さるようお願い申し上げます。