% MODELLBAUSERVO_DAT.M        Script-File zur Simulation des Modellbauservo
% Zirn 8.2.10
% 
% Simulink- Modelle:        "Modellbauservo_mod.mdl"
%                           "Modellbauservo_PPI_mod.mdl"
clear all
% Modellparameter
JM=12e-7;    % kgm2 Motorträgheit
JL=5e-4;    % kgm2 Lastträgheit
L=5e-3;     % H Induktivität
R=1;        % Ohm Widerstand
KM=3.75e-3; % Nm/A Momentenkonstante
KS=(2.1e-2)/(2*pi);  % Vs/rad Spannungskonstante; 
Ttot=5e-4;  % s PWM-Totzeit
dphi=pi/5;    % rad Spiel motorseitig
k=0.5;      % Nm/rad Getriebesteifigkeit
d=2e-4;      % Nms/rad Getriebedämpfung
ue=200;     % Getriebeübersetzung
Umax=5;    % V Maximalspannung
MRM=1e-3;   % Nm Motorlagerreibung
MR=0.5;     % Nm Reibung Abtrieb
Viscoeff=1e-8;
% Reglereinstellung PID
Kv=30;          % V/m   P-Anteil
Tn=0.8;         % s Nachstellzeit
TD=0.06;        % s D-Anteil
% Sollwerte
Sollsprung=15*pi/180;
Tsoll=[0 0.001 0.5]; Phisoll=[0 Sollsprung Sollsprung];
% Simulationsparameter  
ein_opts=simset('Solver','ode5','FixedStep',1e-4);
Tsim=max(Tsoll);
% Simulationsaufruf
[x,y,t]=sim('Modellbauservo_mod',Tsim, ein_opts);

figure(1); hold off; plot(Tsoll,Phisoll,'k--')
hold on; plot(ts,phiLs,'k', 'LineWidth',2)
axis([0 0.5 0 0.35]);
legend('Sollwerte','Last',4)
xlabel('t in s'); ylabel('phi_L in rad');

% Aufgabenteil d) mit P/PI-Kaskadenregler
Kp=0.05;      % Vs/rad Drehzahlregelverstärkung
Tn=0.05;
Kv=3000;
% Simulationsaufruf
[x,y,t]=sim('Modellbauservo_PPI_mod',Tsim, ein_opts);

figure(2); hold off; plot(Tsoll,Phisoll,'k--')
hold on; plot(ts,phiLs,'k', 'LineWidth',2); plot(ts,phiMs/ue,'k', 'LineWidth',1)
axis([0 0.5 0 0.35]);
legend('Sollwerte','Last',4)
xlabel('t in s'); ylabel('phi_L in rad');
figure(3); hold off; plot(ts,vphiLs,'k', 'LineWidth',2); hold on
plot(ts,vphiMs/ue,'k', 'LineWidth',1)
xlabel('t in s'); ylabel('vphi_L/M in rad/s');