コンテンツにスキップ

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 を追加.
  • Converterpart_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() の引数をリネーム: divtadamped_step_subdiv, divtwsine_step_subdiv, fcttastep_repetition_factor, divtprfloss_long_step_subdiv, divtmdlloss_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 になります. 逆も同様.