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

Flächenberechnung - Profil

 

ptrckolous
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2012, 09:20     Titel: Flächenberechnung - Profil
  Antworten mit Zitat      
Hallo,

ich würde gerne folgendes realisieren, jedoch reichen meine Matlab/Simulink Kenntnisse bei weitem dafür nicht aus, weshalb ich eure Hilfe erbitte.

Dazu erkläre ich am Besten kurz mein vorhaben anhand des Bildes.

- Es wird ein Profil vorgegeben, was hier durch die schwarzen Linie gekennzeichnet ist
- Die negative Fläche unterhalb der x-Achse(lila) wurde nach oben kopiert und soll vom grünen Bereich abgezogen werden
- Das Ziel ist es, dass der grüne Bereich und der "hautfarbene" Bereich nach Abzug des linanes Bereiches gleich groß sind

-> Die graue Linie ergibt sich also daraus, wo der hautfarbene Bereich = grünem Bereich (abzüglich lila Bereich) ist

Mir wurde gesagt, dass man dies mit Hilfe von Matlab realisieren kann, jedoch fehlen mir dafür jedoch ganz klar die Kenntnisse.

Würde mich freuen wenn ihr mir helfen könntet.
Vielen Dank

Regelung-Prinzipdarstellung.png
 Beschreibung:

Download
 Dateiname:  Regelung-Prinzipdarstellung.png
 Dateigröße:  11.52 KB
 Heruntergeladen:  487 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 15.10.2012, 12:03     Titel: Re: Flächenberechnung - Profil
  Antworten mit Zitat      
Hallo ptrckolous,

In welcher Form liegen die Inputs vor und wie stellst Du Dir die Outputs vor?
Welche Art von Hilfe erwartest Du? Es ist immer wahrscheinlicher eine konkrete Hilfestellung zu bekommen, wenn man eine konkrete Frage stellt. Zudem ist es hilfreich, wenn Du postest, was Du bisher geschafft hast, auch wenn es noch Fehler hat.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
ptrckolous
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2012, 13:54     Titel:
  Antworten mit Zitat      
Entschuldigung, ich habe mich wahrscheinlich etwas zu wirr ausgedrückt.

Hier nochmal ein Versuch Very Happy

edit:// Die rote Linie soll so gelegt werden, dass der grüne Bereich = türkiser Bereich + oranger Bereich ergibt

Würde mich freuen wenn Ihr mir weiterhelfen könntet

Prinzipdarstellung.png
 Beschreibung:

Download
 Dateiname:  Prinzipdarstellung.png
 Dateigröße:  10.27 KB
 Heruntergeladen:  515 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
eey
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2012, 18:14     Titel:
  Antworten mit Zitat      
Mit trapz kannst du die Fläche unter einer Kurve ausrechnen, mit abs kannst du eine Kurve "hochklappen"... damit sollte man eigentlich schon was hinkriegen.

Grüße,
eey
Private Nachricht senden Benutzer-Profile anzeigen
 
ptrckolous
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 15.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2012, 20:03     Titel:
  Antworten mit Zitat      
Danke, aber damit habe ich bereits mein Glück versucht (in Simulink mit aufintegrieren), kam jedoch zu keinem Ergebnis.

Vielleicht noch etwas vereinfacht:

Es soll hier bis zur grauen Linie betrachtet werden.

Gibt es eine "Funktion/Berechnung/ähnliches" in Simulink/Matlab womit ich die rote Linie festlegen kann, so dass gilt orange Fläche = grüne Fläche?

Danke



Prinzip.png
 Beschreibung:

Download
 Dateiname:  Prinzip.png
 Dateigröße:  10.38 KB
 Heruntergeladen:  441 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
dmjr
Forum-Century

Forum-Century


Beiträge: 199
Anmeldedatum: 02.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2012, 20:56     Titel:
  Antworten mit Zitat      
Du suchst also eine Lösung für:
0=\int_a^b \! f(x)-r \, dx
wenn ich deine Frage richtig verstehe?

Wobei r die Höhe deiner Trennlinie ist?

In welcher Form liegen die Daten vor?

Lösung mittels symbolic Toolbox oder numerisch?
Private Nachricht senden Benutzer-Profile anzeigen
 
eey
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 86
Anmeldedatum: 31.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.10.2012, 21:53     Titel:
  Antworten mit Zitat      
Ich versteh ja nicht warum du in Simulink rummachst, wenn du ne Lösung in Matlab suchst. Mit "aufintegrieren" alleine wirst du nicht weit kommen, stattdessen hättest du es ja einfach mal in Matlab versuchen können.

Aber das hier sollte dir weiterhelfen (eventuelle Fehler nicht ausgeschlossen).

Code:

% Beispieldaten
x = 1:2201;
y = [zeros(1,100) 0:0.01:10 10 - 0.01:-0.01:0 zeros(1,100)];
 


Code:

function [ h_final ] = findLine( x, y )

    % Die Höhe deiner "roten" Linie initialisieren
    h_0 = 1;
   
    % Numerisch die Höhe der Linie bestimmen
    h = fminsearch(@(h)LinienAbweichung(x,y,h),h_0);
   
    % Ergebnis zurückgeben
    h_final = h;
   
    % Ergebnis plotten
    figure;
    plot(x,y,'linewidth',2,'color','k');
    hold on;
    line([x(1) x(end)], [h_final h_final],'linewidth',2);
    grid on;
    xlim([x(1) x(end)]);
    ylim([y(1) max(y)]);

end


function [ Abweichung ] = LinienAbweichung(x, y, h)

    % Fläche oberhalb der Linie bestimmen ("orange" Fläche)
    y_temp = y - h;
    for i=1:length(y_temp)
        if y_temp(i) < 0
            y_temp(i) = 0;
        end
    end
    orangeFlaeche = trapz(x,y_temp);
   
    % Differenzfläche bestimmen ("weiße" Fläche)
    for i=1:length(y)
        if y(i) > h
            y(i) = h;
        end
    end
    weisseFlaeche = trapz(x,y);
   
    % Fläche unterhalb der Linie bestimmen ("grüne" Fläche)
    grueneFlaeche = trapz(x,h*ones(1,length(y))) - weisseFlaeche;
   
    % Abweichung berechnen und zurückgeben
    Abweichung = (orangeFlaeche - grueneFlaeche)^2;

end
 


untitled.png
 Beschreibung:

Download
 Dateiname:  untitled.png
 Dateigröße:  8.08 KB
 Heruntergeladen:  504 mal
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.