%-------------------------------------------------------------------------
%Initialisierungsdatei und
%Ausgabedatei zu schritt4_var_eingang.mdl
%-------------------------------------------------------------------------

clear all
close all
clc

%Berechnung der Signale

%1.) Sinusfunktion (mit konstanter Amplitude)
A=1;
schrittweite=10;%Schrittweite in Sekunden
dauer=10000;%so lange soll alles dauern (in Sekunden)
t=0:schrittweite:dauer-schrittweite;%Zeitvektor
omega=0.005%Frequenz (in rad/s), kleiner Wert
            %entspricht Verlauf sinusförmiger/Rundungen ausgeprägt
phi=0;%Verschiebung auf der x-Achse
offset=0;%Verschiebung auf der y-Achse
esignal1=A*sin(omega*t+phi)+offset;%allg. Form einer Sinusfunktion

%2.) (definierte) Amplitudenfunktion (als Treppenfunktion)
Schwingungen=ceil((dauer*omega)/(2*pi))
Werte_pro_Schwingung=round((2*pi)/(schrittweite*omega))
esignal2=[];
for i=1:Schwingungen
    zufall(i)=rand(1)*2;%Zufallswerte generieren
    esignal2=[esignal2 repmat(zufall(i),1,Werte_pro_Schwingung)];
end
esignal2=esignal2(1:length(esignal1));
%3.) Eingangssignal des Gasverdichters
esignal3=esignal1.*esignal2;%Multiplikation der Signale
esignal3=esignal3+10;

%Deklaration der Variablen/benoetigten
%Groessen

%Erdgas (Druck in bar)
eingang_ein=esignal3;
ausgang_ein=47.75;%gewuenschter Druck am Abfluss (zur Gasturbine)

%Abmessungen/Konstante des Ventils/Schiebers
d=0.0365;
r=0.01825;
for i=1:8
    Kq=ausgang_ein/zufall(i);
end

%Abmessungen und Kenndaten des Behälters/Tanks
Lt=3.5;
dt=1.0;
rt=dt/2;
La=0.811;
ha=0.811;
da=0.470;
ra=da/2;
hmax=0.8539;
ht=0.8539;%100%
Vt=rt^2*Lt*(acos((rt-ht)/rt)-(rt-ht)*(sqrt(2*rt*ht-ht^2)/rt^2));
A=Vt/ht
Va=pi*ra^2*ha;
a=2*(Va/ha);

%Erdbeschleunigung
g=9.81;

%Simulation und Ausgabe des Modells

%Simulation 
sim('schritt4_var_eingang.mdl',10000);

%Ausgabe/Plot

%1. Plot
hold off
konst_eingang=plot(zeit,ausgang_aus,'b');
set(konst_eingang,'LineStyle','-');
set(konst_eingang,'LineWidth',1.75);
grid on
grid MINOR
title('Gasverdichter\newline- Druckerhöhung auf 44.0 .. 51.5 [bar] -\newline(ohne Regler)','FontSize',14,'FontWeight','Bold');
xlabel('Zeit in [sec] \rightarrow');
ylabel('Druck in [bar] \rightarrow');
legend('Ablussdruck (zur Gasturbine)\newline(konst. Eingangsgröße)\newline(7 Tage = 10.000 [sec])','location','SouthEast');

figure();

%2. Plot
hold off
esignal=plot(zeit,eingang_aus,'g');
set(esignal,'LineStyle','-');
set(esignal,'LineWidth',2.25);
grid on
grid MINOR
title('Eingangssignal des Gasverdichters (10.0 [bar])','FontSize',14,'FontWeight','Bold');
xlabel('Zeit in [sec] \rightarrow');
ylabel('Druck in [bar] \rightarrow');
legend('Eingangssignal des Gasverdichters\newline(konst. Eingangsgröße)\newline(7 Tage = 10.000 [sec])','location','SouthEast');