% Portalroboter_dat.m   Matlab-Script-Datei zur Simulation des
%                  dynamischen Verhaltens der Übungsaufgabe
%                        Zirn 29.4.09
clear all       % alle Parameter löschen
% Modellparameter - Motorseite
Mmax=50;   	% A Maximalmoment
FR=20;      % N Führungsreibung
MR=1;       % Nm Lagerreibmoment
Ters=2e-3;     % s Ersatz-Zeitkonstante des elektrischen Systemteils
mx=100;      % kg Gesamtmasse x
my=20;      % kg Gesamtmasse y
J=0.01;     % kgm2 Motorträgheit
kx=1e6;      % N/m Riemensteifigkeit x
ky=2e6;      % N/m Riemensteifigkeit y
r=0.03;     % m Treibrolle
u=3;        % Getriebeübersetzung
dphi=0.5*2*pi/(360*60); % Getriebespiel
dx=r*dphi;  % auf die Lastseite umgerechnet
% Reglereinstellungen
kers=(r/u)^2*kx; Jers=(r/u)^2*mx;
lamda=J/(J+Jers); theta=J+Jers; w0=sqrt(kers*theta/(J*Jers));
Kp=theta*w0*lamda^0.8;   % Nms/rad Drehzahlregelverstärkung 
Tn=4*theta/Kp;     % s Nachstellzeit im Geschwindigkeitsregler 
Kv=Kp/(theta*4);  % 1/s Lageregelverstärkung 
Fv=0.7;       % Proportionalitätsfaktor zur Geschwindigkeitsvorsteuerung
% setpoints
NC_Programm_dat;
Tset=Tsoll; Xset=Xsoll; Yset=Ysoll; vXset=vXsoll; vYset=vYsoll;
% Simulation parameters
T=Ters;
simulation_opt=simset('Solver','ode5','FixedStep',T/10);
Tsim=max(Tset);   % Simulations time
% Simulation 
[x,y,t]=sim('Portalroboter_mod',Tsim,simulation_opt);
% Display results
figure(1); 
subplot(2,1,1); hold off; plot(Tset,Xset,'k--'); hold on
plot(ts,xs,'k','LineWidth',2); 
xlabel('t in s'); ylabel('Position in m');
title('Portal robot');
legend('Setpoints','TCP',4);
subplot(2,1,2); hold off; plot(Tset,Yset,'k--'); hold on
plot(ts,ys,'k','LineWidth',2); 
xlabel('t in s'); ylabel('Position in m');
title('Portal robot');
legend('Setpoints','TCP',4);
figure(2); hold off; plot(Xset,Yset,'k--'); hold on
plot(xs,ys,'k','LineWidth',2); 
xlabel('x in m'); ylabel('y in m');
title('Portal robot');
legend('Setpoints','TCP',4);
axis([0 0.2 0 0.2])

