
% Simulation der Regelstrecke
% ===================================================
clear all;close all;clc;

% Geben Sie hier die Traegheit und das Lastmoment ein
% ============================================
Theta = 210.2e-6;  % [kgm^2]
% Theta = 407.6e-6;  % [kgm^2]
ML    = 0e-3;      % [Nm]
% ML    = 6e-3;      % [Nm]
% ============================================



disp('Skript plant_step: "Sprungantwort Schnelle Welle"');
disp(' zuletzt geaendert: 16.12.2015, C.Peterhans');
disp(' ');



% Sprungskalierung
UR = 1.0;      	% V  Fuehrungssprung  
TF = 5;      	% s Laenge der Simulation

% Spannungsverstaerker
KV = 5.0;      % -  Verstaerkungsfaktor

% Antriebsmotor
RA = 8.5;    	% V/A  Ankerwiderstand
LA = 1.3e-3;   	% Vs/A Ankerinduktivitaet
KG = 52.5e-3;  	% V/(rad/s) Generatorkonstante
KM = 51.2e-3;  	% Nm/A      Motorkonstante

% Tachogenerator
KT = 19.1e-3;  	% V/(rad/s)  Tachogeneratorkonstante

% Analogfilter
OmegaF = 20;   	% rad/s Eck-Frequenz
DF = 1.414/2;  	% Daempfungsgrad

% Zustandsraumdarstellung: 
% x1 = IA, x2 = Omega , x3, x4 = UOmega
% ============================================
A = [   -RA/LA     -KG/LA           0          0;
    KM/Theta          0           0          0;
    0  KT*OmegaF -2*DF*OmegaF    -OmegaF;
    0          0      OmegaF          0];

B = [ KV/LA*UR;
    -ML/Theta ;
    0 ;
    0];

C = [0 0 0 1];

D = [0];

% Erzeugen des Zustandsraummodells
SYS = ss(A,B,C,D);

% Sprungantworten
t = 0 : 0.01 : TF;
[y,t] = step(SYS,t);  %y is matrix! 

disp(' ');
disp(' Plot Figure 1');
figure(1);
plot(t,y);
title(['Strecke: Fuehrungssprungantwort (U_R = ',num2str(UR),' V)']);
grid on;
xlabel('t [s]')
ylabel('\Delta U_{Omega} [V]');
legend(['Theta = ',num2str(Theta*1e6),'1e*6 [kg m^2], ML = ',num2str(ML*1000),' [mNm]'],'Location','SouthEast');