LTspiceを使ってみよう - パラメトリック解析で指定した定数のみを使いたい!

今回は、.funcコマンドを使って、指定した定数のみを使ってパラメトリック解析を効率的に実施する方法を紹介します。

.step paramを使ったパラメトリック解析の基礎は、「.step」でパラメーターを変化させてみよう! の記事を参考にしてください。

 

もしLTspiceを今から始められる方でしたら、以下の一覧から「基本編」を見ることをお勧めします。 

LTspiceを使ってみようシリーズ 一覧はこちら


また、基本的な回路の書き方から実行方法までを動画で見たいという方がいましたら、個人情報入力不要のオンデマンドセミナーがありますので、ご興味がありましたらぜひご覧ください。セミナーの詳細資料に関してもアンケートご記入の方に提供しています。

LTspice オンデマンド セミナー ~ RC回路で機能確認 ~

パラメトリック解析について

LTspiceにおいて、「.step param」コマンドを使って複数のパラメーターを変更しながらシミュレーションするケースがあると思います。

つぎのような設定をすると、総当たりで4通りのシミュレーションを実行します。

step param A list A1 A2
step param B list B1 B2
Step 1; A1 B1
Step 2; A1 B2
Step 3; A2 B1
Step 4; A2 B2

実際に.step paramを使ってシミュレーションを実行

実際にRC回路で、.step paramコマンドを使ってシミュレーションしてみます。

図1の様に、抵抗(RES)を10k 20kと条件を設定し、コンデンサー(CAP)を 1u 3uと条件設定しシミュレーション用のRC回路を作成します。

 

図1:.step paramコマンドを使用したRC回路


図1の回路の様に、抵抗を2パターン、コンデンサーを2パターン設定してシミュレーションを実行した結果が図2の様になります。

 

図2:.step paramを使ったRC回路シミュレーション結果

 2x2パターンで合計4通りの結果が得られています。

表1の特定の2つの組み合わせのシミュレーション結果が欲しい場合は、どうしたら良いでしょうか?.step paramコマンドのみで実施する場合は、4回シミュレーションを実施して、必要な条件のみ結果を抜き出す必要があります。RC回路なのでシミュレーション時間も短く4回実施することも気になりません。

 

しかし、スイッチングレギュレーターが複数入っている様な回路を検討した場合、4通りのシミュレーションを実行するには結構な時間がかかります。2つの条件のみ実施する方法が知りたくなりますね。

配列パターンのシミュレーションや任意のパラメーターを選んで実行するコマンドがあると特定条件のみ選択してシミュレーションが実行できますが・・・

 

表1:シミュレーション条件

.funcコマンドを使ってシミュレーションする

残念ながら、実際に配列パターンのシミュレーションを実行するコマンドや複数のパラメーターをペアで選ぶ関数はありません。

しかし、図3ような.funcを使用した回路図を書いて実行することで、表1の2つの条件についてのみシミュレーションできます。



図3:.funcを使用したパラメトリック解析回路

ここからは、回路図中に記載したSPICEコマンドについて解説していきます。

 

「.func」というコマンドは、自由に関数を定義できます。

ここでは関数の名称を「box」としています。引数としては最初に要素番号「x」をいれて、その後に使いたい分だけパラメーターを設定します(ここではP0とP1の2個)。

 

ファンクションの中は、「buf」関数を使っています。

「buf」関数の中身は、カッコの中が成立していれば「True」を返して、成立していなければ「FALSE」を返すものです。

「True」のときは「1」を返して、「FALSE」のときは「0」を返すので、その関数とパラメーターを掛け算したものを、足していきます。そうすると、「x」をインクリメントしていけば、「x」に対応したパラメーターが選ばれていき、選ばれなかったパラメーターは削除されます。

 

.func box(x, p0, p1) {buf(x==0)*p0+buf(x==1)*p1}

 

次に、パラメーターをどうやって選んでいくかですが、「.param」で使いたい変数を指定してあげて、「.func」で定義した関数に沿った形で、入力したい値をいれていきます。なお、box()の冒頭の「x」は「.func」で定義した引数ですので、必ず入力してください。

 

.param RES=box(x, 10k, 20k)

.param CAP=box(x, 1u, 3u)

 

次に、「.step param」をつかって「x」をインクリメントしていきます。この場合「x」を「0」と「1」の2つを選択していくわけですが、結果として「x」を引数として指定された値が、パラメーターに入っていきます。

 

 

.step param x list 0 1

 

そして、これらのコマンドを含んだ回路図を実行すると、表1で指定した2つの条件のみの出力が次の様に得られます(図4)。

図4:.funcを使用したシミュレーション結果

おすすめ記事/資料はこちら

記事一覧:LTspiceを使ってみようシリーズ 

LTspice  FAQ :  FAQ リスト

技術記事一覧  :  技術記事

メーカー紹介ページ  :  アナログデバイセズ社  

おすすめセミナー/ワークショップはこちら

アナログ技術セミナー情報はこちら

お問い合わせ

本記事に関して、ご質問などありましたら以下よりお問い合わせください。

アナログ・デバイセズ メーカー情報Topへ

アナログ・デバイセズ メーカー情報Topページへ戻りたい方は、以下をクリックください。