Main Content

昇圧コンバーター モデルの LPV 近似

この例では、昇圧コンバーターの Simscape™ Electrical™ モデルについて、線形パラメーター変動 (LPV) 近似を取得する方法を説明します。LPV 表現により、さまざまな操作条件で迅速に平均的動作を解析することができます。

昇圧コンバーター モデル

昇圧コンバーター回路は、電圧源のチョッピングまたはスイッチング制御によって、ある DC 電圧を別の DC 電圧に変換します。特定の負荷電圧の要求は、トランジスタ デューティ比の対応する要件に変換されます。デューティ比の変調は、通常、スイッチング周波数より数桁も低速になります。そのため、次の図に示すように、比較的小さなリップルで平均電圧になります。

実際には、電源電圧 $V_{dc}$ および抵抗負荷 $R$ にも外乱は存在し、実際の負荷電圧 $V_{load}$ に影響します。

Simulink® モデルを開きます。

mdl = 'BoostConverterExampleModel';
open_system(mdl)

このモデルの回路の特徴は、高周波数のスイッチングにあります。このモデルは、25 ns のサンプル時間を使用します。モデルで使用される Boost Converter ブロックは、コンバーター ダイナミクスの 2 種類のバージョンを実装するバリアント サブシステムです。このモデルは、単一の入力としてデューティ比を取り、3 つの出力 (インダクターの電流、負荷電流、および負荷電圧) を生成します。

高周波数のスイッチング要素と短いサンプル時間のため、低速でシミュレーションが実行されます。

バッチ平衡化と線形化

さまざまな用途において、特定のデューティ比プロファイルに応答して生成される平均電圧が重要となります。そのような動作は、この回路の基本サンプル時間よりも数桁ほど大きいタイム スケールで研究されています。このような回路の "平均モデル" は、一定期間の電力のダイナミクスの平均に基づく解析的な考慮事項によって導出されます。BoostConverterExampleModel モデルは、最初のバリアント AVG Voltage Model のような、回路の平均モデルを実装します。一般的にはこのバリアントは、低水準モデル バリアントより高速に実行されます。

平均モデルは線形システムではありません。これは、デューティ比および負荷変動に対する非線形の依存性を示します。シミュレーションの高速化と電圧の安定したコントローラーの設計を実現するために、さまざまなデューティ比および負荷値でモデルを線形化できます。

この例では、スナップショットベースの平衡化と線形化を使用します。スケジューリング パラメーターは、デューティ比 d と抵抗負荷 R です。いくつかのスケジューリング パラメーターの値でモデルを平衡化および線形化します。

この例では、デューティ比の変動に 10% ~ 60% の範囲、負荷変動に 4 ~ 15 Ω の範囲を選択します。それらの値の取りうるすべての組み合わせで取得されたそれぞれのスケジューリング変数および線形化のそれぞれについて、その範囲内の 5 つの値を選択します。

nD = 5;
nR = 5;
dspace = linspace(0.1,0.6,nD); % Values of d in 10%-60% range
Rspace = linspace(4,15,nR);    % Values of Rin 4-15 Ohms range
[dgrid,Rgrid] = ndgrid(dspace,Rspace);  % All combinations of d and R values

スケジューリング パラメーターのパラメーター構造体配列を作成します。

params(1).Name = 'd';
params(1).Value = dgrid;
params(2).Name = 'R';
params(2).Value = Rgrid;

モデルの入力、出力、および状態の数を指定します。

ny = 3;
nu = 1;
nx = 2;
ArraySize = size(dgrid);

さまざまな条件下でのモデルのシミュレーションにより、モデルの出力は 0.01 秒より前に定常値で安定することがわかります。そのため、スナップショット時間として t = 0.01s を使用します。

関数 findop を使用してスナップショット時間の平衡操作点を計算します。この操作は終了するまでに数分かかります。

op = findop(mdl,0.01,params);

モデルを線形化するには、最初にモデルから線形化の入力ポイントと出力ポイントを取得します。

io = getlinio(mdl);

線形化のオフセットを格納するように線形化オプションを構成します。

opt = linearizeOptions('StoreOffsets', true);

配列 op の操作点でモデルを線形化します。

[linsys,~,info] = linearize(mdl,op,io,params,opt);

線形化の結果からオフセットを抽出します。

offsets = getOffsetsForLPV(info);
yoff = offsets.y;
xoff = offsets.x;
uoff = offsets.u;

線形システム配列をプロットします。

bodemag(linsys)
grid on

LPV シミュレーション

linsys は 25 の線形状態空間モデルの配列で、それぞれに 1 つの入力、3 つの出力、および 2 つの状態が含まれます。このモデルは、サンプル時間が 25 ns の離散時間です。このボード線図は、スケジューリング パラメーターのグリッド上でダイナミクスに大きな変動があることを示します。

線形システム配列と付属するオフセット データ (uoffyoff、および xoff) を使用して、LPV System ブロックを構成できます。結果の LPV モデルは、平均ダイナミクスの線形システム配列の近似として機能します。BoostConverterLPVModel モデルでは、このような LPV 近似が使用されています。

lpvmdl = 'BoostConverterLPVModel';
open_system(lpvmdl)

モデルのシミュレーションを実行する際に、スケジューリングの範囲におおよそ対応するデューティ比の入力プロファイルを使用します。また、抵抗負荷を変動させて、負荷外乱のシミュレーションを実行します。

デューティ比のプロファイル din を生成します。

t = linspace(0,.05,1e3)';
din = 0.25*sin(2*pi*t*100)+0.25;
din(500:end) = din(500:end)+.1;

抵抗負荷のプロファイル rin を生成します。

rin = linspace(4,12,length(t))';
rin(500:end) = rin(500:end)+3;
rin(100:200) = 6.6;

スケジューリング パラメーターのプロファイルをプロットします。

yyaxis left
plot(t,din)
xlabel('Time (s)')
ylabel('Duty Cycle')
yyaxis right
plot(t,rin)
ylabel('Resistive Load (Ohm)')
title('Scheduling Parameter Profiles for Simulation')

上記の信号を生成するためのコードは、個別に読み込みおよび実行するためにモデルの PreLoadFcn コールバックに追加されています。これらの設定をオーバーライドして独自に試す場合は、MATLAB® ワークスペースでこのデータを上書きします。

LPV モデルのシミュレーションを実行し、結果の出力を表示します。

sim(lpvmdl,'StopTime','0.004');
open_system('BoostConverterLPVModel/Outputs')

LPV モデルは、元の BoostConverterExampleModel モデルよりはるかに高速にシミュレーションを実行します。

これらのシミュレーション結果を元の昇圧コンバーター モデルのシミュレーションと比較するには、BoostConverterResponseComparison モデルを使用します。このモデルでは、忠実度の高い低水準モデル バリアントを使用するように構成された Boost Converter ブロックが使用されています。また、LPV System ブロックも含まれています。モデルのスコープで両方のシステムの応答を表示できます。

linsysd = c2d(linsys,Ts*1e4);
mdl = 'BoostConverterResponseComparison';
open_system(mdl)

モデルのシミュレーションを実行します。忠実度の高いモデルにおける高速のスイッチング ダイナミクスのため、シミュレーションは極めてゆっくりと実行されます。次のコードのコメントを解除してモデルのシミュレーションを実行します。

% sim(mdl);

次の図は、インダクターの電流、負荷電流、および負荷電圧のシミュレーション結果の例を示したものです。

LPV モデルは、忠実度の高いモデルに比べ、メモリの消費量が少なく、シミュレーションもはるかに高速ですが、昇圧コンバーターの平均的動作をエミュレートできます。

参考

|

関連するトピック