Clever-Excel-Forum

Normale Version: Excel "Simulation"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute, das wird mein erster Post, hoffe das entspricht hier alles den Regeln ;)


Also, folgende Situation:
Ich berechne verschiedene Kräfte bei einem anliegendem Winkel. Die Kräfte werden für alle (Teil-) Winkel zwischen 0 und 90° berechnet, also für 0°, 1° etc.

Nun habe ich paar "feste Eingabewerte", die sich nicht ändern, da sie z.B. bestehende Bauteile darstellen.

Es gibt aber auch 3 "variable Werte", die, sagen wir mal, zwischen 1mm und 2000mm gültig seien. Abhängig von diesen 3 variablen Werten gibt es noch 2 einfache Überprüfungen, also nach folgendem Schema:
Code:
=IF(A<=B;'JA';'Nein')

Nun zu meiner Eigentlichen Frage: Wenn die 2 (symbolisch dargestellten) Überprüfungen Korrekt sind, möchte ich die Kräfte berechnen. Und zwar am besten so, dass alle Werte jeweils für jede Variable eingesetzt werden. Sagen wir in 10mm-Schritten: Würde also 200 Eingaben pro Variable ^3 bedeuten... Deshalb möchte ich das nicht manuell machen.... Und von all den Berechneten Werten möchte ich dann die geringste Resultierende Kraft anzeigen lassen, und damit dann auch die "günstigsten" variablen Werte.
Meinetwegen kann man auch erst alle Werte Berechnen und anschließend dann die aus einem Array o.Ä. aussortieren, wo beide Prüfungen nicht positiv verlaufen sind. 
Also nochmal Zusammengefasst: Es geht vor allem um die Ermittlung günstigster Werte. Diese werden durch die geringste berechnete Kraft definiert und müssen 2 einfachen Prüfungen unterzogen werden, um zu prüfen, ob sie gültig sind.
Vielleicht habt ihr paar Ideen, Danke.
MfG Robin
Hallo Robin,

ich habe die genaue Aufgabe noch nicht verstanden, aber das hört sich nach einer Aufgabe für den Optimierer (in Excel "Solver") an.

Man kann hierbei in einem  Fenster für die Solver-Parameter festlegen:

1) Für welche Zelle das Optimum gesucht wird (in deinem Fall Minimum der bereechneten Kraft)
2) Welche Zellen variiert werden sollen ( in deinem Fall  die 3 "variablen Werte")
3) Welche Nebenbedingungen eingehalten werden sollen ( in deinem Fall die Grenzen der drei "variablen Werte" und die 2 "einfachen Überprüfungen")
4) ...
Bitte lade mal deine Datei hoch.
Hi, danke schonmal für die Antworten. Eine Datei würde ich nur ungern hochladen wollen, ich probiere mich nochmal mit dem Erklären.
 
Wie gesagt geht es um Kräfte. Stellt euch eine Box vor (ähnlich einer kleinen Transportbox für Tiere). Diese ist an einer Seite offen und wird durch eine Klappe geschlossen, welche oben mit einem Scharnier befestigt ist. Ein pneumatischer Kolben öffnet nun diese Klappe.

Mithilfe meiner Excel-Datei kann ich die entstehenden Kräfte des Kolbens bzw. im Drehpunkt berechnen, abhängig vom Öffnungswinkel. Das klappt auch. Nun, der Öffnungswinkel der Klappe ist aber nicht der einzige Parameter, es gibt noch 3 weitere Parameter, unter anderem haben diese mit der Kolbenbeschaffenheit bzw. der Kolbenposition zu tun (Wo wird der Kolben an der Box / Klappe befestigt).

Diese sind mehr oder weniger Frei wählbar - Ich möchte nun aber die Werte der Parameter herausfinden, wo (Z.B. bei 90° Öffnungswinkel) die Kräfte so gering wie möglich sind. Sagen wir mal ich definiere die Parameter in einem Bereich von 1mm - 2000mm, bedeutet das, dass es 2000^3 mögliche Varianten gibt, die ich nur ungern manuell alle in Excel untereinander schreiben würde. 

Nun zu meiner Frage: Gibt es die Möglichkeit, das automatisch machen zu lassen? Ich gebe einer Funktion im Prinzip die "Rechenweise" bei, sage ihr die Parameter und von wo bis wo diese getestet werden sollen und Excel spuckt mir die besten Parameter aus?

LG
Hallo Robin,

das wäre ja im Prinzip so was?
Sub Parametertest()
 Dim i1 As Long, i2 As Long, i3 As Long
 Dim i(1 To 3) As Long
 Dim dblE As Double, dblMin As Double
 For i1 = 1 To 2000 Step 1
   For i2 = 5 To 100 Step 5
     For i3 = 2 To 600 Step 2
       'dblE = "Formel mit i1 i2 i3"
       If dblMin = 0 Or dblE < dblMin Then
         dblMin = dblE
         i(1) = i1
         i(2) = i2
         i(3) = i3
       End If
     Next i3
   Next i2
 Next i1
 MsgBox i(1) & vbNewLine & i(2) & vbNewLine & i(3)
End Sub
Gruß Uwe
Hi, 

Genau, vom Konstrukt her sieht das gut aus, Danke :)

Werde mir das bei Gelegenheit mal genauer Ansehen und dementsprechend Umsetzten (und berichten).
Danke
Update:

Habe den Code jetzt mal meinen Ansprüchen nach Geändert. Hatte erst einen Fehler beim Debuggen, aufgrund doppelter Deklaration einer Double-Variable. Hab diese Zeile gelöscht und wollte das Modul speichern... Excel hängt sich dabei auf, also Not Responding, Jedoch schmiert sie nicht ab bei weiteren Klicken auf das Fenster. 

Kann es sein, dass er die Funktion einmal Durchläuft und es deshalb dazu kommt? Habe im Excel-Sheet den Aufruf auf die Methode drin... Hätte aber nicht gedacht, dass die ausgeführt wird, sobald ich das Modul speicher?

Da die Berechnung doch recht komplex ist, überforder ich Excel damit, glaube ich. Ich werde mal die Schrittgröße der Schleife hochsetzten und mal gucken.

MfG