IT201800020143A1 - Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti - Google Patents

Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti Download PDF

Info

Publication number
IT201800020143A1
IT201800020143A1 IT102018000020143A IT201800020143A IT201800020143A1 IT 201800020143 A1 IT201800020143 A1 IT 201800020143A1 IT 102018000020143 A IT102018000020143 A IT 102018000020143A IT 201800020143 A IT201800020143 A IT 201800020143A IT 201800020143 A1 IT201800020143 A1 IT 201800020143A1
Authority
IT
Italy
Prior art keywords
machine
operating
reading signal
sensor
axes
Prior art date
Application number
IT102018000020143A
Other languages
English (en)
Inventor
Stefano Albrile
Valter Manuello
Original Assignee
Prima Ind Spa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Prima Ind Spa filed Critical Prima Ind Spa
Priority to IT102018000020143A priority Critical patent/IT201800020143A1/it
Priority to PL19835509.1T priority patent/PL3899675T3/pl
Priority to US17/415,480 priority patent/US20220066437A1/en
Priority to EP19835509.1A priority patent/EP3899675B1/en
Priority to ES19835509T priority patent/ES2962716T3/es
Priority to PCT/IB2019/060894 priority patent/WO2020128813A1/en
Publication of IT201800020143A1 publication Critical patent/IT201800020143A1/it

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0283Predictive maintenance, e.g. involving the monitoring of a system and, based on the monitoring results, taking decisions on the maintenance schedule of the monitored system; Estimating remaining useful life [RUL]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0243Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults model based detection method, e.g. first-principles knowledge model
    • G05B23/0254Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults model based detection method, e.g. first-principles knowledge model based on a quantitative model, e.g. mathematical relationships between inputs and outputs; functions: observer, Kalman filter, residual calculation, Neural Networks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N29/00Investigating or analysing materials by the use of ultrasonic, sonic or infrasonic waves; Visualisation of the interior of objects by transmitting ultrasonic or sonic waves through the object
    • G01N29/14Investigating or analysing materials by the use of ultrasonic, sonic or infrasonic waves; Visualisation of the interior of objects by transmitting ultrasonic or sonic waves through the object using acoustic emission techniques
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N29/00Investigating or analysing materials by the use of ultrasonic, sonic or infrasonic waves; Visualisation of the interior of objects by transmitting ultrasonic or sonic waves through the object
    • G01N29/44Processing the detected response signal, e.g. electronic circuits specially adapted therefor
    • G01N29/4481Neural networks
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N29/00Investigating or analysing materials by the use of ultrasonic, sonic or infrasonic waves; Visualisation of the interior of objects by transmitting ultrasonic or sonic waves through the object
    • G01N29/44Processing the detected response signal, e.g. electronic circuits specially adapted therefor
    • G01N29/46Processing the detected response signal, e.g. electronic circuits specially adapted therefor by spectral analysis, e.g. Fourier analysis or wavelet analysis
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24053Diagnostic of controlled machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33027Artificial neural network controller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33285Diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33295Fuzzy expert system for diagnostic, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33296ANN for diagnostic, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33297Diagnostic, test, debug
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33303Expert system for diagnostic, monitoring use of tree and probability
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0224Process history based detection method, e.g. whereby history implies the availability of large amounts of data
    • G05B23/024Quantitative history assessment, e.g. mathematical relationships between available data; Functions therefor; Principal component analysis [PCA]; Partial least square [PLS]; Statistical classifiers, e.g. Bayesian networks, linear regression or correlation analysis; Neural networks
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0275Fault isolation and identification, e.g. classify fault; estimate cause or root of failure
    • G05B23/0281Quantitative, e.g. mathematical distance; Clustering; Neural networks; Statistical analysis

Description

DESCRIZIONE dell’invenzione industriale intitolata:
“Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti”
TESTO DELLA DESCRIZIONE
Campo della tecnica
La presente descrizione è relativa a procedimenti di diagnostica per macchine operatrici.
Una o più forme di attuazione della soluzione descritta possono essere relative a contesti di riconoscimento di modelli, o “pattern recognition”, e/o di manutenzione predittiva, o “predictive maintenance”.
Sfondo tecnologico
Nell’ambito dei procedimenti di diagnostica per macchine operatrici, la manutenzione predittiva cerca di individuare il tempo residuo prima di un guasto e, di conseguenza, sapere il momento giusto per compiere la giusta operazione per prevenire un guasto. In tale procedura può ricercarsi di individuare uno o più parametri di un sistema, ad esempio una macchina operatrice con una pluralità di assi di movimentazione, in particolare una macchina operatrice per il taglio o la saldatura laser, da misurare ed elaborare utilizzando appropriati modelli matematici per tale scopo di individuare il tempo residuo prima di un guasto.
Al fine della misura di uno o più parametri di un sistema possono essere utilizzate diverse metodologie, come ad esempio: la misura delle vibrazioni, la termografia, l'analisi delle correnti assorbite, il rilievo di vibrazioni anomale. Una variazione delle grandezze misurate e monitorate rispetto allo stato di normale funzionamento può essere dunque indicativo di una degradazione delle performance di parti del sistema, permettendo l’allerta della necessità di manutenzione al fine di evitare un guasto imminente.
Le grandezze monitorate possono essere analizzate con un’ulteriore varietà di procedure, tra cui procedure di analisi modale. L'analisi modale è lo studio del comportamento dinamico di una struttura quando viene sottoposta a vibrazione.
Nei tradizionali metodi di diagnosi comprendenti analisi modale, la struttura del sistema che si vuole monitorare viene sollecita con un componente esterno, ad esempio un martello calibrato o uno shaker, che applica un impulso dinamico ad una parte della macchina. Tramite un sensore è possibile registrare la reazione della struttura a tale impulso. Analizzando il segnale raccolto dal sensore, è possibile estrapolare informazioni sulle caratteristiche della macchina.
Ad esempio, si può usare l’analisi modale per un metodo di acquisizione di parametri modali di una macchina utensile a controllo numerico. Impatti multipli di accelerazione e decelerazione possono essere applicati a un banco di lavoro della macchina utensile a controllo numerico al fine di generare eccitazione, in modo da facilitare l'acquisizione dei parametri modali della macchina utensile a controllo numerico.
L’utilizzo di elementi di sollecitazione esterni comporta lo svantaggio di introdurre perturbazioni nella ripetibilità della sollecitazione: infatti l’impulso, ad esempio applicato tramite martello o shaker, dipende dal generatore, dall’utilizzatore e dal punto di applicazione. Lo shaker infatti invia una sollecitazione dinamica, ad es. una forzante, le cui caratteristiche variano al variare del punto di appoggio del tavolo.
Inoltre, una stessa tipologia di macchina installata in condizioni ambientali diverse, ad esempio posta su basamenti di materiali diversi, mostra un comportamento simile ma diverso da esemplare ad esemplare causato da fattori esterni che introducono rumore nella risposta, che difficilmente può essere filtrato senza avere informazioni sull’ambiente esterno.
Metodi di analisi modale per l’acquisizione di parametri modali della macchina possono essere utilizzati durante la taratura, o “dry run”, di macchine operatrici: ad esempio, si possono acquisire parametri modali relativi alla velocità di rotazione di un albero principale. Per esempio si possono usare metodi di questo tipo per la taratura di una macchina a mandrino a vuoto, o “idle running”, tramite comandi impulsivi sulla rotazione del mandrino.
Uno svantaggio di queste tecniche note è una difficile compatibilità con le normali operazioni della macchina, per cui la taratura deve essere effettuata in una fase dedicata (come il dry run) che richiede tempi di fermo-macchina.
Per utilizzare l’analisi modale a scopi di diagnostica e/o manutenzione predittiva, nonostante la vasta attività in tale area, sono desiderabili ulteriori soluzioni perfezionate.
Scopo e sintesi
Uno scopo di una o più forme di attuazione è di contribuire a fornire una tale soluzione perfezionata.
Secondo una o più forme di attuazione, tale scopo può essere raggiunto per mezzo di un procedimento avente le caratteristiche esposte nelle rivendicazioni che seguono.
Un procedimento di diagnosi del funzionamento di una macchina operatrice comprendente uno o più assi di movimentazione può essere un esempio di tale procedimento.
In una o più forme di attuazione, tale procedimento può raccogliere, analizzare ed elaborare una risposta impulsiva di una struttura di macchina operatrice, tale risposta impulsiva analizzabile per fornire informazioni su un profilo di funzionamento, indicativo dell’eventualità e/o della tipologia di anomalie in tale struttura e nella macchina.
Una o più forme di attuazione possono essere relative ad una macchina operatrice corrispondente. Una macchina operatrice comprendente moduli di controllo configurati per eseguire il procedimento di diagnosi e facilitare la manutenzione predittiva può essere un esempio di una tale macchina.
Una o più forme di realizzazione possono includere un prodotto informatico caricabile nella memoria di almeno un circuito di elaborazione (per esempio, un computer) ed includenti porzioni di codice software per eseguire le fasi del metodo quando il prodotto viene eseguito su almeno un circuito di elaborazione. Come usato nella presente, un riferimento a tale prodotto informatico è inteso come equivalente ad un riferimento ad un supporto leggibile da computer contenente istruzioni per controllare il sistema di elaborazione al fine di coordinare un'implementazione del procedimento secondo una o più forme di realizzazione. Un riferimento ad “almeno un computer” è destinato ad evidenziare la possibilità che una o più forme di realizzazione vengano implementate sotto forma modulare e/o distribuita.
Forme di attuazione hanno il vantaggio di facilitare l’ottenimento di funzionalità migliorate, ad esempio una modalità di stimolazione di una catena CNC permette di effettuare l’analisi modale durante le normali operazioni dell’utensile, fornendo una flessibilità tale da consentire di “testare il sistema” in diverse posizioni e con diverse configurazioni degli assi.
Forme di attuazione presentano inoltre il vantaggio di permettere di fornire ad una rete neurale campioni omogenei, in quanto derivanti da uno stimolo con caratteristiche di alta ripetibilità.
Forme di attuazione possono rendere la diagnosi vantaggiosamente indipendente dalle condizioni esterne in cui la macchina operatrice viene impiegata.
Forme di attuazione possono altresì favorire un addestramento remoto di reti neurali, per esempio tramite dati raccolti sul campo.
Le rivendicazioni sono parte integrante dell’insegnamento tecnico qui fornito con riferimento alle forme di attuazione.
Breve descrizione di varie viste dei disegni
Una o più forme di attuazione saranno ora descritte, a puro titolo di esempio, con riferimento alle figure annesse, nelle quali:
- Figura 1 rappresenta schematicamente una macchina operatrice implementante un procedimento secondo la soluzione qui descritta;
- Figura 2 rappresenta un diagramma di un procedimento per diagnosi di macchine operatrici come ivi descritto, - Figure 3, 3A e 3B rappresentano esempi di porzioni del diagramma di Figura 2;
- Figura 4 rappresenta disposizioni di sensore in una macchina operatrice secondo una soluzione qui descritta, - Figura 5 rappresenta un diagramma esemplificativo di porzioni del procedimento di Figura 2,
- Figura 6 rappresenta un diagramma esemplificativo di trattamento di dati secondo forme di attuazione del procedimento ivi descritto,
- Figura 7 rappresenta un esempio di porzioni di operazioni del diagramma di Figura 6,
- Figura 8 rappresenta un diagramma esemplificativo di porzioni del procedimento di Figura 2,
- Figura 9 rappresenta un diagramma esemplificativo di una porzione del diagramma di Figura 1.
Descrizione dettagliata di esempi di forme di attuazione
Nella descrizione che segue, sono illustrati uno o più dettagli specifici, allo scopo di fornire una comprensione approfondita di esempi di forme di attuazione di questa descrizione. Le forme di attuazione possono essere ottenute senza uno o più dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture note non sono illustrate o descritte in dettaglio in modo tale che certi aspetti delle forme di attuazione non saranno resi poco chiari.
Un riferimento a “una forma di attuazione” nel quadro della presente descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta con riferimento alla forma di attuazione è compresa in almeno una forma di attuazione. Per cui, le frasi come “in una forma di attuazione” che possono essere presenti in uno o più punti della presente descrizione non fanno necessariamente riferimento proprio alla stessa forma di attuazione.
Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in un modo adeguato qualsiasi in una o più forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l’ambito di protezione o l’ambito delle forme di attuazione.
La figura 1 rappresenta schematicamente un esempio di macchina operatrice 100 suscettibile di implementare il procedimento di diagnosi qui descritto.
Tale sistema di macchina operatrice 100 può comprendere:
- una macchina operatrice 10, ad esempio una macchina operatrice comprendente una struttura mobile suscettibile di movimentazione, ad esempio secondo degli assi cartesiani X, Y e Z,
- almeno un sensore 30 accoppiato alla macchina operatrice 10,
- un modulo di controllo 20, che opera il controllo della movimentazione della macchina operatrice 10.
Nel seguito si farà riferimento, per semplicità, ad un sistema 100 comprendente una macchina operatrice 10 con struttura mobile di tipo cantilever a tre assi (indicati con le lettere X, Y, Z), detta anche cartesiana. Si noti che il tipo di struttura discusso non è vincolante, infatti la soluzione discussa può essere adattata a strutture di altro tipo, e.g. a sei gradi di libertà (ad assi ridondanti).
Come detto, in varie forme di attuazione, tale macchina 10 di tipo cartesiana può essere impiegata per movimentare un terminale operativo 101 comprendente ad esempio una testa di saldatura o di taglio laser. In forme varianti la macchina 10 può impiegare anche terminali operativi 101 che eseguono operazioni di additive manufacturing, o in generale anche altre teste, o endeffector, di lavorazione, incluse teste di lavorazione che operano senza l’ausilio di sorgenti laser (es. saldatura ad arco, punzonatrici, …).
Tale macchina operatrice 10 nel sistema 100 comprende gli assi X, Y, Z, in figura 1 rispettivamente un asse orizzontale X, un asse laterale Y, un asse verticale Z. Un primo attuatore di un primo braccio 102 è mobile lungo l’asse X, ad esempio lungo una struttura a gate non visibile in figura. Un secondo attuatore di un secondo braccio 104 è mobile lungo l’asse Y, mentre un ulteriore attuatore del terminale 101 è mobile lungo un asse verticale Z. I range o campi di movimento lungo gli assi X, Y, Z del terminale 101 definiscono un involucro di lavoro, o spazio di lavoro, associato alla macchina 10. Come esemplificato in figura 1, la macchina operatrice 10 è rappresentata schematicamente attraverso il parallelepipedo individuato dalle corse lungo gli assi X, Y, Z del terminale operativo 101, vale a dire attraverso il proprio involucro di lavoro, indicato con il medesimo riferimento 10.
Il movimento del primo braccio 102 e del secondo braccio 104 della macchina operatrice 10 nell’involucro di lavoro 10, nonché del terminale 101, è determinato da una pluralità di attuatori e/o motori pilotati dall’unità a controllo numerico 20.
Il modulo di controllo 20, come detto, è dunque configurato per essere accoppiato alla macchina operatrice 10, in particolare ai motori per attuare il movimento di uno o più bracci 102, 104 e/o del terminale 101 nell’involucro di lavoro 10, come meglio dettagliato nel seguito.
Si noti che per semplicità nel seguito verrà utilizzata l’espressione movimentazione di assi X, Y, Z da intendersi come riferita all’operazione di pilotare i motori e/o attuatori di uno o più bracci 102, 104 e/o del terminale 101 in modo da movimentare tali uno o più bracci 102, 104 e/o il terminale 101 secondo tali uno o più assi X, Y, Z.
Il sensore 30 è accoppiato alla macchina operatrice 10 ed è rappresentativo di un insieme di sensori 30 per rilevare misure di grandezze indicative del funzionamento di una o più parti di tale macchina 10, ciascun sensore nell’insieme di sensori 30 producendo corrispondenti segnali o dati di lettura S. Ad esempio, tale insieme di sensori può comprendere almeno uno tra:
- un sensore accelerometrico triassiale, che produce un segnale di lettura S di accelerazione lungo uno o più assi X, Y, Z, che può comprendere una tripletta di sensori mono-assiali ciascuno posto in corrispondenza di uno degli assi X, Y, Z;
- un sensore virtuale quale, ad esempio, un encoder che produce un segnale di lettura S di posizione o errore di posizione rispetto ad una posizione programmata, in un sistema di riferimento ad esempio solidale con il piano di lavoro;
- un sensore capacitivo, per esempio per una macchina di taglio laser, che fornisce un segnale di lettura S indicativo della distanza tra un punto di uscita del laser e una lamiera.
Per semplicità, nel seguito si usa il termine sensore 30 al singolare, restando inteso che quanto discusso per il sensore 30 può essere esteso, ad esempio:
- ad un qualsiasi tipo di sensore,
- a più di un sensore,
- a ciascun sensore nell’insieme di sensori.
Il sensore 30 è quindi configurato per fornire tali dati di lettura S al modulo di controllo 20. Il modulo di controllo 20 può usare i dati di lettura S per, ad esempio:
- effettuare operazioni di un procedimento di diagnosi 1000 sullo stato della macchina, e/o
- pilotare la macchina 10, ad es. operando un feedback su di essa.
Il modulo di controllo 20, come esemplificato in figura 1, comprende:
- un’unità di controllo a controllo numerico (denominata unità di CNC - “Computer Numerical Control”) 200, configurata per essere operativamente collegata ai motori e/o attuatori per fornire una traiettoria di movimentazione T, ad esempio fornire posizioni o una sequenza di posizioni dei bracci 102, 104 e/o dell’endeffector 101 rispetto agli assi X, Y, Z ai motori e/o attuatori nella struttura mobile della macchina 10;
- un’interfaccia 202, configurata per ricevere letture S dal sensore 30 e/o istruzioni (per esempio, un programma di lavoro P) da un operatore esterno (non visibile nella figura 1), comunicando tali istruzioni all’unità CNC 200;
- uno stadio intermedio 204 configurato per fornire o elaborare tali segnali di lettura S, ad esempio gestire il passaggio dei dati di lettura S di sensore 30 a stadi di elaborazione 206, e/o pre-elaborare i segnali di lettura S; - uno stadio di elaborazione a reti neurali artificiali 206, comprendente un insieme di reti neurali artificiali 2060, 2070 (rappresentate come riquadri tratteggiati all’interno dello stadio 206), per esempio configurato per fornire indicazioni per la diagnosi di eventuali malfunzionamenti della macchina.
L’unità di CNC 200 nel modulo di controllo 20, comprende, ad esempio (rappresentati come riquadri tratteggiati all’interno dello stadio 200):
- un primo processore 2002,
- un secondo processore 2004,
- un modulo o scheda di servo controllo o servo-drive 2006, ossia comprendente uno o più servo-drive, servoamplificatori o servo moduli di controllo per i motori/attuatori della macchina 10.
Il primo processore 2002 opera quale interfaccia utente per inviare istruzioni e comandi al secondo personal computer 2004, il quale ad esempio comprende un sistema operativo di tipo Linux associato a estensioni di tipo Real Time per la gestione della macchina 10. Il secondo processore 2004 fornisce quindi traiettorie da eseguire alla scheda di servo controllo 2006, ad esempio di tipo DSP PCI per il controllo di uno o più attuatori o motori. Nel secondo processore 2004 e nella scheda di servo controllo 2006 è implementata una procedura di gestione della struttura mobile 10.
Come menzionato, l’unità di CNC 200 nel modulo di controllo 20 comanda il funzionamento di motori e attuatori per la movimentazione degli assi della struttura mobile 10, secondo programmi, o sequenze di istruzioni di programmazione, P prestabiliti in funzione delle necessità di lavorazione del pezzo, ed in modo coordinato. Tali programmi P sono predisposti per muovere il terminale operativo 101 entro l’involucro 10 di figura 1. L’unità di CNC 200, secondo procedure di per sé note nello stato dell’arte, genera una sequenza di istruzioni di programmazione P corrispondente a un cosiddetto “part program”, o programma di parte, per una macchina “virtuale” con determinate specifiche di accelerazione e velocità. Tale sequenza di istruzioni di programmazione P proviene dal primo processore 2010, ed è originata da un programma apposito, per impostare le traiettorie e i movimenti dei bracci 102, 104 e dell’end-effector 101 della macchina 10. Ad essa viene applicata una funzione di interpolazione che provvede, sulla base della sequenza di istruzioni P, alla generazione della traiettoria T dell’end-effector 101 della macchina operatrice 10. Tale interpolazione opera in risposta a codici di preparazione, o G-Code, inviati nell’ambito della sequenza di istruzioni di programmazione P. L’operazione di interpolazione viene implementata via software all’interno del secondo processore 2004.
Nella unità di CNC 200, il primo processore 2002 secondo un aspetto della soluzione qui descritta può quindi essere configurato per generare una sequenza di programmazione P di movimentazione degli assi X, Y, Z della macchina 10, in cui tale sequenza di programmazione P comprende istruzioni suscettibili di applicare variazioni impulsive (come ad es. variazioni secondo una sequenza di sollecitazione) di una grandezza cinematica (ad esempio accelerazione, velocità, posizione) rispetto a uno di tali attuatori.
Tale sequenza di istruzioni di programmazione P, una volta interpolata nel secondo processore 2004 nell’unità di CNC 200, viene quindi fornita ad almeno un servo-controllo 2006, configurato per controllare una movimentazione, effettuata tramite almeno un motore o un attuatore, degli assi X, Y, Z di tale macchina 10 secondo detta sequenza di istruzioni di programmazione P.
L’interfaccia 202 nel modulo di controllo 20 può comprendere un dispositivo di input/output, per esempio un display con touch-screen di un video-terminale per un operatore, con cui un utente, ad esempio, può modificare istruzioni o parametri di istruzioni del part program rappresentante la sequenza di istruzioni di programmazione P.
Lo stadio intermedio 204 nel modulo di controllo 20 può essere configurato per operare da gestore dello stadio di elaborazione a reti neurali artificiali 206, come discusso nel seguito. Lo stadio intermedio 204 può preelaborare e/o post-elaborare dati durante uno scambio di dati, per esempio dati di lettura S di sensore 30 (o altri dati sullo stato della macchina 10) scambiati tra l’interfaccia 202 e lo stadio di elaborazione a reti neurali artificiali 206 a cui lo stadio intermedio applica un’operazione di trasformazione nel dominio della frequenza (es. trasformata di Fourier).
Lo stadio di elaborazione a reti neurali artificiali 206 nel modulo di controllo 20 può comprendere un insieme di reti neurali artificiali (Artificial Neural Network -brevemente ANN) 2060, 2070 configurate per essere utilizzate, ad esempio secondo istruzioni e segnali ricevuti dallo stadio intermedio 204, per fornire uno o più profili di funzionamento della macchina, specificamente uno o più segnali indicativi dello stato della macchina W, a cui è ad esempio associata un’informazione di funzionamento anomalo quale una stringa di allarme di rischio di rottura di una cinghia o, viceversa, un’informazione di buon funzionamento.
Tale profilo di funzionamento, nello specifico tale segnale indicativo dello stato della macchina W, può essere quindi fornito dallo stadio di elaborazione a reti neurali artificiali 206 allo stadio intermedio 204 e/o ad altri stadi, ad esempio:
- all’interfaccia 202 del modulo di controllo 20, ad esempio configurata per comunicare tali profili di funzionamento analizzati ad un operatore tramite output di un messaggio di testo su display,
- a un server SV, per esempio un cloud server internet,
- ad una rete interna, ad esempio una LAN di servizio. Il server SV può comunicare con tutti gli stadi nel modulo di controllo 20 per facilitare il “download” di aggiornamenti di implementazioni software di operazioni del procedimento, come ad esempio delle nuove versioni del software dello stadio di elaborazione a reti neurali 206, comprendenti ad esempio l’insieme di reti neurali 2060, 2070 riaddestrate. Analogamente, lo stadio di elaborazione a reti neurali 206 può inviare, per esempio tramite lo stadio intermedio 204 o l’interfaccia 202 (o direttamente), dei dati raccolti “sul campo” da aggiungere a un database remoto sul server SV di dati da usare per l’addestramento delle reti stesse, per rendere successive elaborazioni dati più robuste o facilitare l’analisi di nuovi profili di funzionamento della macchina 10, come discusso nel seguito.
Il modulo di controllo 20 può essere quindi configurato per scambiare istruzioni e dati P, T, S, W, in ingresso e uscita, con reti, es. reti internet, con modalità di comunicazione di per sé note.
La macchina operatrice 100 può essere configurata, per esempio secondo una catena di controllo nel modulo di controllo 20, per attuare operazioni di un procedimento 1000, di diagnosi di una macchina operatrice 10, come discusso nel seguito in relazione a figura 2.
Il procedimento 1000 di diagnosi di macchina operatrice 10 e/o almeno una macchina operatrice 10 come ivi descritti possono essere impiegati in un sistema di manutenzione predittiva di macchina operatrice 10, per esempio facilitando l’automatizzazione di forniture di servizi di manutenzione, la pianificazione automatica di tali servizi (tipologia, durata o data dell’intervento, …). Un vantaggio dell’effettuare la manutenzione predittiva è quello di facilitare la riduzione dei costi diretti di manutenzione nonché ridurre la perdita di produzione, naturale conseguenza di interventi di manutenzione nonottimali come quelli presenti ad esempio nella manutenzione correttiva.
In una forma realizzativa, il procedimento di diagnosi 1000 può, ad esempio:
- indicato con 1200: generare nell’unità CNC 200 nel modulo di controllo 20 una sequenza di istruzioni di programmazione P di movimentazione degli assi X, Y, Z, della macchina 10, tale sequenza di istruzioni di programmazione P comprendendo istruzioni suscettibili di applicare una traiettoria T comprendente variazioni di sollecitazione impulsive di una grandezza cinematica (ad esempio almeno una tra accelerazione, velocità, posizione) rispetto a uno degli attuatori degli assi X, Y, Z;
- indicato con 1210: controllare la movimentazione lungo gli assi X, Y, Z, di detta macchina 10 secondo detta sequenza di programmazione P, ad esempio applicando tale traiettoria T comprendente variazioni impulsive di sollecitazione di una grandezza cinematica rispetto a uno degli attuatori degli assi X, Y, Z;
- indicato con 1220: ricevere un segnale di lettura S di almeno un sensore 30 accoppiato a tale macchina operatrice, tale operazione comprendendo raccogliere una risposta della macchina alla traiettoria T comprendente variazioni impulsive di sollecitazione rispetto a uno degli attuatori degli assi X, Y, Z,
- indicato con 1230: elaborare detto segnale di lettura S di tale sensore 30, detta operazione di elaborare 1230 comprendendo operare un trattamento tramite una o più reti neurali artificiali 206 di detto segnale di lettura S, in particolare in modalità multi-contesto come discusso nel seguito con riferimento alla figura 8;
- indicato con 1240: fornire uno o più profili di funzionamento della macchina 10 in base all’elaborazione 1230 di tale segnale di lettura S a stadi utenti, ad esempio un segnale indicativo dello stato della macchina W fornito attraverso lo stadio intermedio 204 o direttamente dallo stadio di elaborazione a reti neurali 206.
In particolare, l’operazione di controllare la movimentazione degli assi 1210 può comprendere applicare una traiettoria T dei bracci 102, 104 e/o dell’end-effector 101 comprendente una decelerazione a gradino della velocità di movimento lungo un asse, per esempio l’asse X, della macchina 10, per esempio arrestando “istantaneamente” il movimento dei bracci 102, 104 e dell’end-effector 101 lungo tale asse X, come dettagliato nel seguito con riferimento alle figure 3 a 3B.
L’operazione 1220 di ricevere un segnale di lettura S di almeno un sensore 30 segue a valle l’operazione di controllare la movimentazione degli assi 1210, facilitando così di raccogliere, per esempio misurare tramite lettura di sensore S, la risposta della macchina 10 alla sequenza di istruzioni di movimentazione rispetto a uno degli attuatori degli assi X, Y, Z pilotata dall’unità di CNC 200.
Si noti che, a differenza dei tradizionali metodi di analisi modale in cui la sequenza di sollecitazione viene generata all’esterno del sistema 100, per esempio con un martello o uno shaker come discusso in precedenza, nella soluzione discussa il sistema si “auto-sollecita”, tramite la generazione di una sequenza di istruzioni di programmazione P, che attraversa la catena di controllo del procedimento di diagnosi 1000.
Ancora, un ulteriore vantaggio di tale “autogenerazione” delle variazioni di sollecitazione, che possono essere comprese in una sequenza di sollecitazione nel tempo, nell’unità di CNC 20 nel modulo di controllo 20 nel sistema 100 è quello di facilitare la produzione di variazioni impulsive di sollecitazione nella traiettoria T estremamente simili da una ripetizione all’altra della procedura 1000, ad esempio aventi ciascuna uno stesso contenuto armonico “piatto”, ossia costante nell’intervallo di frequenze presenti nella variazione temporale impulsiva di sollecitazione nella traiettoria T.
Pertanto, ad esempio a parità di condizioni operative della macchina 10, il sensore 30 registra, a valle dell’applicazione delle variazioni impulsive di sollecitazione nella traiettoria T, un segnale S indicativo della risposta del sistema alla sollecitazione che viene generato di volta in volta con l’applicazione di una variazione temporale impulsiva nella traiettoria T, avente caratteristiche sostanzialmente costanti tra ripetizioni. Questa migliorata ripetibilità nella variazione impulsiva di sollecitazione nella traiettoria T facilita l’analisi del segnale di lettura S raccolto dal sensore 30 tramite cui rilevare eventuali presenze e tipologia di anomalie in profili di funzionamento nel sistema 100, in particolare in ciascun componente 10, 20, 30 del sistema macchina 100 interessato dalla generazione, applicazione e/o ricezione della sequenza di sollecitazione che infine si manifesta nella traiettoria T.
Infatti, poiché istruzioni o segnali corrispondenti alle variazioni impulsive di sollecitazione nella traiettoria T stimolano in maniera forzosa il sistema 100 (infatti tale variazione di sollecitazione viene indicata anche come “forzante”), essi attraversano tutti gli stadi del sistema 100 propagandosi attraverso di essi. Dunque, l’analisi modale della risposta S letta dal sensore 30 può far emergere anomalie in profili di funzionamento della macchina 10 anche a livelli superiori e/o inferiori a quello della struttura meccanica della macchina 10 nel sistema 100, come ad esempio malfunzionamenti su un attuatore di uno o più assi X, Y, Z, o nella stessa unità CNC 200, per esempio in un servo controllo 2006.
Come detto, con i metodi tradizionali la sollecitazione entra nel sistema 100 direttamente nella struttura meccanica della macchina 10, senza la possibilità quindi di fornire informazioni sullo stato del modulo di controllo 20 o del sensore 30.
Grazie alla ripetibilità della sollecitazione, nel procedimento 1000 si può anche, in maniera vantaggiosa:
- acquisire un segnale identificativo, ossia una sorta di codice identificativo (o codice “ID”) o firma o signature, della macchina 10 o del sistema 100, rappresentato da un segnale di lettura di riferimento S0 acquisito dal sensore 30 in condizioni di un funzionamento corretto, come ad esempio al termine del collaudo completo;
- confrontare il dato di lettura S con tale dato di lettura di riferimento S0, per esempio per filtrare dal segnale di lettura S della risposta impulsiva le componenti di rumore dovuto all’ambiente esterno in cui la macchina 10 opera, ad esempio confrontando;
- analizzare il dato di lettura S e/o il dato di lettura di riferimento S0 con una rete neurale artificiale la cui fase di addestramento, o “training”, può essere eseguita in maniera remota su un server, in maniera standard per una pluralità di macchine.
Tale procedura di confrontare il dato di lettura S con tale dato di lettura di riferimento S0, es. per filtrare il rumore dovuto all’ambiente esterno, è particolarmente vantaggiosa perché consente di analizzare problemi che sono difficili da rilevare in quanto nell’analisi modale si trovano a frequenze prossime alle frequenze di vibrazione “libera” (ovvero di buon funzionamento) della macchina 10.
Tale dato di lettura di riferimento S0 può essere immagazzinato in una memoria accessibile da almeno uno tra l’interfaccia 202, lo stadio intermedio 204 o lo stadio di elaborazione a reti neurali artificiali 206, in modo da poter poi essere utilizzato per affinare l’elaborazione di rete neurale 206, come discusso nel seguito.
In una forma d’attuazione, l’operazione 1200 di generare una sequenza di istruzioni di programmazione P di movimentazione degli assi X, Y, Z, della macchina 10 comprendente istruzioni suscettibili di applicare una traiettoria T comprendente variazioni nel tempo di sollecitazione impulsive di una grandezza cinematica (ad esempio velocità v e/o accelerazione a) rispetto a uno degli attuatori degli assi X, Y, Z può comprendere più passi, uno per ciascun set d’istruzioni per uno o più degli assi X, Y, Z come esemplificato nelle figure 3, 3A e 3B.
Nello specifico, la figura 3 rappresenta un diagramma di una possibile sequenza di programmazione P, mentre le figure 3A e 3B sono esemplificative di possibili andamenti di variazioni di grandezze cinematiche nel tempo (figure 3A) e il corrispondente spettro in frequenza (figura 3B), rispettivamente.
In figura 3, ad esempio:
- indicato con 1200a, un primo passo può comprendere l’esecuzione di un primo set di istruzioni P’, comprendente attuare una movimentazione secondo almeno uno degli assi X, Y, Z a bassa velocità v, ad esempio con velocità v costante lungo l’asse X in un intervallo di tempo per esempio dall’istante di tempo t0 all’istante di tempo t1;
- indicato con 1200b, un secondo passo può comprendere l’esecuzione di un secondo set di istruzioni P’’, comprendente una sequenza di istruzioni definente una variazione impulsiva di sollecitazione, ossia istruzioni tali da generare, quando implementate dal modulo CNC, una variazione impulsiva D della corrispondente grandezza cinematica, in questo caso rappresentata dall’arresto all’istante di tempo t1 (v=0) del braccio secondo almeno uno degli assi, ad esempio l’asse X, con decelerazione ac elevata a “jerk” (ovvero variazione dell’accelerazione) tendente a infinito, producendo quindi un profilo di velocità v rettangolare come mostrato dalla forma a gradino della curva della velocità v al tempo t1.
In figura 3A, racchiusi tra linee tratteggiate, sono indicati con i medesimi riferimenti 1200a e 1200b dei possibili segmenti di andamenti temporali di variazioni di grandezze cinematiche (velocità v ed accelerazione a) nel tempo durante tali passi 1200a e 1200b.
Si noti che nell’esempio rappresentato in figura 3A, la velocità v tra il tempo t0 e il tempo t1 è costante ed ha valore negativo, mentre al tempo t1 il suo valore passa da un valore costante negativo a zero per effetto dell’arresto. La variazione impulsiva D è corrispondente a valori di accelerazione positiva, ma determina un arresto della movimentazione lungo l’asse X, dato il segno negativo iniziale a t0 della velocità v. Si noti che nel seguito i termini accelerazione o decelerazione verranno usati in modo equivalente, in quanto la variazione di grandezza cinematica può essere sia positiva che negativa nel procedimento 1000.
La variazione impulsiva D può essere quindi un arresto istantaneo, ossia nel minor tempo consentito dalla movimentazione dell’asse X e dal punto di lavoro cinematico, ossia un’accelerazione ac istantanea da una prima velocità (es. v costante negativa per istanti t<t1) a una seconda velocità (es. v pari a zero all’istante t=t1).
Ancora, in figura 3B è mostrato a titolo di esempio un possibile corrispondente spettro in frequenza della variazione impulsiva D, cioè della trasformata nel dominio della frequenza dell’impulso di accelerazione ac generato al passo 1200b, in particolare ottenuto applicando una trasformata di Fourier o Fast Fourier Trasform (brevemente, FFT) alla variazione impulsiva D. Nell’esempio considerato in Figura 3B, la frequenza f è compresa in un intervallo di valori 0 a 100 Hz.
Si noti che fornire una sequenza di istruzioni di sollecitazione impulsiva nella sequenza di istruzioni di programmazione P comprende ad esempio fornire una sequenza di istruzioni di sollecitazione tale che la corrispondente variazione di grandezza cinematica D abbia una breve durata temporale, approssimabile ad una sollecitazione istantanea (impulsiva).
Come si può notare dal diagramma di figura 3, anteponendo il primo set di istruzioni P’ di “velocità costante ridotta” al secondo set di istruzioni P’’ di “decelerazione istantanea”, si ha il vantaggio di facilitare la minimizzazione dell’area sottesa all’andamento della decelerazione ac nel tempo. Questo accorgimento facilita una regolazione “fine” della durata, variando ampiezza di decelerazione ac e velocità v, e dunque la regolazione “fine” del contenuto armonico della sollecitazione impulsiva T.
Dunque, il procedimento di diagnosi 1000 nel sistema 100 facilita la propagazione della sequenza di istruzioni di sollecitazione P, P’, P’’ che determina la sollecitazione D durante le normali attività operative della macchina 10, in particolari in tempo coperto (o tempo mascherato) durante fasi quali, ad esempio:
- una fase di cambio lamiera, durante la movimentazione di un asse ausiliario come una tavola rotante,
- durante le normali operazioni di routine quotidiane, ad esempio al termine della procedura di calibrazione (“zero assi”),
- mentre la macchina lavora un altro pezzo;
- in fasi in cui la macchina si muove con una velocità v ridotta.
Quanto discusso in precedenza comporta il vantaggio che, dal punto di vista dell’utilizzatore finale della macchina 10 e/o del sistema, non sono richiesti tempi di fermo-macchina per applicare il procedimento di diagnostica 1000, a differenza di quello che tipicamente accade nel caso in cui si applica la variazione impulsiva di sollecitazione D nella traiettoria T per mezzo di un martello o con uno shaker come discusso in precedenza.
I parametri della sequenza di istruzioni P di generazione della sollecitazione D (ad esempio, ampiezza, frequenza, periodo, numero di forme d’onda nella frequenza, …) possono essere selezionati e scelti in maniera flessibile, sia in una modalità “manuale” sia in modo automatico tramite il part program corrispondente alla sequenza di istruzioni di programmazione P e l’interfaccia del primo processore 2002 dell’unità di CNC. Questa flessibilità della selezione della variazione D nella traiettoria T facilita l’effettuazione del procedimento 1000 sul sistema 100, per esempio con una stessa sollecitazione D, applicata in momenti in cui la macchina 10 assume diverse posizioni e con differenti configurazioni dei bracci 102, 104 e/o del terminale 101 rispetto agli assi X, Y, Z. Ciò comporta il vantaggio che il procedimento facilita la rilevazione della tipologia di criticità, per esempio aumentando la precisione e l’accuratezza del procedimento 1000 di diagnosi.
Infine, la flessibilità data dalla programmabilità del part program P nella generazione della sollecitazione D, fa sì che il contenuto armonico della variazione impulsiva D sia sostanzialmente omogeneo nella banda di interesse, a differenza dei metodi tradizionali, come discusso in precedenza in particolare con riferimento alla figura 3B.
Si noti che quanto discusso in precedenza rispetto all’asse X dell’esempio di Figura 3A può essere applicato anche a ciascuno degli assi Y, Z, ad esempio a più di un asse X, Y, Z, in sequenza o insieme.
Nel passo 1220, la risposta, specificamente risposta in frequenza, del sistema alla sollecitazione viene rilevata dal sensore 30. Come detto il sensore 30 è rappresentativo di un insieme di uno o più sensori 30 per rilevare misure di grandezze indicative del funzionamento di una o più parti della macchina 10, producendo corrispondenti segnali di lettura S nel sensore 30.
In una o più forme di attuazione il sensore 30 comprende un tipo di sensore in funzione:
- del tipo di profili di funzionamento anomalo o anomalie che si vogliono analizzare,
- della convenienza di utilizzo (ad es. in funzione di costo, reperibilità, …)
In figura 4 a riguardo sono mostrati più posizioni 302, 304, 306 in cui il sensore 30 può essere disposto, ad esempio associato rispettivamente al primo braccio 102, al secondo braccio 104 e al terminale 101.
Come mostrato ad esempio nelle figure 1 e 4, il sensore 30 è posizionato in modo da essere accoppiato meccanicamente, per esempio in maniera solidale alla struttura della macchina 10. Questo accorgimento facilita l’avvio del procedimento di diagnosi 1000 in qualsiasi momento la macchina 10 sia operativamente disponibile, senza che venga messa “offline” rispetto alla produzione per installare il sensore 30 o per posizionarlo in una o più posizioni 300, 302, 304 in maniera tale da registrare la sollecitazione nella traiettoria T.
Si può utilizzare a questo scopo anche un elemento sensore 30 che venga solitamente utilizzato per delle funzioni “operative”. In particolare è possibile utilizzare come sensore 30 nel procedimento di diagnosi 1000 il segnale S fornito da un encoder, tipicamente installato sull’end-effector 101, che, eventualmente elaborato, viene quindi usato sia per correggere l’errore di posizione degli assi movimentati X, Y, Z rispetto ad una posizione programmata(ossia per attuare un feedback nel controllo della movimentazione degli assi X, Y, Z), sia per registrare il segnale di lettura S indicativo della risposta impulsiva della macchina 10, specificamente risposta in frequenza. Infatti, durante la propagazione della sequenza di sollecitazione impulsiva T, gli stessi assi X, Y, Z di controllo vengono sollecitati, es. vibrando, in funzione della sollecitazione T. Di conseguenza, se la posizione degli assi X, Y, Z viene registrata, ad esempio dall’unità di CNC 20, durante tale vibrazione di reazione alla sollecitazione T, si provoca un errore di posizione, in quanto la posizione degli assi X, Y, Z non è la stessa impostata come target nel controllo 200.
Il segnale dell’errore di posizione degli assi X, Y, Z rispetto ad una posizione programmata dell’encoder nell’end-effector 101, operante come sensore virtuale di posizione, può essere quindi usato come segnale di lettura S del sensore 30. Il procedimento 1000 presenta dunque un vantaggio nel non richiedere l’installazione di ulteriori sensori nella macchina 10 oltre al sensore virtuale 30 già presente.
In un ulteriore esempio di forma di attuazione, il sensore 30 comprende un sensore di tipo capacitivo, ad esempio un sensore capacitivo posto in prossimità di un punto di uscita di un fascio laser in una macchina operatrice 10 per lavorazioni laser, fornito in modi di per sé noti. Un tale sensore capacitivo 30, ad esempio, fornisce la misura della distanza tra tale punto di uscita del laser e una lamiera in lavorazione, in quanto per effettuare un buon taglio e per evitare di far collidere parti della macchina 10, in particolare l’end-effector 101, con tale particolare da lavorare è utile mantenere una distanza o “gap" costante dalla lamiera. Il segnale di lettura S fornito dal sensore capacitivo 30 è utile per retro-azionare, per esempio tramite il modulo di controllo 200, un asse che gestisce questo gap.
In una forma d’attuazione variante, è possibile far sì che la fase finale dell’impulso D corrisponda con un posizionamento dell’end-effector 101 a distanza molto ravvicinata del sensore 30 dalla lamiera. In questo modo, la lettura di distanza S tra lamiera e end-effector 101 proveniente dal sensore 30 assume un andamento oscillante, la cui oscillazioni possono essere analizzate in modo analogo a quanto fatto per le letture dell’accelerometro triassiale.
Il vantaggio anche in questo caso consiste nel fatto di non dover aggiungere ulteriori dispositivi esterni per misurare la risposta all’impulso nel procedimento di diagnosi 1000, specificamente risposta in frequenza. Inoltre, l’uso di questo sensore capacitivo può essere particolarmente indicato per analizzare l’insieme di anomalie legate al funzionamento del sensore 30 stesso integrato nella macchina 10.
Si noti che il sensore 30 viene posto preferibilmente più a valle possibile di una catena di trasmissione meccanica nella macchina 10. Con riferimento ad una struttura 10 come esemplificata in figura 4, la posizione preferibile per il sensore 30 sarebbe quella del sensore indicato con il riferimento 304, posto in prossimità del terminale operativo 101, poiché in grado di rilevare al meglio la trasmissione meccanica dell’impulso nei bracci 102, 104 della macchina 10, per esempio lungo gli assi Y, Z, analizzabile per rilevare profili di funzionamento della macchina 10.
In maniera simile, il sensore 30 posizionato in una seconda posizione 302, solidale con il primo braccio 102, può ad esempio rilevare con maggiore sensibilità profili di funzionamento comprendenti anomalie legate alla trasmissione meccanica lungo l’asse X.
Analogamente, il sensore 30 posizionato in una prima posizione 300 solidale con il sistema di riferimento in cui è installata la macchina 10, può ad esempio rilevare con maggiore sensibilità profili di funzionamento comprendenti anomalie in relazione al fissaggio della macchina al suolo.
Tale sensore 30 può inoltre comprendere, ad esempio, una o più delle seguenti funzioni:
- la capacità di elaborare i segnali analogici e trasmetterli in formato digitale per renderli maggiormente immuni ai disturbi di natura elettrica,
- trasmettere i segnali all’interfaccia 202 tramite una trasmissione wireless o cablata.
In una forma d’attuazione, il sensore 30 comprendente l’accelerometro triassiale che acquisisce, a valle dell’applicazione della variazione impulsiva D nella traiettoria T, un segnale di lettura S avente componenti ax, ay, az che rappresentano le misure su ciascun asse di variazione dell’accelerazione nel tempo, come mostrato in figura 5.
Si noti che l’elaborazione della lettura di sensore S negli stadi 204, 206 viene descritta nel seguito, per semplicità, in relazione ai segnali di accelerazione ax, ay, az, restando altresì inteso che tale discussione è svolta a titolo puramente esemplificativo e non limitativo in quanto tale elaborazione può estendersi ad altri tipi di segnale da altri tipi di sensore (errore di posizione, distanza da lamiera,…).
Nel particolare esempio di figura 5, viene mostrata una finestra di campionamento dei segnali da parte del sensore 30, es. ampia un tempo t= 1s, che va da qualche secondo, per esempio 20 ms (1 ms=1 millisecondo=10<-3 >s) prima dell’applicazione dell’impulso D fino a un certo tempo dopo, es. 980ms.
Ciascuna curva nel grafico di figura 5 rappresenta l’andamento dell’accelerazione, per es. ottenuta interpolando i dati campionati, lungo ciascuno dei tre assi X, Y, Z, rispettivamente:
- componente ax dell’accelerazione lungo l’asse X, - componente ay dell’accelerazione lungo l’asse Y, - componente az dell’accelerazione lungo l’asse Z.
Si noti che si può scegliere di analizzare anche solo una tra le componenti dell’accelerazione ax, ay, az. Per esempio, se l’impulso di sollecitazione T va a sollecitare la movimentazione dell’asse X, è possibile selezionare di analizzare solo la componente az lungo l’asse Z del segnale di lettura S. Questa selezione può essere motivata da considerazioni di orientamento tra una posizione 300, 302, 304 del sensore 30 e gli assi X, Y, Z della macchina 10.
Tale selezione può essere impostata, ad esempio, come selezione automatica o selezionabile da un utente.
Come anticipato in relazione alla figura 1, il sensore 30 fornisce il segnale di lettura S all’interfaccia 202 nel modulo di controllo 20, che lo fornisce allo stadio intermedio 204 che lo elabora, ad esempio come esemplificato nel diagramma di figura 6.
Una volta completata, ad esempio al passo 1210 del procedimento 1000, la raccolta del segnale di lettura S di sensore 30 che rappresenta la risposta della macchina 10 alla variazione D (per esempio con durata totale dell’operazione pari ad 1 secondo). Lo stadio intermedio 204 nel modulo di controllo 20 è configurato per operare dei passi di pre-elaborazione dati, al fine di fornire allo stadio di elaborazione a reti neurali 206 dei dati da analizzare, come mostrato a titolo di esempio in figura 6, in cui:
- indicato con 2022: lo stadio 204 riceve il segnale di lettura S dall’interfaccia 202 o dal sensore 30 e vi associa un rispettivo array, o vettore, AD, per esempio avente una componente per ogni asse Ax, Ay, Az, in cui immagazzina i rispettivi dati S raccolti dal sensore 30 per uno o più degli assi X, Y, Z, ad esempio salvandoli in una memoria. I dati di lettura S e i rispettivi array Ax, Ay, Az possono essere interpolati, al fine di ridurre il costo computazionale. Tale memoria può inoltre contenere immagazzinata la lettura di riferimento S0, ad esempio anch’essa in forma di array avente una componente per ogni asse. Al passo 2022 si può effettuare un’operazione di confronto tra il segnale di lettura S del sensore 30 con il segnale di lettura di riferimento S0, in particolare può essere generato un array indicativo di una differenza tra la lettura S e la lettura di riferimento S0, qualora richiesto dall’analisi come discusso nel seguito. Per semplicità, nel seguito si farà riferimento ad un generico array AD in cui sono immagazzinati tali dati misurati, che può essere un array di array di dati ovvero comprendere al suo interno uno o più array componenti Ax, Ay, Az per ciascuno degli assi X, Y, Z e può indicare sia la lettura S che i dati indicativi della differenza in valore assoluto tra la lettura S e la lettura di riferimento S0;
- indicato con 2024: applicare la trasformata di Fourier rapida (FFT – Fast Fourier Trasform) all’array AD fornendo in uscita un array FT di dati trasformati comprendenti array trasformati FTx, FTy, FTz, ottenuti applicando la FTT alle componenti Ax, Ay, Az dell’array AD, che rappresentano uno spettro FT di risposta della macchina alla variazione impulsiva;
- indicato con 2026: estrarre sub-array FT’ a partire dagli array trasformati FTx, FTy, FTz in modo da selezionare uno o più intervalli, in particolare intervalli chiusi di frequenze determinate fmin, fmax, dette frequenze fmin, fmax determinate a seconda della tipologia di analisi che si desidera effettuare, che rappresentano una o più porzioni dello spettro FT della risposta della macchina alla variazione impulsiva. Tale operazione può comprendere di creare ulteriori array o vettori aventi componenti FTx_min_max, FTy_min_max, FTz_min_max corrispondenti a tali intervalli fmin, fmax selezionati nei sub-array FT’, che contengano in particolare informazioni in intervalli di frequenze fra un valore minimo fmin ed un valore massimo fmax. Per esempio, tali estremi fmin, fmax degli intervalli possono essere determinati in modo tale che si abbia: - fmin= 1Hz, fmax= 60Hz, per esempio, se interessa analizzare la presenza di anomalie strutturali,
- fmin= 170Hz, fmax= 230Hz, per esempio, se interessa analizzare la presenza di anomalie su encoder.
Figura 7 mostra un esempio di come possa avvenire tale operazione di scomposizione e scorporo dei dati come esemplificato in Figura 6 al passo 2026.
Come esemplificato in Figura 7, un primo array FT (ad es., fornito al passo 2024) di array trasformati FTx, FTy, FTz è rappresentato come un insieme di celle indicizzate, ciascuna comprendente dati relativi ad una certa frequenza. Nell’esempio considerato, le celle indicizzate da fmin a fmax comprendono dati relativi all’intervallo di frequenze 1-60Hz: come anticipato, tale intervallo di frequenze 1-60Hz è di interesse per analizzare profili di funzionamento della macchina 10 in presenza di anomalie strutturali. Al passo 2026 vengono quindi selezionate le celle dell’intervallo chiuso di frequenze di interesse tra fmin e fmax e tali dati vengono forniti come vettore FT’ dallo stadio 2026.
Una operazione indicata con 2023 e che può essere eseguita in parallelo o in serie alle operazioni già illustrate, è l’operazione di raccogliere dall’unità di CNC 200, per esempio tramite l’interfaccia 202, dati relativi a:
- carico termico del motore su uno o più assi al momento dell’impulso,
- posizione di uno o più assi al momento dell’impulso, - numero di ore di lavoro dell’impianto,
- codice identificativo del programma di impulso eseguito dal CNC.
In un ulteriore passo indicato con 2025, che di nuovo può essere eseguito in serie o in parallelo ai passi illustrati sin qui, l’elenco di dati raccolti al passo 2023, per uno o più assi X, Y, Z, viene convogliato/raccolto in un array Vacc.
Infine, indicata con 2028, il procedimento può comprendere l’operazione di convertire gli array di dati raccolti o elaborati, come ad esempio l’insieme di array AD, FT, FT’, Vacc, in un formato di dato compatibile con un formato di dato dello stadio di reti neurali artificiali 206, ottenendo un insieme di dati Sf comprendenti lo spettro in frequenza FT, FT’ dei segnali di lettura S. Tale insieme di dati Sf, comprendente dati indicativi della risposta della macchina alla variazione impulsiva, viene quindi fornito allo stadio di elaborazione a reti neurali 206.
Si noti che le operazioni indicate con 2022 a 2028 possono essere eseguite anche in ordine diverso e/o iterativamente durante operazioni effettuate durante l’elaborazione di rete neurale artificiale 206 o, come discusso nel seguito.
Lo stadio di elaborazione a reti neurali 206 può comprendere un insieme di reti neurali artificiali (ANN), comprendenti ad esempio:
- reti ANN addestrate con diversi insiemi di dati di addestramento,
- reti ANN addestrate con diverse funzioni di addestramento,
- reti ANN con strutture diverse, ad esempio diversi numeri di strati nascosti o di neuroni.
Tali reti ANN possono operare in parallelo su uno stesso insieme di dati Sf o copie di uno stesso insieme di dati Sf ricevuti.
Le diverse reti neurali nello stadio di elaborazione a reti neurali 206 sono disposte per avere numero di strati, o “layer”, numero di neuroni e addestrate in funzione delle tipologie di funzionamento anomalo o anomalie che si vogliono identificare.
Alcuni esempi di sottoinsiemi di anomalie ricercate nell’analisi dei segnali di lettura S di sensore 30, indicati come contesti di analisi, possono essere raggruppati come insiemi di anomalie di tipo, ad esempio:
- fisico: per esempio anomalie nella meccanica della cinghia di trasmissione, danneggiamento del cuscinetto a rulli di uno o più assi, base di installazione della macchina difettosa, cuscinetto della vite a ricircolo di sfere danneggiato, cintura allentata o fissaggi dei motori lineari allentati;
- elettrico o elettronico: per esempio il servoazionamento non è impostato correttamente, un motore brushless difettoso (lineare o rotativo), disallineamento della linea ottica, trasduttore meccanico di posizione del gioco difettoso;
- software: per esempio, errori nelle impostazioni del modulo CNC.
In forme di attuazione della soluzione ivi discussa, i contesti/sottoinsiemi di analisi possono essere selezionati in funzione delle istruzioni contenute nel part program P.
Come detto, l’elaborazione, ad esempio al passo 1230 del procedimento 1000, dell’insieme di dati Sf comprendenti lo spettro FT, FT’ del segnale di lettura S nello stadio di elaborazione a reti neurali 206 è gestito in modalità multi-diagnostica o multi-contesto, come rappresentato ad esempio in figura 8.
Con “modalità multi-contesto” si intende una modalità di funzionamento della rete neurale che viene definita in maniera flessibile a seconda delle esigenze. Per esempio, in funzione del sottoinsieme di eventi (in termini di anomalie) che si vogliono analizzare, la tipologia di dati, in particolare l’intervallo di frequenze fmin, fmax considerate nell’insieme di dati Sf che si invia all’insieme di reti 2060, 2070 nello stadio 206 può cambiare.
Figura 1 è un diagramma di esempio di un caso in cui lo stadio di elaborazione a reti neurali 206 comprende:
- una prima rete neurale ANN 2060,
- una seconda rete neurale ANN 2070.
Si noti che le due reti neurali 2060, 2070 possono avere una stessa architettura e differire nell’addestramento, per esempio l’intervallo di frequenze fmin, fmax in cui sono state addestrate ad analizzare profili di funzionamento anomalo nella macchina 10.
Per esempio la prima rete neurale 2060 può essere fornita addestrata ad analizzare profili di funzionamento su un primo intervallo di frequenze relativamente ampio (per esempio, da 0 a 100 Hz) mentre la seconda rete neurale 2062 può essere fornita addestrata ad analizzare profili di funzionamento su un secondo intervallo di frequenze relativamente limitato (per es. con frequenze f comprese tra 5 e 50Hz). In una forma di realizzazione, la prima rete neurale 2060 può comprendere una rete fornita addestrata, ad esempio, con funzione di addestramento secondo il metodo del gradiente coniugato e con dati relativi ad un intervallo di frequenze da 5 a 50 Hz.
In altri casi, possono essere completamente diverse in ogni parametro o avere alcuni parametri in comune ed altri diversi.
Figura 9 mostra un’architettura di esempio di rete ANN 2060.
Come mostrato nell’esempio di figura 9, la prima rete 2060 può avere una topologia feed-forward e comprendere:
- uno strato di input 2062, o “input layer”, che convoglia dei dati in ingresso,
- uno strato di uscita 2068, o “output layer”, che raccoglie dei dati in uscita,
- un primo strato di elaborazione a rete neurale 2064, accoppiato allo stadio di ingresso,
- un secondo strato di elaborazione a rete neurale , accoppiato al primo strato di elaborazione ed allo strato di uscita 2068.
Il primo strato di elaborazione 2064 può comprendere un insieme di n neuroni 2064n, ad esempio n=20 neuroni, che ricevono in ingresso l’insieme di dati Sf comprendenti, ad esempio gli spettri in frequenza FT’ di segnali di lettura S in intervalli chiusi di frequenze fmin, fmax che vengono pesati da pesi 2064w e sommati con dati di bias 2064b. I neuroni 2064n possono avere una stessa funzione di trasferimento, ad esempio di tipo sigmoide.
Il secondo strato di elaborazione 2066 può comprendere un secondo insieme di m neuroni 2066m, ad esempio m=2 neuroni, che ricevono un ingresso dei dati che vengono pesati da pesi 2066w e sommati con dati di bias 2066b. I neuroni 2066m possono avere una stessa funzione di trasferimento, ad esempio una funzione di attivazione di tipo softmax. I rispettivi pesi 2064w, 2066w del primo stadio 2064 e del secondo stadio di elaborazione 2066, possono essere inizializzati a valori casuali secondo una distribuzione e.g. gaussiana.
Tornando a discutere la figura 8, l’operazione, indicata con 1230 nel diagramma di figura 2 di elaborare l’insieme di dati Sf comprendenti dati di spettro in frequenza FT, FT’ del segnale S, può essere effettuata tramite una o più reti neurali artificiali 206 in modalità multi-contesto, e può comprendere le operazioni di:
- indicato con 800: verificare se si è acquisito un codice ID o lettura di riferimento S0 della macchina, e: a) procedere ad acquisire la lettura di riferimento S0 nel caso si sia per esempio alla prima accensione della macchina 10 dopo un collaudo concluso con successo;
b) altrimenti, se si è in operazioni normali (es., collaudo effettuato), analizzare profili di funzionamento e ricercare in generale di anomalie nell’insieme di dati Sf relativi per esempio all’intero spettro FT del segnale di lettura S rispetto alla lettura di riferimento S0. Qualora al passo 800, anche in operazioni normali, non vengano riscontrate anomalie ma la lettura di riferimento S0 non sia ancora presente in memoria, si può procedere ad acquisire S0.
Qualora vengano riscontrate delle generiche anomalie nell’insieme di dati Sf al passo 800, si può procedere al al passo indicato come 810 comprendente di selezionare una o più operazioni tra:
- indicato con 812: inviare, una prima indicazione di presenza di un profilo di funzionamento anomalo o di un problema a stadi utente, per esempio un generico alert di errore senza specificare il tipo di errore fornendo il segnale indicativo dello stato della macchina W all’interfaccia 202 che può così visualizzare un messaggio sul video-terminale per l’operatore;
- indicato con 814: andare ad analizzare, ad esempio tramite la prima rete neurale artificiale 2060, un primo tipo di profilo di funzionamento anomalo o anomalia, per esempio per verificare se non vi sia un errato tensionamento di una cinghia di trasmissione fornendo nuovamente l’insieme di dati Sf alla prima rete neurale 206. Per effettuare l’analisi di tale primo tipo di anomalia al passo 814 lo stadio intermedio 204 fornirà quindi alla rete neurale l’insieme di dati Sf comprendenti nello specifico una porzione di spettro in frequenza del segnale FT’ compreso nell’intervallo di frequenze di interesse per l’anomalia, e.g. tra i 5 e i 50 Hz, in maniera iterativa.
Come detto, lo spettro FT (e/o la porzione di spettro FT’) può essere relativo sia allo spettro (e/o alla porzione dello spettro) del segnale di lettura S che allo spettro (e/o alla porzione di spettro) di un segnale ottenuto dal confronto tra la lettura di riferimento, per esempio il segnale indicativo del valore assoluto delle differenze tra lo spettro del segnale di lettura S e lo spettro del segnale di lettura di riferimento S0, in particolare se quest’ultimo è già memorizzato e/o quando lo stadio intermedio 204 è configurato per fornire tale segnale per il tipo di analisi (e relativo intervallo di frequenze fmin, fmax) da eseguire.
In seguito all’elaborazione tramite tale prima rete ANN 2060 al passo 814, lo stadio di rete neurale 206 può fornire un’indicazione, ad esempio raccolta allo stadio di uscita 2068, della presenza o meno di tale anomalia o funzionamento anomalo. In un passo 820 è possibile selezionare, in base a tale indicazione fornita da tale prima rete neurale 2060 uno o più tra:
- indicato con 822: inviare una seconda indicazione di presenza di un profilo di funzionamento anomalo specifico a stadi utente, per esempio all’interfaccia 202 che può ricevere il segnale indicativo dello stato della macchina W “aggiornato” in base all’elaborazione 2060 e visualizzare un messaggio relativo al profilo di funzionamento o alla tipologia di funzionamento, per esempio un messaggio descrittivo dell’anomalia rilevata nel caso in cui l’indicazione fornita dalla prima rete 2060 sia di “anomalia rilevata”,
- indicato con 824: andare ad analizzare, ad esempio tramite la seconda rete neurale artificiale 2070, un secondo tipo di profilo di funzionamento anomalo o anomalia, fornendo quindi alla seconda rete neurale 2070, ad esempio tramite lo stadio intermedio 204, l’insieme di dati Sf comprendente dati relativi ad una seconda porzione FT’ dello spettro FT del segnale di lettura S, per esempio per frequenze fmin=50Hz e fmax superiori ai 50 Hz.
Come detto, se ad esempio al passo 820 la prima rete neurale identifica, sulla base dell’analisi svolta al passo 814, un’anomalia sulla trasmissione meccanica dell’asse orizzontale X, al passo 822 l’interfaccia 200 riceve il segnale W indicativo dello stato della macchina. L’interfaccia 200 può essere configurate per far apparire un messaggio a video contenente, ad esempio, un messaggio informativo elaborato sulla base del profilo di funzionamento analizzato, per esempio una stringa associata al segnale indicativo dello stato della macchina W del tipo:
“X-Trasmission needs maintenance, please contact customer service…”
In una forma di attuazione tale messaggio informativo può essere personalizzato e variare a seconda del tipo di analisi svolta, del tipo di macchina, del tipo di interfaccia di interazione operatore-macchina.
Si noti che quanto discusso in precedenza relativamente ad un insieme di reti neurali 206 comprendente due reti neurali 2060, 2070, può essere applicato ad un numero qualsiasi di reti neurali nell’insieme di reti neurali 206, procedendo quindi in serie a fornire l’insieme di dati Sf di volta in volta ad una rete neurale nell’insieme di reti neurali 206, per esempio alla rete neurale addestrata al riconoscimento di una specifica anomalia o una specifica tipologia di funzionamento anomalo per analizzare profili di funzionamento nell’insieme di dati Sf elaborati in funzione della lettura di sensore S.
In una forma di attuazione il procedimento 1000 può comprendere più iterazioni della sequenza di operazioni dettagliate al passo 1230, operazioni che possono essere svolte anche in un ordine sequenziale diverso da quello in cui sono discusse nel paragrafo precedente. In particolari, come discusso, iterazioni successive possono comprendere lo svolgimento di una medesima sequenza di operazioni ma su sottoinsiemi di porzioni di spettro FT, FT’ nell’insieme di dati Sf indicizzati tramite codici identificativi diversi, per esempio etichettati con dei numeri identificativi.
Specificamente, le operazioni del procedimento di gestione della rete neurale 206 possono essere applicate in sequenza a diversi sottoinsiemi di dati FT, FT’, ad esempio, in ordine crescente o decrescenti di numero identificativo o in altro ordine, fino a coprire un insieme o un sotto-insieme di tipologie di funzionamento anomalo e/o anomalie che si ha interesse ad analizzare (meccaniche, elettriche, software, …).
In coda alla sequenza di operazioni di elaborazione 1230 e delle eventuali iterazioni del procedimento 1000, i vari profili di funzionamento analizzati e risultati delle analisi delle singole reti neurali 2060, 2070, possono essere fusi in un profilo di funzionamento fuso comprendente ad esempio un segnale di complessivo indicativo dello stato complessivo della macchian W’.
In una forma di attuazione le reti neurali nello stadio di elaborazione a reti neurali 206 possono essere addestrate su dati raccolti S dal sensore durante la movimentazione degli assi X, Y, Z.
La fase di addestramento delle reti neurali può avvenire, ad esempio:
- in modalità locale, per esempio utilizzando dati presenti in una base dati, o “database”, (che può essere creata sul momento e riempito con i dati S, Sf raccolti durante il procedimento di diagnosi 1000);
- in remoto, ovvero per esempio tramite download di aggiornamento versione da un server remoto SV del software corrispondente a tali reti neurali 2060, 2070 addestrate o riaddestrate, ossia porzioni di codice software che implementino una o più di tali reti neurali 2060, 2062 addestrate o riaddestrate.
In alternativa o inoltre a ciò, dati di input di addestramento possono essere forniti allo stadio di elaborazione a reti neurali 206 sia in maniera “real-time”, durante il funzionamento della macchina stessa, che in maniera “off-line”, per esempio a seguito di download da un repository virtuale accessibile tramite connessione internet.
L’addestramento delle reti neurali può essere eseguito più di una volta su una stessa rete o su diverse reti con gli stessi dati o dati diversi, in modo da garantire massima flessibilità nel sistema allo scopo di poter identificare il maggior numero e tipologie di anomalie e/o funzionamento anomalo possibili e poter fornire agli stadi utenti informazioni dettagliate sul profilo di funzionamento della macchina, come un segnale indicativo dello stato della macchina W.
Si noti che in generale il modulo di controllo 20 può comprendere una o più aree o dispositivi di memoria (per esempio, database) in cui memorizzare uno o più insiemi di dati, comprendenti ad esempio i dati di letture di sensore S, l’insieme di dati Sf, lettura di riferimento S0 e altri dati (per esempio, i pesi 2064w, 2066w) elaborati nel procedimento 1000.
Come detto le reti neurali nell’insieme di reti neurali 206 possono essere fornite addestrate e possono essere “aggiornate” in modo da comprendere nuove reti neurali addestrate con nuovi dati qualora nuove tipologie di anomalie o funzionamento anomalo vengano trovate e si richieda quindi nuovo addestramento o l’inserimento di nuove reti neurali addestrate: eventi precedentemente non riconosciuti dal sistema (per esempio in seguito al riconoscimento di nuove anomalie o tipologie di funzionamento anomalo) possono essere usate per aggiornare il database di addestramento remoto. Si può scaricare quindi una “nuova” versione aggiornata, intesa come versione implementativa, del procedimento 1000 comprendente le reti neurali riaddestrate (per esempio riaddestrate in modo offline su dati presenti su un server remoto).
In generale, le reti neurali sono configurate per analizzare profili di funzionamento nella risposta della macchina alla variazione impulsiva misurata dal sensore, come ad esempio riconoscere un profilo di funzionamento corretto (per esempio confrontando lo spettro del segnale misurato FT con quello del segnale di riferimento S0) o anomalo (per esempio rilevando la presenza di picchi nella risposta della macchina, in particolare nella risposta in frequenza).
Fermi restando i principi di fondo, i dettagli e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è stato descritto, puramente a titolo di esempio, senza uscire dall’ambito di protezione. L’ambito di protezione è definito dalle rivendicazioni annesse.

Claims (16)

  1. RIVENDICAZIONI 1. Procedimento (1000) di diagnosi del funzionamento di una macchina operatrice (10, 100) comprendente uno o più assi (X, Y, Z) movimentati da uno o più attuatori e almeno un sensore (30) accoppiato a detta macchina operatrice (10, 100), detto procedimento (1000) comprendendo operazioni di: - generare (1200) una sequenza di programmazione (P; P’, P’’) di movimentazione degli assi (X, Y, Z) di detta macchina operatrice (10, 100), - controllare (1210) la movimentazione degli assi (X, Y, Z) di detta macchina operatrice (10, 100) secondo detta sequenza di programmazione (P; P’, P’’), - ricevere (1220) un segnale di lettura (S) di detto almeno un sensore (30) accoppiato a detta macchina operatrice (10, 100), - elaborare (1230) detto segnale di lettura (S) di detto almeno un sensore (30) accoppiato a detta macchina operatrice (10, 100), detta sequenza di programmazione (P; P’, P’’) comprendendo istruzioni suscettibili di applicare (T) almeno una singola variazione impulsiva (1200a, 1200b, D) di una grandezza cinematica (v, ac) rispetto a uno o più attuatori (101, 102, 104), detta operazione di elaborare (1230) detto segnale di lettura (S) comprendendo di elaborare una risposta (Sf) di detta macchina operatrice (10, 100) a detta almeno una singola variazione impulsiva (1200a, 1200b, D), caratterizzato dal fatto che: detta operazione di elaborare (1230) detto segnale di lettura (S) comprende una elaborazione a reti neurali artificiali (206) tramite una o più reti neurali artificiali (206, 2060) configurate per analizzare profili di funzionamento, in particolare uno o più segnali indicativi dello stato della macchina (W), in detto segnale di lettura (S).
  2. 2. Il procedimento (1000) secondo la rivendicazione 1, caratterizzato dal fatto che comprende almeno uno tra: - generare (800) un segnale di lettura di riferimento (S0) per ottenere un segnale identificativo di detta macchina operatrice (10, 100), - confrontare detto segnale di lettura (S) con detto segnale di lettura di riferimento (S0).
  3. 3. Il procedimento secondo la rivendicazione 2, caratterizzato dal fatto che confrontare detto segnale di lettura (S) con detto segnale di lettura di riferimento (S0) comprende fornire un segnale indicativo del valore assoluto delle differenze tra detto segnale di lettura (S) e detto segnale di lettura di riferimento (S0).
  4. 4. Il procedimento secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detta operazione di elaborare una risposta (Sf) di detta macchina operatrice (10, 100) a detta almeno una singola variazione impulsiva (1200a, 1200b, D) comprende generare un segnale di lettura nel dominio della frequenza (FT).
  5. 5. Il procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che comprende selezionare (814, 824), in funzione di un insieme di tipologie di funzionamento anomalo, almeno uno tra: - una o più porzioni (FT’) di detto segnale di lettura nel dominio della frequenza (FT), dette una o più porzioni (FT’) comprese in uno o più intervalli di frequenze (fmin, fmax), e - una o più reti neurali (2060) in dette una o più reti neurali artificiali (206, 2060, 2062) configurate per analizzare detti profili di funzionamento in detto segnale di lettura (S).
  6. 6. Il procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che comprende almeno uno tra: - applicare repliche di almeno una singola variazione impulsiva (1200a, 1200b, D) di una grandezza cinematica (v, ac) rispetto a uno o più attuatori (101, 102, 104) a intervalli di tempo, preferibilmente intervalli di tempo regolari, - utilizzare uno o più di detti profili di funzionamento analizzati in detto segnale di lettura (S, Sf) raccolti durante detta elaborazione (206) per configurare o riconfigurare, preferibilmente in maniera remota, dette reti neurali artificiali (206, 2060) per analizzare ulteriori profili di funzionamento in detto segnale di lettura (S, Sf).
  7. 7. Il procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detti profili di funzionamento comprendono almeno un insieme di tipologie di funzionamento anomalo, detto insieme di tipologie di funzionamento anomalo comprendendo tipologie di funzionamento anomalo di almeno un tipo tra: meccanico, elettrico o elettronico, informatico.
  8. 8. Il procedimento secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detta variazione (1200; 1200a, 1200b, T; D) impulsiva è compresa in una sequenza di programmazione di lavorazione (1200, P; P’, P’’).
  9. 9. Il procedimento secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detto controllare (1210) la movimentazione degli assi (X, Y, Z) di detta macchina (10, 100) secondo detta sequenza di programmazione (P; P’, P’’) comprende un arresto con decelerazione elevata (D, P’’), preferibilmente a jerk tendente a infinito, di uno o più assi (X, Y, Z).
  10. 10. Il procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detto segnale di lettura (S, Sf) comprende un segnale di lettura di accelerazione (ac; ax, ay, az) lungo uno o più assi (X, Y, Z).
  11. 11. Il procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detto segnale di lettura (S, Sf) comprende un segnale di lettura di posizione di detto sensore (30), preferibilmente di errore di posizione rispetto ad una posizione programmata, lungo uno o più assi (X, Y, Z).
  12. 12. Il procedimento (1000) secondo la rivendicazione 9, caratterizzato dal fatto che: - detta operazione di controllare (1210) la movimentazione degli assi (X, Y, Z) di detta macchina (10, 100) secondo detta sequenza di programmazione (P; P’, P’’) comprende di portare detto sensore (30) a distanza ravvicinata con una superficie di lavoro al termine di detto arresto, e - detto segnale di lettura (S, Sf) comprende un segnale di lettura di distanza di detto sensore (30) da detta superficie di lavoro.
  13. 13. Macchina operatrice (10, 100), comprendente: - uno o più assi (X, Y, Z) movimentati da uno o più attuatori (101, 102, 104), e - almeno un sensore (30) accoppiato a detta macchina operatrice (10, 100), - un modulo di elaborazione (20), comprendente almeno un’unità di controllo numerico (200), accoppiato a detti uno o più attuatori in detta macchina operatrice (10, 100) e a detto almeno un sensore (30), caratterizzata dal fatto che detto modulo di elaborazione (20) è configurato per eseguire le operazioni del procedimento (1000) secondo qualsiasi delle rivendicazioni 1 a 12.
  14. 14. La macchina operatrice (10, 100) secondo la rivendicazione 13, caratterizzata dal fatto che detto almeno un sensore (30) accoppiato a detta macchina operatrice (10, 100) comprende uno o più tra: - un accelerometro triassiale, - un encoder, - un sensore di prossimità, preferibilmente capacitivo, accoppiato a un terminale operativo (101) di detta macchina operatrice (10, 100).
  15. 15. La macchina operatrice (10, 100) secondo la rivendicazione 13 o la rivendicazione 14, caratterizzata dal fatto che comprende una macchina di lavorazione laser.
  16. 16. Prodotto informatico caricabile nella memoria di almeno un modulo di elaborazione (20) ed includente porzioni di codice software per eseguire le operazioni del procedimento (1000) di qualsiasi delle rivendicazioni da 1 a 12 quando il prodotto viene eseguito su almeno un modulo di elaborazione (20).
IT102018000020143A 2018-12-18 2018-12-18 Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti IT201800020143A1 (it)

Priority Applications (6)

Application Number Priority Date Filing Date Title
IT102018000020143A IT201800020143A1 (it) 2018-12-18 2018-12-18 Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti
PL19835509.1T PL3899675T3 (pl) 2018-12-18 2019-12-17 Sposób diagnozowania obrabiarki, stosowna obrabiarka i produkt w postaci programu komputerowego
US17/415,480 US20220066437A1 (en) 2018-12-18 2019-12-17 A method of diagnosis of a machine tool, corresponding machine tool and computer program product
EP19835509.1A EP3899675B1 (en) 2018-12-18 2019-12-17 A method of diagnosis of a machine tool, corresponding machine tool and computer program product
ES19835509T ES2962716T3 (es) 2018-12-18 2019-12-17 Un procedimiento de diagnóstico de una máquina herramienta, máquina herramienta correspondiente y producto de programa informático
PCT/IB2019/060894 WO2020128813A1 (en) 2018-12-18 2019-12-17 A method of diagnosis of a machine tool, corresponding machine tool and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000020143A IT201800020143A1 (it) 2018-12-18 2018-12-18 Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti

Publications (1)

Publication Number Publication Date
IT201800020143A1 true IT201800020143A1 (it) 2020-06-18

Family

ID=65951935

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102018000020143A IT201800020143A1 (it) 2018-12-18 2018-12-18 Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti

Country Status (6)

Country Link
US (1) US20220066437A1 (it)
EP (1) EP3899675B1 (it)
ES (1) ES2962716T3 (it)
IT (1) IT201800020143A1 (it)
PL (1) PL3899675T3 (it)
WO (1) WO2020128813A1 (it)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220364959A1 (en) * 2021-03-19 2022-11-17 Ricoh Company, Ltd. Determination apparatus, machining system, determination method, and recording medium
CN114367719B (zh) * 2022-01-19 2023-03-14 中国石油大学(华东) 高速电弧铣削加工机床安全防护方法及系统
CN117226530B (zh) * 2023-11-13 2024-03-15 成都飞机工业(集团)有限责任公司 一种无人生产线设备进给轴电流数据自动采集方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566092A (en) * 1993-12-30 1996-10-15 Caterpillar Inc. Machine fault diagnostics system and method
EP1927830A2 (en) * 2006-11-30 2008-06-04 Matsushita Electric Works, Ltd. Device for overall machine tool monitoring
US7539549B1 (en) * 1999-09-28 2009-05-26 Rockwell Automation Technologies, Inc. Motorized system integrated control and diagnostics using vibration, pressure, temperature, speed, and/or current analysis

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10339731A1 (de) * 2003-08-28 2005-03-31 Siemens Ag Einrichtung zur Regelung und/oder Steuerung von Antrieben bei Werkzeug- oder Produktionsmaschinen

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566092A (en) * 1993-12-30 1996-10-15 Caterpillar Inc. Machine fault diagnostics system and method
US7539549B1 (en) * 1999-09-28 2009-05-26 Rockwell Automation Technologies, Inc. Motorized system integrated control and diagnostics using vibration, pressure, temperature, speed, and/or current analysis
EP1927830A2 (en) * 2006-11-30 2008-06-04 Matsushita Electric Works, Ltd. Device for overall machine tool monitoring

Also Published As

Publication number Publication date
EP3899675B1 (en) 2023-08-02
WO2020128813A1 (en) 2020-06-25
US20220066437A1 (en) 2022-03-03
EP3899675A1 (en) 2021-10-27
ES2962716T3 (es) 2024-03-20
PL3899675T3 (pl) 2024-03-11

Similar Documents

Publication Publication Date Title
IT201800020143A1 (it) Procedimento di diagnosi per macchine operatrici, macchina operatrice e prodotto informatico corrispondenti
De Silva Sensors and actuators: control system instrumentation
De Silva Vibration monitoring, testing, and instrumentation
EP1967334B1 (en) Detection of condition changes in an industrial robot system
AU2017359003B9 (en) Method for operating a state monitoring system of a vibrating machine and state monitoring system
KR20180127317A (ko) 기계의 진동 진단 모니터링 수행 방법
CN101592712A (zh) 运行一种装置的方法
Er et al. Approach towards sensor placement, selection and fusion for real-time condition monitoring of precision machines
JP2000082662A (ja) 露光装置及び除振装置、システム同定装置及びその方法
JP2000082662A5 (it)
CN105391361B (zh) 一种六轴机器人伺服电机参数自动调整的方法
CN105526959B (zh) 编码器可靠性试验装置及方法
Tan et al. Development of an integrated and open-architecture precision motion control system
WO2013091766A1 (en) A method of assessing the technical condition of a rotating shaft
Jannifar et al. Development of a new driving impact system to be used in experimental modal analysis (EMA) under operational condition
D'Emilia et al. Calibration test bench for three-axis accelerometers An accurate and low-cost proposal
Ueland et al. Force tracking using actuated winches with position-controlled motors for use in hydrodynamical model testing
US20220221383A1 (en) Change detection in material testing
Abbasi et al. A neural network based technique for vibration characterization using Gaussian laser beams
JP3124159B2 (ja) 耐震実験システム
Gomathi et al. Condition monitoring of 3D printer using micro accelerometer
Sakata et al. Design fabrication and control of 4-DOF high-precision stage
Yusubjanovich et al. PRIORITIES IN DETERMINING ELECTRIC MOTOR VIBRATION WITH ADXL345 ACCELEROMETER SENSOR
Zhang et al. Measurement and compensation of pitch error based on GMA with elimination of its hysteresis
CN110296803A (zh) 电磁伺服激振控制方法和系统