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

Seitliche Entleerung Gefäß

 

gloerk
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 22.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2016, 14:53     Titel: Seitliche Entleerung Gefäß
  Antworten mit Zitat      
Moin,
ich habe einen realen Entleerungsversuch an einem Gefäß durchgeführt, dabei die Messwerte gemittelt und mir den Wasserstand über die Zeit geplottet.
Code:

clear all

%reale, gemittelte Messung
h = [680 660 640 620 600 580 560 540 520 500 480 460 440 420 400 380 360 340 320 300 280 260 240 200 180 160 140 120 100];
t = [0 12 27 42 59 74 91 108 125 143 162 180 199 219 239 259 280 300 323 346 370 395 422 450 481 514 551 591 646];
plot(h,t,'-o');
title('Ausfluss des Hochbehälters');
ylabel('Wasserstand in mm');
xlabel('Zeit in Sek');
grid on;
hold on;

 

Jetzt möchte ich allerdings zu der realen Messung noch theoretische Berechnungen als Vergleich einfügen. Dafür verwende ich drei Ausflussformeln.
Code:

%Ausfluss nach Bernoulli mit Vena Contracta
h0 = 680;
A = 12;
Aa = 11;
g = 9.81
v1 = sqrt(((A.^2 * h)/(A.^2 - 2*Aa.^2) * (h/h0 - (h/h0)^((A.^2/Aa.^2)-1)))*2*g);
bernoulli = v1;
plot(bernoulli,t,'-0');
hold on;

%Ausfluss nach Torricelli mit Vena Contracta
v2 = sqrt((2*g*h)/(1-(Aa/A).^2))
torricelli = v2;
plot(torricelli,t,'-0');
hold on;

%Ausfluss nach Malcherek
v3 = sqrt((g*h)/(1-(Aa/A)))
malcherek = v3;
plot(malcherek,t,'-0');
hold off
 

Allerdings bekomme ich hierbei immer einen Fehler. Meine Vermutung liegt bei den v1-3. Wie kann ich das hinbekommen?

Schon mal Danke für Ratschläge vorab!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


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

Zitat:
Allerdings bekomme ich hierbei immer einen Fehler.

Welche Fehlermeldung bekommst du?

Zitat:
Meine Vermutung liegt bei den v1-3.

Bei der Fehlermeldung ist doch die Zeile angegeben, warum also vermuten?

Da sind noch einige / und ^, die durch ./ bzw. .^ ersetzt werden sollten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gloerk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 22.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2016, 17:40     Titel:
  Antworten mit Zitat      
Das ist meine Fehlermeldung
Code:

Error using  ^
Inputs must be a scalar and a square matrix.
To compute elementwise POWER, use POWER (.^) instead.

Error in ausfluss (line 18)
v1 = sqrt(((A.^2) * h)./(A.^2 - 2*Aa.^2) * (h./h0 - (h./h0)^((A.^2./Aa.^2)-1))*2*g);

Liegt das daran, dass h ein Vektor ist?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

ja, und die Fehlermeldung und ich sagen dir ja auch, was du tun solltest:
(alle) ^ durch .^ ersetzen.
Dann wird die Operation elementweise durchgeführt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
gloerk
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 22.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.12.2016, 18:47     Titel:
  Antworten mit Zitat      
Danke, allerdings schmeißt er mir nun die nächste Meldung raus
Code:

Inner matrix dimensions must agree

Error in ausfluss (line 21)
v1 = sqrt(((A.^2) * h)./(A.^2 - 2*Aa.^2) * (h./h0 -
(h./h0).^((A.^2./Aa.^2)-1))*2*g);


Wie bekomme ich nun h ins richtige Format?
Habe es nun auch mit einer for-Schleife probiert, allerdings gibt es dabei eine andere Meldung
Code:

%Ausfluss nach Bernoulli mit Vena Contracta
h0 = 680;
A = 12;
Aa = 11;
g = 9.81;
for i= 1:1:23
i = h(i)    
   
v1 = sqrt(((A.^2) * i)./(A.^2 - 2*Aa.^2) * (i./h0 - (i./h0).^((A.^2./Aa.^2)-1))*2*g);
%v1(i, h)
bernoulli = v1;

plot(bernoulli,t,'-0');
end
hold on;

Meldung
Code:

Error using plot
Error in color/linetype argument.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


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

bitte lese immer die komplette Fehlermeldung (und poste sie komplett, wenn du etwas nicht verstehst).

Die Fehlermeldung kommt vermutlich von * ?
Wenn du zwei Vektoren miteinander multiplizierst, solltest du auch * durch .* ersetzen.

Beim Ansatz mit der for-Schleife ist das Problem, dass du bernoulli in jeder Iteration überschreibst. Wenn, dann muss es bernoulli(i) heißen.
Wobei da noch das kleine Problem besteht, dass du i ungeschickterweise als Schleifenindex (for i = ...) und als andere Variable (i = h(i)) verwendest. Das schreit nach Problemen.

Zur anderen Fehlermeldung: eine Option 0 gibt es nicht. Vermutlich meinst du o

Grüße,
Harald
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 - 2025 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.