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

Schichtweise Volumsberechnung

 

Quacksi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2012, 22:20     Titel: Schichtweise Volumsberechnung
  Antworten mit Zitat      
Liebe Genies, ich habe folgendes Problem: ich habe 50x50 Gitterpunkte, die immer den selben Abstand zueinander haben(nämlich 100m), und von denen jeder einen gewissen Höhenwert hat - also eine Topographie, und zwar in Form eines Tales. Nun möchte ich das genaue Volumen des Gesteins wissen. Dazu habe ich immer 4 Höhenwerte gemittelt (Matrix C), habe also sozusagen lauter Quader.

Jetzt möchte ich übereinander liegende Schichten machen, und zwar jeweils 100m dicke, und aus diesen Schichten das Luftvolumen bestimmen. Dazu soll das Programm einfach das Gesammtvolumen ( V= 5000*5000*100) minus der Summe der Einzelvolumen der Quader in dieser Schicht berechnen, das was nach Abzug des Gesteins übrig bleibt ist die in diesem Segment befindliche Luft.

Kurz gesagt möchte ich, dass das Program folgendes macht:

--> Volumsformel: V= a*b*h

--> falls h kleiner als Schichthöhe dann soll das h aus der Matrix C genommen werden, falls h größer gleich der Schichthöhe soll für h die Schichthöhe eingesetzt werden. Am Ende sollen alle diese kleinen Volumen jeder Schicht addiert werden, und vom Gesammtvolumen abgezogen werden; was übrig bleibt ist das Volumen der Luft.

Bsp.:
Schicht 1: h_Quader1= 117m --> Schichthöhe ist 100m --> also V=100*100*100

Schicht 2: h_Quader1= 117m --> muss in dieser Schicht also für h 17m einsetzen

Schicht 3: Volumen von Quader 1 in dieser Schicht ist 0.


Code:


[X,Y] = meshgrid(-2500:100:2500, -2500:100:2500);
h=-2000:2000/25:2000;
q=-1:1/25:1;
for i=1:length(X)
    Z(i,:)=q.^2.*abs(h);
end

                                       
surf(X,Y,Z)
[a,b]=size(Z);
for a=1:b-1
    for j=1:n-1
        C(i,j)=(Z(i,j)+Z(i,j+1)+Z(i+1,j)+Z(i+1,j+1))/4;
    end
end

 


Ich hoffe ich hab das halbwegs verständlich erklärt. Hoffe jemand kann mir da helfen, ich kanns einfach nicht umsetzen Embarassed


Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 27.04.2012, 15:37     Titel:
  Antworten mit Zitat      
äh, wenn du minimal 100m Blockkantenlänge hast, wie willst du dann was mit 17m umsetzen? 117=100 würde ich bei Schritt 2 sagen...

Beim zeiten Anstrich (-->) willst du das irgendwie feiner rastern - und zwar nur in der Höhe - bringt das überhaupt was?

--> Mach doch erstmal deine Berechnungen für glatte 100m und dann sehen wir weiter.
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Quacksi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.04.2012, 21:13     Titel:
  Antworten mit Zitat      
Stell dir vor, du hast ein Aquarium, und in diesem Aquarium stehen Legosteine. Du kennst das Volumen des Aquariums (also Seitenlängen und Höhe) genau wie von den Legosteinen.
Jetzt möchtest du wissen wie viel Wasser in dem Aquarium ist - dafür musst du die ganzen kleinen Volumina der Legos vom Gesamtvolumen des Aquariums abziehen!
Und weil du lustig bist, willst du nicht einfach das Volumen des Wassers im ganzen Aquarium auf einmal, sondern fragst dich wie viel Wasser ist in den unteren 10cm, den 10cm darüber, usw usw
--> du zerlegst dein Aquarium also in Schichten, oder genauer: Du nimmst nicht die ganze Höhe, sondern stellst dir vor du legst jeweils 10cm dicke Schichten ins Aquarium!

Wie würdet ihr das anstellen?
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 28.04.2012, 23:40     Titel:
  Antworten mit Zitat      
In dem ich mein Aquarium in 10cm-Blöcke teile. Mir ist es dann aber auch egal, ob 1m-Blöcke für was anders besser wären...

(ich wollte nicht sagen, dass dein grundlegender Ansatz falsch wäre, aber mEn deine Vorstellungen von dem, was rauskommen kann...)

Also, brauche ich 10cm, nehm ich 10cm. Brauche ich 100m, nehme ich 100m.
Äquivalent zum Aquarium: 11cm=10cm.
Du kannst aber genauso auch 100x100x1[LE] rastern, ganz wie du magst...
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Quacksi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2012, 00:31     Titel:
  Antworten mit Zitat      
Hey andi,

erst mal danke dass du dir das überhaupt angeschaut hast!

Mein Problem ist nicht die Theorie hinter dem ganzen - ich kenne ja die Abstände der einzelnen Gitterpunkte zueinander, die Höhenwerte,... - ich weiß einfach nicht wie ich das oben beschriebene am besten in einer Schleife realisiere Crying or Very sad

Ich hänge da schon länger dran, und ich weiß, das ist bestimmt watscheneinfach, aber ich schaff es nicht diese Theorie in einen für Matlab verständlichen Code zu packen um meine Ergebnisse zu kriegen Confused

....Leider.....
 
Andy386
Forum-Guru

Forum-Guru


Beiträge: 485
Anmeldedatum: 24.06.09
Wohnort: ---
Version: 7.1/8
     Beitrag Verfasst am: 02.05.2012, 12:26     Titel:
  Antworten mit Zitat      
1.) So einfach ist das nicht.
2.) dein Ansatz sieht schon gut aus, aber ich glaube du erhoffst dir zu viel davon.
3.) Versuch es mal irgendwie mathematisch zu beschreiben.
4.) Wie gesagt eben erstmal in 100m Blöcken. Und eine 110m Schicht wird dann eben 1 hoch - also 100m. Damit musst du erstmal leben, bis es läuft.
5.) Nicht verzweifeln, bei dem tollen Wetter rausgehen - mit Block und Stift am See sitzen wird sicher mehr bringen als am PC zu grübeln!
_________________

Ich hasse es wenn die Leute Fragen stellen, man dann versucht sich Mühe zu geben, und diejenigen ihren Thread nie wieder besuchen...
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 - 2026 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.