% Skript für Rast in Rast Bewegung für nomiertes Bewegungsgesetz Poly. 5 clear N=300; % Anzahl Stuetzstellen der Kurve anz_a=4; % Anzahl Bewegungsabschnitte t_B1=0.2; t_R1=0.4; t_B2=0.7; t_s=[0, t_B1, t_R1, t_B2, 1]'; % Zeitpunkte in Bewegungszeit t_s s_H=0.2; % RANDbedingungen fuer die einzelnen Abschnitte s,v,a **** rb = [ 0 , s_H, s_H, 0; % Rast und Bewgungszeiten über Rb einstellbar 0 , 0 , 0 , 0; 0 , 0 , 0 , 0]; %Abschnittsende=Anfang vom naechsten (Zeile 4...6) for p = 1:anz_a-1 % p nimmt werte von 1-3 an rb(4:6,p)=rb(1:3,p+1); % Zeile 4-6 - 1-3 Spalte = Zeile 1-3 - 2-4 Spalte ? end rb(4:6,anz_a)=rb(1:3,1); % 3x4 matrix erweitert auf 6x4 % abschnittsweise Berechnung der Polynomkoeffizienten for q=1:anz_a % 4 Spalten A(:,q)=inv(cm( t_s(q) , t_s(q+1) ))*rb(:,q); % A in extra fkt definieren ? end % *********************************************************** % Vektor als stueckweises Polynom 5. Grades % aequidistante Zeitschritte (N Intervalle) t = linspace(t_s(1),t_s(end),N); k=1; for i=1:N if (t(i)<=t_s(k+1)) % t_s(1-300) <= t_s(2) - 0.2 %dann liegt der Zeitpunkt in diesem Abschnitt, alles OK else % dann ist es schon der naechste Abschnitt k=k+1; end s(i) =A(1+0,k) + A(1+1,k)*t(i) + A(1+2,k)*t(i)^2 + A(1+3,k)*t(i)^3 + ... + A(1+4,k)*t(i)^4 + A(1+5,k)*t(i)^5; sp(i) = A(1+1,k) + 2*A(1+2,k)*t(i) + 3*A(1+3,k)*t(i)^2 + ... + 4*A(1+4,k)*t(i)^3 + 5*A(1+5,k)*t(i)^4; spp(i) = 2*A(1+2,k) + 6*A(1+3,k)*t(i) + ... + 12*A(1+4,k)*t(i)^2 +20*A(1+5,k)*t(i)^3; end figure() subplot(3,1,1) plot(t,s); title("Wegverlauf") xlabel("t in s") ylabel("s in m") grid on box on subplot(3,1,2) plot(t,sp); title("Geschwindigkeitsverlauf") xlabel("t in s") ylabel("v in m/s") grid on box on subplot(3,1,3) plot(t,spp); title("Beschleunigungsverlauf") xlabel("t in s") ylabel("a in m/s^2") grid on box on