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

Raytracing - Brechung von Licht mit optischen Bauelementen

 

spyspy
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.09.2020, 08:20     Titel: Raytracing - Brechung von Licht mit optischen Bauelementen
  Antworten mit Zitat      
Guten Tag alle zusammen,

ich arbeite derzeit an einem Projekt für die Optimierung eines Spektrometers. Ich erweitere das System mittels optischer Bauelemente. Bei den Bauelementen geht es um einen Parabolspiegel und einer Sammellinse. Die Quelle wirft einen divergenten Lichtstrahl aus, welcher dann mit eines der beiden Bauteile reflektiert bzw. auf einen Punkt fokussiert werden soll.
Ich würde so etwas in der Art sehr gerne mit einer Funktion und einem Plot in Matlab simulieren. In Matlab bin ich leider noch etwas unbeholfener und habe auch schon in einigen Foren nach Tipps und Tricks gesucht. Könnte mir hier jemand eventuell weiterhelfen bitte?

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.09.2020, 08:35     Titel:
  Antworten mit Zitat      
Hallo,

Google findet z.B. das:
https://de.mathworks.com/matlabcent.....eexchange/25974-raytracer

Für eine konkretere Unterstützung müsste die Frage viel konkreter werden.

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
 
spyspy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2020, 12:06     Titel:
  Antworten mit Zitat      
Hallo,

vorab vielen Dank für die Hilfe.


Ich glaube ich fange erstmal ganz simpel an:

Also fürs erste habe ich folgendes gemacht:

Mit einer Lichtquelle, welche ich ja mit der Funktion "light" generieren kann, eine Fläche beleuchten, die ich mit derzeit mit "meshgrid" erstelle. Als nächstes möchte ich eine weitere Fläche im gleichen plot erstellen. Diese Fläche soll aber weiter weg also in positiver x- und z-Richtung liegen - also höher und weiter rechts.(y ist erstmal egal) Wie bekomme ich das hin?

Und mal so eine Frage noch nebenbei: Ist es eigentlich möglich sich den Verlauf der einfallenden Wellen der Lichtquellen anzeigen zu lassen?

Gruß
Spiros
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 27.09.2020, 13:55     Titel:
  Antworten mit Zitat      
Hallo,

meshgrid erstellt für sich genommen keine Fläche, sondern nur Werte, meist x und y. Wenn du eine Fläche weiter rechts haben möchtest, musst du lediglich größere x-Werte übergeben. Vermutlich hast du das Ergebnis von meshgrid verwendet, um z-Werte zu berechnen. Wenn du eine Fläche weiter oben haben möchtest, musst du die Gleichung für die z-Werte anpassen.

Deutlich einfacher wird die Unterstützung, wenn du deinen bestehenden Code postest statt ihn zu beschreiben.

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
 
spyspy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 13.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.09.2020, 10:59     Titel:
  Antworten mit Zitat      
Hallo,

Ich glaube ich schiebe das meshgrid Problem kurz beiseite:

Ich habe einen x - Bereich und eine Geradenfunktion y. Ich möchte nun mit einer for - Schleife die von 1 bis n gehen soll, mehrere Geradengleichungen erzeugen und alle in einem Plot ausgeben.

Code:
x = 0:0.5:10;

n = 3;
for i = 1:n
y = -x +8; %Schreibe ich das so, überschreibt jeder Schritt meine Funktion und ich
                   erhalte nur eine Gerade. Logisch.
end
plot(x,y);
 


Wie bekomme ich es hin, dass ich in Abhängigkeit von n meine Geraden alle bekomme + plotten kann?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

sowas wäre z.B. denkbar:

Code:
x = 0:0.5:10;

offset = [6, 8, 10]
n = length(offset); % hier wirklich n = 3;
for i = 1:n
y{i} = -x + offset(i);
plot(x,y{i});
hold on
end
hold off


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
 
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 - 2024 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.