ノード電圧やインダクタ電流の初期値を設定する.icコマンドについて説明します。
『.icコマンド』とは
『.icコマンド』とは、『tran解析(Transient解析、トランジェント解析、過渡解析とも呼ばれています)』において、ノード電圧やインダクタ電流の初期値を設定するコマンドです。
『.icコマンド』の構文
.ic <V(ノード名1)>=<初期値> [<V(ノード名2)>=<初期値>]
インダクタ電流の初期値を指定する場合
.ic <I(部品名1)>=<初期値> [<I(部品名2)>=<初期値>]
構文において「<」と「>」で囲まれたパラメータは省略できません。また、「[」と「]」で囲まれたパラメータは省略できます。
『.icコマンド』のコマンド例
→ノードCOUTの初期電圧を0Vに設定する。
.ic I(LOUT)=0
→インダクタLOUTの初期電流を0Aに設定する。
.ic V(COUT)=0 I(LOUT)=0
→ノードCOUTの初期電圧を0Vに、インダクタLOUTの初期電流を0Aに設定する。
『.icコマンド』の記述方法
『.icコマンド』は[SPICE Directive]で記述します。
ツールバーの[SPICE Directive]をクリックする(または、回路図ウィンドウ上で「S」を押す)と、[Edit Text on the Schematic]が表示されます。チェックが[SPICE directive]になっていることを確認して、例えば、『.ic V(COUT)=0』と入力します。OKボタンを押すと、回路図ウィンドウ上に『.ic V(COUT) =0』が表示されます。
なお一度、『.ic』と記述した後に、右クリックを押すと、『.ic Statement Editor』が表示されます。そこにV(ノード名)orI(部品名)と初期値を記入すると、自動的にコマンドが作成されます。
『.icコマンド』を使用したシミュレーション例
一例として、RC積分回路とRL微分回路に電圧源を接続したシミュレーション回路で『.icコマンド』について説明します。
RC積分回路ではコンデンサCOUTにかかる電圧が立ち上がる様子を、RL微分回路ではインダクタLOUTに流れる電流が立ち上がる様子を観測します。まず、『.icコマンド』を使用せず、初期値を設定しない場合におけるシミュレーションをしてみます。
『.icコマンド』を使用せず、初期値を設定しない場合
シミュレーション回路上には、『.ic V(COUT)=0』と『.ic I(LOUT)=0』を記載していますが、コメントアウトしています(『.icコマンド』を右クリックした際に表示される[Edit Text on the Schematic]でチェックを[Comment]にするか、セミコロンを行頭に記述すると、コメントアウトできます)。
初期値を設定しない場合、シミュレーションは回路の安定点から始まります(例えば、コンデンサの充電後など)。
そのため、ノードCOUTの電圧V(COUT)が立ち上がる様子、インダクタLOUTに流れる電流I(LOUT)が立ち上がる様子を観測することができません。
『.icコマンド』で初期値の設定をした場合
『.ic V(COUT)=0』でノードCOUTの初期電圧を0Vに、『.ic I(LOUT)=0』でインダクタLOUTの初期電流を0Aに設定しています。
シミュレーション結果をみると、ノードCOUTの電圧V(COUT)は0Vから立ち上がり、インダクタLOUTに流れる電流I(LOUT)は0Aから立ち上がっていることが確認できます。
『.icコマンド』のUICオプション有無による動作の違い
『.icコマンド』は『.tranコマンド』のUIC(Use-Initial-Condition)オプションの有無によって動作が変わります。
UICオプションは『.tranコマンド』を右クリックした時に表示される[Edit Simulation Command]で”Skip initial operating point solution”にチェックをするか、コマンドに直接”uic”と記述することでUICオプションが有効になります。
UICオプションがある場合
UICオプションがある場合、『.tran解析』におけるノード電圧の初期値は、シミュレーション開始時、デフォルトで与えられている部品の初期値(0V)となり、その後、『.icコマンド』で設定した初期値になります。
一例として、『.ic V(COUT)=5』でノードCOUTの初期電圧を5V に設定します。一方、デフォルトで与えられている部品の初期値は、コンデンサCOUTが0Vです。
シミュレーション結果をみると、ノードCOUTの電圧は0Vから始まり、その後、『.icコマンド』で設定した5Vになっていることが確認できます。
UICオプションがない場合
『.tran解析』におけるノード電圧やインダクタ電流の初期値は、『.icコマンド』で設定した初期値になります。
一例として、『.ic V(COUT)=5』でノードCOUTの初期電圧を5V に、『.ic I(LOUT)=5m』でインダクタLOUTの初期電流を5mAに設定します。
シミュレーション結果をみると、ノードCOUTの電圧は5Vから始まり、インダクタLOUTの電流は5mAから始まっていることが確認できます。
『.icコマンド』でインダクタ以外の素子の初期電流を設定した場合
『.icコマンド』では、インダクタに流れる電流の初期値を設定可能ですが、インダクタ以外の素子の電流の初期値は設定することができません。インダクタ以外の素子の初期電流を設定しようとするとエラーメッセージが表示されます。上図では、抵抗RLに流れる電流の初期値を0Aに使用として、『.ic I(RL)=0』と記述していますが、シミュレーション実行時にエラーメッセージが表示されています。
【その他】『.icコマンド』ではなく『startupオプション』で立ち上がりを再現する
『.tranコマンド』のstartupオプションでもノード電圧やインダクタ電流の立ち上がりを再現することができます。
startupオプションは『.tranコマンド』を右クリックした時に表示される[Edit Simulation Command]で”Start external DC supply voltages at 0V”にチェックをするか、コマンドに直接”startup”と記述することでstartupオプションが有効になります。
startupオプションを有効にすると、電圧源(or電流源)はシミュレーション開始時0sは0V(or0A)からスタートし、20usで設定した電圧(or電流)まで増加します。下図にシミュレーション結果を示します。
このシミュレーションでは電圧源V1およびV2の電圧値を10Vにしています。この場合、電圧源V1およびV2の電圧値はシミュレーション開始時0Vであり、20usの時に10Vとなるように線形増加します。電圧源が0Vから開始するため、『.icコマンド』を使用せずに、ノードCOUTの電圧V(COUT)は0Vから立ち上がり、インダクタLOUTに流れる電流I(LOUT)は0Aから立ち上がることができます。
ただし、『startupオプション』では、『.ic V(COUT)=5』のような初期値が0Vではない中途半端な電圧値を設定することはできないので注意してください。