Softwareentwickler MATLAB/Simulink (w/m) Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLinkdSPACE GmbH - Paderborn
ich bin Matlab-Neuling und suche Hilfe. ich Muss ein programm schreiben, welches mir die Schwingung einer Glocke simuliert, genauer gesagt, es soll mir den Anschlagzeitpunkt betimmen.
Ich habe im Internet mehrere Ansätze für das darstellen eines Doppelpendels gefunden... Habe versucht mit Hilfe der Event/ereignis Funktion mir den Anschlagpunkt ausgeben zu lassen, leider klappt es nicht vielleicht kann mir einer von euch helfen???
Der letzte teil : function h = h_glockenwand(t,h,phi1,phi2,psi) funktioniert irgendwie nicht, ich weiß aber nicht wo der Fehler ist...
Viellciht bietet ja einer Nachhilfe, so dass er mir bei meinem Programm helfen kann... Ich suche jemnaden im Raum Köln Universität
Danke!
Code:
function DoppelPendelAnimation_Anschlag(phi1Anf , phi2Anf) % Die Funktion "DoppelPendelAnimation" kann aufgerufen werden mit Angabe der Anfangsauslenkungen % der beiden Massen oder ohne Parameter.
% Im letztgenannten Fall werden Default-Werte (das sind die Werte der Aufgabenstellung) verwendet.
% Integration des Anfangswertproblems:
% Mit der Option "Mass" wird angekündigt, dass eine Massenmatrix zu % berücksichtigen ist, der folgende Parameter gibt den Namen der dafür bereitgestellten Funktion an.
% Die Option "MaxStep" ist zwingend, um über ein Zeitintervall von 10 Sekunden ausreichend genaue Ergebnisse zu erzielen % Mit den beiden Keywords "OutputFcn" und "OutputSel" wird veranlasst, dass % schon während der Berechnung die Funktion ?2(t) in das Graphik-Fenster gezeichnet wird
% ... zeichnet die Funktion phi2(t) waehrend der ode45-Berechnung in das Graphik-Fenster
[t x] = ode45 (@RechteSeite , tspan , x0 , options) ;
% Animation der Bewegung, zunaechst "Sortieren der Ergebnisse":
phi1i = x(:,1) ; % x ist die Matrix der Ergebnisse,
phi2i = x(:,2) ;; % phi1i und phi2i sind Vektoren
clf
tt = tspan(1) ;
xx = [0 l1*sin(phi1i(1)) l1*sin(phi1i(1))+l2*sin(phi2i(1))] ; yy = [0 -l1*cos(phi1i(1)) -l1*cos(phi1i(1))-l2*cos(phi2i(1))] ; plot ([0 l1/8 -l1/8 0],[0 l1/6 l1/6 0] , 'r-') ; hold on p=plot (xx,yy,'o-','EraseMode','xor') ; axis (1.1*[-(l1+l2) (l1+l2) -(l1+l2) (l1+l2)]) ; zeit = title (sprintf('t = %8.2f s' , tt)) ; set (gca , 'userdata' , zeit)
for ii=1:Zeitschritte % Schleife über alle berechneten Zeitschritte
if (t(ii) >= tt) % Ausgabe jeweils nur nach deltatt
xx = [0 l1*sin(phi1i(ii)) l1*sin(phi1i(ii))+l2*sin(phi2i(ii))] ;
yy = [0 -l1*cos(phi1i(ii)) -l1*cos(phi1i(ii))-l2*cos(phi2i(ii))] ;
set(p , 'XData' , xx , 'YData' , yy)
while (cputime-cstart < tt*zeitlupe) % warteschleife
end
zeit = get (gca , 'userdata');
set(zeit , 'string' , sprintf('t = %8.2f s' , tt))
drawnow
tt = tt + deltatt ;
end
end
% ============================================================
% Funktion, die die "Massenmatrix" des Dgl.-Systems definiert:
function M = Massenmatrix (t , xv)
% ============================================================
% Funktion, die die "rechte Seite" des Dgl.-Systems definiert:
function xvp = RechteSeite (t , xv)
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.