自動制御web講座

2. シミュレーション

line

2.2. 制御系のシミュレーション


2.2.6. 定値制御 図 1-6

2.2.6.(1) リ ス ト

◆ fg1_6.cir ファイルをリスト 2-2-5 に示します。

リスト 2-2-5 定値制御 fg1_6.cir

定値制御 fg1_6.cir


2.2.6.(2) コマンド .STEP

◆ .STEPコマンドは、1回の SPICE 演算で、変数の値を切り替えて、複数の解析を行うコマンドです。ケーススタディでは、このような繰り返しを行うことが多いので、便利なコマンドです。
切り替える変数の値を、.STEPコマンドで指定します。これらの結果は、同一の *.dat ファイルに書き出されますから、1 つの PROBE画面に表示することができます。
.STEP コマンドの書式はいくつかありますが、ここで使用する書式は、
   .STEP <スイープする変数名> LIST <値>*
   ( < > は、必須   [ ] は、省略可能   *は、繰り返し可能)
です。なお、.STEP は、1つの回路ファイル内では、同時には一つしか使用できません。
変数名がパラメータの場合は、リストに示したように、
   PARAM <パラメータ名>
のように指定します。LIST の後に書く値は、昇順、または降順でなければなりません。
ここでは、.STEP で、1u 3 と指定しています。1u は、ゼロの代わりに、十分小さな値を使用したものです。すなわち、無制御の状態です。

2.2.6.(3) コマンド .PARAM

◆ 比例ゲイン KP の値は、サブサーキットを呼び出す XCNT デバイスの PARAMS: で定義されています。しかし、.STEP コマンドは、親回路で定義したパラメータでないと、使用できません。
そこで、.PRAM コマンドによって、KP を再定義しています。
.STEP コマンドを使用するときは、.PARAM コマンドで定義した値は無視されて、.STEPコマンドで指定した値が用いられます。しかし、.PARAMコマンドでの、値の記入を、省略することはできません。

[注] PSPICE のバグで、.STEP コマンドを使用したとき、.PAPAM コマンドでのパラメータの指定が無視されないで、LIST の最初の値に置き換わってしまうことが、稀に、あります。このときは、.PRAM コマンドを、LISTの最初の値に書き換えることが必要です。

2.2.6.(4) 比例ゲイン KP の値について

◆ 比例ゲイン KP の値をゼロにすることによって、無制御の状態を作ることができます。比例ゲイン KP の値は、真にゼロにすることができます。しかし、ゼロにする、とラプラス変換式にラプラス変換を示す S がなくなります。
このため、解析の演算ステップ幅が極端に短くなり、演算時間が異常に無くなってしまいます。これを防ぐために、ゼロの代わりに、十分小さな値として 1U を使用しています。

[コラム 2-2-3] 演算の誤差

★ ここで、シミュレーションの,誤差 について、考えてみましょう。シミュレーションは、ある条件の範囲内で、正当な結果を出します。
この範囲を超えて条件を設定すると、エラーになるか、シミュレーションが実行できたとしても、好ましくないことが起こります。

★ (4) の比例ゲイン KP = 0 は、解析の演算ステップ幅が極端に短くなるという、結果をもたらしました。この場合には、演算の精度には影響がありません。
しかし、場合によっては、演算結果に大きな誤差が発生することがあります。これは極めて重大な問題です。

★ シミュレーションの条件が所定の範囲を超えたために、大きな誤差が発生する可能性がある場合には、SPICE がエラーメッセージを発行する場合があります。
この、エラーメッセージは、演算開始または演算続行が不可能なために出す場合と、演算を終了してから出す場合とがあります。
★ しかし、後者の場合、エラーメッセージが出ても、実用上十分な精度を有する場合もあります。逆に、エラーメッセージが出ないのに、大きな誤差が発生していることもあります。
エラーメッセージだけに頼ることはできません。誤差が実用上差し支えない程度に収まっているかどうかを、ユーザ側で、見極める必要があります。
★ この見極めには、シミュレーションの技術ではなく、制御であれば制御自体に対する技術と経験が必要です。ここに、シミュレーションの難しさがあります。

★ なお、上記の問題は、シミュレーション自体の精度の問題です。実用上は、この他に、現実の現象を、うまくモデル化できているかどうかという問題が、さらに、加わります。



2.2.7. ディジタル制御 図 1-26図 1-27

2.2.7.(1) 概   要

◆ 図 1-26 および図 1-27 はディジタル制御です。ディジタル制御は、ディジタル演算です。アナログ演算ではありません。しかし、PSPICEを使用して、ディジタル制御を、シミュレートすることができます。
アナログ制御と同様に、ディジタル制御も、ラプラス変換を利用します。そして、ディジタル PID 制御も、サブサーキットになっています。
しかし、これらの内容は、主に、制御技術に属し、シミュレーションの問題は、多くありません。したがって、ここではディジタル制御の回路ファイルについての解説は行いません。
◆ 図 1-26 および図 1-27 は、ディジタル制御だけでなく、アナログ制御の波形と両方が入っています。すなわち、別の演算を、1 つの図にまとめてあります。これを実現する方法には、2 つのやり方があります。
     1つの回路ファイルの中に、独立した複数の回路を構成する方法。
     別々の回路ファイルで作成して、画面を合成する方法。
最初の方法の、簡便なやり方は、すでに、2.1.6.(1-A) で示しました。ここでは、後者の画面合成法を採用しています。これについて解説します。

2.2.7.(2) PROBE画面の合成

◆ PSPICE では、互いに回路構成が異なる、複数の回路ファイルの演算結果を、PROBE 画面で合成して、表示することができます。
回路ファイルは、ディジタル制御が、fg1_26d.cir と fg1_27cir です。このそれぞれに、比較のためのアナログ制御 fg1_26a.cir を合成しています。

PROBE 画面の合成の方法を説明します。fg1_26d.cir と fg1_26a の合成を例に説明します。
先ず、どちらか一方、たとえば fg26a.cir を実行して、予めデータファイル fg26a.dat を作成しておきます。
次に他方、この例では fg1_26d.cir を実行して、所定の PROBE 画面を作ります。この PROBE 画面が表示された状態で、Append File (下図の矢印)をダブルクリックします。

PROBE画面 (APPEND FILE)

◆ 左端の普通の File オープンであれば、現在の画面が消えて新しい PROBE 画面になります。この Append File のオープンでは、現在の画面はそのままで、そこに新たな PROBE 画面が追加されます。
もし追加される画面が、既にオープンされているものと同一回路構成で、値だけが異なる場合には、直ちに新しい画面が追加されます。
しかし、この場合はアナログ制御とディジタル制御ですから、回路構成が異なっています。このときは、SKIP するかどうかを問い合わせてきます。SKIP しない方を選択します。
画面が合成されたとき、回路構成が異なっていても、同じ変数名やノード名のものは、同じ変数やノードとして、表示されます。
◆ この例では、目標値 SP と制御変数 PV とは、アナログ制御とディジタル制御で、同じ名称になっています。したがって、画面上は、同じ変数として表示されます。
なお、予め両方とも *.dat ファイルを作っておいてから、PROBE を呼び出して、合成を行うこともできます。このときも、最初は File オープン、次に Append File オープンを実行します。

2.2.8. I動作単独の制御応答 図 1-33

2.2.8.(1) 概   要

◆ I 動作単独の制御は、ほとんど使用されませんから、サブサーキットは作ってありません。
これも、比較のために PI 動作と画面合成してあります。この画面合成の方法は、同一回路ファイルに、両方の回路を入れた方式です。

2.2.8.(2) 複数の解析を行う

◆ 2.1のテスト回路-2 でも、一つの回路ファイル内に独立した複数の回路を作っています。このやり方でも、画面を合成することができます。しかし使いやすい方法ではありません。
ここに示す方法は、もっと便利な機能を持っています (図 2-2-7)。

[図 2-2-7] 便利な機能を持つ方式

画面合成のもう一つの方法

◆ ファイルとしては一つの回路ファイルですが、その中に、.TRAN ( AC 解析のときは .AC )による解析が複数入っています。
SPICEは、それぞれの解析を、独立の回路ファイルとみなして解析を行います。解析が異なれば、同じ変数名やノード名を使用することができ、混同されることは、ありません。

しかし、形式上は一つの回路ファイルですから、生成される *.datファイルは一つです。したがって、1 発で、PROBE 画面をオープンすることができます。
このときも、PROBE 画面を表示させるときに、互いの回路ファイルの回路構成が異なると、SKIPするかどうかを問い合わせてきます。

2.2.8.(2-A) STEP機能の拡張

◆ この方式は、機能を拡張できると言う点でも便利です。
各解析を基本的には同じ構成とし、解析毎に構成を若干変えれば、単なる .STEP コマンドでは得られない、高度な .STEP 機能として利用できます。
また、.STEP コマンドは同時には、1 つしか使えませんが、この方式では、各解析ごとに、1 つの .STEPコマンドを使用することができます。
したがって、解析数を n、各解析ごとの.STEP のステップ数を m とすれは、1 回の演算で、n×m のケーススタディを行うことが可能です。

2.2.8.(2-B) 解析演算のスキップ

◆ この方式では、元の SPICE の解析演算を、解析単位でスキップさせることができます。スキップさせたい解析の .TRAN コマンドだけを、コメント * を利用して消します。
他の行をそのまま残しておいてもエラーにはなりません。

[注1] 回路ファイルの最後の .END コマンドの後に空行があるときは、解析演算を行うと、「この回路にはデバイスが存在しない」という警告が出ます。
これは、最後の .END コマンドの後の空行を、回路ファイルとみなし、この回路にはデバイスがないと言っているのです。
したがって、各ブロックの演算は正常に実行されています。
[注2] PSPICE のバグで、正常なのにエラーメッセージが出る場合があります。正常に動作するブロックを、コメント * を使用して消して、他のブロックの演算を行ったとき、その消したブロックが異常であるという、エラーメッセージが出ることがあります。
エラーメッセージが出ても、演算させたブロックは、正常に演算を行います。したがって、実害は、ありません。

[コラム 2-2-4] エラーメッセージと *.outファイル

★ SPICE は、回路ファイルにエラーがあるなどの異常を発見すると、エラーメッセージを出します。このエラーメッセージは、エラーが発生したときに作成される *.MVLファイルで、シミュレータの Message Viewer に表示されます。

_
エラーメッセージ

★ このエラーメッセージには、解析演算が不可能な重大エラー (赤印の ERROR) と、解析演算は行なうが「問題がある」といった軽度なもの (黄印のWARNING) があります。中には、本文(2-B) の [注] のように全く問題がないものもあります。
★ このエラーメッセージを見て、エラー発生の場所とエラーの内容を判定します。そして、必要なら回路ファイルを修正して、再度解析を試みます。

2.1.6.(2-B-a)で表示されたエラーメッセージは、Node IN1 is floating」のように表示され、エラー発生の場所もエラーの内容も明確に示したメッセージでした。
しかし、これはむしろ例外です。エラーメッセージを見ても、どこがエラーなのか、何がどのように間違っているのかが、よく分からないエラーメッセージの方が、むしろ普通です。
★ たとえば、「Missing value」というエラーメッセージがあります。エラーの内容は分かりますが、どこがエラーなのかは全く分かりません。
★ このようなとき、*.out ファイルを見ます。*.out ファイルは、SPICE解析演算の結果を、収容したファイルです。通常は、このファイルを見る必要はありません。しかし、ここには *.MVL ファイルよりも、詳しいエラー情報が含まれています。

★  *.out ファイルには、*.cir ファイルのコピーが入っています。そして、エラーが発生したときは、この *.cir ファイルのエラー発生の該当個所に、エラーメッセージが表示されます。
したがって、エラーの発生個所を、特定することができます。 ただし、メッセージの内容は *.MVL ファイルと大差ありません。何がどのように間違っているのかは、*.out ファイルを見ても、依然としてよく分からないことも、多いのです。

★ そもそも、シミュレータが、全てのエラーを発見できるとは限りません。また、エラーを検出できたとしても、その原因を全て正しく推定できるものでは、ありません。
エラーメッセージを100% 信用することはできません。しかし、とは言っても、エラーメッセージが唯一の頼りです。



目次に戻る   前に戻る   次に進む