2024年10月24日(木)
- PSIM Cafe
最適化ツールを使用したPSIM回路のパラメータ最適化 #1
最適化ツールHyperStudyを使用して降圧チョッパのパラメータ探索をやってみました。
PSIM Ver.2024からPSIMとHyperStudyを簡単に連携できるようになりました。
ご興味のある方はぜひお試しください。
Altair UnitsのPSIMをご利用のお客様で25ユニット以上所有している場合は同様にシミュレーションを行うことができます。
HyperStudyのインストールはこちらをご参照ください。
※PSIMとHyperStudyを連携して使用する場合、PSIMの出力ファイルの変換に数値解析ソフトウェアのComposeを使用します。
あらかじめHyperStudyと同じバージョンのComposeをインストールしてからお試しください。
(Composeの機能やインストールについてはこちら)
サンプル回路「buck.psimsch」の回路の一部を使用してパラメータの最適化を行いました。
使用した回路は以下のような回路です。
LとCの値を変えて出力電圧のリプル最小を目標としてパラメータの最適化を行いました。
最適化前後の波形がこちらです。赤が最適化前、青が最適化後です。
使用したPSIMのバージョン:2024.1
使用したHyperStudyのバージョン:2024.1
1.PSIMとHyperStudyの連携の設定を行う
PSIMを起動し、メニューのユーティリティ→HyperStudy Setupの上にカーソルを置くとインストールしているHyperStudyのバージョンが表示されます。
連携を行うHyperStudyのバージョンを選択してください。
セットアップ用のConnectorが起動してセットアップが完了します。
2.PSIMの回路のパラメータをパラメータファイルにする
最適化を行いたいパラメータをパラメータファイルに置き換えます。
パラメータファイルの詳しい使い方はこちらをご参照ください。
今回はLとCを最適化するので2つの値をパラメータファイルにしました。
3.HyperStudyでPSIMのファイルから変数を取得し、セットアップをする
HyperStudyを起動して新規スタディを作ります。
新規スタディの名前と保存場所を指定してOKをクリックします。
PSIMの回路ファイルと同じ場所に保存しました。
保存場所には最適化を行うときに使ったシミュレーションデータなどが保存されます。
ファイルパスに日本語を含まないようにしてください。
「モデルを追加」をクリックします。
モデルの選択肢が出てくるので、PSIMを選択してOKをクリックします。
PSIMが出てこない場合はHyperStudyを再起動してみてください。
モデルが追加されたらリソースのファイルマークをクリックし、パラメータファイルに置き換えたPSIMの回路ファイルを選択します。
リソースにファイルパスが入力されたら「変数のインポート」をクリックします。
ウィンドウが起動し、PSIMの回路ファイルのパラメータファイルの値を読み込みます。
読み込めるとこのようにウィンドウが表示されます。
最適化を行いたいパラメータにチェックが入っているかを確認し、問題なければ左上のExport to HyperStudyをクリックします。
パラメータをExportしたら「次」をクリックします。
取り込んだパラメータが入力変数として表示されます。
初期値や下限、上限の値の変更があれば修正します。
今回はCを100~500(uF)、Lを0.5~10(mH)の中でパラメータを設定しました。
パラメータの範囲を入力したら「次」をクリックします。
テストを実行します。「計算実行」をクリックするとテストの計算が実行されます。
問題なければテストの結果にチェックマークが入ります。
「次」をクリックします。
次に出力応答を決めます。
PSIMの結果を取り込むため、データソースを開きます。
「データソースを追加」をクリックします。
ファイルの「…」をクリックすると取り込むデータを選択するウィンドウが開くので、データを選択します。
ファイルのアイコンをクリックし、HyperStudyのファイル(Study)を保存したディレクトリと
同じ場所にできている作業フォルダ(approaches > setup_1-def > run_00001 > m_1)内にできている*.smv.abfファイルを選択します。
(*.smv.abfは一緒にインストールしているComposeが自動的に作成します。Composeがインストールされていない場合は生成されませんのでご注意ください。)
データを取り込むとこのように表示されます。
Componentをプルダウンで広げると波形の名前が表示されるので、取り込みたい波形を選択します。
今回は出力の電圧のリプルを最小にするので出力電圧を選択します。
取り込んだら「出力応答の定義」に戻ります。
「出力応答の追加」をクリックします。
追加された応答の”式”の…をクリックします。
関数を使い値を取得します。
まず最大値を取りますが、定常状態になってからの電圧から取りたいので700点目から後ろの値だけを使いました。
max(ds_1[700:999])と入力します。(ds_1は先程取り込んだデータソース。インデックスの一番最初は0なので、1000ポイント目は999です)
数式を入力したら「OK」をクリックしてウィンドウを閉じます。
もう一度「出力応答を追加」をクリックし、1行目の数式をコピーしてmaxをminに変更し、最小値を取得します。
最大値、最小値を求める出力応答を使って振幅を算出します。識別子を使って計算することができます。
入力したら「評価」をクリックします。
評価をクリックすると現在のデータを使用した値が表示されます。
必要に応じてラベル名もわかりやすく変更しておきます。
ここまででセットアップが完了です。
続きはこちらです。