Volupe logo

Blog berichten Volupe

Simcenter Amesim's Ingebouwde Optimalisatie Functies

In deze Simcenter Amesim post zullen we kijk eens naar de optimaliseringskenmerken en -methoden verkrijgbaar in Simcenter Amesim, en hopelijk enig inzicht geven in het gebied van optimalisatie in het algemeen. 

"Optimalisatie, ook bekend als wiskundig programmeren, is een verzameling wiskundige principes en methoden die gebruikt worden voor het oplossen van kwantitatieve problemen in vele disciplines, waaronder natuurkunde, biologie, techniek, economie en het bedrijfsleven." - Britannica.com

Als ingenieur die met systeemsimulatie werkt, is uw doel bij het ontwerpen van een systeem, of component, gewoonlijk het systeem te verbeteren en het zoveel mogelijk te verbeteren in zekere zin. Meestal houdt dit in dat u de resultaten vergelijkt en toetst aan een groot aantal vereisten, dat u afwegingen onderzoekt, en dat u een realistisch idee hebt van de kosten. Als het product een bestaand product vervangt, moet het minstens even goed zijn als het oude, of nog beter, aanzienlijk beter dan het oude. Andere aspecten zijn dat het sneller marktklaar moet zijn, minder duur, gemakkelijker te onderhouden, minder energie nodig, enzovoort. Een realistische manier om aan de steeds hogere eisen te voldoen en ervoor te zorgen dat bij de ontwikkeling geen middel onbeproefd wordt gelaten, is gebruik te maken van optimalisatie.

Optimalisatie in Simcenter Amesim

Opzetten en definiëren van optimalisatiegevallen in Simcenter Amesim wordt gedaan via de Study Manager, figuur 1. Hier worden zowel onafhankelijke als afhankelijke variabelen verzameld uit het onderliggende Simcenter Amesim model en opgenomen onder de Study Parameter Definition. Onder dezelfde map worden optimalisatiedoelstellingen, d.w.z. doelfuncties, geplaatst langs eventuele constraints.

Figuur 1, Simcenter Amesim's Study Manager met een geselecteerd optimalisatieproces

In Simcenter Amesim zijn de volgende twee optimalisatie-algoritmen beschikbaar:

   NLPQL

   Genetisch algoritme

Niet-lineair programmeren met kwadratische Lagrangiaan (NLPQL) is een op gradiënten gebaseerd algoritme voor niet-lineaire problemen. De methode maakt gebruik van de gradiënten van de doelfunctie, of benaderde gradiënten, om een doelfunctie incrementeel te verbeteren en is in het algemeen zeer geschikt voor lokale zoekacties.

Een kenmerk van deze gradiënt-gebaseerde aanpak is dat hij stopt zodra hij een lokaal minimum vindt. Daarom kan de uiteindelijke optimale oplossing afhangen van de keuze van uw startpunt, d.w.z. uw initiële parameterwaarden. Voor veel optimalisatieproblemen kan dit geen probleem zijn omdat er slechts één minimum kan zijn, zoals voor een cirkelvormige paraboloïde. Als het probleem echter complexer is in de zin dat het meerdere lokale optima bevat, bekend als multimodaal, is het mogelijk dat dit algoritme er niet in slaagt de optimale oplossing te vinden.

Zoals bij alle optimalisatiestudies, kan veel gewonnen worden door uw probleem te bestuderen en te begrijpen alvorens te beslissen welke methode te gebruiken. Hieronder in figuur 2 wordt een tweedimensionale functie getoond die de Schwefel-functie wordt genoemd. Soortgelijke functies worden gebruikt om optimalisatiealgoritmen te testen en hun gedrag te evalueren.

Figuur 2, een tweedimensionale Schwefel-functie met meerdere lokale minima en maxima

Het genetisch algoritme Binnen Simcenter Amesim is wat men noemt een evolutionair algoritme en dit type algoritme wordt vaak gebruikt om de kans op het vinden van het globale optimum te vergroten. Het algoritme vertrouwt niet op een gradiënt om de richting van de oplossing te bepalen. In plaats daarvan begint het zijn brede zoektocht door willekeurig een reeks simulatiegevallen te genereren en uit te voeren, vergelijkbaar met een beperkte Design of Experiments (DoE)-studie. Het resultaat van elke simulatie wordt dan geëvalueerd, en de gevallen die de doelfunctie het meest verbeteren worden behouden. Het algoritme gaat dan verder door nieuwe gevallen (kinderen) te selecteren uit de vorige gevallen (ouders), en door parameterwaarden te kiezen die dicht bij deze ouders liggen. Elk kind neemt parameterwaarden van twee van de oudergevallen, en de optimalisatie gaat verder over verschillende generaties, d.w.z. iteraties, totdat het maximumaantal generaties is bereikt.

Figuur 3, Standaardinstellingen voor het Genetisch algoritme

In figuur 3 hierboven zijn de instellingen voor het Genetisch algoritme gegeven. Bevolkingsgrootte specificeert het aantal individuen/gevallen dat tijdens elke iteratie wordt uitgevoerd. Voortplantingsverhouding vertelt de optimaliseerder hoeveel cases in elke iteratie vervangen moeten worden door nieuwe cases. De standaardwaarde van 80 [%] betekent dat de beste 20 [%] van de cases bewaard zullen worden voor de volgende iteratie. Maximum aantal generaties bepaalt het totaal aantal uit te voeren iteraties. Mutatie waarschijnlijkheid wordt alleen toegepast in scenario's waarin discrete parameters zijn gekozen en geeft het algoritme de waarschijnlijkheid dat deze parameters zullen muteren. Mutatie amplitude zorgt ervoor dat er ruimte is voor meer ontwerpexploratie en beperkt het risico op convergentie naar een lokaal optimum. Als de waarden dicht bij nul worden gesteld, zal de oplossing waarschijnlijk sneller convergeren, maar met het risico dat men in een lokaal optimum verstrikt raakt. Tenslotte hebben we de Zaad, die de pseudo-willekeurige getallengenerator van een startpunt voorziet. Indien twee optimalisaties worden uitgevoerd met dezelfde Seed, en zonder enige andere instellingen te veranderen, dan zal het resultaat van beide onderzoeken exact hetzelfde zijn. Als in plaats daarvan een andere Seed waarde wordt gekozen, dan zullen zowel het startpunt als de daaropvolgende zoekactie verschillend zijn.

Hieronder volgen enkele algemene richtlijnen die kunnen helpen bij het bepalen van de algoritme-instellingen.

Het aantal totaal uit te voeren simulations wordt gegeven door de volgende vergelijking.

waarin N = populatiegrootte, R = voortplantingsratio, en G = maximum aantal generaties

De populatiegrootte moet worden gekozen naar gelang van het aantal parameters. Experimenten wijzen uit dat een populatiegrootte ≥ 4,5 x het aantal parameters vaak goede resultaten oplevert.

Een hoge reproductieverhouding leidt vaak tot een snelle convergentie, maar waarschijnlijk ook tot een lokale convergentie. Een reproductieverhouding tussen 50% en 85% geeft vaak goede resultaten.

Het aantal generaties dat u moet instellen hangt af van het aantal reeksen dat u bereid bent te aanvaarden in termen van rekentijd, maar het moet groter zijn dan 10 om relevante resultaten te krijgen

Verdere overwegingen

Doelstellingen in Simcenter Amesim worden bepaald door de absolute waarde van de gekozen afhankelijke variabele, b.v. modeloutput, te berekenen, die het optimalisatiealgoritme vervolgens tracht te minimaliseren. Dit is voldoende voor optimalisatie met één doelstelling, maar in situaties waarin meerdere objectieve functies moeten worden gebruikt, is een benadering met meerdere objectieve optimalisaties vereist.

Bij het oplossen van een multi-objectief optimalisatieprobleem probeert men de globale Pareto-optimale verzameling te vinden. De Pareto-optimale verzameling is de verzameling van punten waar er geen andere punten bestaan die beter zijn dan deze punten, en waar elke verbetering van een doelstelling ten koste gaat van de andere doelstellingen. Als we al deze punten op één punt uitzetten, krijgen we het Pareto-front/de Pareto-grens, en in een scenario met twee objectieve functies levert dit de optimale afwegingscurve op.

Op dit moment is er geen eenvoudige optie voor het uitvoeren van Pareto optimalisatie binnen de Study Manager, maar door Simcenter Amesim te combineren met Simcenter HEEDS, Simcenter's multidisciplinaire ontwerpoptimalisatie software, is een dergelijke aanpak mogelijk.

Een alternatief voor het oplossen van multi-objectieve problemen met behulp van Pareto optimalisatie is het definiëren van een enkele functie uit twee of meer objectieve functies en vervolgens deze enkele functie te optimaliseren. Deze aanpak staat bekend als de aanpak met gewogen som, en is een veelgebruikte methode. Bij deze aanpak worden gewichten gebruikt om het relatieve belang van elke doelstelling aan te geven, en worden vervolgens de verschillende grootten van alle doelstellingen op een schaal gebracht door middel van een proces dat normalisatie wordt genoemd.

De gewogen som-benadering is bedreven in het oplossen van problemen die kunnen worden geclassificeerd als problemen met een convexe doelruimte, hetgeen vrij gebruikelijk is voor veel technische problemen. Als gelijke gewichten worden toegekend, wat betekent dat alle doelstellingen even belangrijk worden geacht, zal de gewogen sommethode dit punt op de Paretofrontier vinden. Het kiezen van verschillende gewichten zal resulteren in het vinden van verschillende optimale oplossingen op de Pareto frontier, zoals te zien is in figuur 4 hieronder.

Figuur 4, links, een probleem met een convexe doelruimte met verschillende gewichten toegepast. De figuur rechts toont een niet-convex voorbeeld. [1][2]

Voor niet-convexe problemen, zoals rechts in figuur 4, slaagt de aanpak met de gewogen som er niet in optimale punten tussen A en B te bepalen. Dit komt omdat de gewichten een lijn zullen vormen die A of B snijdt vóór elk punt ertussen. Er zal nog steeds een optimum worden gevonden, maar niet het beste voor de gegeven gewichten. Om in deze situatie de optimale afweging te vinden, moet Pareto optimalisatie worden toegepast.

Optimalisatie als onderwerp is uitgebreid en de toepasbaarheid ervan evenzeer. In meer rechtlijnige problemen kan optimalisatie effectief worden gebruikt om de parameterinstellingen van bijvoorbeeld een terugslagklep vast te stellen om te voldoen aan bepaalde eisen inzake debiet, of om een model van een turbocompressor in Simcenter Amesim te vergelijken met geteste resultaten. In meer geavanceerde gevallen wordt optimalisatie gebruikt om de relatie en afwegingen tussen verschillende systeemattributen te bepalen in een complex systeem, dat meerdere doelfuncties, talrijke inputs en meer dan een paar beperkingen bevat.  

Deze problemen kunnen natuurlijk worden benaderd met meer heuristische methoden, zoals trial and error, maar met het nadeel van een minder systematische werkwijze, geen garanties voor het daadwerkelijk vinden van optimaliteit, en het grote risico dat enkele zeer belangrijke stenen onaangeroerd worden gelaten.

In eenn komende blog we zal doornemen hoe Simcenter HEEDS te verbinden met Simcenter Amesim. In de tussentijd, wIk hoop dat je dit gevonden hebt artikel interessant. Als u vragen heeft of opmerkingen, aarzel dan niet om contact met ons op te nemen op steun@volupe.com 

Auteur

Fabian Hasselby, M.sc.
+46733661021

[1] https://www.lancaster.ac.uk/stor-i-student-sites/peter-greenstreet/2020/04/24/weighted-sum-approach/

[2] https://www.lancaster.ac.uk/stor-i-student-sites/peter-greenstreet/2020/04/26/issues-with-weighted-sum-approach-for-non-convex-sets/

Meer blogberichten

nl_BEDutch