最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
このスクリプト例では、制御システムの安定性の解析と設計をサポートするために、Simscape™ Electrical™ モデルを線形化する方法を説明します。モデル例 ee_sm_governor_control_design を使用します。
Simulink® と Simscape のモデルを線形化するための推奨される代替の方法は、Simulink Control Design™ を使用することです。Simulink Control Design は、指定した操作点でモデルを線形化します。また、状態空間モデル オブジェクトを、状態名とともに返します。Simulink Control Design を利用可能な場合、モデル ee_sm_governor_control_design を開き、ツール バーから [解析]、[制御設計]、[線形解析] を選択します。次に、[操作点] メニューから [線形化の条件...] を選択し、シミュレーションのスナップショット時間を 4 秒に設定します。最後に、ツールストリップの [ボード線図] アイコンをクリックします。
モデルを開きます。
open_system('ee_sm_governor_control_design')
閉ループを実行し、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);
速度制御フィードバック ループを開き、モデルを線形化し、速度制御フィードバック ループを閉じます。
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
ボード線図をプロットします。
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