%% fuehrungssprung.m
%% Kap. 3.5.1
%% Beschreibung:	Initialisierungsdatei und Ausgabedatei
%%                  des Modells der Regelung mit Führungssprung


%% alle Fenster schließen, alle Variablen löschen,
%% Workspace leeren

clear all
close all
clc


%% Berechnung des Eingangssignals

%% allgemeine Sinusfunktion
%% mit konstanter Amplitude berechnen
A=1;
schrittweite=10;
dauer=10000;
t=0:schrittweite:dauer-schrittweite;
omega=0.005;
phi=0;
offset=0;
esignal1=A*sin(omega*t+phi)+offset;

%% definierte Amplitudenfunktion (Treppenfunktion)
%% berechnen
Schwingungen=ceil((dauer*omega)/(2*pi));
Werte_pro_Schwingung=round((2*pi)/(schrittweite*omega));
esignal2=[];
for i=1:Schwingungen
zufall(i)=rand(1)*2;
esignal2=[esignal2 repmat(zufall(i),1,Werte_pro_Schwingung)];
end
esignal2=esignal2(1:length(esignal1));

%% Multiplikation der einzelnen Elemente
%% der allgemeinen Sinusfunktion mit der
%% definerten Amplitudenfunktion
esignal3=esignal1.*esignal2;
esignal3=esignal3+10;


%% Einganggröße definieren, Eingangssignal anlegen,
%% Reglerbaustein parametrieren,
%% Konstanten festlegen

t=t';
esignal3=esignal3';
p1.time=[t];
p1.signals.values=[esignal3];%Eingangssignal
rho1=1.83099*10^-5;%Dichte am Eingang
T1=288.15;%Temperatur am Eingang
T2=313.55;%Temperatur am Ausgang
pn=1.01325*10^5;%Normdruck
rhon=0.0446;%Normdichte
Tn=273.15;%Normtemperatur
m=1.97;%Massestrom am Eingang
Kr1=0.00025;%Reglerverstärkung des äußeren Regelkreises
Kr2=1;%Reglerverstärkung des inneren Regelkreises
w1=47.75;%Führungsgröße des ersten Regelkreises
edruck=10;%Eingangsdruck im Mittelwert


%% Simulation

sim('modellfuehrungssprung.mdl',10000);


%% Ausgabe

%% 1. Plot
hold on
ausgabe2=plot(zeit,fuehrung,'b');
set(ausgabe2,'LineStyle','-');
set(ausgabe2,'LineWidth',2.25);
grid on
grid MINOR
title('Führungsgröße des EGVs\newline(gewünschter Druckwert der Gasturbine als Führungssprung)','FontSize',14,'FontWeight','Bold');
xlabel('Zeit in [sec] \rightarrow');
ylabel('Druck in [bar] \rightarrow');
legend('Führungssprung','location','SouthEast');
xlim([0,45]);
ylim([-5,55]);

%% 2. Plot
figure();
hold on
ausgabe2=plot(zeit,schieberstellung,'g');
set(ausgabe2,'LineStyle','-');
set(ausgabe2,'LineWidth',2.25);
grid on
grid MINOR
title('Schieberstellung des EGVs','FontSize',14,'FontWeight','Bold');
xlabel('Zeit in [sec] \rightarrow');
ylabel('Gasmenge in [kg/s] \rightarrow');
legend('Schieberstellung des EGVs','location','SouthEast');
%xlim([0,10000]);
%ylim([8,12]);

%% 3. Plot
figure();
hold on
ausgabe3=plot(zeit,x1,'r');
set(ausgabe3,'LineStyle','-');
set(ausgabe3,'LineWidth',2.25);
grid on
grid MINOR
title('Ausgang des EGVs','FontSize',14,'FontWeight','Bold');
xlabel('Zeit in [sec] \rightarrow');
ylabel('Druck in [bar] \rightarrow');
legend('Ausgangssignal des EGVs\newline(7 Tage = 10.000 [sec])','location','SouthEast');
%xlim([0,10000]);
%ylim([0,60]);