Proprietà Knowledge Based Processing (If..Then…Else) Motore inferenziale, o reasoning engine. Può essere basato su diverse tecniche di supporto alla decisione Sistemi fuzzy: deterministici, non lineari e tempoinvarianti Reti neurali Ragionamento Bayesiano Logica booleana Motore inferenziale Logica euristica (non deterministica) (possibilistico) “case based reasoning” Algoritmi genetici Fuzzy logic Ragionamento sfumato Fig.1 DOVE SI APPLICA LA FUZZY LOGIC Incertezza nella relazione input-output Casi di forte non linearità In generale: ogni volta che il sistema presenta un difficile approccio analitico. Input Sistema fuzzy Output Output defuzzification Input fuzzification Definizione classi e funzioni di appartenenza Grado di appartenenza alle classi Valutazione regole Forza della regola Base delle regole Software Fuzzificazione dell’input Osservazione: l’ipotesi può non essere completamente vera (o falsa); le sarà attribuito allora un grado di verità, dal quale dipenderà la misura In cui verrà attuata la risposta relativa. 0.7 0.3 Come si effettua la trasformazione? Input = dato rigoroso: temp = 25 gradi Centigradi Input fuzzy: temp = tiepida con g.d.a. 0.7 temp = molto_fredda con g.d.a. 0.3 Suggerimento! E’ consigliabile, ai fini della stabilità del controllo, definire le membership function (mbf)in modo tale che la sommatoria dei gradi di appartenenza (gda), per qualsiasi valore dell’input, sia sempre 1. Come si realizza matematicamente? Effettuo uno scanning dei valori estremi di ogni classe, ovvero calcolerò il “gda” per le x che verificano: limite_inf_class < x < limite_sup_class Il calcolo del gda può essere, in alcuni casi, piuttosto complesso. Ne è un esempio il metodo che utilizza la pendenza (slope) della mbf corrispondente all’input considerato. Calcolo della pendenza: x> oppure x < di (lim_sup-lim_inf)/2 Metodo della pendenza 1) gda = (x-lim_inf)*slope (se gda>max allora gda=max) 2) gda= (lim_sup-x)*slope (se gda >max allora gda=max) Valutazione delle regole Siamo ora in possesso di dati fuzzy, provenienti dal processo di fuzzificazione. Servono allora REGOLE in grado di fornirci output fuzzy, che siano cioè in grado di attuare l’otput (anch’essi fuzzy) in misura proporzionale al gda dell’input. In altre parole, possiamo dire che if (input n appartiene a classe k) then output m appartiene a classe j con forza pari al grado di appartenenza di n a k. Regole pratiche REGOLA 1: IF (A&&B) THEN X E Y REGOLA 2: IF (C&&D) THEN X E Z FORZA DELLA REGOLA 1= MIN(A,B) =Y FORZA DELLA REGOLA 2= MIN(C,D) =Z X=MAX(Y,Z) = MAX(MIN(A,B),MIN(C,D)) Dove: A,B,C,D sono ipotesi del tipo “gda” di un input del sistema ad una specifica classe, ed X,Y,Z sono conseguenze intese come “gda” di un output ad una particolare classe. Defuzzificazione Abbiamo bisogno di dati precisi (rigorosi) da restituire al sistema fisico, dobbiamo cioè fare in modo che il controllore restituisca un valore numerico. La risposta fuzzy sarà del tipo conseguenza1: out1 appartiene a classe2 con grado 0.6 conseguenza2: out1 appartiene a classe3 con grado 0.4 In apparenza il sistema fornisce risposte conflittuali. Il problema viene risolto col “metodo del centro di gravità”, di cui si è già accennato e che vedremo meglio attraverso le applicazioni. Realizzazione del software 1) definizione delle classi per ogni variabile di ingresso 2) definizione delle classi per ogni variabile di uscita 3) definizione della forma delle membership function, ovvero l’andamento del “gda”, e delle formule da usare per fuzzificazione e defuzzificazione (decidendo anche se utilizzare una normalizzazione dei dati) 4) definizione delle regole di base del motore decisionale 5) realizzazione del programma in modo che sia possibile aggiungere regole e modificare i limiti delle classi molto facilmente. 6) Simulazione ed affinamento del programma tramite operazioni successive di aggiunta/modifica di nuove regole e modifica delle classi APPLICAZIONI NELL’AUTOMAZIONE Il sistema Antilock Braking Systems Il controllo della trazione Cambio automatico e risparmio nei consumi ABS – sistema meccanico • Introdotto da Boeing nel 1947. Difficoltà costruttive (peso, ingombro) e costi ne impedivano lo sviluppo in altri campi meccanici. • Anni ‘80: nuove tecnologie permettono di migliorare sensibilmente l’affidabilità del sistema ABS e garantiscono costi e ingombri notevolmente inferiori. Forte sviluppo in campo automobilistico Considerazioni S= differenza di velocità tra l’auto e le ruote Vcar - Vwheel S= Vcar S=0: non freno S=1: ruota bloccata L’efficienza massima dipende dal fondo stradale; è evidenziata la zona di massimo controllo Possibili Soluzioni Soluzione classica: taratura su valori s=0.1, come compromesso; bassa efficienza in relazione a diversi fondi stradali. Accorgimenti meccanici: Comandi sul cruscotto, attraverso i quali l’automobilista possa selezionare il fondo più adatto. La variabilità del fondo stradale e gli errori umani renderebbero il sistema poco efficiente. Sensori: soluzione scartata dalle aziende costruttrici a causa dell’eccessivo costo di sistemi sufficientemente efficienti. Automazione intelligente: il sistema, analizzando la risposta dell’autoveicolo, evince il tipo di fondo e gestisce di conseguenza le valvole dell’impianto idraulico di frenata, per elevarne l’efficacia. Un sistema di sole 6 regole garantisce risultati migliori del sistema tradizionale, riuscendo a riconoscere un cambiamento di fondo anche durante la frenata. Ad oggi nessuna casa pubblica ancora i risultati del proprio sviluppo, per l’alta competitività in un campo che offre ancora ampi margini di miglioramento. In occidente, inoltre, spesso questo sistema non è pubblicizzato per la connotazione negativa del termine fuzzy nella lingua inglese (letteralmente “impreciso, sfumato”) Controllo fuzzy 4WD: trazione inserita ACCENS.: stato del motore FEEDBACK: controllo dei valori di stato OMEGA: velocità angolari di ogni singola ruota; forniscono velocità ed accelerazione del veicolo ABS - oggi In dotazione sulla quasi totalità degli autoveicoli. Il minimo spazio d’arresto non è più il solo parametro di giudizio: •Prevenire bloccaggio delle ruote •Conservare direzionalità del veicolo •Scongiurare imbardate •Recuperare (quando possibile) inizi di sbandata. Osservazione: è un sistema dinamico non lineare, e come tale può essere efficacemente gestito attraverso un sistema in logica fuzzy; Nissan Mitsubishi forniscono ABS fuzzy di serie, ed anche Honda, Mazda, Hyundai, BMW, Bosch, Mercedes-Benz e Peugeot stanno sviluppando una analoga soluzione per le loro autovetture. ABS - perchè fuzzy? • Sfrutto vantaggi controllo fuzzy in campi di non linearità • Alta efficienza computazionale: con processore a 16 bit, un sistema fuzzy medio fornisce risposte in circa 0.5 ms , utilizzando solamente 2KB di memoria ROM 7 rules, 2in1out 0.22 ms 20 rules, 2in1out 0.33 ms 80 rules, 2in1out 0.50 ms Alcuni sistemi richiedono velocità dell’ordine di 0.1 ms. In tal caso si “traduce” il sistema fuzzy in un sistema look-up, che richiede però una quantità di memoria sensibilmente più elevata. Quali sono le cause di non linearità? -coppia frenante disomogenea, dovuta alle variazioni di temperatura e quindi di efficienza dell'intero impianto, in particolare del fluido usato per trasmettere la forza (olio freni o aria) - fondo stradale variabile - diversità dei pneumatici e del coefficiente di attrito da modello a modello - usura dei pneumatici - variazione della geometria delle sospensioni e quindi dell'impronta a terra e del modo in cui la gomma "lavora" CONTROLLO DELLA TRAZIONE La gestione ottimale del motore, attraverso il controllo dell’iniezione e della combustione, dipende strettamente da valori di stato istantanei; per questo i sistemi fuzzy hanno superato i sistemi di controllo PID (o, meglio, vengono integrati in sistemi ibridi). Non esiste, infatti alcun modello matematico che possa descrivere efficacemente il comportamento di un motore. La conoscenza delle regole fuzzy implementate in un progetto rende trasparente l’esatto comportamento del controllo; per questo, non si trova alcuna pubblicazione in merito da parte di case costruttrici. Il controllore della NOK Corporation (gruppo Nissan) Raccolta variabili di stato Le variabili di stato, che descrivono il comportamento istantaneo del sistema, vengono raccolte in una variabile linguistica, alla quale corrisponde un array, ad esempio {0.8; 0; 1; 0; 0; 0.3}, che verrà gestito dal fuzzy. linguistic variable Situation { Term 1: Start Control strategy is that the cold engine runs smooth. Ignition is timed early, and the mix is fat; Term 2: Idle Control ignition timing and fuel injection depending on engine temperature to ensure that the engine runs smooth; Term 3: Normal drive, low or medium load Maximize fuel efficiency by meager mix, watch knocking; Term 4: Normal drive, high load Fat mix and early ignition to maximize performance. The only constraint is the permitted emission maximum; Term 5: Coasting Fuel cut-off, depending on situation; Term 6: Acceleration Depending on load, fattening of the mix } LINGUISTICAMENTE: Motore azionato da poco, condizioni di guida normali e con carico medio-basso, accelerare un po’ CAMBIO AUTOMATICO Inizialmente aveva 3 sole velocità, e l’alimentazione era appena sufficiente a garantire l’avanzamento. Con motori più potenti si è alzato a 5 (6) velocità, e sicuramente un buon parametro di scelta è l’ottimizzazione del consumo, cioè la gestione “intelligente” dell’alimentazione. Esempio: ho una velocità di 70 kmh; •un cambio a 3 velocità dovrà utilizzare il secondo rapporto •una trasmissione a 5 rapporti e con un motore potente dovrà scegliere: - la seconda per l’accelerazione massima, - la terza per condizioni di guida normali - la quarta per accelerazione minima. Osservazioni Esistono allora risultati discordanti, a seconda che io preferisca enfatizzare la performance o, piuttosto, ottimizzare il consumo. Questo non dipende da un modello matematico ma, per es., dal traffico o dall’esperienza. I sistemi di automazione intelligente sono in grado di evincere, attraverso parametri rilevati durante la guida, quale siano la guida desiderata dall’automobilista: una guida sportiva o, al contrario, una economica. La Nissan introdusse la trasmissione fuzzy per prima, nel 1991, seguita dalla Honda (’92) e GM(’93), venendo in seguito adottata altre case costruttrici. Controllo a 5 rapporti Con un cambio standard si terrebbe sempre la 4°, mentre il cambio automatico utilizza anhe la 5° marcia, ma non solo: -Evita guida “nervosa” in curva -Intuisce qual’è il tipo di guida adottata dall’automobilista -Evita sprechi di carburante, nel caso in cui la marcia inferiore non possa comunque garantire una accelerazione maggiore Come si intuisce il tipo di guida? Il controllore fuzzy osserva non solo la velocità: -molte “variazioni del pedale” nel periodo indicano una strada veloce, con curve; -poche “variazioni del pedale” nel periodo indicano una strada veloce e dritta; -molte “variazioni del pedale” nel periodo, di grossa entità, indicano una strada lenta e a curve -variazioni medie del pedale indicano strada veloce con curve -piccole variazioni del pedale indicano strada veloce senza curve Nota: sto utilizzando l’automobilista come sensore! Il sistema riconosce la soddisfazione dell’automobilista e se necessario adatta la risposta. Sono infatti stati studiati i comportamenti inconsci dell’autista in diverse situazioni, scoprendo, per es, che si tende a trattenere premuto il pedale dell’acceleratore per 1-1.5 s più a lungo del normale quando non si è soddisfatti delle prestazioni; al contrario accade che si tolga il piede dall’acceleratore sensibilmente prima del necessario (e frequentemente) quando si desideri una guida meno dispendiosa. Perché fuzzy? -Le regole sono dettate dall’esperienza, adattandosi meglio alle esigenze specifiche in un determinato istante -Posso utilizzare moltissime variabili senza “appesantire” il supporto hardware, in quanto queste vengono analizzate e gestite solamente quando necessario -Evidenti vantaggi in termini di costi di realizzazione CONTROLLO DELLA STABILITA’ ABS: migliora la frenata, evitando il bloccaggio delle ruote attraverso la gestione della coppia frenante applicata e garantendo spazi di arresto ridotti CONTROLLO DELLA TRAZIONE: ha le stesse funzioni dell’ABS, inoltre la gestione dell’alimentazione massimizza l’accelerazione e ottimizza il consumo di pneumatico. Antiskid Steering System: controllo della sterzata, impedendo eventuali sbandate. Il sistema è tutt’oggi in via di sviluppo. ASS, lo sviluppo Studio effettuato su auto Audi modificata e sul prototipo in figura. Motore elettrico da 1hp, rapporto potenzapeso simile ad un’auto da corsa: le simulazioni forniranno dati relativi al comportamento in situazioni limite. Alcuni dati di progetto • lunghezza prototipo 20” • motore elettrico da 1hp, che rende il rapporto peso/potenza simile a quello di un’auto da corsa; la simulazione darà quindi risultati relativi ad utilizzo in condizioni estreme • raggiunge velocità di 20mhh in 3.5s • velocità massima di 50mph • sospensioni indipendenti • freni a disco • utilizza la scheda madre di un notebook 286, da 20MHz, che gestisce i sensori e gli attatori • 3 sensori ad ultrasuoni (distanza) per determinare la presenza di ostacoli nelle tre direzioni di moto • 4 sensori alle ruote per determinare le velocità • “loop di controllo” della durata di 10ms 3 sensori ad ultrasuoni Un test superato grazie ai sensori. Decide rapidamente per una brusca sterzata, l’ASS stabilisce l’angolo max di sterzata in relazione al fondo stradale, evitando contemporaneamente l’ostacolo e la sbandata Il sistema a 200 regole Note sul controllore a 200 regole E’ il primo controllore fuzzy di un’auto, opera su 4 variabili e risulta essere quindi un controllore “semplificato”, che opera a velocità basse e non presenta così problemi di controllo della stabilità. Il sistema a 600 regole Note sul controllore a 600 regole Sistema a due fasi di controllo fuzzy: • La prima, valuta le variabili di stato: - le condizioni di posizione attraverso i sensori ad ultrasuoni - le condizioni di sbandata e slittamento attraverso i sensori di velocità • La seconda, utilizza queste stime come input per un secondo sistema fuzzy che generi la migliore azione di controllo: - le regole del blocco superiore forniranno l’angolo di sterzata ottimale, -il blocco centrale gestirà il motore (potenza erogata) - l’ultimo, la coppia frenante. Conclusioni Controllo del tutto simile al comportamento umano: valutazione delle condizioni di operatività, quindi analisi delle condizioni al contorno e sintesi di una risposta efficiente in tempi brevi. Le 600 regole non appesantiscono il sistema, essendo divise in 6 blocchi gestiti in modo indipendente. Questo modello è la sintesi di ABS, Traction control ed Antiskid Steering System.