非線形素子の作成

スクリプトを使って作成する

スクリプトを使用し、条件によって素子パラメータを変化するように設定することで、
非線形な変化を行う素子を模擬することができます。

スクリプトを使用することで次のような直流重畳特性を持つ Inductor(インダクタ)を模擬することができます。

fig

なお、近似式はExcelの機能を使用して算出しています。

近似式を使用する

近似式を直接スクリプトに記載することで非線形素子を模擬します。
スクリプトは以下のように記載し、Inductor Lの値を変更します。

    /* Lにかかる電流を取得 */
    I = output("L","I","AVE");
    /* Lの直流重畳特性から求めた近似式を使ってインダクタンスを導出 */
    Inductance = 0.0000001861 * pow(I,3) - 0.0000014119 * pow(I,2) + 0.0000001044 * I + 0.0000237024;
    /* setparam関数を使用して、Lのインダクタンス値を更新 */
    setparam("L","value",Inductance);

    /* Inductanceを出力変数とする */
    setoutvar(Inductance);    

Lockup Tableと機能関数tableを使用する

非線形特性を ルックアップテーブル で定義し機能関数 tableで呼び出すことで非線形素子を模擬します。

ルックアップテーブルの作成手順

  1. ファイルメニューの新規作成から ルックアップテーブルを作成し、Nameをnonlinearに変更します。
  2. 図のようにデータを作成し、保存します。 fig2 ※各値は直流重畳特性の代表点としています。

  3. コンフィグエディタLookup Tableメニューで保存したルックアップテーブルファイルを登録します。

ルックアップテーブルの呼び出し

次にスクリプトにて上記で作成したテーブルを呼び出します。
テーブルの呼び出しは機能関数 table(テーブル名,xの値)で行います。

    /* Lにかかる電流を取得 */
    I = output("L","I","AVE");
    /* 作成したテーブルを使用してインダクタンスを導出 */
    Inductance = table("nonlinear",I);
    /* setparam関数を使用して、Lのインダクタンス値を更新 */
    setparam("L","value",Inductance);

    /* Inductanceを出力変数とする */
    setoutvar(Inductance);