|
|
Spaß mit multidimensionalen Arrays |
|
Frank345 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.09.2016, 18:23
Titel: Spaß mit multidimensionalen Arrays
|
 |
|
 |
|
Hallo,
ich versuche ein Optimierungsproblem zu lösen und habe mich für folgende recht einfache Variante entschieden.
Ich habe ein Modell mit 4 Einfluss, Strom von i0...i1, Spannung von u0 ... u1, Drehzahl von n0...n1, Temperatur von t0...t1.
Die Größen lege ich auf ein vierdimensionales Grid und berechne mir dann eine Größe daraus: einen Druck p=foo(i,u,n,t).
Mein Ziel ist nun, eine Darstellung p=Druck_angefordert über n unter den Randbedingungen, dass die umgesetzte Leistung minimal ist und die Temperatur t kleiner als ein Grenzwert T_gefährlich ist.
Ich habe also nun:
* P_GRID
* L=U_GRID.*I_GRID
* T_GRID<T_Gefährlich
Ich dachte, ich kann da jetzt clever mit Indizes drangehen:
idxP = Durck_angefordert - delta < p & p < Druck_angefordert + delta;
idxT = T_GRID < T_Gefährlich.
Und jetzt?
min(L(idxP & idxT)) arbeitet nicht entlang meiner Drehzahldimension?
Wie komme ich jetzt elegant auf meine Funktion p über n (N_GRID?)?
Ich könnte es in einer Schleife auswerten, aber es sieht so charmant aus und ich habe gleich für alle Druck-Werte das gleiche berechnet. Ich könnte auch einen Optimierer nehmen.
Aber es muss doch auch irgendwie mit Index-Masken gehen, oder?
Oderbin ich total auf dem Holzweg?
Danke!
Gruß
Frank
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 20.09.2016, 19:55
Titel:
|
 |
Hallo,
bitte den Code posten statt ihn zu umschreiben. Eventuelle Fehlermeldungen bitte hier reinkopieren statt sie zu übersetzen oder zu umschreiben.
Folgendes ist mir nicht klar:
Zitat: |
min(L(idxP & idxT)) arbeitet nicht entlang meiner Drehzahldimension?
Wie komme ich jetzt elegant auf meine Funktion p über n (N_GRID?)? |
Wäre es nicht einfacher, t von Anfang an so zu wählen, dass t < T_Gefährlich?
Grüße,
Harald
|
|
|
Frank345 |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.09.2016, 08:33
Titel:
|
 |
|
 |
|
Hallo Harald, hallo Welt,
danke für deine Antwort. Ich tu mich etwas schwer, den Code zu posten, weil ich nicht weiß, wie er konkret aussehen soll (es gibt auch keine Fehlermeldung) und es im konkreten Fall noch etwas komplizierter ist, weil T_gefährlich auf nochmal von n abhängt.
Das Problem ist das folgende:
* Die "Hinrechnung" p=foo(...) ist sehr billig mit Matrizenoperationen zu machen. Umgekehrt, das für jeden Punkt separat in einer Schleife zu machen ist sehr teuer (erspart mir aber das hochdimensionale Grid).
* Die Indizes zu bestimmen, die mich in jedem konkreten Fall interessieren, ist sehr billig zu machen.
* Das Problem ist, dass ich jetzt durch die hochdimensionale grid-Struktur den Überblick verloren habe.
Was ich machen möchte: für jedes n suche mir dasjenige p das etwa p_soll und die Randbedingungen entspricht (idxP & idxT) und bei dem die Leistung minimal ist. Ich bekomme es nur nicht über eine "n-Achse" dargestellt, sondern über dieses grid. Darum ist evtl. auch "min" das falsche Tool und ich muss irgendwie mit interp und so arbeiten.
Mir scheint das ein strukturell recht einfaches Problem zu sein und das auch eine halbwegs direkte Lösung.
Meine Alternative ist, das Problem als Suchproblem umzuformulieren und das dauert dann zeitlich sehr lange, darum würde ich es gern vermeiden.
Gruß
Frank
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 21.09.2016, 09:03
Titel:
|
 |
Hallo,
Zitat: |
Ich tu mich etwas schwer, den Code zu posten, weil ich nicht weiß, wie er konkret aussehen soll (es gibt auch keine Fehlermeldung) und es im konkreten Fall noch etwas komplizierter ist, weil T_gefährlich auf nochmal von n abhängt. |
Du hast doch sicher schon mal angefangen. Die einzelnen Ideen sehen ja gut aus - was passiert denn, wenn du sie zusammenfügst?
Zitat: |
Das Problem ist, dass ich jetzt durch die hochdimensionale grid-Struktur den Überblick verloren habe. |
Den habe ich bis jetzt noch weniger, weil ich die Variablen nicht mal vor mir habe ;)
Zitat: |
für jedes n suche mir dasjenige p das etwa p_soll und die Randbedingungen entspricht (idxP & idxT) und bei dem die Leistung minimal ist. |
Da sehe ich keinen Weg um eine for-Schleife über n.
Grüße,
Harald
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|