%   Script OPTFU.M zur Herstellung von Bildern
%
%    FÜ-Regelung durch PI-Zustandsr\"uckf\"uhrung
%
% verwendet BSPFUREG.M, EPSBILD.M
%
% J. Lunze
% 14.9.1996
% für 2. Auflage: 15.12.2001
% für 3. Auflage: 15.3.2004
% für 5. Auflage: 18.10.2007
% für 7. Auflage 31.3.2012
% für 10. Auflage: 9.9.2019
%
%
clear
close all
Bspfureg;   % definiert A, B, C, D, E, F, CE, DE, E1, E2, E3, FE, FE1, FE2, FE3


% I-erweiterte Strecke
AI=[A  zeros(n, 3)
    CE zeros(3, 3)];
BI=[B
    zeros(3,3)];
CI=[CE         zeros(3,3)
    zeros(3,n) eye(3,3)];
DI=zeros(6,3);
EI=[E;
    FE];
%%
%
%   Optimalregler für das Netz
%
%
figure(1);
CQ = [C(1:4, 1:10)  zeros(4,3)
      zeros(3,10)   eye(3,3)];  % bewertete Ausgänge: f, pti, I-Anteile
Q = CQ'*diag([k1+k2+k3, 1, 1, 1, 1, 1, 1])*CQ;
R=eye(3,3);
K = lqr(AI, BI, Q, R);
%   Regelkreis mit Störung durch Lastabfall von 100MW
Ag=AI-BI*K;
Bg=EI;
Cg=[C(1, 1:10) zeros(1,3)];
Dg=F(1, 1:m);
Regelkreis1=ss(Ag, Bg, Cg, Dg);
[F1, T, X]=step(Regelkreis1);
Regelkreis3=ss(Ag, Bg, -K, zeros(3,3));
U1=step(Regelkreis3, T);
R=10*eye(3,3);
K = lqr(AI, BI, Q, R);
Ag=AI-BI*K;
Bg=EI;
Cg=[C(1, 1:10) zeros(1,3)];
Dg=F(1, 1:m);
Regelkreis1=ss(Ag, Bg, Cg, Dg);
F2=step(Regelkreis1, T);
Regelkreis3=ss(Ag, Bg, -K, zeros(3,3));
U2=step(Regelkreis3, T);
R=100*eye(3,3);
K = lqr(AI, BI, Q, R);
Ag=AI-BI*K;
Bg=EI;
Cg=[C(1, 1:10) zeros(1,3)];
Dg=F(1, 1:m);
Regelkreis1=ss(Ag, Bg, Cg, Dg);
F3=step(Regelkreis1, T);
Regelkreis3=ss(Ag, Bg, -K, zeros(3,3));
U3=step(Regelkreis3, T);
subplot(4,1,[1,2]);
plot(T, 100*F1(:,1,1), 'b', T, 100*F2(:,1,2), 'b', T, 100*F3(:,1,3), 'b', [0 30], [0 0],'k:');
xleer;
latexylabel('$$f$$ in mHz');
rotateY;
axis([0 25 -40 20]);
yticks([-40 -20 0 20]);
latextitle('Energienetz mit PI-Zustandsr\"uckf\"uhrung');
latextext(10, -30, '$$\rho=100$$');
latextext(8, -20, '10');
latextext(6, -17, '1');
%
subplot(4,1,[3,4]);
plot(T, 100*U1(:,1,1), 'b', T, 100*U2(:,1,1), 'b', T, 100*U3(:,1,1), 'b');
latexxlabel('$$t$$ in s');
latexylabel('$$u_1$$ in MW');
rotateY;
axis([0 25 0 170]);
xticks([0 10 20]);
yticks([0 50 100 150]);
latextext(7, 80, '100');
latextext(4, 120, '10');
latextext(8, 150, '$$\rho=1$$');


%%
%
%    Verlauf der Generatorleistungen
%
%
figure(2);
subplot(4,1,[1,2]);
R=10*eye(3,3);
K = lqr(AI, BI, Q, R);
Ag=AI-BI*K;
Bg=EI;
Cg=[C(5:8, 1:10) zeros(4,3)];
Dg=F(5:8, 1:m);
T=[];
Regelkreis1=ss(Ag, Bg, Cg, Dg);
[G, T, X]=step(Regelkreis1);
plot(T, 100*G(:,1,1), 'b', T, 100*G(:,2,1), 'b', T, 100*G(:,3,1), 'b', T, 100*G(:,4,1), 'b', [0 30],[0 0],'k:');
latexxlabel('$$t$$ in s');
latexylabel('$$p_{{\rm G}i}$$ in MW');
rotateY;
axis([0 25 -10 100]);
xticks([0 10 20]);
yticks([0 50 100 150]);
latextitle('Generatorleistungen bei PI-Zustandsr\"uckf\"uhrung');


%
%     Ausgabe der Bilder als .eps-Dateien
%
Epsbildc15('optfu');
