% Parameterfiles fuer das Simulink Modell des elektrischen Systems 
% (Aufgabe 1.4 und 1.5)
close all;
clear all;
clc;


% Widerstaende R1 und R2
R1 = 600;    % Widerstand in Ohm
R2 = 3500;   % Widerstand in Ohm

% Widerstandsverhaeltnis R4
K = 3;        % Spannungsverstärkung

% Kapazitaeten C1 und C2
C1_ref  = 9e-6;   % Referenz-Kapazitätswert auf Kennlinie von C1 in F
C1_inf  = 1e-9;   % Referenz-Kapazitätswert auf Kennlinie von C1 in F
UC1_ref = 3.5;      % Referenz-Spannungswert auf Kennlinie von C1 in V
C2      = 1e-6;   % Kapazität in F

% Struktur zur Uebergabe der Variablen
p.R1 = R1;
p.R2 = R2;
p.K = K;
p.C1_ref  = C1_ref;
p.C1_inf  = C1_inf;
p.UC1_ref = UC1_ref;
p.C2      = C2;

% Festlegung der Ruhelage in Volt
UeR  = 5;
UeR1 = -1.28;
UeR2 = -2.28;
UeR4 = .6;
UsR  = 5;


%% Modell des linearisierten Systems

% Aufgabe 1.4.4
% -------------
% Errechnen Sie die Ruhelage des Systems!
UC1R = ((-UsR*K - UeR*(K - 2))*R2 - UsR*R1*(K - 1))/(R1 + 2*R2);
UC2R = ((UsR + UeR)*R2 + R1*UsR)/(R1 + 2*R2);
UaR  = UC2R*K;

% Errechnen Sie für die gegebene Ruhelage die Ableitungen der in C1 
% gespeicherter Ladung Q1 nach der anliegenden Spannung!
dQ1  = (C1_inf*UC1R^2 + C1_ref*UC1_ref^2)/(UC1R^2 + UC1_ref^2);  % Erste Ableitung von Q1 nach UC1
ddQ1 = (2*UC1R*UC1_ref^2*(C1_inf-C1_ref))/((UC1R^2+UC1_ref^2)^2);    % Zweite Ableitung von Q1 nach UC1

% Ergaenzen Sie die Systemmatrix A (Asys), die Eingangsvektoren bu (busys)
% und bd (bdsys) sowie den Ausgangsvektor c (csys) und den Durchgriff d (dsys)
% für das linearisierte System!
A11 = ((-R1-R2)*(dQ1-ddQ1*UC1R)-ddQ1*((R1*(1-K)-R2*K)*UC2R+R2*UeR))/(R1*R2*dQ1^2);
 
A12 = (-R1*K-K*R2+R1)/(R1*R2*dQ1);
A21 = 1/(R2*C2);
A22 = (K-2)/(R2*C2);

A  = [A11,A12;A21,A22];
bu = [1/(R1*dQ1);0];
bd = [0;1/(R2*C2)];
c  = [0 K];
du = [0];
dd = [0];

%% Uebertragungsfunktion G (Eingang u -> Ausgang y) und Uebertragungsfunktion Gd (Stoerung d -> Ausgang y)

% Aufgabe 1.4.4
% -------------
% Bestimmen Sie zunächst eine MISO- oder zwei SISO-Zustandsraum- 
% darstellungen mittels ss(). Anschließend koennen Sie in beiden Faellen
% die gesuchten Übertragungsfunktionen (G und Gd) mittels tf() bestimmen.

b = [bu,bd];
d = [du,dd];
sys = ss(A,b,c,d, 'InputName', {'u','d'}, 'OutputName','y', 'StateName', {'uc1', 'uc2'});

trans = tf(sys);
G  = trans(1)
Gd = trans(2)

%% Verstaerkungsfaktor V, Daempfungsgrad xi und Zeitkonstante T von G

% Aufgabe 1.4.5
% -------------
% Bestimmen Sie den Verstaerkungsfaktor V, den Daempfungsgrad xi und die
% Zeitkonstante T der Übertragungsfunktion G. 

V  = 1.453/1.052;
T  = sqrt(1/1.052*10^(-6));
xi = 850/sqrt(1.052)*10^(-3);

%% Bodediagramme der Uebertragungsfunktionen G und Gd

% Aufgabe 1.4.6
% -------------
% Zeichnen und interpretieren Sie die Bodediagramme der beiden
% Uebertragungsfunktionen G und Gd. Verwenden Sie dazu den Befehl bode().

bode(sys);

%% Eingangsspannung und Stoerspannung (Aufgabe 1.5)
% Sprungfoermige Eingangsspannung
te = 0.01;      % Einschaltzeitpunkt in Sekunden
Ue = 1;      % Endwert des Sprunges in Volt

% Sinusfoermige Eingangsspannung
Usinus  = 1; % Amplitude des Sinus in Volt
Usinus0 = -1.28;
Usinus1 = .6;
Usinus2 = .5;
Usinus3 = 1;
Usinus4 = 3;
we      = 1e2;  % Winkelfrequenz des Sinus in rad/s
freq1   = 1e2;
freq2   = 1e3;
freq3   = 1e4;
freq4   = 1e5;
freq5   = 1e6;
freq6   = 1e7;

% Sprungfoermige Stoerspannung
ts = 0.03;     % Einschaltzeitpunkt in Sekunden
Us = 4;     % Endwert des Sprunges in Volt

c2 = [0 K;1 0; 0 1]
d2 = zeros(3,2)
