WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Sinus in diskrete Punkte legen

 

Martin87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2012, 18:15     Titel: Sinus in diskrete Punkte legen
  Antworten mit Zitat      
Hallo und guten Abend zusammen,

ich vesuche seit ein paar Stunden einen Sinus in ein paar Messpunkte zu legen, einfach um mal zu gucken, welche Schwingung aus einer Unterabtastung nach Shannon aus diesen Daten interpretiert werden könnte.
Dazu habe ich ein Simulinkmodell eines Einmassenschwingers aufgebaut und lade damit Messdaten zu diskreten Zeitpunkten in meinen Workspace. Als nächstes will ich eine harmonische Schwingung errechnen die durch alle diese Messdaten verläuft. Mein bisheriger Ansatz ist der, mit fsolve zu arbeiten. Allerdings scheint dieses Tool bei einem "überbestimmten" NLGS seine Grenzen zu kennen. Ich möchte nämlich mit fsolve 3 Parameter einer Sinusfunktion errechnen ( verschiebung in x-Richtung, Dehnung in x-Richtung und Dehnung in y-Richtung). Lasse ich die Rechnung mit nur 3 Messpunkten laufen, legt Matlab mir schön durch alle 3 Punkte den Sinus, so wie ich es mir vorstelle.
Möchte ich nun aber mehr als 3 Messpunkte mit einbeziehen, da der errechnete Sin durch 3 Messpunkten nicht alle Messpunkte durchläuft, streikt Matlab und gibt etwas ganz konfuses aus.

Im Anhang habe ich mal ein Bild dazu hochgeladen.
Die blaue Kurve entspricht quasi dem kontinuirlichen Signal der aus dem System raus kommt.
Die roten Punkte sind die diskret abgetasteten Werte.
Und die grüne Kurve, ist die die ich bisher in die Punkte legen konnte.
Auf dem Bild sieht man das die ersten 3 Punkte gut getroffen werden aber alle weiteren nicht mehr. Dazu habe ich zu Erstellung dieses Plots auch nur 3 Messwerte ausgewertet. Bei 4 oder mehr Messwerten kommt aber auch nichts Befriedigenderes bei raus. Ganz im Gegenteil. Nutze ich alle Messwerte (rote Punkte) liegt der grüne Sinus je nach Startwert in keinem der roten Punkte.

Hier mal mein code:
clc
clear

Simulationszeit=30;
m=20;
c=10;
d=10;

sim('Probe')

x=[0,0,0];

signals=giveMW();

x0=[1;1;1];

options=optimset('Display','iter'); % Option to display output
[t,fval] = fsolve(@myfun,x0,options) ;

x=length(conti.signals.values);
x=linspace(0,Simulationszeit,x);
y=conti.signals.values;
plot(x,y);
hold;


xx=length(diskret.signals.values);
xx=linspace(0,Simulationszeit,xx);
yy=diskret.signals.values;
plot(xx,yy,'* r');

plot(x,t(1)*sin(x*t(2)-t(3)),'g')






function F=myfun(x)

global signals


F=[ 0 - x(1)*sin(0*x(2)-x(3))
signals(1) - x(1)*sin(3*x(2)-x(3)) ;
signals(2) - x(1)*sin(6*x(2)-x(3))] ;
%signals(3) - x(1)*sin(9*x(2)-x(3))];
%signals(4) - x(1)*sin(12*x(2)-x(3));
%signals(5) - x(1)*sin(15*x(2)-x(3));
%signals(6) - x(1)*sin(18*x(2)-x(3));
%signals(7) - x(1)*sin(21*x(2)-x(3));
%signals(Cool - x(1)*sin(24*x(2)-x(3));
%signals(9) - x(1)*sin(27*x(2)-x(3));
%signals(10) - x(1)*sin(30*x(2)-x(3))];






function signals=giveMW()
sim('Probe');
global signals;
signals(1)=diskret.signals.values(2);
signals(2)=diskret.signals.values(3);
signals(3)=diskret.signals.values(4);
signals(4)=diskret.signals.values(5);
signals(5)=diskret.signals.values(6);
signals(6)=diskret.signals.values(7);
signals(7)=diskret.signals.values(Cool;
signals(Cool=diskret.signals.values(9);
signals(9)=diskret.signals.values(10);
signals(10)=diskret.signals.values(11);


Vielen Dank an die jenigen die sich diesem Problem mal stellen mögen Wink

Messung.jpg
 Beschreibung:

Download
 Dateiname:  Messung.jpg
 Dateigröße:  106 KB
 Heruntergeladen:  735 mal
Messung.jpg
 Beschreibung:

Download
 Dateiname:  Messung.jpg
 Dateigröße:  106 KB
 Heruntergeladen:  715 mal


Martin87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2012, 18:17     Titel:
  Antworten mit Zitat      
LOL die Smilies im Code waren nicht geplant... ich hoffe man kann das auch so lesen^^
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 23.06.2012, 10:34     Titel:
  Antworten mit Zitat      
Martin87 hat Folgendes geschrieben:
LOL die Smilies im Code waren nicht geplant... ich hoffe man kann das auch so lesen^^

dafür giebt es ja extra die code umgebung. die sollte man auch nutzen
Private Nachricht senden Benutzer-Profile anzeigen
 
djapp

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.11.2012, 16:45     Titel:
  Antworten mit Zitat      
Wie sieht den deine Datei Probe aus?
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.