周波数応答解析の電流値を位相ごとの値としてスクリプトで出力したい。
また、[ポスト計算スクリプト]で使用したい。
Pythonスクリプトでの例は次の通りです。 # -*- coding: utf-8 -*- import math #CSVファイルの出力先フォルダ、周波数を指定してください。 CsvPath = u"D:/" f = 60 #[Hz] #回路の電流データセットから現ケースの結果を取得 app = designer.GetApplication() numCase = app.GetCurrentStudy().GetCurrentCase() ref1 = app.GetCurrentStudy().GetDataSet(u"回路の電流", numCase+1) Ire = ref1.GetValue(0,1) #電流の実部の値を取得します。 Iim = ref1.GetValue(0,2) #電流の虚部の値を取得します。 #実部と虚部から振幅と初期位相を計算 Amp = math.sqrt(Ire ** 2 + Iim ** 2) #振幅[A] Pini = math.atan2(Iim, Ire) #初期位相[Rad] #0~360[deg]の範囲を10[deg]刻みで計算 result = "" #結果出力用変数の初期化 for deg in range(0,361,10): T = 1 / f * deg / 360 #X軸の時間を求める I = Amp * math.sin( 2 * math.pi * f * T + Pini ) #Y軸の電流を求める #計算結果を結果出力用変数に格納 result = str(result) + str(deg) + u" , " + str(I) + u"\n" #csvファイル作成 with open(CsvPath + "result" + str(int(numCase)) + ".csv", mode="w") as f: f.write(u"deg,Amp\n") f.write( str(result) ) ※注意 本サンプルを[ポスト計算スクリプト]で使用する場合、[プロジェクトファイルを送信]で分散実行する運用には対応していません。 上記、分散実行で使用する場合は、CSVの出力先がユニークになるように修正する必要があります。 (ケース番号を使用した出力ファイル名が分散実行だとユニークにならないため)


