2013年08月02日(金)
- PSIM Cafe
バッチファイルを用いた複数パラメータのスイープ解析
PSIMは普段はPSIM.exeを実行しシミュレーションを行いますが、実はコマンドプロンプトからPsimCmd.exeを実行することでもシミュレーションを行うこと(コマンドライン実行)が出来るのです。
今回はこの「コマンドライン実行で出来ること」と実際の使用例として通常のパラメータスイープ(Parameter Sweep)ブロックではシミュレーション出来ない「複数パラメータのスイープ解析」を紹介します!
PsimCmd.exeを実行する際には、以下のコマンドラインオプションを用いてパラメータを設定し、シミュレーションすることが出来ます。
-
- -i ・・・ 入力回路図のファイル名
- -o ・・・ 出力ファイル名(.txtまたは.smv)
- -v ・・・ 変数名及び値
- -t ・・・ シミュレーション総時間
- -s ・・・ シミュレーションタイムステップ
- -g ・・・ シミュレーションが完了後にSIMVIEWを実行します。
このコマンドラインオプションを使用したシミュレーションの例として、昇圧チョッパの「Duty比」「インダクタンス値」「直流電源電圧」を設定・変更したシミュレーションを紹介します。
■回路の作成
まずは回路を作成し、変更したいパラメータに文字列を入力します。
このシミュレーション例では、下記の様に入力しています。
-
- Duty比 ・・・ Duty
- インダクタンス ・・・ L
- 直流電源 ・・・ amp
■バッチファイルの作成
コマンドプロンプトで一行一行コマンドを入力していくのは非常に面倒なので、バッチファイル(.bat)を作成して入力したい一連のコマンドを記述します。そうすると、バッチファイル実行するだけで記述したコマンドが順序どおりに実行されます。
バッチファイルを作成する際には、下記の点に注意してください。
-
- 回路ファイルとバッチファイルは同じ場所に作成、格納すること。その際にファイル名やパスに日本語が含まれないように配慮する。
- シミュレーション後に出力される波形ファイルはデフォルトではCドライブ内>ユーザーアカウント>ドキュメント>PSIMフォルダに保存されます。別の場所に保存する場合は絶対パスで指定してください。
- バッチファイル上では、基本的には整数しか取り扱えません。小数値などを設定したい場合は工夫が必要になります。
今回のシミュレーションで作成したバッチファイルの一部を以下に記載します。
バッチファイルの全文は、この記事の最後にある「ファイル DOWNLOAD」からダウンロードしてご覧ください。
rem @echoをonにすると途中の実行コマンドもコマンドプロンプトに表示されますrem これはチョッパ回路のデューティ、インダクタンス、電源電圧をスイープさせるバッチファイルです
rem 初期値の設定をします
rem 「C:\Program Files\Powersim\PSIM9.3.2\~」の部分は個人個人に合わせて設定しなおしてください
set d=200
set l=100
set a=50
set u=u
set m=m
set path=”C:\Program Files\Powersim\PSIM9.3.2″
rem 「:LOOP_duty」から「goto LOOP_duty」まででデューティ比のスイープを行います
:LOOP_duty
rem バッチファイル上は小数の四則演算が出来ないので、「0.2」を入力したい場合は「200m」で代用します
rem 200の部分を整数として扱いたいので、「200m」を「200」と「m」に分け、連結してパラメータに代入しています
set duty=%d%%m%
set Lin=%l%%u%
rem 波形ファイルはデフォルトでドキュメント\PSIMフォルダ内に出力されます
rem 場所を変えたければ絶対パスで指定します
PsimCmd.exe -i “test_chop.psimsch” -o “test_chop.txt” -v “Duty=%duty%” -v “L=%Lin%” -v “amp=%a%”
rem 出力された波形ファイルのファイル名に設定値を付加してコピーし、元のファイルを削除します
rem 「C:\Users\PC-180\Documents\PSIM\~」の部分は個人個人に合わせて設定しなおしてください
copy C:\Users\PC-180\Documents\PSIM\test_chop.txt C:\Users\PC-180\Documents\PSIM\test_chop_%duty%_%Lin%_%a%.txt > nul
del C:\Users\PC-180\Documents\PSIM\test_chop.txt
rem 繰り返し条件を設定します
rem ここでは、dの値を100ずつプラスして「:LOOP_duty」から「goto LOOP_duty」までを繰り返しています
rem dが600(デューティ比が0.6)になったら「:LOOP_Lin」に移行します
if “%d%”==”600” (goto LOOP_Lin)
set /a d=d+100
goto LOOP_duty
今回紹介したバッチファイルを実行すると、それぞれのパラメータでの波形ファイルが別々に保存されることになります。
次回は、この別々の波形ファイルに保存されているの波形を同じSimview画面で表示させる方法を紹介したいと思います。