CHANGELOG¶
3.1.x¶
追加¶
transient_analysis()にanalysis_mode(FAST/FULL) とswitching_mode(LITE/DETAIL) を追加.waveform_analysis()を統合.PowerAnalysisOptionsを追加.power_analysis()の設定はこのクラス経由で指定.SwitchingModeを追加 (PowerAnalysisModeの後継).AnalysisCondition.fast_tail,fet_liteを追加.Converterにpart_type(),attribute()/set_attribute(),valid_outputs(),valid_parameters()を追加.SwitchingMode.LITE(簡易 FET モデル) が SiC / IGBT に対応.- 解析中のシミュレーションエラー (状態数オーバー等) を表す例外
SimulationErrorを追加.try/exceptで捕捉でき,e.errorからエラーの種別・メッセージを取得できる. - scideampy が送出する例外の基底クラス
ScideampyErrorを追加. 本ライブラリ由来の例外をまとめて捕捉したい場合に使う.
変更¶
update_parameter()→carry_over_state()にリネーム.set_analysis_condition()の引数をリネーム:divta→damped_step_subdiv,divtw→sine_step_subdiv,fctta→step_repetition_factor,divtprf→loss_long_step_subdiv,divtmdl→loss_short_step_subdiv.power_analysis()/fra()の設定引数はキーワード専用 (options=...). 位置引数での指定は不可.FraOptions,PowerAnalysisOptionsは frozen. インスタンス生成後の属性代入は不可.set_parameter()はパラメーター名不正時にValueErrorを送出 (シンボル不正時は従来通りRuntimeError).add_output()のRuntimeErrorに有効な出力候補のヒントを埋め込み.- 解析 (
transient_analysis()/steady_state_analysis()/power_analysis()) 中にシミュレーションエラーが発生するとSimulationErrorを送出する.with_error_handler()でハンドラを登録している場合は従来どおりエラーがコールバックへ通知され,SimulationErrorは送出されない.
削除¶
waveform_analysis()を削除.transient_analysis(time, analysis_mode=AnalysisMode.FULL)へ移行.AnalysisCondition.fet_crss,igbt_cresを削除. エンジン側で常に有効な扱いに変わり, 設定変更はできません.set_analysis_condition()のfet_crss,igbt_cres引数を削除.scideampy直下からPowerAnalysisModeを削除. 後継はSwitchingMode. 旧名で参照したい場合はfrom scideampy.legacy import PowerAnalysisModeを使用.Converter.enable_error_handler()/Converter.disable_error_handler()を削除. エラー通知は自動で有効になるため不要.
旧 API からの移行 (scideampy.legacy)¶
⚠️
scideampy.legacyは将来のメジャーバージョン (4.0) で削除予定です. 新規コードは 3.1 の本体 API を使用してください. 既存コードも順次移行を推奨します.
3.0 の API の大部分は scideampy.legacy に凍結されています. import パスの書き換えで従来通り動作します.
# 3.0
from scideampy import Converter, PowerAnalysisMode
# 3.1 で 3.0 の挙動を維持する場合
from scideampy.legacy import Converter, PowerAnalysisMode
legacy に残っている 3.0 API:
Converter.transient_analysis(time)(mode 引数なし)Converter.waveform_analysis(time, for_detail_switch=False, ...)Converter.update_parameter()Converter.power_analysis(mode=PowerAnalysisMode.DETAIL, base_sw=..., ...)(旧シグネチャ)Converter.set_analysis_condition(divta=..., divtw=..., fctta=..., divtprf=..., divtmdl=..., ...)(旧引数名)AnalysisCondition.divta/divtw/fctta/divtprf/divtmdl(旧プロパティ名)PowerAnalysisMode(SwitchingModeのエイリアス)
legacy でも復元できない変更 (3.1 挙動になる):
AnalysisCondition.fet_crss,igbt_cresは削除済み. エンジン側で常に有効な扱いに変わり, 設定変更もできなくなりました. legacy 版でも参照できません.set_analysis_condition(fet_crss=..., igbt_cres=...)も同様に削除済み.
新 API との併用について:
段階的な移行のために, 同じスクリプト内で本体 API と legacy を併用することもできます. 判断基準は以下です.
- ✅ 共通シンボルは混ぜて OK:
OutputType,NodeLockKey,LicenseType,Loss,LossNode,Error,FraOptions,Param,Params,ParamsEncoder,timeout_quitなどはscideampy/scideampy.legacyのどちらから import しても同じオブジェクトです. 両方から import しても問題ありません. - ❌ 同じ
Converterインスタンスに両方の API を混ぜるのは不可:scideampy.legacy.Converterのインスタンスに新 API メソッド (carry_over_state()など) を呼ぶとAttributeError, 新引数 (analysis_mode=...など) を渡すとTypeErrorになります. 逆も同様.