• Non ci sono risultati.

7.1   Schema  logico  di  ottimizzazione  

Come  già  descritto  nel  capitolo  “Approccio  alla  procedura  di  ottimizzazione”  l’obbiettivo   della  presente  ottimizzazione  è  quello  di  definire,  tra  le  diverse  configurazioni  analizzate,   una   possibile   forma   dell’alettone   che   minimizzi   il   coefficiente   di   resistenza   (Cd)   e   massimizzi   il   coefficiente   di   portanza   (Cl).   L’ottimizzazione   sarà   quindi   di   tipo   Multi-­‐ obbiettivo   in   quanto   si   hanno   due   funzioni   obbiettivo.   L’ottimizzazione   viene   svolta   ponendo  un  flusso  d’aria  orizzontale  a  velocità  costante  avente  il  valore  di  33  m/s  (circa   120  Km/h)  e  la  dimensione  totale  dell’alettone  è  fissata  e  pari  a  300  mm.  

Osservando   il   workflow   di   modeFRONTIER   costruito   per   il   lavoro   svolto   è   possibile   individuare  i  seguenti  nodi:  

• Input   node:   Impostazione   delle   variabili   di   ottimizzazione   unitamente   al   passo   di   discretizzazione  e  ai  relativi  estremi  di  variazione;  

• Doe   node:   Definizione   della   popolazione   di   partenza   e   della   modalità   di   generazione  della  stessa;  

• Scheduler   node:   Scelta   del   tipo   di   algoritmo   di   ottimizzazione   e   dei   relativi   parametri  di  controllo;  

• Matlab  node:  Selezione  del  file.m  da  eseguire;  

• If   node:   Esegue   il   controllo   del   risultato   fornito   da   Matlab   e   determina   la   continuazione  o  l’arresto  del  calcolo  aerodinamico  di  una  specifica  configurazione;   • Catia   node:   Genera   la   geometria   dell’alettone   da   analizzare   in   STAR-­‐CCM+   e   la  

esporta  in  formato  .igs;  

• SHH   node:   Impostazione   dei   parametri   per   la   connessione   al   Linux   Cluster   del   laboratorio  

• Support  file  node:  Assegnazione  dei  comandi  .java  per  STAR-­‐CCM+;   • Output  file  node:  Lettura  del  file  di  report  prodotto  da  STAR-­‐CCM+;  

• Output  node:  Estrazione  del  valore  da  utilizzare  dal  file  di  report  delle  forze;   • Design  objective:  definizione  degli  obbiettivi  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

 

Figura  7.1:  Workflow  di  modeFrontier  per  l’ottimizzazione  dell’alettone  

 

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

7.2   Impostazione  del  modello  CAD  

Nel  nodo  Catia  è  necessario  selezionare  il  file  relativo  al  modello  parametrizzato  e  ogni   ciclo  la  geometria  verrà  aggiornata  prima  che  la  configurazione  arrivi  al  nodo  successivo.   Affinchè   Catia   venga   correttamente   avviato   ad   ogni   passo   del   ciclo   iterativo   si   deve   definire   il   driver   con   il   quale   è   eseguito   il   software   cad.   La   sua   definizione   avviene   attraveso  il  pulsante  Catia  driver  dalla  finestra  centrale  di  dialogo  del  nodo,  riportata  in   figura  7.2.  

  Figura  7.2:  Finestra  per  la  definizione  di  avvio  del  driver  di  Catia  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

Le  variabili  di  input  di  modeFRONTIER  devono  essere  connesse  con  i  parametri  che  sono   stati  definiti  all’interno  del  modello  parametrico  in  Catia.    

Ricordando  che  gli  input  del  modello  sono:  

• Tre  punti  ausiliari  per  il  dorso  del  profilo  anteriore   • Tre  punti  ausiliari  per  il  ventre  del  profilo  anteriore   • Tre  punti  ausiliari  per  il  dorso  del  profilo  posteriore   • Tre  punti  ausiliari  per  il  ventre  del  profilo  posteriore   • Scalatura  del  profilo  anteriore  

• Scalatura  del  profilo  posteriore  

• Traslazione  lungo  l’asse  z  del  profilo  posteriore   • Rotazione  del  profilo  anteriore  

• Rotazione  del  profilo  posteriore  

La  connessione  fra  i  parametri  di  input  e  quelli  corrispondenti  in  Catia  viene  eseguita  con   il   comando   introspection,   schematizzato   come   un   binocolo   vicino   a   ciascuna   variabile,   attraverso  il  quale  il  software  fornisce  un  elenco  di  tutti  i  parametri  che  sono  presenti  nel   modello   CAD   e   ne   permette   il   collegamento   in   modo   semplice,   come   rappresentato   in   figura  7.3.  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

  Figura  7.3:  Implementazione  degli  input  all’interno  di  modeFRONTIER  

7.3   Impostazione  delle  variabili  di  ottimizzazione  

Precedentemente   si   sono   individuate   quelle   che   sono   le   variabili   da   fornire   a   modeFRONTIER   per   effettuare   l’ottimizzazione,   di   tali   parametri   bisogna   definire   gli   intervalli  estremi  di  variazione.    

Sarà   dunque   necessario   dare,   per   ogni   variabile   di   ingresso,   un   limite   superiore   (Upperbound),   un   limite   inferiore   (Lowerbound)   ed   il   numero   di   discretizzazioni   in   cui   deve   essere   suddiviso   l’intervallo   di   variazione   (Delta   Value).   A   titolo   di   esempio,   nella   figura   7.4,   è   riportata   la   finestra   di   dialogo   che   si   ottiene   aprendo   la   variabile   che   definisce  la  rotazione  del  profilo  anteriore.  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

  Figura  7.4:  Finestra  per  l’impostazione  delle  variabili  di  ottimizzazione  

7.4   Definizione  del  set  di  famiglia  iniziale:  DOE  (Design  of  experiment)  

Affinchè   la   procedura   abbia   inizio   è   necessario   avere   a   disposizione   un   set   iniziale   di   design   da   cui   iniziare   la   ricerca   della   soluzione   ottima.   Attraverso   il   nodo   scheduler   è   possibile  definire  sia  la  popolazione  iniziale  che  l’algoritmo  di  ottimizzazione.  

Il   nodo   DOE   permette   di   definire   una   popolazione   iniziale   di   configurazioni,   che   generalmente  si  aggirano  intorno  al  centinaio,  la  quale  permette  l’esplorazione  dell’intero   spazio   definito   dalle   variabili   di   input   e   dai   loro   rispettivi   intervalli   di   variazione.   Attraverso   poi   l’algoritmo   di   ottimizzazione   vengono   selezionati   i   design   di   DOE   considerati  di  interesse  e  su  questi  ne  vengono  creati  di  nuovi.  In  altre  parole  l’utilizzo  di   un  nodo  DOE  in  questi  termini  ha  due  vantaggi:  il  primo  riguarda  la  diminuzione  dei  tempi   dell’ottimizzazione,   la   quale   aumenterebbe   aumentando   il   numero   di   combinazioni   generate  da  modeFRONTIER,  il  secondo  è  che,  con  l’utilizzo  di  una  popolazione  iniziale  si   riesce  ad  individuare  quel  range  di  intervalli  in  cui  vanno  a  stabilizzarsi  le  configurazioni  da   cui   è   possibile   ripartire   per   una   ricerca   più   accurata   e   approfondita.   Questo   modo   di   procedere  si  presta  a  quelle  ottimizzazioni  caratterizzate  da  molteplici  parametri,  come   nel  caso  del  nostro  lavoro.  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

  Figura  7.5:  Sequenze  all’interno  del  nodo  DOE  

7.5   DOE:  sequenze  utilizzate  

Nelle  procedure  di  ottimizzazione  condotte  nel  presente  lavoro  si  sono  utilizzate  due  tipi   di  sequenze:  

• Sobol:  è  un  algoritmo  di  tipo  deterministico  simile  al  random,  salvo  il  fatto  che,  a   differenza  di  quest’ultimo,  offre  un  campionamento  più  regolare  del  design  space;   • Monte   Carlo:   esso   si   basa   su   un   algoritmo   che   genera   una   serie   di   numeri  

incorrelati   tra   loro,   che   seguono   la   distribuzione   di   probabilità   che   si   suppone   abbia  il  fenomeno  da  indagare.  L’incorrelazione  tra  i  numeri  è  garantita  da  un  test   chi  quadrato.  Quindi  il  metodo  Monte  Carlo  realizza  una  serie  di  realizzazioni  del  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

fenomeno   in   esame,   con   il   peso   proprio   della   probabilità   di   tale   evenienza,   cercando  di  esplorare  in  modo  denso  tutto  lo  spazio  dei  parametri  del  fenomeno.   In  entrambi  i  casi  la  popolazione  iniziale  è  stata  scelta  pari  a  100  design.  

7.6   Impostazione  dell’algoritmo  di  ottimizzazione  (Scheduler  Node)    

Il  processo  di  ottimizzazione  è  stato  condotto  attraverso  l’uso  di  algoritmi  genetici.  Gli   algoritmi  genetici  riproducono  il  processo  evolutivo  della  specie  umana.  Partendo  da  una   popolazione  iniziale  (definita  nel  nodo  DOE)  il  nodo  Scheduler  produce  nuove  generazioni   che  contengono  gli  elementi  migliori  delle  generazioni  precedenti,  muovendosi  dunque   verso  una  condizione  di  ottimo  globale.  La  soluzione  trovata  non  sarà  legata  ad  una   condizione  di  ottimo  assoluto,  bensì  di  ottimo  relativo  dipendente,  come  ovvio,  alla   popolazione  a  cui  si  fa  riferimento.  La  qualità  di  ciascun  individuo,  che  compone  la   popolazione  delle  possibili  soluzioni  del  problema  posto,  è  definito  attraverso  una   funzione  di  fitness.  La  funzione  di  fitness  indica  la  capacità  di  adattamento  all’ambiente   dell’individuo.  Gli  individui  che  hanno  una  capacità  elevata  di  adattamento  si  riproducono   e  riescono  così  a  trasmettere  i  loro  geni  alle  generazioni  future  e  ,  sono  quelli,  dunque,   che  presentano  la  funzione  di  fitness  più  elevata.  

Nel  presente  lavoro  la  funzione  di  fitness  coincide  con  la  funzione  obbiettivo,  quindi   scopo  dell’algoritmo  sarà  quella  di  ottimizzare  la  funzione  di  fitness.  Ogni  individuo  della   popolazione  rappresenta  un  elemento  all’interno  dello  spazio  di  ricerca  (design  space).  I   più  importanti  operatori  di  ricerca  sono  il  crossover  e  la  mutazione:  il  primo  ricombina  i   geni  in  maniera  tale  che  i  loro  figli  abbiano  caratteristiche  di  entrambi  i  genitori,  il   secondo  reintroduce  nella  popolazione  materiale  genetico  perduto.  

Gli  algoritmi  di  ottimizzazione  utilizzati  sono  i  due  algoritmi  genetici  denominati  MOGA  II   (Multi  objective  genetic  algorithm)  e  l’  ARMOGA  (Adaptive  Range  MOGA).  Per  entrambi  è   necessario  settare  diversi  parametri  per  avere  la  completa  funzionalità  dell’algoritmo.  

• Numero  di  generazioni:  a  partire  dal  numero  di  individui  della  generazione  di   partenza  (DOE),  l’algoritmo  crea  ad  ogni  nuova  generazione,  un  identico  numero   di  individui.  Nel  presente  lavoro  è  stato  scelto  un  numero  di  generazioni  pari  a  15.  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

• Probabilità   di   Crossover   direzionale:   consente   di   ottenere   individui   sempre   migliori   e   il   suo   valore   è   compreso   tra   0   e   1.   Porre   valore   uguale   a   0   significa   ottenere   un   crossover   di   tipo   classico   e   dunque   le   nuove   generazioni   verranno   prodotte  con  l’incrocio  del  DNA.  Porre  un  valore  uguale  a  1  vuol  dire  ottenere  le   nuove   generazioni   come   combinazioni   delle   configurazioni   tra   loro   più   vicine.   Scegliere  un  valore  troppo  alto  porterebbe  ad  avere  delle  soluzioni  di  ottimo  che   convergono   tutte,   molto   presto,   tuttavia   la   scelta   di   un   valore   troppo   basso   allungherebbe  di  molto  i  tempi.  Nel  presente  lavoro  si  è  scelto  un  valore  pari  a  0,5.   • Probabilità  di  selezione:  generalmente  questo  valore  viene  lasciato  pari  a  quello  di   default   pari   a   0,05.   Esso   rappresenta   la   possibilità   che   un   individuo   riesca   a   trasmettere  tutto  il  suo  patrimonio  genetico  qualora  sia  inserito  nella  popolazione   successiva.  

• Probabilità   di   mutazione:   generalmente   questo   valore   viene   lasciato   quello   di   default   pari   a   0,1   e   rappresenta   la   probabilità   che   il   patrimonio   genetico   di   un   individuo  venga  mutato  in  maniera  random.  

• DNA  String  Mutation  Ratio:  rappresenta  la  percentuale  di  DNA  che  viene  cambiata   dalla  mutazione.  Si  è  scelto  in  questo  caso  un  valore  pari  a  0,05.  

• Elitismo:  si  sceglie  di  abilitarlo  dal  momento  che  questo  parametro  garantisce  una   migliore   efficienza   ed   accuratezza   dell’algoritmo,   poiché   vengono   preservati   i   migliori  individui  che  costituiscono  la  popolazione.  

• Trattamento   dei   vincoli:   è   possibile   trattare   i   vincoli   in   due   modi   differenti:   penalizzazione   dei   vincoli   che   violano   i   vincoli   imposti   o   penalizzazione   delle   soluzioni  che  violano  la  definizione  della  funzione  obbiettivo.  Nel  presente  lavoro   si  è  scelta  la  seconda  soluzione.  

• Tipo  di  algoritmo:  è  possibile  scegliere  tra  differenti  tipi  di  algoritmo,  sulla  base  di   lavori   fatti   precedentemente   si   è   usato   il   criterio   generazionale.   Questo   tipo   di   algoritmo  aggiorna  ad  ogni  generazione  un  certo  numero  di  configurazioni  con  cui   si  lavora.  

Oltre  a  questi  parametri  l’ARMOGA  ha  bisogno  del  settaggio  di:  

• Inizio   della   generazione   del   range   di   adattamento:   tale   valore   definisce   la   generazione   in   cui   inizia   il   range   di   adattamento:   chiaramente   se   tale   valore   è  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

superiore  al  numero  di  generazione  il  range  di  adattamento  viene  ignorato.  Esso   può   prevenire   la   prematura   convergenza   dell’ottimo   locale.   Nel   presente   lavoro   tale  valore  è  stato  posto  pari  a  2.  

• Intervallo  di  generazione  del  range  di  adattamento:  esso  definisce  l’intervallo  del   range  di  adattamento.  Tale  valore  è  stato  scelto  pari  a  5.  

Nella   figura   7.6   è   mostrato   il   settaggio   nel   caso   dell’ottimizzazione   eseguita   con   l’algoritmo  genetico  MOGA  II.  

  Figura  7.6:  Algoritmo  genetico  MOGAII  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

7.7   Nodo  ssh:  connessione  al  cluster  remoto  

Questo   passaggio   viene   fatto   avvalendosi   del   protocollo   shh   (secure   shell),   tale   collegamento   viene   effettuato   attraverso   un   apposito   nodo   che   risiede   in   modeFRONTIER.  È  dunque  sufficiente  impostare  i  parametri  relativi  alla  connessione  e  il   percorso   sul   cluster   del   file   di   avvio   di   STAR-­‐CCM+   per   consentire   l’esecuzione   del   programma.  

I  parametri  da  impostare  per  la  connessione  del  nodo  richiedono  l’impostazione  del  nome   dell’host,  del  numero  della  porta  e  della  password  per  la  connessione  come  riportato  in   figura   7.7.   Il   percorso   del   file   di   avvio   ed   il   numero   di   processori   utilizzati   viene   invece   indicato  nello  script,  che  viene  eseguito  subito  dopo  aver  stabilito  la  connessione  come   visibile  in  figura  7.8.  

  Figura  7.7:  Impostazione  del  nodo  ssh  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

  Figura  7.8:Impostazione  del  nodo  ssh  

         

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

7.8   Impostazione  del  nodo  transfer  file  

Il  processo  di  ottimizzazione  che  avviene  in  modeFRONTIER  può  essere  paragonato  ad  un   insieme   di   scatole   cinesi.   Durante   l’esecuzione   del   processo   di   ottimizzazione,   infatti,   il   software   modeFRONTIER   genera   all’interno   della   cartella   della   simulazione   in   corso   un   insieme   di   sottocartelle,   ciascuna   delle   quali   corrisponde   ad   un   differente   design   generato.  In  ogni  cartella  appartenente  al  design  generato  è  presente  un  ulteriore  gruppo   di   sottocartelle,   dalle   quali   vengono   avviati   i   software   utilizzati   nella   simulazione:   è   necessario   quindi   specificare   quali   debbano   essere   trasferiti   da   una   cartella   di   lavoro   all’altra.  Di  conseguenza  il  file  .igs  relativo  al  modello  e  alla  superficie  del  box  deve  essere   copiato   dalla   cartella   di   lavoro   di   Catia   alla   cartella   di   lavoro   di   STAR-­‐CCM+.   Questa   operazione  viene  fatta  proprio  attraverso  il  nodo  transfer  file  come  riportato  in  figura  7.9   e  figura  7.10.  

  Figura  7.9:Transfer  file  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

  Figura  7.10:  Transfer  file  

7.9   Selezione  del  file  di  output  e  definizione  della  funzione  obbiettivo  

La   lettura   degli   output,   registrati   dal   nodo   di   STARCCM+,   avviene   attraverso   i   file   di   output.   Si   può   notare   che   l’output   file   deve   essere   collegato   con   l’uscita   del   nodo   ssh,   affinchè  la  lettura  del  file  avvenga  nella  stessa  cartella  di  lavoro.  Quindi  lo  scopo  del  file  di   output   è   quello   di   estrarre   il   file   dalla   cartella   di   lavoro   del   Linux   Cluster   e   di   poterlo   utilizzare  sul  computer  locale  di  lavoro,  come  visibile  in  figura  7.11.  

  Figura  7.11:  Output  file  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

Per  estrarre  i  valori  del  coefficiente  di  portanza  e  di  resistenza  dai  rispettivi  file  di  testo  è   necessario  specificare  la  loro  posizione  all’interno  della  finestra  che  si  apre  cliccando  sul   tasto   Open   Output   File.   Per   identificare   tale   posizione   è   necessario   utilizzare   un   file   caratteristico  di  esportazione  delle  grandezze,  relativo  all’esame  di  una  configurazione  di   prova.  L’importazione  di  un  file  campione  è  definito  in  figura  7.12.  

  Figura  7.12:  Esportazione  dei  file  di  report  del  calcolo  CFD  

Capitolo  7    –  Procedura  di  ottimizzazione  in  modeFRONTIER  

L’obbiettivo   dell’ottimizzazione   è   quello   di   massimizzare   il   coefficiente   di   portanza   e   di   minimizzare  il  coefficiente  di  resistenza.  Di  conseguenza  all’interno  del  workflow  saranno   presenti  due  nodi  chiamati  rispettivamente  massimizza  e  minimizza.  

Il  primo  sarà  collegato  all’output  variable  del  coefficiente  di  portanza  mentre  il  secondo  a   quello   del   coefficiente   di   resistenza.   Si   riporta   nella   figura   7.13   la   definizione   del   nodo   relativo  alla  massimizzazione  del  coefficiente  di  portanza.  

  Figura  7.13:  Settaggio  dell’obbiettivo  

Per   settare   correttamente   la   funzione   obbiettivo   sarà   necessario   definire   i   seguenti   parametri:  

• Name:   dovrà   essere   introdotto   il   nome   che   sarà   usato   da   modeFRONTIER   per   identificare  l’oggetto  di  ottimizzazione;  

• Enabled:   qualora   spuntato   specifica   se   l’oggetto   deve   essere   considerato   o   ignorato  dall’algoritmo  scelto  nel  nodo  scheduler;  

• Format:  ossia  la  tipologia  del  formato  numerico  che  sarà  usato  nelle  varie  tabelle   per  visualizzare  i  valori  dell’oggetto;  

• User  Expression:  ossia  l’espressione  che  definisce  la  funzione  obbiettivo;  

• Type   in   questa   casella   si   decide   se   minimizzare   o   massimizzare   la   funzione   obbiettivo.  

 

 

Capitolo  8    –  Analisi  dei  risultati  

Documenti correlati