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

2 D Simulationsergebnis in 3D überführen

 

wolfman77
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 24.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.09.2008, 12:15     Titel: 2 D Simulationsergebnis in 3D überführen
  Antworten mit Zitat      
Hallo, habe die vergangenen Tage dazu benutzt um die letzten Fehler aus dem Simulationsprogramm zu bekommen. Ich glaube das ist mir auch gelungen. Erst einmal der MatLab Code
Code:

function walzprozess
clc;
disp(['Walzprozess',date])
global a b C ha hb Jw Jz Jges mW mZ mges k r1 r2 s0 tspan ys rho B Z
% Konstanten
a=B/2 + Z/2; % Bandmitte - Zapfenmitte [m]
b=0.8; % Bandbreite [m]
C=1850000000; % Geruestmodul [N/m]
Jw=1/4*mW*r1^2+1/12*mW*B^2
Jz=1/4*mZ*r2^2+2*mZ*((B)/2+(Z)/2)^2
Jges=Jw+2*Jz+2*mZ*((B)/2+(Z)/2)^2
mW=pi*r1^2*B*rho %Ballenmasse [kg]
mZ=pi*r2^2*Z*rho %Zapfenmasse [kg]
mges=mW+2*mZ
k=190000000; %Umformwiderstand [N/m^2]
r1=0.5; %Ballenradius [m]
r2=r1/1.5; %Lagerzapfenradius [m]
s0=0.008; %Voreinstellung [m]
rho=7865; %Dichte von Stahl [kg/m^3]
B=b*2; %Ballenbreite
Z=b/1.5; %Zapfenbreite
%Eingangsparameter
tspan=[0;6]
ys=[0;0;0;0];
%DGL Lösen
options=odeset('OutputFcn',@odeplot,'OutputSel',[1 3]);
[t,x]=ode23(@ma,tspan,ys);
%Ausgabe der Ergebnisse
figure, nor=1e+3;
subplot(2,1,1),plot(t,x(:,1)*nor),xlabel('t in [s]'),ylabel('Auffederung in [mm]')
subplot(2,1,2),plot(t,x(:,3)),xlabel('t in [s]'),ylabel('Winkel in [rad]')

function [dgl]=ma(t,x)
global a b C ha hb Jw Jz Jges mW mZ mges k r1 r2 s0 tspan ys rho B Z
%Berechnung der Voreinstellung
ha=0.02; %Bandhöhe links [m]
hb=0.02; %Bandhöhe rechts [m]
%DGL
dgl=[x(2);...
    ((b*k*sqrt(r1*(ha-s0-2*x(1)+b*sin(x(3))))-2*C*x(1)+b*k*sqrt(r1*(hb-s0-2*x(1)-b*sin(x(3)))))/mges);...
    x(4);...
    (((1/2)*b^2*k*sqrt(r1*(ha-s0-2*x(1)-b*sin(x(3))))-(1/2)*b^2*k*sqrt(r1*(hb-s0-2*x(1)+b*sin(x(3))))-2*C*a^2*sin(x(3)))/Jges)];
 


Wenn nun ha und hb und die Walzspaltvoreinstellung s0, geändert werden z.b ha=0.02 und hb=0.0205 dann habe ich ein keilig einlaufendes Band und damit eine Bandeinlaufstörung oder ha und hb=0.02*(1+sin(10*t)/50) erzeugt eine symetrische Dickenwelle. Tauscht man ein Sinus gegen ein Cosinus aus erhält man eine asymmetrische Dickenwelle.
Auf den Figure Plots ist das alles gut zu erkennen, mich interessiert halt wie würden die Ergebnisse in 3d aussehen.
Wenn jemand von euch eine idee hat würd mich das natürlich freuen.

PS: Bei Programm aufruf werden zwei Fehler angezeigt. DIese einfach ignorieren und zwei mal auf Run klicken, sollte danach klappen.

walzprozess_9.m
 Beschreibung:

Download
 Dateiname:  walzprozess_9.m
 Dateigröße:  1.42 KB
 Heruntergeladen:  695 mal
Private Nachricht senden Benutzer-Profile anzeigen


nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 09:13     Titel:
  Antworten mit Zitat      
Hi,

das dieser Fehler kommt liegt daran, dass Du z.B
Code:
a=B/2 + Z/2; % Bandmitte - Zapfenmitte [m]
schreibst, bevor B und Z definiert sind. Da die alle global sind kann das beim nächsten Aufruf ausgewertet werden. Das würd ich noch irgendwie verbessern.

Wie soll denn die 3D-Ausgabe aussehen? Was soll auf welcher Achse aufgetragen werden?

Ist es richtig, das der Winkel konstant 0 ist?
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
wolfman77
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 24.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.09.2008, 13:27     Titel:
  Antworten mit Zitat      
Hallo habe seit gestern noch einige verbesserungen durchgeführt hier noch mal der Code, sind wieder zwei Teile.
Code:

% function walzprozess
clear, close all, clc
disp(['Walzprozess',date])
global a b C ha hb Jw Jz Jges mW mZ mges k r1 r2 s0 tspan ys rho B Z
% Konstanten
a=B/2 + Z/2; % Bandmitte - Zapfenmitte [m]
b=0.8; % Bandbreite [m]
C=1850000000; % Geruestmodul [N/m]
Jw=1/4*mW*r1^2+1/12*mW*B^2
Jz=1/4*mZ*r2^2+2*mZ*((B)/2+(Z)/2)^2
Jges=Jw+2*Jz+2*mZ*((B)/2+(Z)/2)^2
mW=pi*r1^2*B*rho %Ballenmasse [kg]
mZ=pi*r2^2*Z*rho %Zapfenmasse [kg]
mges=mW+2*mZ
k=190000000; %Umformwiderstand [N/m^2]
r1=0.5; %Ballenradius [m]
r2=r1/1.5; %Lagerzapfenradius [m]
s0=0.008; %Voreinstellung [m]
rho=7865; %Dichte von Stahl [kg/m^3]
B=b*2; %Ballenbreite
Z=b/1.5; %Zapfenbreite
%Eingangsparameter
tspan=[0;2]
ys=[0.004;0;0;0];
%DGL Lösen
options=odeset('OutputFcn',@odeplot,'OutputSel',[1 3]);
[t,x]=ode23(@ma,tspan,ys,options);
%Ausgabe der Ergebnisse
figure, nor=1e+3;
subplot(2,1,1),plot(t,x(:,1)*nor),xlabel('t in [s]'),ylabel('Auffederung in [mm]')
subplot(2,1,2),plot(t,x(:,3)),xlabel('t in [s]'),ylabel('Winkel in [rad]')
 


und

Code:

function [dgl]=ma(t,x)
global a b C ha hb Jw Jz Jges mW mZ mges k r1 r2 s0 tspan ys rho B Z
%Berechnung der Voreinstellung
Om=50;  % [1/s]
dx=10^5;
dp=10^5;
ha=0.02*(1+0.01*sin(Om*t)); %Bandhöhe links [m]
hb=0.02; %Bandhöhe rechts [m]
%DGL
dgl=[x(2);...
    (-dx/mges*x(2)+(b*k*sqrt(r1*(ha-s0-2*x(1)+b*sin(x(3))))-2*C*x(1)+b*k*sqrt(r1*(hb-s0-2*x(1)-b*sin(x(3)))))/mges);...
    x(4);...
    (-dp/mges*x(4)+((1/2)*b^2*k*sqrt(r1*(ha-s0-2*x(1)-b*sin(x(3))))-(1/2)*b^2*k*sqrt(r1*(hb-s0-2*x(1)+b*sin(x(3))))-2*C*a^2*sin(x(3)))/Jges)];
 


Da es sich um eine walzsimulation handelt würde ich den 3d plot gerne so hinkriegen, dass die x - achse die zeitspanne beinhaltet die z - Achse die höhe der auffederung wiedergibt und die y - achse den verdrehwinkel, das müsste dann so aussehen wie eine ebene im raum mit tiefen und höhen.
Private Nachricht senden Benutzer-Profile anzeigen
 
nschlange
Ehrenmitglied

Ehrenmitglied



Beiträge: 1.320
Anmeldedatum: 06.09.07
Wohnort: NRW
Version: R2007b
     Beitrag Verfasst am: 18.09.2008, 15:51     Titel:
  Antworten mit Zitat      
Hi,

ich hab als erstes (nach der Lösung) das probiert:
Code:
X=t;
Y=x(:,3);
Z=x(:,1)*nor;
[Xi,Yi]=meshgrid(linspace(min(X),max(X),200),linspace(min(Y),max(Y),200));
Zi=griddata(X,Y,Z,Xi,Yi,'cubic');
figure;
surf(Xi,Yi,Zi)
xlabel('Zeit');
ylabel('Winkel');
zlabel('Auffederung');
shading interp
. Das ist aber nicht ganz richtig, denn eigentlich gibt es ja zu einem Zeitpunkt nur einen Winkel und nur eine Auffederung, oder?
_________________

Viele Grüße
nschlange

"Chuck Norris ejakuliert fluessigen Stahl!"
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
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.