| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | erp4cad: Das ERP für komplexe CAD-Projekte!, eine Pressemitteilung
|
Autor
|
Thema: Parametergenauigkeit (3250 mal gelesen)
|
mellas Mitglied Student

 Beiträge: 29 Registriert: 14.03.2012 CATIA V5R21
|
erstellt am: 25. Okt. 2012 08:51 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen! edit: Meine Problembeschreibung unten ist vielleicht etwas verwirrend, darum versuche ich, meine Frage/Problem ohne Beschreibung des Hintergrunds nochmal auf den Punkt zu bringen: Was muss ich berücksichtigen, damit der PEO bei der Variation der freien Parameter die angegebene Schrittweite berücksichtigt? Trotz Angabe einer großen Schrittweite verwendet die Optimier-Routine sehr kleine Inkremente und benötigt dadurch unnötig viele Iterationen. /edit Kann man die Genauigkeit (also die Zahl der Nachkommastellen) von Parametern vom Typ "reelle Zahl" festlegen? Mein Problem: ich möchte mit dem Product Engineering Optimizer einen Parameter optimieren, der von mehreren Integer-Parametern abhängt. Da der PEO aber keine Ganzzahlen als freie Parameter akzeptiert, muss ich reelle Zahlen als freie Parameter verwenden und folgenden Umweg gehen:
Code: GanzeZahl.1=round(ReelleZahl.1)
Jetzt tritt das Problem auf, dass der PEO die freien Parameter irgendwo hinter der 5./6./7. Nachkommastelle verändert, was aber keinen (großen) Einfluss auf meine Ganzzahl-Parameter und den Zielwert hat. Die Optimerung bricht dann nach der vorgegeben Anzahl von Iteratiosschritten bzw. nach X Aktualisierungen einfach ab ohne das Ergebnis nennenswert verbessert zu haben. Ich habe sowohl in der Optimierung als auch im Strukturbaum eine Schrittweite von 0,5 vorgegeben und die Startwerte der freien Parameter auf ganze Zahlen gesetzt - aber ohne Erfolg, denn der Optimierer jongliert immernoch mit den letzten Nachkommastellen von 12,608943254634 rum. Ich habe jetzt die Idee, irgendwie (aber wie?) zu erzwingen, dass die freien Parameter/reellen Zahlen nur Werte in 0,5er-Schritten annehmen können.------------------ viele Grüße Arne [Diese Nachricht wurde von mellas am 26. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xam0560 Mitglied Konstruktion / Administration
 
 Beiträge: 445 Registriert: 11.08.2008 @Work Xeon W3565 24Gbyte (DDR3-2000 MHz AMD Fire Pro V5900 (Fire GL V) 256GB SSD (Samsung SSD 830) 500GB HD502HJ 7200Umin. Win. 7 prof. 64bit Pro-E Wildfire 4.0 Creo Windchill PDM-Link 10.0 ACAD 2013 + Athena Aufsatz ACAD 2011 % 2012 Catia V5 R19 SP9 HICAD 2014 SP2 Helios 2014 Inventor 2014 Rhino 5.0 @Home I7 920 Extreme 6 GByte (DDR3-2000 Mhz) ATI Radeon HD 5850 2x WD 1TB 4x Seagate a 2TB 2x WD 5TB im Raid 1 1x Samsung SSD 850 Pro 500Gb
|
erstellt am: 26. Okt. 2012 10:41 <-- editieren / zitieren --> Unities abgeben:          Nur für mellas
|
mellas Mitglied Student

 Beiträge: 29 Registriert: 14.03.2012 CATIA V5R21
|
erstellt am: 26. Okt. 2012 11:21 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von xam0560: ???? Ich versteh die Frage bzw. die Fragen nicht ??? Ich glaub mir fehlt ne Windung für diesen Text.
Da mein Problem etwas konfus (beschrieben) ist, geht die eigentlich Frage unter, darum versuche ich es nochmal mit einer bildlichen stark vereinfachten Beschreibung: Ich habe eine Fläche mit den Abmessungen a x b, auf die ich möglichst viele gleiche Kisten mit der flächigen Abmessung c x d stellen will. ("Wie viele Bierkisten kann ich auf den Fußboden eines rechteckigen Raumes stellen?") Meine zu optimierende Größe ist die Kistenanzahl N, die sich aus dem Produkt von "Kistenanzahl in x-Richtung n_x" und "Kistenanzahl in y-Richtung n_y" zusammensetzt. Die freien, d. h. veränderlichen Parameter sind n_x und n_y. Also soll folgende objektive Funktion maximiert werden: N(n_x; n_y)=n_x * n_y Dabei gelten 2 Randbedingungen: n_x*c <=a und n_y*d <=b (Die Möglichkeit, die Kisten um 90° zu drehen sei erstmal vernachlässigt) Der PEO-Optimierer mag aber keine ganzzahligen freien Parameter, deswegen muss ich ihm 2 reelle Zahlen n_xreal und n_yreal geben. Ich mache zwei Parameterbeziehungen, die sagen: n_x=floor(n_xreal) und n_y=floor(n_yreal) sodass aus der objektiven Funktion wird: N(n_xreal; n_yreal)=floor(n_xreal) + floor(n_yreal) (ob da nun round(), floor() oder ceil() verwendet wird ist ja prinzipiell egal, Hauptsache ist, dass die Kistenanzahlen ganzzahlig sind bzw. reelle Zahlen mit Nullen hinter dem Komma, denn halbe Kisten gibts nicht). Soweit so gut, aber der PEO variiert die freien Parameter trotz einer vorgegeben Schrittweite von 0,5 immer um sehr kleine Inkremente, sodass diese Veränderung aufgrund der Runden-Funktion in der objektiven Funktion keinen Einfluss auf das Ergebniss haben. Dadurch sind sehr viele Iterationszyklen nötig (zum Teil mehrere 100), bis sich der zu optimierende Parameter ändert. Jetzt suche ich eine Möglichkeit, um a) den Optimierer dazu zu zwingen, sich gefälligsten an die Schrittweite zu halten, die ich ihm vorgebe oder b) irgendwie festzulegen, dass die freien Parameter n_xreal und n_yreal nur eine Nachkommastelle haben können.
------------------ viele Grüße Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xam0560 Mitglied Konstruktion / Administration
 
 Beiträge: 445 Registriert: 11.08.2008 @Work Xeon W3565 24Gbyte (DDR3-2000 MHz AMD Fire Pro V5900 (Fire GL V) 256GB SSD (Samsung SSD 830) 500GB HD502HJ 7200Umin. Win. 7 prof. 64bit Pro-E Wildfire 4.0 Creo Windchill PDM-Link 10.0 ACAD 2013 + Athena Aufsatz ACAD 2011 % 2012 Catia V5 R19 SP9 HICAD 2014 SP2 Helios 2014 Inventor 2014 Rhino 5.0 @Home I7 920 Extreme 6 GByte (DDR3-2000 Mhz) ATI Radeon HD 5850 2x WD 1TB 4x Seagate a 2TB 2x WD 5TB im Raid 1 1x Samsung SSD 850 Pro 500Gb
|
erstellt am: 26. Okt. 2012 11:47 <-- editieren / zitieren --> Unities abgeben:          Nur für mellas
So. alsoooo. Hier die Lösung falls ich richtig liege. Warum zum Henker benützt du PEO??? Eine einfache Formel tut es auch. Erstell folgende Folmel: rnd(max((b/a)*(a/c);(b/c)*(a/d))) und das wars. Selbst die Drehung ist drin. Ich modellier das mal schnell. Entweder stehe ich aufm Schlauch oder ich bin zu blöd dafür. :-) Gruß, Maximilian
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellas Mitglied Student

 Beiträge: 29 Registriert: 14.03.2012 CATIA V5R21
|
erstellt am: 26. Okt. 2012 12:03 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von xam0560: So.alsoooo. Hier die Lösung falls ich richtig liege. Warum zum Henker benützt du PEO??? Eine einfache Formel tut es auch. Erstell folgende Folmel: rnd(max((b/a)*(a/c);(b/c)*(a/d))) und das wars. Selbst die Drehung ist drin. Ich modellier das mal schnell. Entweder stehe ich aufm Schlauch oder ich bin zu blöd dafür. :-) Gruß, Maximilian
Hallo Maximilian! Deine Formel ist natürlich die beste Lösung, wenn es um das zuletzt beschriebene Beispiel geht. Aber mein Problem ist etwas umfangreicher, deswegen benutze/brauche ich den PEO: Ich unterteile eine 12-eckige Fläche (doppel-T-förmig) in 3 Rechtecke, auf die ich eine Anzahl von Kisten verteile. Jetzt sollen die Kisten so verteilt werden, dass ihr gemeinsamer Schwerpunkt möglichst nahe an einem vorgegebenen Wert liegt. Vielen Dank für deinen simplen Lösungsvorschlag! (aber damit komme ich nicht weiter, weil mein System mehrere Freiheitsgrade/freie Parameter hat). Konkret benötige ich einfach nur die Antwort, was ich tun muss, damit der Optimierer mit einer vorgegebenen Schrittweite arbeitet oder wie ich die Nachkommastellen einer reellen Zahl beschränke. Das meine Beschreibung mehr Verwirrung als Erklärung bringt war mir klar, aber ich wollte Antworten wie "Beschreib dein Problem doch mal genauer, so pauschal kann man da nicht helfen, wenn man nicht weiß worum es geht" vorbeugen... ------------------ viele Grüße Arne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xam0560 Mitglied Konstruktion / Administration
 
 Beiträge: 445 Registriert: 11.08.2008 @Work Xeon W3565 24Gbyte (DDR3-2000 MHz AMD Fire Pro V5900 (Fire GL V) 256GB SSD (Samsung SSD 830) 500GB HD502HJ 7200Umin. Win. 7 prof. 64bit Pro-E Wildfire 4.0 Creo Windchill PDM-Link 10.0 ACAD 2013 + Athena Aufsatz ACAD 2011 % 2012 Catia V5 R19 SP9 HICAD 2014 SP2 Helios 2014 Inventor 2014 Rhino 5.0 @Home I7 920 Extreme 6 GByte (DDR3-2000 Mhz) ATI Radeon HD 5850 2x WD 1TB 4x Seagate a 2TB 2x WD 5TB im Raid 1 1x Samsung SSD 850 Pro 500Gb
|
erstellt am: 26. Okt. 2012 12:59 <-- editieren / zitieren --> Unities abgeben:          Nur für mellas
ohh. ^^ Dann verstehe ich dein Problem. Ok da steigt mein Wissen aus, da ich deine Datei nicht habe und mir die randbedingungen fehlen. Jetzt verstehe ich auch das Problem mit den Kommastellen. Wenn du lust hast, lad das Model mal hoch, hab am Wochenende ein bisschen Time. Würde mir das sehr gerne anschaun. Gruß, Maximilian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mellas Mitglied Student

 Beiträge: 29 Registriert: 14.03.2012 CATIA V5R21
|
erstellt am: 26. Okt. 2012 13:24 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von xam0560: ohh. ^^ Dann verstehe ich dein Problem. Ok da steigt mein Wissen aus, da ich deine Datei nicht habe und mir die randbedingungen fehlen. Jetzt verstehe ich auch das Problem mit den Kommastellen. Wenn du lust hast, lad das Model mal hoch, hab am Wochenende ein bisschen Time. Würde mir das sehr gerne anschaun. Gruß, Maximilian
ich mache meine Datei nochmal ein bisschen hübsch, beschreibe den Kontext und lade beides dann hoch! edit: Hab noch einen Fehler meinem Modell gefunden, der aber nix mit dem PEO zu tun hat. Im Grunde geht es einfach nur darum, dass ich im PEO zwar eine Schrittweite für die freien Parameter vorgeben kann, diese vom Algorithmus aber nicht verwendet wird (zumindest sieht es in der Excel-Tabelle, in der alle Iterationen aufgeführt sind so aus). ------------------ viele Grüße Arne [Diese Nachricht wurde von mellas am 27. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |