Main Content

電子回路の線形化

この例では、非線形バイポーラ トランジスタ回路のモデルを線形化し、小信号の周波数領域解析に使用できるボード線図を作成する方法を説明します。

使用できるソフトウェアに合わせて、この例の該当する節を使用して各種の線形化手法と解析手法を調べてください。

モデルの探求

非線形バイポーラ トランジスタのモデル例を開くには、以下を入力します。

openExample('simscape/NonlinearBipolarTransistorExample')

モデルはトランジスタを 1 つ備えたオーディオ アンプを表します。トランジスタは NPN バイポーラ デバイスであり、そのために非線形の電流と電圧の特性の組をもちます。このため、アンプ全体の動作は、トランジスタの操作点に依存します。トランジスタ自体は、マスク サブシステムを使用して実装した Ebers-Moll 等価回路で表されます。回路の正弦波入力テスト信号の振幅は 10 mV、周波数は 1 kHz です。Load Voltage スコープは、出力デカップリング コンデンサが DC を除去した後に得られるコレクター出力電圧を表示します。

R1 と R2 は標準操作点を設定し、比率 R3/R4 によって小信号増幅率が近似的に設定されます。デカップリング コンデンサ C1 と C2 の静電容量は 1 uF で、1 kHz で無視できるインピーダンスを表すために使用されます。

線形化向けにモデルが構成されます。モデルの注釈で Linearize circuit ハイパーリンクをクリックすると、小信号周波数応答をすばやく生成し、表示することができます。周波数応答を生成する MATLAB® スクリプトを表示するには、その次に注釈で示されたハイパーリンク see code をクリックします。このドキュメンテーションでは、予備知識と、お持ちのソフトウェアに応じた線形化の代替方法を説明します。

通常、自明でない線形化入出力モデルを取得して周波数応答を生成するには、モデルレベルの入力と出力を指定しなければなりません。非線形バイポーラ トランジスタ モデルは、線形化の方法に応じて 2 とおりの方法でこの要件を満たします。

  • Simulink®linmod を使用して線形化を行うには、最上位またはモデルレベルで入力端子と出力端子が必要です。非線形バイポーラ トランジスタ モデルにはそれらの端子があり、uy のマークが付いています。

  • Simulink Control Design™ ソフトウェアでは、線形化ポイントを用いて入力および出力信号線を指定する必要があります。指定される信号線は Simscape™ の物理的接続線ではなく、Simulink の信号線でなければなりません。非線形バイポーラ トランジスタ モデルには、そのような線形化ポイントが指定されています。Simulink Control Design ソフトウェアによる平衡化と線形化の詳細については、その製品のドキュメンテーションを参照してください。

Solver Configuration ブロックを開き、[定常状態からシミュレーションを開始] チェック ボックスがオンであることを確認します。次に Load Voltage スコープを開き、シミュレーションを実行して基本的な回路の動作を確認します。接合型トランジスタのコンデンサの初期電圧は、抵抗で定義されるバイアス条件と一致するように設定されます。出力は平均が 0 の定常正弦波で、振幅はトランジスタとバイアス回路により増幅されます。

非定常初期状態からの回路の平衡化を確認するには、Solver Configuration ブロックの [定常状態からシミュレーションを開始] チェック ボックスをオフにし、[適用] をクリックします。Load Voltage スコープを開いたまま、再度シミュレーションを実行します。この場合、接合型トランジスタのコンデンサ電荷は初期値が 0 のため、出力電圧の初期値も 0 になります。

長時間の過渡シミュレーションにより、回路の動作と、回路がどのようにして定常状態に至るかをより包括的に理解することができます。シミュレーション時間を 1 秒に増加し、シミュレーションを再実行します。回路は初期の非定常状態から動作を開始し、トランジスタのコレクター電圧は定常正弦波振動に近づき、最終的に定常正弦波振動に落ち着きます。

Solver Configuration ブロックを開き、[定常状態からシミュレーションを開始] チェック ボックスをオンにして (モデルを最初に開いたときと同じ状態)、[適用] をクリックします。シミュレーション時間を 0.01 秒に戻し、シミュレーションを再実行します。

定常状態ソルバーと関数 linmod による線形化

この例では、次の作業を行います。

  1. Simscape 定常状態ソルバーを使用して、操作点を見つける。

  2. Simulink の関数 linmod を使用してモデルを線形化する。

  3. 一連の MATLAB コマンドを使用してボード線図を生成する。

Solver Configuration ブロックを開き、[定常状態からシミュレーションを開始] チェック ボックスがオンであることを確認します。Simscape 定常状態ソルバーを有効にしてモデルのシミュレーションを実行すると、トランジスタのバイアス抵抗で定義される状態で回路が初期化されます。この定常状態の解は、線形化に適した操作点です。

メモ

また、[ローカル ソルバーを使用] チェック ボックスがオフであることを確認します。ローカル ソルバーが有効になっている状態でのモデルの線形化はサポートされていません。

モデルを線形化するには、次のように入力します。

[a,b,c,d]=linmod('NonlinearBipolarTransistor');

別の方法として、出力引数を 1 つ指定して関数 linmod を呼び出すことができます。この場合、状態、入力、出力をもつ構造体と、LTI (線形時不変) モデルが生成されます。

非線形バイポーラ トランジスタ モデルの状態ベクトルには成分が 11 個あります。完全なモデルには 1 つの入力と 1 つの出力があります。そのため、線形化から導出された LTI 状態空間モデルの行列のサイズは、次のようになります。

  • a: 11 行 11 列

  • b: 11 行 1 列

  • c: 1 行 11 列

  • d: 1 行 1 列

ボード線図を生成するには、MATLAB コマンド ウィンドウに次のように入力します。

npts = 100; f = logspace(-2,10,npts); G = zeros(1,npts);
for i=1:npts                                                       
    G(i) = c*(2*pi*1i*f(i)*eye(size(a))-a)^-1*b +d;                
end
subplot(211), semilogx(f,20*log10(abs(G)))                         
grid                                                               
ylabel('Magnitude (dB)')                                           
subplot(212), semilogx(f,180/pi*unwrap(angle(G)))                  
ylabel('Phase (degrees)')                                          
xlabel('Frequency (Hz)')                                           
grid  

Simulink Control Design ソフトウェアによる線形化

メモ

この節での作業を行うには Simulink Control Design のライセンスがなければなりません。

Simulink Control Design ソフトウェアは操作点の検出に役立つツールを備えており、状態名を定義する状態空間モデル オブジェクトを返します。Simscape モデルの線形化には、この方法を推奨します。

  1. 非線形バイポーラ トランジスタのモデル ウィンドウの Simulink ツールストリップで、[アプリ] タブの [制御システム] の下の [モデル線形化器] をクリックします。

  2. [モデル線形化器] ウィンドウの [線形解析] タブで、[ボード線図] プロット ボタンをクリックします。

Simulink Control Design ソフトウェアによる平衡化と線形化の詳細については、Simulink Control Design ドキュメンテーションを参照してください。

ボード解析での Control System Toolbox ソフトウェアの使用

メモ

この節での作業を行うには Control System Toolbox™ のライセンスが必要です。

Control System Toolbox ソフトウェアに組み込まれている解析とプロットの機能を使用すると、異なる定常状態のボード線図を解析し比較することができます。

はじめに、Simulink の関数 linmod を使用して、LTI (線形時不変) モデルを取得します。

[a,b,c,d]=linmod('NonlinearBipolarTransistor');

この例で導出される LTI モデルの状態のすべてが独立しているわけではありません。a 行列の行列式 det(a) を計算して、これを確認してください。これらの行列式は 0 になり、1 つ以上の固有値が 0 であることを示します。LTI モデルを解析するには、LTI 行列を最小実現に低次元化します。最小実現を取得するには、関数 minreal を使用します。

[a0,b0,c0,d0] = minreal(a,b,c,d);
7 states removed.

最小実現を抽出すると、7 つの従属状態が LTI モデルから削除され、4 つの独立状態が残ります。低次元化した a0b0c0d0 の LTI モデルの制御特性をボード線図で解析します。

bode(a0,b0,c0,d0) % Creates first Bode plot

R1 が 47 kΩ から 15 kΩ に変更されている回路では、定常状態と応答が異なっています。R1 ブロックをダブルクリックし、[抵抗] の値を 15 kΩ に変更して [適用] をクリックします。Load Voltage スコープを開き、モデルのシミュレーションを実行します。コレクター電圧は 10 mV AC 電源に対して増幅されなくなり、減衰されるようになります。

2 番目の定常状態にある LTI モデルを生成し、最小実現に低次元化して、2 番目のボード線図を 1 番目のボード線図に重ね合わせます。

[a_R1,b_R1,c_R1,d_R1]=linmod('NonlinearBipolarTransistor');
[a0_R1,b0_R1,c0_R1,d0_R1] = minreal(a_R1,b_R1,c_R1,d_R1); % 7 states removed.
hold on % Keeps first Bode plot open
bode(a0_R1,b0_R1,c0_R1,d0_R1) % Superposes second Bode plot on first

ボード解析での Control System Toolbox ソフトウェア使用の詳細については、Control System Toolbox ドキュメンテーションを参照してください。

関連する例

詳細