Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Systemarchitekt Projektmanagement (m/w) DOORS / Matlab /CAN
Erstellung der Systemarchitektur und Auslegung sicherheitsrelevanter Systeme
Bertrandt Services GmbH - Espelkamp

Funktionsentwickler (w/m) Automobile
Entwicklung von modellbasierten Softwarelösungen in Simulink inklusive Autocode-Generierung
Bertrandt Ing.-Büro GmbH Rüsselsheim - Frankfurt am Main

Softwareentwickler (m/w) automatische Codegenerierung
Umsetzung, Neuprogrammierung und Weiterentwicklung in Simulink, TargetLink und C
EFS - Ingolstadt, Wolfsburg

Funktionskomponentenverantwortlicher (m/w) Fahrerassistenzsysteme
Funktionsentwicklung von Fahrerassistenzsystemen im Bereich Lateral Cruising Functions
Continental AG - Frankfurt

Software-Entwicklungsingenieur (m/w) Referenzierungsmethoden autonomes Fahren
Automatisierung von Bewertungsmethoden und Kalibrierverfahren nach Kundenanforderungen
EFS - Ingolstadt

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Röhre um Schraubenlinie legen

 

Gonzoph
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 28.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2014, 15:58     Titel: Röhre um Schraubenlinie legen
  Antworten mit Zitat      
Hallo zusammen,

ich habe riesen Probleme bei einer Aufgabe. Generell habe ich verstanden was ich brauche und wie es aussehen müsste, aber ich scheitere auf Grund meiner geringen MatLab-kenntnisse einfach an der Umsetzung.
Ich soll um eine Schraubenkurve eine Röhre legen. Die Gestamtsteigung der Schraubenkurve ist 0,6 und sie geht einmal rum, also 2*Pi. Die Steigung der Kurve ist 0,2.

Soweit so gut, ich habe die Oberfläche der Röhre um die Kurve mit Radis 0,1 gegeben mit:

r(t,sigma)=phi B(t)*sind(sigma)-N(t)*cos(sigma))+k(t)

r(t,sigma): Ortvektor der Fläche
k(t): Ortsvektor der Raumkurve
B(t): Binormalenvektor von k(t)
N(t): Normalenvektor von k(t)

Die Kurve in Matlab darzustellen ist nicht das Problem. Ich hab es wie in einem anderen alten Beitrag hier im Forum auch geschafft viele Kreise um die Kurve zu Plotten. Das scheint mir aber nicht der richtige Weg zu sein.

Muss ich nicht irgendwie ein Meshgrid erzeugen und dann surf nutzen um die Oberfläche darzustellen? Ich hoffe ihr könnt mir weiter helfen. Hier mal was ich bislang habe und was auch auf jeden Fall brauchbar ist.
Ob mein Binormalenvektor und der Normalenvektor richtig ist weiß ich nicht. Deshalb lass ich sie mal raus. Über eine Art kochrezept für mein Problem wäre ich auch sehr erfreut.

Code:
axis equal;
a=1;
h=a/5;
roh=a/10;


t = [0:0.01:1];                                                             % die 3 wegen 3*h. h für das Dreibein in reinform benötigt
                                                                   
x=a*cos(2*pi*t);                                                         % Beschreibt die Kurvenfunktion in Parameterform  
y=a*sin(2*pi*t);
z=3*h*t;

plot3(x,y,z)                                                               % Zeichnet die obere Kurve in den entsprechenden Koordinaten                                          
grid on


Entsprechend dazu nochmal der Code aus dem älteren Forenbeitrag, welcher nur die Kreise zeichnet. Bei surf scheint irgendwas nicht zu stimmen und das Programm steigt aus.

Code:
axis equal;
a=1;
h=a/5;
roh=a/10;
t1 = 0;

t = [0:0.01:1];                                                             % die 3 wegen 3*h. h für das Dreibein in reinform benötigt
                                                                   
x=a*cos(2*pi*t);                                                         % Beschreibt die Kurvenfunktion in Parameterform  
y=a*sin(2*pi*t);
z=3*h*t;

plot3(x,y,z)                                                               % Zeichnet die obere Kurve in den entsprechenden Koordinaten                                          
grid on
hold on
while (t1<=1)
k = [a*cos(2*pi*t1);a*sin(2*pi*t1);3*h*t1];                                            % Funtion die die Raumkurven beschreibt
b = [-6*pi*a*sin(2*pi*t1);6*pi*a*cos(2*pi*t1);3*h];                                              % 1. Ableitung nach t
c = [-36*pi*a*cos(2*pi*t1);-36*pi*a*sin(2*pi*t1);0];                                             % 2. Ableitung nach t
b_betrag = sqrt(dot(b,b));                                                 % Betrag des Vektors a'
T = b/b_betrag;                                                            % Tangenteneinheitsvektor
B1 = cross(b,c);                                                           % Kreuzprodukt der Vektoren (b und c)
B1_betrag = sqrt(dot(B1,B1));
B = B1/B1_betrag;                                                          % Binormaleneinheitsvektor
N = cross(B,T);  
t1=t1 + 0.01;
M = repmat(k, 1, n);

R = roh*(B * sin(phi) - N * cos(phi)) + M;
plot3(R(1,:),R(2,:),R(3,:))
end
t3 = [0:0.01:1];
phi2 = [0:(2*pi)/100:2*pi];
R = sqrt(a^2 + h^2);
r =  [a*cos(2*pi*t3);a*sin(2*pi*t3);h*t3];;
B2 = (1/R)*[h*sin(2*pi*t3);-h*cos(2*pi*t3);h*t3];
N2 = (1/R)*[-cos(2*pi*t3);-sin(2*pi*t3);0*t3];
sin2 = sin(phi2)
cos2 = cos(phi2)
j2 = 1

while (j2 <= 101)
R2(:,j2) = roh * (B2(:,j2)*sin2(j2) - N2(:,j2)*cos2(j2)) + r(:,j2);
j2 = j2 + 1;
end

x_int=linspace(-2,2,100);
y_int=x_int;
y_int=y_int(:);
[R1,R2,R3]=griddata(R2(1,:),R2(2,:),R2(3,:),x_int,y_int,'cubic');
figure;
surf(R1,R2,R3);
end


Bin für jede Hilfe dankbar!
Private Nachricht senden Benutzer-Profile anzeigen


Gonzoph
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 28.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2014, 20:01     Titel:
  Antworten mit Zitat      
Code:
axis equal;
a=1;
h=a/5;
roh=a/10;
t1 = 0;

t = [0:0.01:1];                                                             % die 3 wegen 3*h. h für das Dreibein in reinform benötigt
                                                                   
x=a*cos(2*pi*t);                                                         % Beschreibt die Kurvenfunktion in Parameterform  
y=a*sin(2*pi*t);
z=3*h*t;
sigma = [0:pi/10:2*pi];
[m,n] = size(sigma);
M = zeros(3, n);
plot3(x,y,z)                                                               % Zeichnet die obere Kurve in den entsprechenden Koordinaten                                          
grid on
hold on
while (t1<=1)
k = [a*cos(2*pi*t1);a*sin(2*pi*t1);3*h*t1];                                            % Funtion die die Raumkurven beschreibt
b = [-6*pi*a*sin(2*pi*t1);6*pi*a*cos(2*pi*t1);3*h];                                              % 1. Ableitung nach t
c = [-36*pi*a*cos(2*pi*t1);-36*pi*a*sin(2*pi*t1);0];                                             % 2. Ableitung nach t
b_betrag = sqrt(dot(b,b));                                                 % Betrag des Vektors a'
T = b/b_betrag;                                                            % Tangenteneinheitsvektor
B1 = cross(b,c);                                                           % Kreuzprodukt der Vektoren (b und c)
B1_betrag = sqrt(dot(B1,B1));
B = B1/B1_betrag;                                                          % Binormaleneinheitsvektor
N = cross(B,T);  
t1=t1 + 0.01;
k = repmat(k, 1, n);
R = roh*(B * sin(sigma) - N * cos(sigma)) + k;
plot3(R(1,:),R(2,:),R(3,:))
end

 


das ist die neuste version. Hier werden die Kreise erzeugt.
Wie komme ich dort jetzt mit meshgrid und surf weiter?

R = roh*(B * sin(sigma) - N * cos(sigma)) + k;

Das brauche ich auf jeden Fall in Parameterform oder? Wie komme ich da hin?

Lg
Private Nachricht senden Benutzer-Profile anzeigen
 
Schwalla
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 14.07.16
Wohnort: Hannover
Version: ---
     Beitrag Verfasst am: 22.12.2017, 12:19     Titel:
  Antworten mit Zitat      
Hallo,
hast du dein Problem mittlerweile lösen können?
Habe eine ähnliche Problemstellung....

LG
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 goPCB.de


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


Copyright © 2007 - 2018 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.