機能関数の使用方法

機能関数の用途について

機能関数や予約定数を使用することで、スクリプト上で以下のことが実現できます。

  • シミュレーション時間の読み取り
  • メイン周波数、サブ周波数の読み取りと書き込み
  • 素子のパラメータの読み取りと書き込み
  • 解析中の電圧値、電流値などの出力変数の読み取り
  • スクリプト中の変数をチャートに出力する
  • 別のスクリプトファイルの変数の読み取りと書き込み
  • ルックアップテーブルの読み取り

シミュレーション時間の参照

シミュレーション時間は予約定数tを使用して直接参照することができます。

名称 パラメータ名 Read Write
シミュレーション時間 t -

シミュレーション時間の読み取り

// シミュレーション時間が5[msec]をこえたらiをインクリメントする
if (t > 0.005)
{
    i++;
}

周波数の参照・設定

メイン周波数、メイン周期、サブ周波数、サブ周波数の初期時間は、param("sym", "par")関数を使用して読み取り、setparam("sym", "par", value)関数を使用して書き込みます。

メイン周波数・メイン周期
メイン周波数とメイン周期はシンボル名をFsTsとして定義されており、パラメータはValueを指定します。

名称 sym par Read Write
メイン周波数 Fs Value
メイン周期 Ts Value

メイン周波数とメイン周期の読み取り・書き込み

// メイン周波数を100kに設定する
setparam("Fs", "Value", 100000);

// メイン周期を取得する ⇒ mainPeriodに10uが格納される
mainPeriod = param("Ts", "Value");

// メイン周期を20µに設定する
setparam("Ts", "Value", 2e-5);

// メイン周期を取得する ⇒ mainFreqに50kが格納される
mainFreq = param("Fs", "Value");

サブ周波数
サブ周波数のシンボル名はコンフィグエディタで登録した名前を指定します。
サブ周波数にアクセスする場合はパラメータにFreqを指定します。初期時間にアクセスする場合は、パラメータにTiniを指定します。

fig

名称 sym par Read Write
サブ周波数 シンボル名 Freq
サブ周波数の初期時間 シンボル名 Tini

サブ周波数の読み取り・書き込み

// サブ周波数を100kに設定する
setparam("SubFreq", "Freq", 100000);

// サブ周波数を取得する
subFreq = param("SubFreq", "Freq");

// サブ周波数の初期時間を設定する
setparam("SubFreq", "Tini", 1.667e-6);

// サブ周波数の初期時間を取得する
subFreqTini = param("SubFreq", "Tini");

サブ周波数の初期時間を変更する場合の注意点

サブ周波数の初期時間を変更する場合、メイン周波数とサブ周波数は同じ条件が想定されています。 メイン周波数とサブ周波数が異なる場合でサブ周波数の初期時間を変更する場合は、意図しない動作となる場合があります。


素子パラメータの参照・設定

素子のパラメータはparam("sym", "par")関数を使用して読み取り、setparam("sym", "par", value)関数を使用して書き込みます。
詳しくは素子パラメータの参照・設定ページを参照してください。


出力変数の参照

シミュレーション中の各素子の電圧値や電流値をスクリプト上で読み取るには、output("sym","type","mode")関数、やoutput("sym", "type", "mode", time)関数を使用します。
詳しくは出力変数の参照ページを参照してください。


変数をチャートに追加する

スクリプト上の変数を出力変数としてチャートに出力したい場合は、setoutvar(var)関数を使用します。
setoutvar(var)関数に指定した変数は、出力変数の選択ダイアログ上で選択することができます。

変数を出力変数に設定する

setoutvar関数に指定した変数はコンフィグエディタのoutputメニューで登録できます。

sample = 1;
test = 2;

setoutvar(sample);
setoutvar(test);
fig


ファイル間の変数の参照と設定

別のスクリプトファイルの変数を読み取り、書き込みを行うには、var("sym", "var")関数、setvar("sym", "var", value)関数を使用します。
第一引数はスクリプトファイルのシンボル名を指定します。シンボル名はスクリプトファイルの登録画面で確認できます。
第二引数は対象の変数名を指定します。

別ファイルの変数の読み取り・書き込み

シンボル名の参照
シンボル名はコンフィグエディタのScriptメニューで確認。 fig

NewScript1ファイル

/*
 * Name: NewScript1.sciprc
 */

// var1を初期化する
var1 = 0;

NewScript2ファイル

/*
 * Name: NewScript2.sciprc
 */

// NewScript1のvar1を2に設定する
setvar("NewScript1", "var1", 2);

// NewScript1のvar1を取得してvar2に格納する
var2 = var("NewScript1", "var1");

// var2をタイムチャートに出力して出力を確認する
setoutvar(var2);    

シミュレーション結果
setvar関数で設定した値が出力されます。
fig


ルックアップテーブルの参照

ルックアップテーブルを読み取るにはtable("sym",xvalue)関数を使用します。
第一引数はルックアップテーブルのシンボル名を指定します。
第二引数はルックアップテーブルの入力値(Inputs)を指定します。

ルックアップテーブルの読み取り

シンボル名がtable1のルックアップテーブルの入力値1,3,5の値を読み取って、タイムチャートに出力します。

ルックアップテーブル
fig

スクリプトファイル

t1 = table("Table1", 1);
t3 = table("Table1", 3);
t5 = table("Table1", 5);

setoutvar(t1);
setoutvar(t3);
setoutvar(t5);

シミュレーション結果
入力1,3,5に対応する値、1,4,1.8が出力されることが確認できます。
fig