Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB & Simulink Student Suite Studentenversion R2018b

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Punkte auf einem kreis mit eigenem Abstand berechnen

 

Lars_1991
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2019, 13:50     Titel: Punkte auf einem kreis mit eigenem Abstand berechnen
  Antworten mit Zitat      
Hallo liebes Forum,

ich möchte gern Punkte auf einem Kreis generieren. Das mache ich so.
Code:
n = 360                              % Anzahl der Punkte
r = 1;                               % r = Anzahl Runden
phi_e = linspace(0, 2*pi*r,n);
R_t = 0;
R = 25 + R_t;
X_e = R*cos(phi_e);
Y_e = R*sin(phi_e);


Diese Punkte dienen als Messwerte. Mein Fahrzeug soll diese generierte Trajektorie abfahren und nun möchte ich gern Punkte unter Berücksichtigung einer Geschwindigkeit generieren, sodass ich v = 3m/s wähle und mir dann ausgegeben wird, wo ich mich befinde.
Ich hab mir über v = a*t mein zurückgelegten Weg berechnet,t = 0.02s. Dieser Wert ist 0.06m. Ich würde diesen Gern als Schrittweite zur Generierung der Messwerte verwenden.

Kann mir jemand helfen das umzusetzen?

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2019, 14:19     Titel:
  Antworten mit Zitat      
Hallo,

eigentlich nur ein kleines Mathe-Problem: der Kreisumfang ist 2*pi*R (in Meter?). Das entspricht einem Winkel von 2*pi. Dann entsprechen 0.06 m einem Winkel von 0.06 / (2*pi*R) * (2*pi) = 0.06*R. Das sollte dann das Inkrement für phi_e sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2019, 14:35     Titel:
  Antworten mit Zitat      
Hallo Harald,

erstmal Danke für die Herleitung.
Zitat:
Das sollte dann das Inkrement für phi_e sein.
. Wo trage ich das ein?

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2019, 14:48     Titel:
  Antworten mit Zitat      
Hallo,

bei der Berechnung von phi_e.
Code:
phi_e = 0:0.06/R:2*pi*r;

Du musst die Zeile allerdings so verschieben, dass sie unterhalb der Definition von R steht.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2019, 15:46     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke für die Beantwortung der Frage!
Gibt es einen anderen Befehl außer
Code:
für die Ausgabe der Anzahl der Elemente, die berechnet werden?


Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 16.12.2019, 16:28     Titel:
  Antworten mit Zitat      
Hallo,

Code:

Ob das aber jetzt so viel weiterhilft (... außer dass viele Probleme beim Buchstabieren von length haben)?

Direkt ließe es sich auch noch berechnen, aber auch das ist nicht gerade einfacher:
Code:
floor(2*pi*r / (0.06/R))+1


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.12.2019, 17:07     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke für deine beiden Alternativen. Wink

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2019, 17:28     Titel:
  Antworten mit Zitat      
Hallo liebes Forum,

ich habe die Generierung der Messwerte erfolgreich geändert.

Code:
% Kreisfahrt Koordinaten exakt                            
r = 1;                               % r = Anzahl Runden
R_t = 0;
R = 25 + R_t;
phi_e = 0:0.06/R:2*pi*r;
X_e = R*cos(phi_e);
Y_e = R*sin(phi_e);


Ich möchte allerdings nicht, dass mein phi_e mit "0" beginnt, sondern mit Pi/2. Die X und Y Koordinaten sollen dabei nicht verändert werden. gerade habe ich versucht das so zu lösen:
Code:
phi_e = 0:0.06/R:2*pi*r + pi/2;
doch das klappt nicht.

hat jemand Ideen?

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.12.2019, 18:12     Titel:
  Antworten mit Zitat      
Hallo,

wenn du möchtest, dass die Werte bei pi/2 anfangen, dann musst du in der Syntax a:dx:b vor allem das a auf pi/2 setzen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2019, 19:33     Titel:
  Antworten mit Zitat      
Hallo Harald,

Danke für deine Hilfe aber die Variante
Zitat:
wenn du möchtest, dass die Werte bei pi/2 anfangen, dann musst du in der Syntax a:dx:b vor allem das a auf pi/2 setzen.
habe ich schon ausprobiert. Dann beginne meine Messwerte auch an einem anderen Punkt.
Kann ich nicht die Werte aus einer Tabelle nachträglich "manipulieren"? Also ein Befehl mit dem ich zu den Werten einer Spalte x + pi/2 addieren kann?

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.12.2019, 19:57     Titel:
  Antworten mit Zitat      
Hallo,

das passt nicht zusammen. Wenn du phi_e änderst, ändern sich natürlich auch die daraus berechneten Variablen.
Du kannst aber natürlich eine getrennte Variable erstellen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.12.2019, 21:03     Titel:
  Antworten mit Zitat      
Hallo Harald,

das ist mir klar, dass das nicht geht aber wie geht es elegant mit einer neuen Variable?
Code:
phi_neu = Matrix(:,3) + pi/2
würde das so gehen?

Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 21.847
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.12.2019, 21:52     Titel:
  Antworten mit Zitat      
Hallo,

z.B. so. Oder auch einfach so, wie du phi_e definiert hast:
Code:
phi_neu = a:dx:b;


Wobei die naheliegendere Variante wohl wäre, die Kreisgleichung über eine Phasenverschiebung anzupassen, also
Code:
X = R*cos(phi_e + phase); % ebenso für Y


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lars_1991
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 62
Anmeldedatum: 04.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2019, 12:45     Titel:
  Antworten mit Zitat      
Hallo Harald,

ich habe es wie gewünscht lösen können. Smile
Danke dafür.


Liebe Grüße
Lars
Private Nachricht senden Benutzer-Profile anzeigen
 
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2020 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.