Verfasst am: 05.04.2017, 10:29
Titel: Sinusfunktion integrieren und plotten
Hey Community,
ich wusste nicht so recht in welchen Thread ich das schreiben soll, also hoffe ich, ihr verzeiht mir, dass ich hier nun einfach mal ein neues Thema begonnen habe.
Mein Frage ist recht simpel. Da ich aber ein absoluter Matlab-Neuling bin, hoffe ich, dass ihr mir trotzdem helfen könnt.
herauskommt.
Beide Funktionen sollen geplottet werden:
Code:
%mit
A=4.3E-4; %Amplitude
f=20; %Frequenz
t=[0:0.0004:0.5]; %über die Zeit
d=0; %Das d steht nur mit drin, weil meine Funktion am Anfang durch einen Verzug der Messwertaufnahme eine Phasenverschiebung zur Folge hatte. d kann jetzt aber mit 0 angenommen werden, damit die Sin-Finktion auch im Ursprung beginnt.
Man sieht schon, dass einfach nur eine Geschwindigkeit über die Zeit zu einem Weg über die Zeit integriert und geplottet werden soll.
Wenn ich das so plotte, ist der Graph auch ein Sinus- bzw. MinusCosinus, aber die Werte beim MinusCosinus stimmen nicht(siehe Bild: meine Matlab-Funktion). Dort müsste ich laut dem Integralrechner http://www.integralrechner.de/ eine Amplitude im Mikrometer-Bereich erhalten (E-6 m). (siehe Bild: fkt)
Was ist also an meiner integrierten Funktion falsch, dass ich nicht die erwarteten Werte rausbekommen?
Ich wäre euch echt dankbar, wenn ihr mir da auf die Sprünge helfen könntet.
Verfasst am: 02.05.2017, 13:44
Titel: Sin-Funktion mit syms integrieren und plotten
Hallo liebe User,
ich möchte an dieser Stelle nochmal kurz an das vorangegangene Thema anknüpfen:
Ich will eine sin-Funktion unbestimmt integrieren und anschließend plotten. Dass ich das mit der symbolic math toolbox machen kann, habe ich schon überall gelesen und auch gemacht... Allerdings weiß ich nun nicht, wie ich die neue Funktion plotten kann, da mir immer die Fehlermeldung:
"Error using plot
Conversion to double from sym is not possible."
Kann mir jemand sagen, was noch falsch ist bzw. was ich tun kann, damit ich die Funktion plotten kann? Ich hoffe, dass diesen Thread hier überhaupt noch jmd liest.
Mit fplot hab ich's auch schon probiert, aber das funktioniert noch nicht so wirklich...
Wenn ich es so mache, wie Sie es mir eben vorgeschlagen haben, dann kommt die Fehlermeldung "Not enough input arguments."
Ich möchte die integrierte Funktion ja nun auch über die gleiche Zeit t darstellen, wie es bei der anfänglichen Sinus-Funktion der Fall war.
"t" war ursprünglich ja mal ein (Zeit)-Vektor mit [0:...:0.5]. Durch syms hat sich ja nun der Typ geändert, weshalb ich beim fplot nicht mehr den Vektor t verwenden kann, so wie ich es gerne tun würde.
Gibt es da irgendeine Lösung, wie ich die integrierte Funktion trotzdem darstellen kann?
Das Ergebnis soll im Grunde so aussehen, wie auf dem Bild, welches ich angehängt habe...
Wenn ich es so mache, wie Sie es mir eben vorgeschlagen haben, dann kommt die Fehlermeldung "Not enough input arguments."
Dann wird es irgendeinen Unterschied im Code geben. Um das Problem zu erkennen, bräuchte ich den Code.
Zitat:
Ich möchte die integrierte Funktion ja nun auch über die gleiche Zeit t darstellen, wie es bei der anfänglichen Sinus-Funktion der Fall war.
"t" war ursprünglich ja mal ein (Zeit)-Vektor mit [0:...:0.5]. Durch syms hat sich ja nun der Typ geändert, weshalb ich beim fplot nicht mehr den Vektor t verwenden kann, so wie ich es gerne tun würde.
Gibt es da irgendeine Lösung, wie ich die integrierte Funktion trotzdem darstellen kann?
Ich poste einfach mal den gesamten code. Ungünstig ist leider nur, dass ich daten aus einem Excel-File einlese und importiere. Ich weiß nicht... kann man die Vektoren irgendwie speichern, so dass der code auch funktioniert?
k=find(P1); %Position finden, an der P1 nicht Null ist
f2 =round(f(k)); %Frequenz lesen, an der P1 max ist
A = max(P1); %max Wert von P1 entspricht Amplitude
Wenn man fplot benutzen will, muss man den Befehl "matlabFunction" verwenden. Dieser wandelt den symbolische Objekt in eine "anonyme MatlabFunktion" um.
Ich habe den Code getestet und er lief. Wenn das bei dir nicht der Fall ist, kann es höchstens sein, dass du eine ältere MATLAB-Version verwendest. Das dann am besten ins Profil eintragen.
Grüße,
Harald
Einstellungen und Berechtigungen
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.