機能関数の使用方法
機能関数の用途について
機能関数や予約定数を使用することで、スクリプト上で以下のことが実現できます。
- シミュレーション時間の読み取り
- メイン周波数、サブ周波数の読み取りと書き込み
- 素子のパラメータの読み取りと書き込み
- 解析中の電圧値、電流値などの出力変数の読み取り
- スクリプト中の変数をチャートに出力する
- 別のスクリプトファイルの変数の読み取りと書き込み
- ルックアップテーブルの読み取り
シミュレーション時間の参照
シミュレーション時間は予約定数t
を使用して直接参照することができます。
名称 | パラメータ名 | Read | Write |
---|---|---|---|
シミュレーション時間 | t | 〇 | - |
シミュレーション時間の読み取り
// シミュレーション時間が5[msec]をこえたらiをインクリメントする
if (t > 0.005)
{
i++;
}
周波数の参照・設定
メイン周波数、メイン周期、サブ周波数、サブ周波数の初期時間は、param("sym", "par")
関数を使用して読み取り、setparam("sym", "par", value)
関数を使用して書き込みます。
メイン周波数・メイン周期
メイン周波数とメイン周期はシンボル名をFs
とTs
として定義されており、パラメータは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
を指定します。
名称 | 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");
サブ周波数のTiniを変更する場合の注意点
サブ周波数の初期時間をsetparam
で変更する場合、setparam
実行時点ではなく、メイン周期の終了時に更新されます。
素子パラメータの参照・設定
素子のパラメータは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);

ファイル間の変数の参照と設定
別のスクリプトファイルの変数を読み取り、書き込みを行うには、var("sym", "var")
関数、setvar("sym", "var", value)
関数を使用します。
第一引数はスクリプトファイルのシンボル名を指定します。シンボル名はスクリプトファイルの登録画面で確認できます。
第二引数は対象の変数名を指定します。
別ファイルの変数の読み取り・書き込み
シンボル名の参照
シンボル名はコンフィグエディタのScript
メニューで確認。
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関数で設定した値が出力されます。
ルックアップテーブルの参照
ルックアップテーブルを読み取るにはtable("sym",xvalue)
関数を使用します。
第一引数はルックアップテーブルのシンボル名を指定します。
第二引数はルックアップテーブルの入力値(Inputs
)を指定します。
ルックアップテーブルの読み取り
シンボル名がtable1
のルックアップテーブルの入力値1,3,5の値を読み取って、タイムチャートに出力します。
ルックアップテーブル
スクリプトファイル
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
が出力されることが確認できます。