Main Content

このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

三相同期機の調速機の制御設計

このスクリプト例では、制御システムの安定性の解析と設計をサポートするために、Simscape™ Electrical™ モデルを線形化する方法を説明します。モデル例 ee_sm_governor_control_design を使用します。

この例の同期機は発電機として動作します。マシンは、周期的定常状態で起動し、250 MW/15 Mvar の負荷を供給するように初期化されています。

Simulink® と Simscape のモデルを線形化するための推奨される代替の方法は、Simulink Control Design™ を使用することです。Simulink Control Design は、指定した操作点でモデルを線形化します。また、状態空間モデル オブジェクトを、状態名とともに返します。Simulink Control Design をお持ちの場合は、モデル ee_sm_governor_control_design を開きます。[アプリ] タブの [制御システム] で、[モデル線形化器] をクリックします。モデル線形化器の [線形解析] タブの [設定] セクションで、[操作点]、[線形化の条件] を選択します。シミュレーションのスナップショット時間を 4 秒に設定して、[OK] をクリックします。[線形化] セクションで、[ボード線図] をクリックします。

モデルを開く

モデルを開きます。

open_system('ee_sm_governor_control_design')
set_param(find_system('ee_sm_governor_control_design','FindAll', 'on','type','annotation','Tag','ModelFeatures'),'Interpreter','off')

モデルの平衡化

閉ループを実行し、4 秒の時点 (発電機が定常状態にあるとき) の状態を選択して、モデルを平衡化します。

assignin('base','ClosedLoop',1); % Close the speed-control feedback loop
[t,x,y] = sim('ee_sm_governor_control_design');
idx = find(t>4,1);
X = x(idx,:); U = y(idx);
Warning: The file containing block diagram 'ee_sm_governor_control_design' is
shadowed by a file of the same name higher on the MATLAB path. This can cause
unexpected behavior. For more information see <a href="matlab:helpview([docroot
'/toolbox/simulink/helptargets.map'], 'shadowing')">"Avoiding Problems with
Shadowed Files"</a> in the Simulink documentation.

The file containing the block diagram is:
/mathworks/devel/bat/BR2020ad/build/matlab/toolbox/physmod/elec/eedemos/applications/renewables/ee_sm_governor_control_design.slx.
The file higher on the MATLAB path is:
/mathworks/devel/bat/BR2020ad/build/matlab/toolbox/physmod/elec/eedemos/applications/renewables/html/ee_sm_governor_control_design.m 

速度制御フィードバック ループの線形化

速度制御フィードバック ループを開き、モデルを線形化し、速度制御フィードバック ループを閉じます。

assignin('base','ClosedLoop',0); % Open the speed-control feedback loop
[a,b,c,d]=linmod('ee_sm_governor_control_design',X,U);
assignin('base','ClosedLoop',1); % Close the speed-control feedback loop
Warning: A value of class "uint64" was indexed with no subscripts specified.
Currently the result of this operation is the indexed value itself, but in a
future release, it will be an error. 
Warning: A value of class "uint64" was indexed with no subscripts specified.
Currently the result of this operation is the indexed value itself, but in a
future release, it will be an error. 
Warning: The file containing block diagram 'ee_sm_governor_control_design' is
shadowed by a file of the same name higher on the MATLAB path. This can cause
unexpected behavior. For more information see <a href="matlab:helpview([docroot
'/toolbox/simulink/helptargets.map'], 'shadowing')">"Avoiding Problems with
Shadowed Files"</a> in the Simulink documentation.

The file containing the block diagram is:
/mathworks/devel/bat/BR2020ad/build/matlab/toolbox/physmod/elec/eedemos/applications/renewables/ee_sm_governor_control_design.slx.
The file higher on the MATLAB path is:
/mathworks/devel/bat/BR2020ad/build/matlab/toolbox/physmod/elec/eedemos/applications/renewables/html/ee_sm_governor_control_design.m 

ボード線図

ボード線図をプロットします。

c = -c; d = -d; % Negative feedback convention
npts = 100; w = logspace(-3,5,npts); G = zeros(1,npts);
for i=1:npts
    G(i) = c*(1i*w(i)*eye(size(a))-a)^-1*b +d;
end
figure
ax1 = subplot(2,1,1);
semilogx(w,20*log10(abs(G)))
grid on
ylabel('Magnitude (dB)')
title('Bode diagram: speed-control feedback loop')
ax2 = subplot(2,1,2);
semilogx(w,180/pi*unwrap(angle(G)))
ylabel('Phase (degrees)')
xlabel('Frequency (rad/s)')
linkaxes([ax1,ax2],'x')
xlim(w([1 end]))
grid on