%           Hubantrieb_dat.m Script-Datei 
%           dynamisches Modell eines Hubantriebs
%           Göbel, 28.05.16
clear all   % alle Parameter löschen

% Modellparameter
Mmax=5;     % Nm Maximalmoment des Servomotors
Jm=10;      % kgcm^2 Massenträgheitsmoment Servomotor
Jl=10;      % Massenträgheitsmoment Schlittenmasse mx
Jges=20;    % Gesamtmassenträgheitsmoment bewegte Masse
Km=1;       % Nm/V Übertragungsbeiwert Servomotordynamik
my=10;      % kg Schlittenmasse
u=5;        % Übersetzungsverhältnis
Tm=0.012;   % Zeitkonstante Servomotordynamik
Ts=0.012;   % s Zeitkonstante Regelstrecke
Tsim=18;    % s Simulationszeit
s=tf('s');  % Laplaceoperator

% Reglereinstellungen
Kpv=2.42;    % U/rad Geschwindigkeitsregler
Kpx=1;       % 1/s Lageregler
 
% Simulationsparameter definieren
simulation_opt=simset('Solver','ode5');
 
% Simulation starten
[x,y,t]=sim('Hubantrieb_mod',Tsim,simulation_opt);

% Berechnung von Kpv Verstaerkungsfaktoren mittels Bode-Diagramm
Gr=Kpv;
Gr2=Kpx;
Gs=(Km/((1+s*Tm)*(1+s*Ts)));
Go2=Gr2*Gr*Gs;
Gw=feedback(Go2,1);
%w=logspace(-1,2,100000);
%Prand=80;
%[a,p,w]=bode(Go2,w);
%[Kpv,Pr,wa,wp]=margin(a,p-Prand,w);
%figure(1);margin(Gw);grid; title('Verschiebung von Go um Phasenrand von 80°'); 

% Simulationsergebnisse darstellen
figure(1);step(Go2);grid on;
%xlabel('t in s'); ylabel('x(t) in cm');
%title('Simulation Sollwertsprung Hubantrieb');