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

Übungsaufgabe 3 Flüssigkeitsbehälter Simulation

 

Pablo88

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.01.2013, 15:40     Titel: Übungsaufgabe 3 Flüssigkeitsbehälter Simulation
  Antworten mit Zitat      
Code:
% Das ist mein Programm: Hauptfunktion:
% Wasserstände in drei hintereinander geschalteten Flüssigkeitsbehältern
% mit gleicher Grundfläche
% Nebenfunktion: fluessigkeitsbehaelter_dgl

function fluessigkeitsbehaelter

%% Aufräumen
clear all;    % Löschen aller Daten, Variablen, Felder  (=0)
close all;    % Schließen aller Grafiken und Bilder
clc;          % Löschen des Workspace Command Window

%% Parameterdefinition
p.F = 0.2;        % Zulaufstrom in m^3/s
p.AB = 0.5;       % Grundfläche der Tanks in m^2    
p.AR = 0.03;      % Querschnittsfläche der Rohre AR in m^2
p.g = 9.81;       % Erdbeschleunigung g in m/s^2

%% Anfangsbedingungen
t_span = [0 600];        %Zeitintervall von 0 bis 600 Sekunden = 10 min
h1_0 = 4;             %Startfüllhöhe Tank 1 in m
h2_0 = 3;             %Startfüllhöhe Tank 2 in m
h3_0 = 0.5;             %Startfüllhöhe Tank 3 in m
H_0 = [h1_0,h2_0,h3_0]; %Startfüllhöhen in einem Vektor zusammengefasst

options=odeset;         %Optionen für den Lösungsalgorithmus

%% Aufruf des solvers für Differentialgleichungen
[t H] = ode45(@fluessigkeitsbehaelter_dgl,t_span,H_0,options,p);     %Aufruf des Lösers für Differentialgleichungen
                                                                    %Übergabe der Nebenfunktion, des Zeitintervalls, der Anfangsbedingungen, der Optionen und der Parameter                      

%%%% Gesetz von Torricelli %%%%
p.F1 = p.AR * (2 * p.g * (h1 - h2 - h3).^(1/2))
p.F2 = p.AR * (2 * p.g * (h2 - h3).^(1/2))
p.F3 = p.AR * (2 * p.g * (h3).^(1/2))


%% Graphische Darstellung
figure(1);                                  %Erzeugt ein Grafikfenster, in das geplottet wird
subplot(2,2,1)                              %Ermöglicht die Darstellung von mehreren Grafiken in einem Fenster (Position: "Oben links einer 2x2-Matrix")
plot(t,H(:,1))                              %Grafische Darstellung von h1 über t
hold on;                                    %Behält einen Plot bei und ermöglicht das Einfügen von weiteren Plots in ein Grafikfenster
title('Füllstand des ersten Tanks');  %Titel der ersten Grafik
xlabel('Zeit t, [s]');                      % Bezeichnung der x-Achse
ylabel('Höhe h, [m]');                      % Bezeichnung der y-Achse

subplot(2,2,2)                              %Ermöglicht die Darstellung von mehreren Grafiken in einem Fenster (Position: "Oben rechts einer 2x2-Matrix")
plot(t,H(:,2))                              %Grafische Darstellung von h2 über t
hold on;                                    %Behält einen Plot bei und ermöglicht das Einfügen von weiteren Plots in ein Grafikfenster
title('Füllstand des zweiten Tanks'); %Titel der zweiten Grafik
xlabel('Zeit t, [s]');                      % Bezeichnung der x-Achse
ylabel('Höhe h, [m]');                      % Bezeichnung der y-Achse

subplot(2,2,3)                              %Ermöglicht die Darstellung von mehreren Grafiken in einem Fenster (Position: "unten links einer 2x2-Matrix")
plot(t,H(:,3))                              %Grafische Darstellung von h2 über t
title('Füllstand des dritten Tanks'); %Titel der dritten Grafik
xlabel('Zeit t, [s]');                      % Bezeichnung der x-Achse
ylabel('Höhe h, [m]');                      % Bezeichnung der y-Achse

end

%%%%%%%%% Nebenfunktion %%%%%%%%%

function dHdt = fluessigkeitsbehaelter_dgl(t,H,p)

%%Aufsplitten der Variablen
h1 = H(1);      %Füllstand des ersten Tanks steht in der ersten Spalte des Vektors H
h2 = H(2);      %Füllstand des zweiten Tanks steht in der zweiten Spalte des Vektors H
h3 = H(3);      %Füllstand des dritten Tanks steht in der dritten Spalte des Vektors H

%% Differentialgleichung
dh1dt = (p.F  - p.F1)/p.AB
dh2dt = (p.F1 - p.F2)/p.AB
dh3dt = (p.F2 - p.F3)/p.AB

%%Rückgabewert zum Spaltenvektor machen
dHdt = [dh1dt dh2dt dh3dt]';

end


 


aufgabenstellung.tif
 Beschreibung:
Ich muss die Aufgabenstellung im Anhang lösen.
Jetzt bin ich am Verzweifeln, da das Programm nicht funktioniert und ich nicht weiß woran es liegen soll.
Eventuell ist das Einfügen der Gleichungen für F1,F2 und F3 falsch.
Über Hilfe wäre ich unerme

Download
 Dateiname:  aufgabenstellung.tif
 Dateigröße:  63.64 KB
 Heruntergeladen:  541 mal


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.