IT201800009981A1 - Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema - Google Patents

Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema Download PDF

Info

Publication number
IT201800009981A1
IT201800009981A1 IT102018000009981A IT201800009981A IT201800009981A1 IT 201800009981 A1 IT201800009981 A1 IT 201800009981A1 IT 102018000009981 A IT102018000009981 A IT 102018000009981A IT 201800009981 A IT201800009981 A IT 201800009981A IT 201800009981 A1 IT201800009981 A1 IT 201800009981A1
Authority
IT
Italy
Prior art keywords
profile
subsystem
coordinates
redundant
tool
Prior art date
Application number
IT102018000009981A
Other languages
English (en)
Inventor
Stefano Baraldo
Anna Valente
Marcello Catalano
Marco Paganoni
Original Assignee
Prima Electro 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 Electro Spa filed Critical Prima Electro Spa
Priority to IT102018000009981A priority Critical patent/IT201800009981A1/it
Publication of IT201800009981A1 publication Critical patent/IT201800009981A1/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
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/25Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/195Controlling the position of several slides on one axis
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35167Automatic toolpath generation and tool selection
    • 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/41Servomotor, servo controller till figures
    • G05B2219/41105Coarse fine
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42219Slow positioning with low pass, concurrent quick with high pass part of command

Description

DESCRIZIONE dell’invenzione industriale dal titolo:
“Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema”
TESTO DELLA DESCRIZIONE
Campo tecnico
La presente descrizione è relativa ai procedimenti per la gestione di una traiettoria di una macchina utensile ad assi ridondanti (brevemente, macchina ridondante) che comprende un insieme di attuatori ridondanti, in cui l’insieme di attuatori ridondanti comprende un primo sottosistema, operante secondo un primo insieme di coordinate, rappresentativo di un insieme di quantità fisiche da controllare, ed un secondo sotto-sistema operante secondo un secondo insieme di coordinate, rappresentativo di un secondo insieme di quantità fisiche da controllare, detto primo insieme di coordinate e detto secondo insieme di coordinate che identificano uno o più assi ridondanti.
Il procedimento ivi descritto si estende a tutte le possibili architetture di macchina (non soltanto architetture planari Cartesiane) con cinematica ridondante ottenuta introducendo due o più assi azionati lungo una o più gradi di libertà cinematici, o a sistemi che funzionano in base a variabili ridondanti.
Una o più forme di attuazione possono essere applicate, per esempio, ad una macchina ridondante per la produzione additiva.
Sebbene una o più forme di attuazione che vengono ivi descritte riguardano un caso in cui le quantità sono quantità spaziali in relazione ad assi Cartesiani, e dunque la traiettoria risultante (o percorso di utensile “tool-path”) può essere una curva che giace in un piano, per traiettoria (o percorso di utensile) in generale si intende (un insieme di) curve in uno spazio n-dimensionale identificato da n variabili, le n variabili non rappresentando necessariamente quantità spaziali ma anche altri tipi di quantità, come ad esempio la temperatura.
Sfondo tecnico
Una macchina utensile è definita ridondante quando il numero dei suoi giunti è maggiore dei gradi di libertà necessari a descrivere lo spazio operativo. Ciò comporta infinite possibili configurazioni dei giunti che compiono il posizionamento e l’orientazione desiderate per una parte terminale (“end-effector”).
Un aspetto importante dell’analisi di una macchina ridondante è la gestione della ridondanza identificando una relazione tra le coordinate della parte end-effector nello spazio Cartesiano e quelle nello spazio dei giunti. Tale problema viene spesso indicato come problema della risoluzione della ridondanza. In generale, approcci per la gestione di una macchina ridondante si basano o sul modificare il rango della matrice Jacobiana, aumentando lo spazio delle attività o sullo specificare una funzione di cinematica inversa.
In casi specifici, potrebbe essere possibile scegliere la postura degli assi ridondanti preferita da un insieme discreto di configurazioni possibili, facilitando la soluzione del problema di risoluzione della ridondanza.
Quando si sceglie un modello ridondante per macchine utensili, es. Cartesiane, può essere vantaggioso adottare un approccio che riduce il consumo energetico, con particolare riguardo ai movimenti da punto a punto. Allo scopo di adottare tale approccio di consumo energetico, una opzione può essere quella di focalizzarsi sulla gestione di segnali di velocità ed il loro controllo ad anello chiuso. D’altronde, un approccio differente come ivi descritto può facilitare l’ottimizzazione globale di traiettorie complesse per intere porzioni o parti.
Un problema comune nella risoluzione della ridondanza è relativo alla soddisfazione di vincoli di estensione dell’asse. Diversi approcci possono fare affidamento sulla messa a punto iterativa di parametri, ad esempio sottigliezze (“nuance”), per guidare i gradi di libertà ridondanti a soluzioni accettabili. Questi approcci dipendono dalla strategia di iterazione e dai criteri di fermata scelti, mentre non sfruttano la piena portata degli assi, ad esempio la piena estensione dell’intervallo dei loro possibili movimenti.
Estensioni dei giunti possono essere soddisfatte tramite combinazione di ridimensionamento della velocità vicino a limiti di giunto e proiezione sullo spazio nullo di giunti non saturati (il cosiddetto algoritmo SNS). Questo approccio può fornire un controllo molto parziale della regolarità delle quantità cinematiche dato che, in particolare, il procedimento richiede di forzare la decelerazione al valore massimo quando ci si avvicina ai limiti della gamma del giunto.
Un approccio alternativo al SNS può comprendere imporre una velocità di spazio-nullo influenzata da una funzione che penalizza le posizioni vicine ai limiti del giunto. Questo procedimento può essere adatto per percorsi di utensile generati in linea (“online”), ma nuovamente il profilo di moto risultante potrebbe non migliorare alcuna cinematica, es. dando luogo a movimenti superflui.
Un’altra elaborazione orientata sull’online (“onlineoriented”) può comprendere un approccio a norma minima ponderata per penalizzare posizioni vicine ai limiti del giunto, così generando una traiettoria (o percorso di utensile) che non è globalmente ottimizzato.
Inoltre, gli approcci online sono più adatti per manipolatori robotici che compiono movimenti da punto a punto, mentre nei casi in cui un accurato inseguimento di percorso (“path-tracking”) sia richiesto, come in applicazioni di macchine utensili, può essere più conveniente avvantaggiarsi pienamente della conoscenza dell’intero percorso, adottando un approccio di preelaborazione.
Specificamente, la pubblicazione di V. Potkonjak, “Distributed positioning for redundant robotic systems,” Robotica, vol. 8, pp. 61-67, 1990 divulga un approccio per robot ridondanti in cui moti esterni del robot sono distribuiti al moto del numero di giunti ridondanti in modo da separare il moto di trasporto regolare (“smooth”) dal relativo moto che può essere veloce e avere una alta accelerazione.
Il documento US9170580B2 divulga un procedimento che determina traiettorie di attuatori ridondanti di una macchina che include un primo attuatore ed un secondo attuatore. Il procedimento determina una prima traiettoria del primo attuatore inseguendo una traiettoria di riferimento con una tolleranza di errore, in cui la tolleranza di errore è una funzione di un vincolo del secondo attuatore, e determina una seconda traiettoria del secondo attuatore basata su una differenza tra la traiettoria di riferimento e la prima traiettoria.
Nonostante tale estesa attività, sono desiderabili soluzioni migliorate.
Scopo e sintesi
Un oggetto di una o più forme di attuazione è di contribuire a fornire tale soluzione migliorata.
Specificamente, un obiettivo dell’invenzione è fornire un procedimento che facilita la gestione di gradi di libertà, o assi, ridondanti secondo la performance del sistema della macchina ridondante.
Secondo una o più forme di attuazione, un tale scopo si può conseguire per mezzo di un procedimento avente le caratteristiche esposte nelle rivendicazioni che seguono.
Un procedimento per una macchina utensile ad assi ridondanti che comprende un insieme di attuatori ridondanti, nel quale l’insieme degli attuatori ridondanti comprende un primo sottosistema come una struttura mobile o ponte (“gantry”) ed un secondo sottosistema come un elemento mobile o testa (“head), facilita il fornire dinamiche lente per gli assi di gantry, che muove la massa maggiore per lunghe distanze, mentre gli assi della testa hanno dinamiche più veloci dato che hanno un basso carico.
Un procedimento che comprende applicare “smoothing” ad un percorso di utensile per ridurre la distanza totale compiuta per gli assi lenti e simultaneamente migliorare la dinamica dei profili (per esempio minimizzando le accelerazioni) può essere esemplificativo di un tale procedimento. Una o più forme di attuazione del procedimento ivi descritto possono comprendere generare il percorso di gantry come una versione smoothed di un percorso di utensile principale (“master”), modellato come la sovrapposizione di un percorso con alta regolarità ed un percorso che oscilla attorno al percorso di gantry entro una distanza fissa, con movimenti a frequenza più alta. In particolare, smoothing splines sono utilizzate per generare il percorso dell’asse lungo da quello master, facilitando anche la risoluzione del problema della violazione di vincoli.
Una o più forme di attuazione possono essere relative ad un corrispondente prodotto informatico e sistema.
Una macchina utensile ad assi ridondanti per produzione additiva comprendente un’unità di controllo configurata per eseguire le operazioni del procedimento può essere esemplificativa di tale sistema.
Le rivendicazioni sono una parte integrante dell’insegnamento tecnico qui fornito in riferimento alle forme di attuazione.
Breve descrizione delle varie viste dei disegni Varie forme di attuazione verranno ora descritte, con riferimento ai disegni annessi, in cui:
- Figura 1 è una schematica vista prospettica di forme di attuazione di una macchina utensile ad assi ridondanti;
- Figura 2 è una vista prospettica di una forma di attuazione di un sottosistema della macchina in Figura 1; - Figura 3 è un diagramma esemplificativo dell’architettura di un controllo della macchina utensile di Figura 1;
- Figure 4 a 7 sono diagrammi esemplificativi di operazioni in forme di attuazione di un procedimento ivi descritto;
- Figure 8 e 9, ognuna comprendente due porzioni indicate con a) e b), sono esemplificative di percorsi di utensile o traiettorie per una macchina ridondante;
- Figura 10 e 11 sono diagrammi esemplificativi di operazioni in forme di attuazioni varianti di un procedimento ivi descritto.
Descrizione dettagliata di esemplari forme di attuazione
Nella seguente descrizione sono illustrati numerosi dettagli specifici mirati a fornire una comprensione massima delle forme di attuazione fornite come esempi. Le forme di attuazione si possono ottenere con o senza dettagli specifici, o con altri procedimenti, componenti, materiali, ecc.. In altri casi, strutture, materiali, o operazioni che sono noti non sono illustrati o descritti nel dettaglio in modo tale che certi aspetti delle forme di attuazione non verranno resi poco chiari. Il riferimento, nel quadro complessivo della presente descrizione, a “una forma di attuazione” o “una forma di realizzazione” indica che una particolare configurazione, struttura, o caratteristica descritte in relazione alla forma di attuazione sia compresa almeno in una forma di realizzazione. Pertanto, frasi quali, “in una forma di attuazione” o “in una forma di realizzazione” che possono essere presenti in vari punti della presente descrizione non si riferiscono necessariamente ad un’unica e alla stessa forma di attuazione. Inoltre, conformazioni, strutture o caratteristiche particolari si possono combinare in qualsiasi modo adeguato in una o più forme di realizzazione.
I termini e riferimenti qui utilizzati sono forniti meramente per comodità e quindi non definiscono la portata di protezione o l'ambito delle forme di attuazione.
Come menzionato, la presente descrizione si riferisce ad una macchina utensile ad assi ridondanti (brevemente, macchina ridondante), per esempio una macchina come esemplificato nelle Figure 1 a 3 che mostrano i componenti compresi in una macchina Cartesiana per la Produzione Additiva (“Additive Manufacturing”, in breve AM) con uno spazio di lavoro 3-dimensionale, che comprende un insieme di sottosistemi che funzionano secondo assi ridondanti, ad es. secondo due insiemi di due assi planari, che comprende coppie di assi mutuamente ortogonali, ed un asse singolo ortogonale al piano dell’insieme di assi planari. I sottosistemi nell’insieme dei sottosistemi di attuatori ridondanti possono avere ciascuno una differente estensione di spazio/velocità raggiungibile, ad esempio un lungo raggio per un primo sottosistema (o gantry) ed un corto raggio per un secondo sottosistema (o testa).
Figura 1 è una vista prospettica schematica di una forma di attuazione della macchina ridondante, designata nel complesso dal numero di riferimento 10, che comprende una prima struttura di movimento, o gantry, 11 progettata per spostare un supporto 11d, cui è associato in modo fisso un elemento di movimento, o testa, 12.
Parti del gantry 11 possono muoversi lungo una prima pluralità di assi, ad es. tre assi Cartesiani, con due assi cartesiani planari XG, YG, ed un asse verticale Z.
Similmente, la testa 12 può muoversi lungo una seconda pluralità di assi, per esempio due assi cartesiani planari XH, YH e due assi rotazionali A, B.
A questo scopo, il gantry 11 comprende una struttura guida 11a, che a sua volta comprende una base 11m e, per esempio sulla parte superiore, rotaie 11h, che si estendono lungo il primo asse cartesiano planare XG. Posta sulle rotaie 11h c’è una slitta (“slide”) 11c, che è libero di scorrere nella direzione dell’asse X. Posato sulla slitta 11c vi è una estremità di una trave cantilever (“cantilever beam”) 11b che si estende in una direzione orizzontale, ad es. lungo un secondo asse planare YG ortogonale al primo asse XG. L’estremità della trave 11b di cui sopra è impostata in modalità cantilever ed è associata, in un modo scorrevole lungo il secondo asse YG, alla slitta 11c, su cui giace.
L’altra estremità libera della trave 11b ha un supporto 11k con guida verticale 11j, lungo cui scorre il supporto 11d che porta la testa 12, ad esempio guidato da un motore situato nella porzione 11f, lungo l’asse Z ortogonale al piano XY, e quindi verticale.
Il movimento della trave 11b rispetto alla slitta 11c e il movimento della slitta 11c rispetto alle strutture guida 11a sono ottenuti anche attraverso motori, che non sono, comunque, visibili in Figura 1.
Come illustrato in Figura 1, come risultato della configurazione del primo sottosistema (o gantry) 11 di cui sopra, lo spostamento del secondo-sottosistema (o testa) 12 avviene entro uno spazio di lavoro 100, fondamentalmente un parallelepipedo, le cui dimensioni sono definite dallo spostamento della testa 12 relativo ad un osservatore solidale con il sistema di riferimento dello spazio di lavoro 100. Il sistema di riferimento dello spazio di lavoro 100 può essere espresso come un sistema di riferimento cartesiano 3D con assi X, Y, Z.
Designata con 110 in Figura 1 è una superficie di lavoro esemplificativa che fondamentalmente corrisponde alla faccia inferiore dello spazio di lavoro 100. Questa superficie di lavoro 110 è la superficie, o substrato di lavoro, a partire da cui, per esempio, le sezioni di un oggetto che deve essere ottenuto sono trattate, per esempio termicamente in modo additivo ad alte temperature (ad es., fusione, sinterizzazione, ecc.). Quindi, su ogni superficie di lavoro è possibile definire un percorso di utensile come un insieme di traiettorie da seguire per un end-effector.
In generale, tale superficie di lavoro 110 può comprendere la superficie di un piatto di lavoro fisso o motorizzato. Specificamente, in forme di attuazione varianti la superficie di lavoro 110 può essere localizzata sulla superficie superiore di un piatto di lavoro in un tavolo roto-tilt. In forme di attuazione varianti, un tale tavolo roto-tilt può essere azionato lungo assi paralleli agli assi della testa 12, quindi fornendo ulteriori assi ridondanti cui può essere possibile applicare il procedimento ivi discusso.
Gli assi cartesiani del gantry XG, YG, Z possono essere paralleli alle coordinate dello spazio di lavoro X, Y, Z.
Quanto discusso rispetto ad un processo di produzione additiva, cioè aggiungendo strati di materiali, può essere applicato mutatis mutandis ad un processo di produzione sottrattiva, cioè scolpendo strati di materiali. Il procedimento ivi discusso rispetto a macchine utensili per produzione additiva può essere applicato ad altri tipi di macchine utensili, senza perdita di generalità.
Si noti che, in una o più forme di attuazione, sulla superficie di lavoro 110, intesa come la superficie piana, per esempio di un ambiente di lavoro, è presente un substrato su cui sono depositate le polveri e viene effettuata la fusione, o anche un elemento sul quale una struttura di metallo viene cresciuta attraverso un processo additivo/sottrattivo. Quindi, in generale con “superficie di lavoro” si intende la superficie all’altezza alla quale il processo viene effettuato, ossia, la superficie sia del substrato dove le polveri sono depositate o dell’elemento su cui viene effettuata la crescita additiva/sottrattiva.
Il supporto 11d può comprendere un assemblaggio laser ottico. Un cablaggio è tipicamente accoppiato alla porzione superiore del supporto 11d, che tipicamente comprende una fibra ottica che porta un fascio laser emesso da una sorgente laser situata remota, e quindi non mostrata in Figura 1 o 2. Il corpo a forma di scatola 11d può ospitare mezzi di scansione ottica, che orientano il fascio laser. La sorgente laser ed il sistema focalizzante non sono visibili per brevità, dal momento che essi sono entrambi convenzionali e noti a coloro tecnici del settore.
Di conseguenza, la macchina utensile 10 comprende, per esempio, una catenaria, non visibile in Figura 1, che comprende cavi in fibra ottica, che si connette in particolare al cablaggio della testa 12, per convogliare la radiazione originata da una sorgente di radiazione laser, che è localizzata distante dalla testa 12, alle componenti nel supporto 11d e in un assemblaggio ottico laser.
La catenaria suddetta potrebbe possibilmente trasportare anche gas di supporto, come argon o azoto, per il processo di fusione. La catenaria può comprendere condotti per il trasporto delle polveri di fusione da rispettivi dispositivi di rifornimento remoti rispetto alla macchina 10. Inoltre, la catenaria può comprendere cavi elettrici di controllo e possibili tubature per il trasporto del refrigerante.
In una o più forme di attuazione, l’ugello 34 può essere posto al di sotto del supporto a forma di scatola 11d e associato ad esso, in particolare associato, tramite una sua parete superiore (“roof wall”), ad una parete inferiore del supporto 11d.
All’altra estremità del supporto a forma di scatola 11d, che è aperta – almeno da un punto di vista ottico in quanto, per mantenere la pressurizzazione, può esserci posto un elemento di chiusura ermetica trasparente alla lunghezza d’onda della radiazione del laser – e si affaccia sull’area di lavoro 100, è connessa in una maniera fissa ad un terminale utensile (“end-tool”), indicato dal punto di una freccia 120.
In una o più forme di attuazione, l’end-tool 120 può essere ospitato su un telaio porta utensili 30. Il telaio porta utensili 30 è associato in modo fisso all’estremità aperta del supporto a forma di scatola 11d di cui sopra. In particolare, il telaio porta utensili 30 può essere associato ad un telaio movibile 12b scorrevole entro un telaio di supporto 12a, accoppiato in modo fisso a tale estremità aperta del supporto a forma di scatola 11d entro un telaio movibile 12b che muove il end-tool può comprendere una pluralità di ugelli 34 per l’emissione delle polveri che devo essere fuse, che può essere montato su telaio porta utensili 30 insieme con il terminale utensile 120.
Il telaio porta utensili 30 viene posizionato parallelamente alla superficie di lavoro 110, cioè, il suo perimetro e la sua area sono parallele al piano XY.
Il telaio porta utensili 30 nella testa 12 può comprendere:
- rotaie 12h, 12k per muovere l’end-tool su due assi planari ortogonali XH, YH, ad es. scorrere sulle rispettive rotaie 12h, 12k da rispettivi attuatori;
- assi di rotazione A, B sui quali l’end-tool può essere ruotato da rispettivi attuatori.
Gli assi planari ortogonali XH, YH sono assi ridondanti dati che sono paralleli agli assi planari cartesiani del gantry XG, YG.
Gli attuatori della testa 12 e del gantry 11 sono operativamente connessi ad un’unità numerica di controllo 60, che sarà illustrata nel seguito con riferimento alla Figura 3. Detta unità numerica di controllo 60 pilota l’operazione in base a programmi predeterminati secondo le esigenze di lavorazione di un pezzo di lavoro, e in maniera coordinata con gli attuatori che comandano gli spostamenti della slitta 11c lungo le rotaie 11h del gantry 11 lungo il primo asse del gantry XG, come anche con gli attuatori che comandano gli spostamenti della trave 11b nella direzione del secondo asse del gantry YG. Detti programmi saranno disposti a muovere la testa 12 lungo i rispettivi primo e secondo assi della testa XH e YH, sostanzialmente in maniera continua, entro uno spazio relativamente ristretto e con alte velocità e accelerazioni, mentre gli spostamenti della trave 11b lungo il secondo asse del gantry YG e gli spostamenti della slitta 11c nella direzione dell’asse XG sono compiuti con accelerazioni relativamente basse, in uno spazio relativamente ampio.
Gli attuatori per le masse mobili di bilanciamento (“movable balancing masses”) sono anch’essi operativamente connessi all’unità di controllo programmabile 60 della macchina, così che tutte le masse in movimento durante la lavorazione del pezzo di lavoro sono coordinate per assicurare continuità di movimento.
Si noti che il supporto 11d in cui la testa 12 è associata in modo fisso, può anche essere spostabile lungo un asse verticale Z, per mezzo di un attuatore motorizzato adatto, connesso anch’esso all’unità di controllo 60 della macchina 10.
Quindi, gli assi XG e YG che relativi al sottosistema del gantry, che trasportano attraverso l’area di lavoro della macchina il volume di lavoro più piccolo della testa 12, hanno bassa accelerazione ed alta velocità massima, mentre gli assi XH, YH, A e B relativi al sottosistema della testa hanno alta accelerazione, ma bassa velocità.
Globalmente, se spostamenti cumulativi degli assi planari ortogonali della testa XH, YH e gli assi cartesiani planari paralleli del gantry XG, YG sono presi in considerazione, la macchina può essere considerata avere un numero di gradi di libertà equivalente di una macchina non ridondante a cinque assi, ad esempio cinque assi X, Y, Z, A, B, che comprendono una sovrapposizione di assi del primo sistema 11 e del secondo sistema 12, ad esempio XG+XH, YG+YH. Quindi, la macchina esemplificativa di Figure 1 e 2 è indicata come macchina 5-assi 10.
Dunque, la macchina 10 funziona con assi cartesiani ridondanti (il primo asse della testa XH è parallelo al primo asse del gantry XG, similmente il secondo asse di testa YH è parallelo al secondo asse del gantry YG) che coopera per lo spostamento di un Tool Centre Point, brevemente TCP, cioè il riferimento operativo del punto di end-tool 120 della testa Per il controllo di detta macchina ridondante è perciò necessario coordinare movimenti degli assi del sottosistema del gantry XG e YG e degli assi del sottosistema della testa XH e YH rispettivamente, prendendo in considerazione che gli assi del primo sistema XG e YG hanno il compito di trasferire la testa 12 con continuità lungo l’area di lavoro, tracciando dinamicamente i movimenti di detta testa 12 senza gli assi del secondo sistema XH e YH che deve fermarsi per aspettare il movimento degli assi del primo sistema X e Y.
Figura 3 mostra un diagramma principale dell’architettura di un’unità di controllo numerico 60 per la gestione ed il controllo dei sottosistemi di attuatori ridondanti – ad esempio, motori del gantry 11 che muovono lungo gli assi X, Y, Z e dei motori che muovono la testa 12 lungo assi ridondanti XH, YH come anche quelli che ruotano la testa 12 lungo A e B.
L’unità 60 comprende due computer 61 e 62. Il computer 61 funziona come interfaccia utente per inviare istruzioni e comandi al secondo computer 62, che preferibilmente comprende un sistema operativo 62a associato ad estensioni real-time 62b per la gestione della macchina. Il sistema operativo può, per esempio, essere di un tipo Linux o WinCE, o essere ottenuto attraverso soluzioni proprietarie. Il computer 62 quindi fornisce le traiettorie da seguire ad una scheda di servo-controllo 63 di tipo PCI DSP per controllare gli attuatori.
L’unità di controllo numerico 60, in base a procedure di per sé note nella tecnica, genera un insieme di istruzioni PI, corrispondenti ad un cosiddetto part program, per una macchina “virtuale” con date specifiche di accelerazione e velocità. Questo insieme di istruzioni proviene dal computer 61 ed è originato da un programma fornito allo scopo, per l’impostazione dei percorsi di utensile e dei movimenti della macchina disconnessa (“offline”). Applicata a quest’ultimo è una funzione di interpolazione, che, sulla base dell’insieme di istruzioni, genera il percorso di utensile per la macchina in funzione. Questo percorso di utensile della macchina in funzione corrisponde alle coordinate cinematiche che descrivono in tempo nello spazio il movimento di un punto della macchina operatrice, per esempio un giunto o un centro dell’utensile, Tool Center Point (TCP). Detto diversamente, un percorso di utensile è un insieme di coordinate cinematiche che un utensile “seguirà” nel processo di lavorazione. Questa interpolazione opera in risposta ad un codice preparatorio, o G-Code, inviato all’interno dell’insieme di istruzioni. L’operazione di interpolazione viene implementata via software nel computer 62.
Si noti che, inoltre, nella macchina AM ridondante descritta, l’unità 60 è configurata per l’invio di ulteriori comandi riguardanti, per esempio, il flusso dei getti delle polveri da fondere, il tasso di flusso del gas di supporto, le caratteristiche della radiazione del laser (potenza; modalità: continua, impulsata, ecc.; possibile frequenza e duty cycle; forma del profilo di radiazione: Gaussiana, tophat, ecc.), e le caratteristiche del fascio laser (diametro, focale, ecc.). Questi comandi possono essere associati all’insieme di istruzioni così che questi sono rilasciati in dati punti e a istanti di dati definiti dalla traiettoria della macchina in funzione.
I comandi riguardanti le caratteristiche della radiazione del laser e le caratteristiche del fascio laser possono essere controllate per regolare il profilo termico, per esempio variando la potenza, e/o diametro, e/o focalizzazione dello spot del laser su segmenti di lavoro del percorso di utensile.
Nel computer 62 e nella scheda di servo controllo 63 è implementato un procedimento 1000 per la gestione degli assi ridondanti che è descritto meglio con riferimento alla Figura 4, che mostra un diagramma di flusso illustrante operazioni nel procedimento 1000.
Viene nuovamente fatto notare qui che, per traiettoria definita in base a dati assi si intende, per esempio, una funzione di variabili cinematiche che corrisponde a detti assi. Agli assi X, Y, Z, XH, YH sono associate corrispondenti variabili cinematiche lineari (spostamenti, velocità, accelerazioni), dove associate agli assi di rotazione A, B vi sono corrispondenti variabili cinematiche angolari (angoli di rotazione, velocità angolari, e accelerazioni angolari). Si nota che di seguito con il termine percorso di utensile si intende indicare una sequenza di elementi del percorso da seguire dal TCP. Questo potrebbe corrispondere ad una sequenza di entità geometriche. Tali elementi del percorso o entità geometriche possono essere in alcuni casi anche associati per esempio con indicazioni riguardanti velocità o altri parametri cinematici da applicare muovendo lungo tali elementi del percorso.
Un profilo si riferisce ad una sequenza di valori di variabili cinematiche, ad esempio punti obiettivo (“target”), che sono forniti al servo-attuatore così che i corrispondenti comandi di tensioni e correnti sono generati per il servomotore. Questi possono essere definiti in funzione del tempo o anche in funzione dello spazio.
Il profilo dunque implementa la traiettoria da seguire per esempio con profili di velocità definiti che possono comprendere altresì indicazioni sulle accelerazioni da applicare e con indicazioni relative al profilo di tempo della macchina. Infatti, nella fabbricazione additiva in particolare, dato che il tempo di spostamento è un aspetto critico, il percorso di utensile può comprendere informazioni relative al tempo. Quindi, il procedimento qui discusso non è limitato a un profilo che definisce una traiettoria indicizzata nel tempo, ma può comprendere anche un profilo che definisce una traiettoria indicizzata nello spazio, ad es. nelle coordinate longitudinali, come discusso nel seguito.
In generale, come esemplificato in Figura 4, il controllore 60 può essere configurato per eseguire operazioni di un procedimento 1000 per la gestione di un percorso di utensile della macchina utensile ad assi ridondanti 10 discusso, per esempio rispetto alle Figura 1 a 3.
Nell’operazione indicata dal riferimento numerico 400, l’unità numerica di controllo 60 riceve un insieme di coordinate [X0, Y0, Z0, A0, B0] del TCP nel sistema di riferimento dello spazio di lavoro della macchina (indicato come un percorso di utensile), in base a procedure che sono note per sé nello stato dell’arte, per esempio il percorso di utensile TCP [X0, Y0, Z0, A0, B0] può essere espresso come funzioni di un coordinata spaziale s, ad esempio come X(s), Y(s), Z(s), A(s) e B(s), e può essere generato da un postelaboratore CAM.
Il riferimento numero 600 in Figura 4 designa uno stadio di pre-elaborazione 600, che comprende uno stadio di generazione del profilo 610, uno stadio di inversione cinematica 612 ed un stadio di risoluzione della ridondanza 614, come meglio dettagliato nel seguito.
Lo stadio di pre-elaborazione 600 riceve il percorso di utensile TCP [X0, Y0, Z0, A0, B0] e fornisce come uscita una traiettoria smoothed P_smooth per almeno il sottosistema del gantry 11 della macchina ridondante 10.
Lo stadio di pre-elaborazione 600 riceve il percorso di utensile [X0, Y0, Z0, A0, B0] e lo fornisce allo stadio di generazione del profilo 610.
Generare un profilo di moto Pt nello stadio di generazione del profilo temporale 610 comprende la generazione del profilo di moto Pt, che comprende un insieme di funzioni del tempo indicativo dell’evoluzione nel tempo delle coordinate cinematiche del TCP; specificamente, il profilo di moto Pt comprende un insieme di coordinate X(t), Y(t), Z(t), A(t), B(t) indicativo dell’evoluzione temporale delle coordinate spaziali del TCP della traiettoria della macchina. Dal momento che le coordinate spaziali di percorso di utensile del TCP [X0, Y0, Z0, A0, B0] sono, come menzionato, nel sistema di riferimento dello spazio di lavoro della macchina, queste sono usualmente preliminarmente trasformate nel sistema di riferimento della macchina, ottenendo le coordinate del TCP della macchina. Su tali coordinate del TCP della macchina il passo di generazione 610 di un profilo di moto Pt viene applicato associando i punti del percorso di utensile alle coordinate temporali.
Nello stadio di generazione di profilo temporale 610 applicare la profilazione nel tempo (ad es., campionando nel tempo) nelle forma di attuazione ivi descritta viene compiuto su una griglia di tempo grossolana “coarse”, cioè una griglia che viene prodotta con un numero di punti di dati nel profilo che è inferiore al numero di punti di dati nella traiettoria finale o percorso master di utensile fornito alla macchina, ad esempio ad uno stadio di controllo (vedi stadio 620 sotto, per esempio) dove comandi per il movimento degli assi possono essere generati di conseguenza ai profili di moto Pt_smooth, Pt_head ricevuti per i rispettivi assi di gantry 11 e testa 12 ed i comandi di asse elaborati dal computer sono inviati all’unità di controllo del moto 60 per controllare i movimenti della macchina 10 di conseguenza. In altre parole, il campionamento temporale coarse viene compiuto in base ad un passo temporale maggiore di un campionamento applicato ai percorsi di utensile forniti per comandare lo stadio utilizzatore 62, 63.
In una o più forme di attuazione, lo stadio di generazione del profilo temporale 610 può operare in risposta ad un codice di preparazione, o G-code, inviando all’interno una sequenza di istruzioni PI (noto come part program). Il G-code nell’ambito del controllo numerico di macchine e del CAM (Computer Aided Manufacturing), come è ben noto, identifica una funzione preparatoria che identifica la funzione che deve essere inizializzata, ad es. movimento degli assi, cambio dei piani, ecc..
L'associazione degli istanti di tempo ai punti spaziali del percorso di utensile dipende solitamente dal part program e dai parametri della macchina. Per esempio:
- la macchina può essere impostata per usare valori di accelerazione “a rampa” per spostare le parti della testa o del gantry, che può essere una funzione delle caratteristiche dinamiche degli attuatori o del processo;
- il part program potrebbe adattare tali valori di accelerazione di default, ad esempio incrementando il valore della massima accelerazione, modificando il profilo “a rampa” (allungando la “rampa”, ecc.).
Come discusso di seguito, in una o più forme di attuazione il procedimento può comprendere la redistribuzione in un modo migliorato della porzione di profilo di moto che riguarda gli assi ridondanti.
In una o più forme di attuazione, lo stadio della generazione del profilo 610 potrebbe operare in risposta ad un codice di preparazione, o Codice-G, inviato all’interno di una sequenza di istruzioni PI (note come programma parziale) come menzionato precedentemente. Il profilo Pt generato 610 è fornito in ingresso al secondo stadio di elaborazione 612, che elabora il profilo Pt e fornisce come uscita un profilo master P.
Generare 612 un profilo master P elaborando il profilo generato Pt di detto TCP comprende l’esecuzione dell’inversione cinematica del profilo Pt, per esempio nell’esempio rispetto ad una macchina a cinque assi, ottenendo una traiettoria (x, y) della macchina, ad es. espressa in termini di spostamenti e velocità del giunto. Tale traiettoria (x, y) della macchina è la traiettoria ottenuta da inversione cinematica per una macchina nonridondante a 5-assi con la stessa portata totale di quella reale, ridondante.
Dopo, su tale traiettoria della macchina viene compiuta una operazione di risoluzione della ridondanza.
Si sottolinea che date le velocità caratteristiche coinvolte per esempio nella produzione additiva e le lunghe estensioni coperte dagli assi del gantry X, Y, Z, la risoluzione della ridondanza è più efficace quando lunghe porzioni di percorso, ad es. un’intera porzione, cioè un percorso ad una stessa altezza verticale, sono elaborati in una volta dall’algoritmo. L’onere computazionale del campionamento dei punti di dati al tempo del ciclo di controllo, dato il largo intervallo di tempo considerato, potrebbe essere molto elevato. Per questa ragione, vengono prima considerati punti di percorso su griglia di tempo coarse, generando una traiettoria smooth da questi dati. Questo è possibile perché la traiettoria esatta degli assi del gantry non è vincolata, solamente la somma tra assi del gantry e della testa lo è, come discusso nel seguito.
Il profilo master generato P viene quindi fornito allo stadio di risoluzione della ridondanza 614, implementando il procedimento discusso nel seguito e fornendo in uscita, ad es. ad uno stadio di controllo online 620, un profilo smoothed P_smooth.
Per semplicità, per descrivere le operazioni eseguite nello stadio di risoluzione della ridondanza 614 si fa riferimento nel seguito principalmente alla macchina utensile per la produzione additiva 10, ad esempio in grado di depositare materiale con una strategia 2+1 degli assi, dove ogni strato di materiale è depositato parallelo al piano XY e separato dallo strato di materiale depositato in precedenza da un offset verticale sull’asse Z. Il profilo di moto Pt di tale macchina quindi trascurerebbe la rotazione della testa lungo i suoi assi di rotazione e si focalizza principalmente sui suoi movimenti in coordinate cartesiane planari, senza rotazioni della testa, ad es. A(t)=0, B(t)=0. Di nuovo, si nota che il procedimento 1000 qui discusso non è limitato a tale macchina ridondante per la produzione additiva, dato che può essere applicata a qualsiasi architettura di macchina utensile ad assi ridondanti e/o qualsiasi catena cinematica comprendente assi ridondanti.
Per semplicità, è qui descritta una superficie di lavoro singola, o strato (“layer”), 110 che è una superficie dove la posizione sull'asse verticale Z è costante, ad es. Z(t)=0 (come sulla superficie inferiore 110 di Figura 1).
In questa scenario, come menzionato, il gantry 12 e la testa 11 possono essere visti, come due sottosistemi cartesiani accoppiati o sotto macchinari: il gantry 11 come un primo sottosistema, ad es. una prima sotto-macchina cartesiana X-Y a lungo raggio, accoppiato, ad es. in serie, con la testa 12 come un secondo sottosistema, ad esempio una seconda sotto-macchina cartesiana X-Y a corto raggio.
Nel caso esemplificativo considerato, dunque, un rispettivo insieme di coordinate, ad es. coordinate spaziali, può essere identificato per ciascun sottosistema 11, 12 su ciascun paio di assi planari XG, YG, e XH, YH.
Specificamente, è possibile identificare un primo insieme di coordinate (xG, yG) per il gantry 11 ed un secondo insieme di coordinate (xH, yH) per la testa 12. Per esempio, la prima coordinata del gantry xG è una variabile indicativa della posizione della slitta 11c su un primo asse X rispetto ad un’arbitraria origine impostata su detto primo asse X, mentre yG è una variabile indicativa della posizione di una estremità 11k della trave 11b sul secondo asse Y rispetto ad un’arbitraria origine impostata su detto primo asse Y. Similmente, per esempio, xH è una variabile indicativa della posizione della testa 12 sul primo asse XH rispetto ad un’arbitraria origine impostata su detto primo asse XH, mentre yH è una variabile indicativa della posizione della testa sul secondo asse YH rispetto ad un’arbitraria origine impostata su detto primo asse YH. Detto diversamente, il primo insieme di coordinate (xG, yG) è espresso in un sistema di riferimento solidale con il sistema di riferimento dello spazio di lavoro 100 della macchina mentre il secondo insieme di coordinate (xH, yH) è espresso in un sistema di riferimento solidale con il gantry 11, relativamente a cui la testa 11 viene mossa.
Sia le coordinate del gantry (xG, yG) che le coordinate della testa (xH, yH) hanno intervalli fissi entro cui ogni coordinata variabile può variare, dati da i loro rispettivi limiti di spazio assiali: per esempio, le lunghezze delle rotaie 11h del gantry 11 sono i limiti fisici per il massimo valore dell’estensione delle coordinate orizzontali xG dato che detta lunghezza corrisponde al massimo spostamento dell’estremità 11k della trave 11b lungo l’asse planare XG.
Detto diversamente, ciascuna coordinata per ciascun asse per ciascuna sotto-macchina è vincolata entro un associato intervallo di estensione. Ogni intervallo di estensione può essere definito da rispettivi valori di minimo lXG, lYG, lXH, lXH e massimo hXG, hYG, hXH, hXH raggiungibili da ciascuna rispettiva coordinata xG, yG, xH, yH per ciascun rispettivo asse XG, YG, XH, YH di ciascuna rispettiva sottomacchina 11, 12.
Ad esempio, per il gantry 11:
- un primo intervallo del gantry può essere espresso come dove lXG, hYG sono i valori di limite inferiore e superiore per il primo asse X del gantry 11, rispettivamente;
- un secondo intervallo del gantry può essere espresso come dove lYG, hYG sono i valori di limite inferiore e superiore per il secondo asse Y del gantry 11, rispettivamente.
Analogamente, per la testa 12:
- un primo intervallo della testa può essere espresso come dove lXH, hYH sono i valori di limite inferiore e superiore per il primo asse A della testa 12, rispettivamente;
- un secondo intervallo della testa può essere espresso come dove lYH, hYH sono i valori di limite inferiore e superiore per il secondo asse B della testa 12, rispettivamente.
Nello stadio 612 del procedimento 1000, come discusso precedentemente, un profilo master, o traiettoria, P può essere generato avente coordinate master indicate come
date dalla somma delle rispettive coordinate del gantry (xG, yG) e della testa (xH, yH).
Dunque, la coordinate (x, y) del profilo master P fornite come uscita nel secondo stadio di elaborazione 612 che possono essere espresse come:
Detto diversamente, il profilo master P viene modellizzato come una sovrapposizione dei profili del gantry e della testa i quali possono essere indicati come PG, PH, rispettivamente. Come risultato, il percorso di utensile master P è equivalente al percorso di utensile di un TCP di una macchina utensile a 5 assi equivalente con un singolo paio di coordinate planari cartesiane X, Y che ha la stessa portata di quello ridondante.
La traiettoria master P può essere espressa come:
e gantry 11 e testa 12 traiettorie rispettive possono essere espresse come:
per il percorso di utensile del
gantry PG, e
per il percorso di utensile
della testa PH.
Il profilo master P generato nel secondo stadio di processo 612 viene quindi fornito ad uno stadio di risoluzione della ridondanza 614 che processi detto profilo master P, che genera un profilo smoothed del gantry P_smooth di detto almeno un gantry 11 applicando l’elaborazione di smoothing a detto profilo master P, come dettagliato di seguito.
Il procedimento 1000 proposto per la soluzione della ridondanza della macchina cartesiana presentata comprende preferibilmente una programmazione del movimento offline 600, perciò i problemi di controllo possono non essere presi in considerazione qui. Ciò nonostante, forme di attuazione varianti possono comprendere disposizioni specifiche così come facilitare evitare il deterioramento dell’accuratezza della macchina, come discusso di seguito, in particolare rispetto a Figura 7.
È noto che quando si considera la cinematica della macchina 10, risolvere la ridondanza degli assi comprende la distribuzione degli spostamenti del TCP in modo tale che il movimento del TCP non eccede i contorni di ogni asse X, Y, XH, YH. Detto diversamente, risolvere la ridondanza comprende la distribuzione simultanea degli spostamenti planari agli assi planari in modo che ogni coordinata di gantry/testa viene almeno tenuta entro il suo rispettivo intervallo di estensione GX, GY, HX, HY.
La soluzione qui descritta comprende, applicare smoothing 614, eseguire la regressione di detto profilo master P su una smoothing spline ottenendo detto profilo smoothed P_smooth come discusso di seguito.
Di conseguenza, lo stadio di risoluzione della ridondanza 614 nello stadio di pretrattamento 600 in il procedimento 1000 fornisce come un output un percorso di utensile smoothed P_smooth che potrebbe corrispondere al profilo da seguire dal gantry. In altre parole, il profilo smoothed P_smooth può essere assegnato alle coordinate del gantry. La testa del profilo PH è quindi ottenuta dalla differenza tra il profilo master P e il profilo smoothed P_smooth, ad esempio da sottrazione. Le relazioni tra profili elaborati nello stadio di risoluzione della ridondanza 614 possono essere e spresse come:
dove il simbolo del cappello delle coordinate smoothed P_smooth che risultano dall’esecuzione della regressione della smoothing spline 614 sul profilo master P, come discusso di seguito.
In generale, funzioni spline, note di per sé nella tecnica, vengono impiegate per interpolare o come funzioni approssimate di punti di dati. Una funzione spline (dove l’indice d indica il grado/ordine della spline), viene formulata come una combinazione di funzioni polinomiali a tratti, cioè una funzione che è un polinomiale su ognuno dei suoi sottodomini, ma possibilmente uno differente su ognuno. Per cui, una funzione spline denotata come spline di ordine d può essere espressa come:
dove:
- Sj è la j-esima funzione polinomiale in un insieme di N funzioni polinomiali il cui più alto grado è pari a
- è il j-esimo nodo nell’insieme dei nodi
<è l’indicatore della funzione sull’intervallo >
impiegato per specificare l’intervallo tra il (j-1)-
esimo nodo Tj-1 e il j-esimo nodo Tj sul quale la j-esima funzione polinomiale Sj viene applicata.
Un comune, efficiente approccio per gestire una funzione spline è quello di rappresentarla come una combinazione lineare di un insieme di funzioni base Specificamente funzioni B-spline:
(1.1)
dove:
- Bj(t) è la j-esima funzione di base nell’insieme delle funzioni di base
- aj è il j-esimo coefficiente in un insieme di coefficienti dove la sottolineatura viene impiegata per specificare la natura vettoriale dell’insieme dei coefficienti a.
L’insieme delle funzioni di base B è un insieme di funzioni completamente caratterizzate dalle posizioni dei nodi, per cui l’unico incognita nell’equazione di cui sopra (denotata come equazione 1.1) è il vettore di coefficienti a.
Lo stadio di risoluzione della ridondanza 614 può operare, ad es. separatamente, su ciascun profilo master di coordinate variabili x, y. Per semplicità, il procedimento qui descritto viene discusso rispetto ad una generica funzione u, tuttavia il trattamento è inteso essere esteso ad entrambe le coordinate x, y nel profilo master P della macchina 10.
Un approccio per approssimare la generica funzione
dalle sue, possibilmente rumorose, osservazioni comprende:
- campionare la funzione generica u(q) su un certo numero n di valori t1, …, tn, per esempio un insieme di valori <di tempo, ottenendo un insieme di campioni di dati >
della funzione generica u(t);
- eseguire una regressione dell’insieme di campioni di dati della funzione generica sulla funzione spline che può essere espressa come la soluzione ad un problema dei minimi quadrati che può essere espresso nella forma:
<(1.2)>
dove:
<indica il valore i-esimo della funzione spline>
calcolato ad un i-esimo campione di dato ti nell’insieme
di campioni di dati t1, …, tn, ad esempio dove la funzione spline viene calcolata per un certo insieme di <coefficienti > <ad esempio > <ed un insieme di nodi > and
è il valore risultante dei coefficienti, per usato per calcolare la funzione spline ivamente.
È noto che l’insieme dei nod e l’insieme degli intervalli di valori sono, in generale, insiemi distinti di punti.
Smoothing spline differiscono dalle spline per le seguenti caratteristiche:
<a) l’insieme dei nodi > <e l’insieme dei valori > sono, in generale, coincidenti, ad esempio a questo punto sorge un problema in quanto in questo modo il problema dei minimi quadrati viene ridotto ad un problema di interpolazione;
b) eseguire regressione della generica funzione u su una smoothing spline comprende risolvere un problema dei minimi quadrati pesati che comprende un coefficiente di termine di penalità λ, per bilanciare e uniformare (“smooth”) l'elaborazione di regressione spline penalizzando l'ampiezza, ad esempio la norma della derivata m-esima desiderata.
Quanto discusso nel paragrafo sopra al punto b) può essere espresso come:
dove:
-W è indicativo di un insieme di valori di peso
che possono essere introdotti per consentire qualche bilancio locale tra interpolazione e smoothing della spline;
- è indicativo di elevare alla potenza di due ciascun valore in un vettore ottenuto come differenza tra valori di funzione generici e valori della spline
- λ è un coefficiente di penalità;
è un termine di penalità espresso come funzione di norma L2 di una derivata m-esima della funzione “splined”, ad esempio il termine di penalizzazione della norma L2;
è un insieme di coefficienti da fornire alla
smoothing spline allo scopo di ottenere una funzione “smoothed” che risulta dall’esecuzione della regressione della smoothing spline.
Il coefficiente di penalità λ facilita la riduzione dei gradi di libertà della funzione spline per cui rende il problema di minimizzazione nuovamente uno di smoothing e risolve il problema sorto nel punto a).
L’equazione di cui sopra (indicato con 1.3 in parentesi) è una forma semplice per esprimere un problema di programmazione quadratica senza vincoli sui valori della soluzione
Per semplicità, il prodotto del coefficiente di
penalità λ e del termine di penalità sono indicati <come termine di penalità E, espresso come:>
<Maggiore è il valore di λ, minore è l’“ampiezza” del >m-esima derivata di ad es. risultante dalla soluzione del problema di minimizzazione pesato. Data la struttura polinomiale a tratti delle funzioni spli oro funzioni derivate ed integrali su ogni intervallo tra due nodi Tj=tj possono essere calcolate analiticamente, e il risultato è ancora lineare rispetto ai coefficienti del vettore La rigidezza della funzione può essere regolata modificando il coefficiente di penalità λ.
Scegliere l’ordine m della derivata m-esima da inserire nel termine di penalità E facilita la minimizzazione di una relativa quantità cinematica. Per esempio, modellare la posizione con una spline cubica (cioè m=2) consente di avere una accelerazione minima continua, mentre modellarlo con splines di quinto grado (“quintic”) (cioè m=3) consente di avere strappo (“jerk”) minimo continuo. Certamente, altre scelte di ordine (ad esempio m=4 o maggiore) delle spline sono possibili qualora sia desiderato minimizzare una quantità cinematica la cui derivata ha un maggiore ordine rispetto alla derivata facilitando il minimo jerk.
È possibile esprimere l’integrale in (1il termine di penalità E come funzione di prodotti di B-spline. Infatti, le funzioni B-spline hanno la proprietà che la loro derivata si può esprimere come una combinazione lineare di altre funzioni B-spline, ad esempio:
<dove >
d, ad esempio quella positive sull’intervallo
Il seguito è un esempio di calcoli per il
Altri casi con possono essere implementati con procedura simile, adottando eventualmente le proprietà analoghe come in (1.4) ma per integrazione. Prima di tutto, <isolare l’integrale di un prodotto di basi B-spline fornisce>
Integrando per parti gli elementi di C dà:
perché la derivata di ordine d-esimo di una spline di ordine d è zero.
In forme di attuazione come ivi descritto, i valori residui accettabili sono limitati dalle massime estensioni della testa. L’approccio proposto facilita l’ottenimento di residui localmente limitati mentre si sfrutta la massima possibile “rigidezza” (“stiffness”) della traiettoria smoothed.
Infatti, in ragione di quanto in precedenza il problema dei minimi quadrati descritto rispetto all’equazione indicata come (1.3) può essere equivalentemente espresso dalla seguente espressione:
dove, nuovamente:
- indicato l’insieme di campioni di dati della generica funzione u, ottenuta fornendo ricorsivamente come coefficienti;
- B è l’insieme delle funzioni di base
specificamente funzioni B-spline;
<- C è, ad es per il caso m=d-2, il coefficiente ܥ = >
i coefficienti di spline,
- λ è il coefficiente di penalità.
Tale formulazione può facilitare l’implementazione di vincoli lineari per la soluzione per cui esprimendo il <problema di pr> <ogrammazione quadratica:>
dove i valori dell’insieme dei coefficienti delle spline sono vincolati a soddisfare una data relazione di disuguaglianza con un insieme di vincoli relazione quale <può essere espressa come:>
dove:
- A è una matrice di funzioni B-spline, che può essere <espressa come: >
dove B è anche nota come matrice di collocazione (“collocation matrix”) delle B-splines; e
- è l’insieme di vincoli che è una combinazione lineare dei campioni di dati della generica funzione e di un vettore indicativo di limiti inferiori e superiori per i <residui, che può essere espresso come:>
dove è il vettore (n+1) dimensionale , dove n sono i campioni di dati della generica funzione u(t).
Quando applicata ad un singolo insieme di coordinate di sottosistema, ad es. coordinate di testa xH, yH del profilo di testa PH, i vincoli di relazione di disuguaglianza hanno valori corrispondenti a:
- limiti orizzontali inferiori e superiori della testa, quando ad es.
- limiti verticali inferiori e superiori della testa, quando u=y, ad es.
Applicare la relazione di disuguaglianza per soddisfare l’insieme dei vincoli facilita l’imposizione di vincoli di estensione, ad es. assicurando che la traiettoria del percorso di utensile della testa PH rispetta i limiti di estensione HX, HY.
Scegliendo un valore alto del coefficiente di penalità λ, il procedimento non richiede di regolare finemente alcun parametro di smoothing: infatti, impostando un valore λ molto ampio la massima relativa uniformità (“smoothness”) viene presa a obiettivo, mentre allo stesso tempo i vincoli imposti assicurano che il percorso di utensile della testa PH è mantenuto entro intervalli richiesti HX, HY.
Lo stesso procedimento descritto in precedenza rispetto all’imposizione di vincoli di estensione può essere sfruttato anche per introdurre vincoli, ad es. limitazioni, alle derivate dei profili di moto (velocità, accelerazione ecc.), per insiemi di coordinate rispettive (xG, yG) e (xH, yH) sia per il gantry 12 che per la testa 11.
Usando la matrice di collocazione per le derivate delle B-spline indicate come una rispettiva
relazione di disuguaglianza può essere fornita anche per i rispettivi profili di moto del gantry e la testa. Dunque, un insieme di relazioni di disuguaglianza che esprime vincoli di contorno per la derivata m-esima di ordine m della generica funzione u può essere espresso come:
dove, similmente a quanto discusso prima:
- AGm è una matrice del gantry di collocazione di B-<spline di ordine m, che> <può essere espresso come>
E
- bGm è un insieme di vincoli del gantry che è un vettore indicativo dei limiti inferiori e superiori per il profilo di moto smoothed, che può essere espresso come:
Mentre
- AHm è una matrice della testa di collocazione di B-<splines, che può esse> <re espressa come>
E
- bHm è un insieme di vincoli della testa che è una combinazione lineare di campioni di dati della generica funzione e di un vettore indicativo dei limiti inferiori e <superiori per i> <residui che può essere espresso come>
dove:
è un desiderato/valido intervallo di estensione
di valori che devono essere soddisfatti dalla derivata mesima (ad esempio accelerazione quando m=2) delle coordinate del gantry 11, ad esempio xG o yG; e
è un desiderato/valido intervallo di estensione di valori che devono essere soddisfatti dalla m-esima derivata (ad esempio accelerazione quando m=2) delle coordinate della testa 12, ad esempio xG o yG.
Data la forma similare di <e > che entrambe moltiplicano sul lato sinistro di una disuguaglianza, è possibile compattare l’insieme delle condizioni di disuguaglianza, che descrivono rispettivamente i vincoli specifici per gantry 11 e testa 12, in una disuguaglianza globale di vincolo in funzione del minimo dei termini a destra dell’insieme delle condizioni di disuguaglianza.
Tale vincolo globale può essere espresso come:
dove:
- Am è una matrice globale di collocazione di B-spline di ordine m, che può essere espressa come
E
- bm è un insieme globale di vincoli, espresso come il minimo di due vettori ݇-dimensionali indicativi dei limiti inferiore e superiore per il profilo di moto smoothed ed il residuo, che può essere espresso come
dove ottenere il minimo di due vettori ݇-dimensionali comprende generare un vettore k-dimensionale il cui, ad es., k-esimo componente è il minimo dei valori dei rispettivi vettori k-dimensionali analoghi componenti k-esimi. Tale processo di generazione del minimo di due vettori kdimensi onali può essere espresso come:
In una o più forme di attuazione, i sottosistemi della macchina possono essere disallineati, ad es. con disallineamenti più grandi della tolleranza richiesta per considerare l'asse ridondante del gantry X parallelo alla testa ridondante dell’asse XH, e l’asse ridondante del gantry Y parallelo alla testa ridondante asse YH.
Per semplicità, viene prima considerato di seguito all’esemplare caso degli assi del gantry X, Y, Z (e coordinate rispettive che sono disallineati rispetto al sistema di riferimento dello spazio di lavoro della macchina, come mostrato in Figura 3B.
Una matrice di disallineamento del gantry RG può essere generata comprendendo i vettori unitari degli assi disallineati del gantry X, Y, Z espresso nel sistema di riferimento dello spazio di lavoro della macchina, ad esempio:
Per esempio, nel caso degli assi disallineati del gantry i vettori unitari sono ancora ortogonali tra di loro, la matrice di disallineamento può essere una matrice di tipo di rotazione. In generale, RG potrebbe avere qualsiasi forma matriciale, per prendere in considerazione casi in cui gli assi del gantry sono disallineati in un modo per cui essi non sono mutuamente ortogonali tra di loro. D’altronde, è escluso che il caso di assi così disallineati da risultare un caso degenere di assi mutuamente paralleli.
In un esempio più generale, quanto discusso in precedenza rispetto alla matrice di disallineamento del gantry RG può essere esteso per prendere in considerazione anche disallineamenti degli assi della testa XH, YH rispetto agli assi del gantry X, Y: una rispettiva matrice di disallineamento della testa può essere generata, espressa come:
Anche nel caso della testa, la matrice di disallineamento della testa RH potrebbe avere qualsiasi forma per prendere in considerazione assi disallineati entrambi mutuamente ortogonali o formare qualsiasi angolo con ogni altro, mentre si esclude il caso degenere di assi mutuamente paralleli.
Grazie alla esclusione dei casi degeneri, sono invertibili in ogni circostanza.
La relazione tra coordinate master P e rispettive coordinate degli assi di testa e del gantry può dunque essere espresso come:
Il profilo smoothed desiderato del gantry P_smooth si ottiene tramite:
- invertire la matrice di disallineamento del gantry RG,
- moltiplicare la matrice invertita dei disallineamenti con le coordinate master P, ottenendo un insieme di coordinate compensate del gantry, che può essere espresso come:
e
- applicare smoothing a detto insieme di coordinate compensate.
Di conseguenza, un insieme di coordinate compensate della testa PH_mis può essere recuperato invertendo l’equazione (1.6) a ciascun istante di tempo, come espresso tramite:
Le matrici di disallineamento RG, RH, come discusso in precedenza, combinano coordinate differenti, quindi i vincoli di disuguaglianza da applicare alle coordinate formano un sistema di equazioni. Allo scopo di prendere in considerazione disallineamenti RG, RH nell’ottimizzazione vincolata che considera tutte le coordinate simultaneamente, una generica matrice di disallineamento R può essere espressa come una matrice di matrici diagonali, ad esempio ottenuta come un prodotto di una matrice identità (n+1)*(n+1)-dimensionale, dove n è il numero di assi disallineati, da un ij-esimo valore costante rij. Questo può essere espresso come: ;; dove: ;;- con sono gli elementi costanti di R, ;; è la matrice identità di dimensione ;; ;; Di conseguenza, anche una generica matrice di collocazione B può essere ridefinita come una matrice di matrici, Specificamente una matrice diagonale i cui elementi della diagonale sono rispettive sotto-matrici di collocazione per ciascuna coordinata disallineata. Ciò può essere espresso come: ;;; ; dove: ;- sono le matrici di collocazione delle B-spline per coordinate ; Di conseguenza, di nuovo, anche il vettore dei coefficienti delle spline ed il vettore delle costanti possono essere espressi come ciascuno avente componenti di vettore/matrice: ;;; ;; dove, di nuovo, pedici ݔ, ݕe ݖ denotano matrici e vettori ivi descritti relativi alle coordinate degli assi generali. Con questa notazione, la funzione obiettivo conserva la formulazione indicata con 1.5 in parentesi, mentre il vincolo di disuguaglianza dovrebbe essere riformulato così che i dati sono trattati prendendo in considerazione matrici di disallineamento RG, RH. Questo porta ad una formulazione variante dell’insieme di disuguaglianza del vincolo della testa, che è delimitato su due lati, ossia: ;- le coordinate trasformate smoothed dovrebbero essere entro i vincoli di contorno che sono doppiamente-delimitati ai lati dai rispettivi valori di minimo e massimo di ciascuna coordinata su ciascun asse. ;Quindi, l’insieme di vincolo di disuguaglianza della testa variante può essere espresso come: ;;dove ;; D’altronde, esprimere questi vincoli disallineati è possibile anche nelle formulazioni canoniche di vincolo di disuguaglianza, ad es. formalizzando nuovamente il problema <nella forma canoniche:>;;; ; dove: ;- AR è una matrice diagonale di rispettive matrici di <collocazione di B-splines, che può essere espressa come>;;; ; e ;- b è un insieme globale di vincoli, espresso come una differenza tra il prodotto della matrice di disallineamento della testa con vettori indicativi dei limiti inferiori e superiori per le coordinate di testa compensate e la generica <funzione delle coordi> <nate che può essere espressa come>;;Figura 5 è un diagramma esemplificativo che rappresenta le operazioni eseguite nello stadio di risoluzione della ridondanza 614 per fornire un profilo smoothed P_smooth da assegnare al profilo del gantry, cioè P_smooth=PG. ;Lo stadio di risoluzione della ridondanza 614 può comprendere uno stadio di impostazione della strategia del termine di penalità 6140 ed uno stadio di elaborazione della risoluzione 6148. ;Lo stadio di impostazione della strategia del termine di penalità 6140 riceve come ingresso il profilo master P ed <i limiti GX, GY, HX, HY da inserire nell’insieme dei vincoli > ; e fornisce come output il percorso di utensile smoothed;P_smooth, da cui il percorso di utensile della testa PH può essere ottenuto, ad es. come discusso di seguito rispetto allo stadio di elaborazione della risoluzione 6148. ;Lo stadio di impostazione della strategia del termine di penalità 6140 comprende un primo stadio di impostazione 6142, un secondo stadio di impostazione 6144 ed uno stadio di iterazione 6146. ;Nel primo stadio di elaborazione 6142 nello stadio di impostazione della strategia del termine di penalità 6140 nello stadio di risoluzione della ridondanza 614, una fase di discretizzazione o di posizionamento dei nodi può essere inizializzata, ad es. definendo il numero di nodi (coincidente con il numero di valori, per le smoothing splines) usando una data distanza, ad es. la più piccola, tra due punti consecutivi pianificati nel part program PI, allo scopo di posizionare i nodi della spline T1, …, Tn per il calcolo della smoothing spline. ;Nel secondo stadio di processo 6144 nello stadio di impostazione della strategia del termine di penalità 6140 nello stadio di risoluzione della ridondanza 614, il termine di penalità E può essere inizializzato (ad es. con λ=1, m definito dall’utente) o scelto (ad es., iterativamente), per ottenere il valore desiderato della derivata m-esima. ;L’interpolazione della smoothing spline è poi eseguito nel secondo stadio di elaborazione 6144 con l’insieme di parametri E, m, λ scelto/inizializzato, eseguendo una regressione della smoothing spline sul profilo master P ottenendo un profilo smoothed P_smooth, come discusso in precedenza (ad esempio nell’equazione indicata come 1.5). ;Nello stadio di iterazione 6146 nello stadio di impostazione della strategia del termine di penalità 6140, un valore di soglia può essere impostato per valutare se il termine di penalità E impostato allo stadio 6144 facilita in modo soddisfacente l’ottenimento dello smoothing desiderato. Nel caso in cui il risultato è considerato essere soddisfacente, il profilo smoothed P_smooth viene fornito come un’uscita e/o allo stadio di elaborazione della risoluzione 6148. ;Nello stadio di elaborazione della risoluzione 6148, il profilo della testa PH può essere calcolato come la differenza tra il profilo master P e il profilo smoothed P_smooth. ;Ad esempio, in un caso esemplificativo l’operatore della macchina può essere interessato nella riduzione delle vibrazioni durante variazioni di direzione veloci, cioè riducendo il jerk lungo l’intero percorso di utensile del TCP; conseguentemente, nel primo stadio di elaborazione 6142 la terza derivata temporale (cioè m=3) viene usata nel termine di penalità E. Inoltre, anche il coefficiente di penalità λ= può essere inizializzato, ad es. λ=1 può essere usato come un valore iniziale. ;Nell’esempio che viene considerato, nel secondo stadio di elaborazione 6144, la funzione di impostazione di un, ad esempio fisso, rapporto a cui incrementare il valore del termine λ ad ogni iterazione viene eseguito, ad es. impostando al doppio il valore del coefficiente di penalità λ ad ogni iterazione. Ancora nel contesto del caso esemplificativo che viene discusso, nello stadio di iterazione 6146 il valore del coefficiente di penalità λ viene aumentato tramite il rapporto definito allo stadio 6144 fino a quando la condizione di soglia è soddisfatta, ad es. fino a quando il jerk massimo lungo il profilo (di moto) smoothed P_smooth ha un valore abbastanza basso. ;In un altro esempio, per esempio, può essere di interesse per l’operatore della macchina ridurre il consumo energetico della macchina, cioè ridurre l’accelerazione lungo il profilo master P; conseguentemente, nel primo stadio di processo 6142 la seconda derivata temporale (cioè m=2) viene usata nel termine di penalità E. Inoltre, anche il parametro di penalità λ= può essere inizializzato, ad es. λ=1 può essere usato come un valore iniziale. ;Di nuovo, nel secondo stadio di elaborazione 6144 l’operazione di impostare un, ad esempio fisso, rapporto a cui incrementare il valore del termine λ ad ogni iterazione viene eseguita, ad es. impostando al doppio il valore di λ ad ogni iterazione. Ancora nel contesto del caso esemplificativo che è discusso, nello stadio di iterazione 6146 il valore del parametro del termine di penalità λ è aumentato tramite il rapporto definito in corrispondenza dello stadio 6144 fino a quando la condizione di soglia è soddisfatta, ad es. fino a quando la massima accelerazione lungo il profilo (di moto) smoothed P_smooth ha un valore abbastanza basso. ;In forme di attuazioni varianti, come mostrato per esempio in Figura 6, uno stadio variante di impostazione della strategia del termine di penalità 6140’ può comprendere stadi che eseguono ulteriore elaborazione, per impostare la passo di discretizzazione o di posizionamento dei nodi iterativamente. Salvo diversamente discusso nel seguito, in Figura 6 (ed anche in Figura 5) parti o elementi medesime parti o elementi già discusse in precedenza sono indicati con medesimi riferimenti/numerali, così che una corrispondente descrizione dettagliata non sarà qui ripetuta per brevità. ;- indicato con 6150: ridurre (ad es. di metà) la distanza tra due punti consecutivi o intervallo di discretizzazione rispetto a quello impostato allo stadio 6142; ;- indicato con 6152: valutare il risultato (ad es. lunghezza totale del percorso più corta per gli assi larghi): se il miglioramento è significativo (ad es. (nuova lunghezza di percorso) < 0.9*(vecchia lunghezza di percorso)), procedere allo stadio 6140 e iterare l’elaborazione con il nuovo valore di passo di discretizzazione; altrimenti, se il miglioramento non è significativo, fornire in uscita il profilo smoothed P_smooth come elaborato nello stadio 6146.
Figura 7 è esemplificativa di forme di attuazione dello stadio di controllo online 620 del procedimento 1000.
Specificamente, lo stadio di controllo online 620 riceve il profilo smoothed P_smooth, che applica un’elaborazione per controllare e pilotare 620 gli attuatori della macchina ridondante 10 attraverso l’unità numerica di controllo 60 ed un modulo di servo controllo 63 in funzione di detta traiettoria smoothed P_smooth per almeno un primo sottosistema 11 della macchina ridondante 10.
Come esemplificato in Figura 7, lo stadio di controllo online 620 può comprendere uno stadio di interpolazione temporale fine (“fine”) 6210, uno stadio di inversione cinematica fine 6212, uno stadio di recupero della testa (“head recovery stage”) 6214, ed uno stadio di controllo del movimento 6220.
Lo stadio di interpolazione temporale fine 6210 riceve il profilo smoothed P_smooth dallo stadio di preelaborazione 600 che usa la traiettoria smoothed P_smooth per gli assi del gantry, che può essere ora descritta in tempo continuo tramite una spline. Nello stadio di interpolazione temporale fine 6210a un campionamento con un intervallo temporale fine viene applicato al profilo smoothed P_smooth, fornendo un percorso di utensile smoothed campionato finemente che verrà impiegato per ricostruire più precisamente il profilo richiesto tramite compensazione con le coordinate della testa.
Il percorso di utensile smoothed campionato finemente viene fornito allo stadio di inversione cinematica fine 6212, dove la cinematica inversa è applicata nuovamente (similmente a quanto discusso rispetto allo stadio di inversione cinematica coarse 612) allo scopo di ottenere le posizioni degli assi z, a e b al tempo di controllo del ciclo.
Lo stadio di inversione cinematica fine 6212, dunque, fornisce come uscita un profilo di moto smoothed Pt_smooth che comprende le coordinate smoothed invertite cinematicamente e le coordinate non-ridondanti del profilo di moto Pt. Detto diversamente, il profilo di moto smoothed Pt_smooth comprende un vettore di coordinate ridondanti e non-ridondanti della macchina, ad es. un insieme di coordinate xG(t), yG(t), z(t), a(t), b(t) indicativo dell’evoluzione temporale delle coordinate degli assi del gantry della macchina, su una griglia temporale fine.
Il profilo di moto smoothed Pt_smooth viene ricevuto nello stadio di recupero della testa 6214 dove è elaborato per fornire come uscita le desiderate coordinate della testa, cioè le coordinate della testa calcolate nel sistema di riferimento del gantry sugli assi cartesiani ridondanti, risolvendo la risoluzione della ridondanza.
Quindi, il profilo di moto smoothed Pt_smooth comprende il profilo di moto delle coordinate master smoothed, assegnate al gantry 11. Tramite differenza tra profilo di moto del percorso utensile principale Pt e il profilo di moto smoothed Pt_smooth, si ricava il profilo di moto della testa Pt_head, ad esempio Pt_head=Pt-Pt_smooth. Dunque, il profilo di moto della testa Pt_head può essere fornito allo stadio di controllo 6220 dove i comandi per muovere gli assi possono essere generati secondo i profili di moto ricevuti Pt_smooth, Pt_head per i rispettivi assi di gantry 11 e testa 12 ed i comandi di asse elaborati dal computer sono inviati all’unità di controllo del moto 60 per controllare i movimenti della macchina 10 di conseguenza.
Come anticipato in precedenza rispetto alle matrici di disallineamento, per migliorare l'accuratezza della ricostruzione del percorso originale dagli assi ridondanti, a questo punto si chiude l’anello di controllo.
Il profilo di moto della testa Pt_head è un risultato di una differenza tra il profilo di moto del TCP Pt e l’insieme di coordinate compensato del gantry PG_mis che può essere ottenuto tramite una matrice di disallineamento RG le cui componenti possono essere calcolate dalla prestazione misurata della macchina. Quindi, il profilo di moto della testa Pt_head può essere compensato tramite correzioni eseguite, ad es., in un anello chiuso, e corrette da quelle ottenuti da misure di retroazione.
Si noterà che quanto discusso in precedenza rispetto al profilo di moto generato dello stadio della generazione del profilo temporale 610, che è un profilo che definisce una traiettoria indicizzata o campionata nel tempo, può essere applicato, in forme di attuazioni varianti, anche al profilo generato da un campionamento in una variabile diversa dal tempo. Per esempio, può essere applicata al profilo discretizzato Ps generato in uno stadio di generazione del profilo 610’ configurato per ricevere percorso di utensile del TCP, come esemplificato in Figura 10.
Lo stadio di generazione del profilo 610’, dunque, può elaborare il percorso di utensile del TCP [X0, Y0, Z0, A0, B0] applicando un campionamento, una quantizzazione, e in generale associando una griglia (non necessariamente con una dimensione di griglia costante) per ottenere punti in funzione del percorso di utensile non solo rispetto alla variabile tempo ma anche rispetto ad altre variabili. Specificamente, in forme di attuazione varianti lo stadio di generazione del profilo 610’ esegue una discretizzazione rispetto alla lunghezza di percorso. La variabile di quantizzazione da usare nello stadio di generazione del profilo 610’ può essere selezionata in funzione delle preferenze dell’utente. Per esempio, se l’utente è interessato nell’ottimizzazione del profilo di tempo Pt dei movimenti della macchina 10, si può usare lo stadio di generazione del profilo temporale 610. Al contrario, se l’utente è interessato nell’ottimizzazione del profilo spaziale Ps dei movimenti della macchina 10, si può usare lo stadio di discretizzazione 610’.
Nel caso in cui la lunghezza di percorso è selezionata come variabile di discretizzazione, la generazione 610’ di un profilo discretizzato Ps può comprendere applicare un’elaborazione di quantizzazione del percorso di utensile del TCP [X0, Y0, Z0, A0, B0], ad es. interpolando le curve con un dato passo (ad es. 1 mm) lungo almeno una coordinata spaziale. Specificamente, gli elementi geometrici compresi nel percorso di utensile del TCP [X0, Y0, Z0, A0, B0], ad es. segmenti lineari definiti da rispettive estremità, può essere elaborato, ottenendo un numero maggiore di segmenti più corti (ad es. segmenti da 1 m ad un 1 mm).
In forme di attuazioni varianti, l’elaborazione del percorso di utensile del TCP [X0, Y0, Z0, A0, B0] nello stadio di discretizzazione 610’ viene eseguita usando una griglia coarse. Quanto discusso in precedenza rispetto al termine coarse resta valido anche in questo contesto.
Lo stadio di generazione del profilo 610’ quindi può fornire in uscita sia un profilo di moto Pt sia un profilo discretizzato Ps.
Si noterà che quando si usa il profilo discretizzato Ps, una derivazione nella variabile della lunghezza del percorso s sostituisce la derivazione nel tempo quando si esegue la regressione della spline, ed allo stesso modo per quanto riguarda i parametri della spline (selezione del termine di penalità, ecc.).
In forme di attuazioni varianti come esemplificato in Figura 11, quando la traiettoria smoothed P_smooth è ottenuta attraverso generazione 610’ di un profilo discretizzato Ps, la traiettoria smoothed P_smooth per gli assi del gantry si può ora esprimere tramite una spline nella lunghezza di percorso s continua.
Come risultato, precedente all’inversione cinematica nello stadio 6212, si genera un profilo di moto nello stadio di generazione del profilo fine 6210’.
Il campionamento temporale viene eseguito su una griglia non solo come una rifinitura (“refinement”) dei dati ottenuti precedentemente su una griglia coarse ma come risultato dell’applicazione di un campionamento temporale totale, fornendo un profilo smoothed campionato da usare per ricostruire più precisamente il percorso di utensile richiesto tramite compensazione con le coordinate della testa.
Figura 8 e Figura 9 sono esemplificativi di un percorso di utensile P su uno strato Z=costante, che può essere trattato in base al procedimento 1000 come discusso in precedenza.
La porzione a) di Figura 8 mostra il percorso di utensile P prima dell’elaborazione, mentre la porzione b) è esemplificativa del risultante percorso smoothed del gantry P_smooth mostrata come una linea continua sovrapposta al percorso di utensile originale P.
Nella porzione a), appare visibile che il percorso di utensile P segue generalmente basse curvature, tranne in regioni dove l’escursione richiesta nella direzione ݕ richiederebbe alla testa di muoversi fuori dai limiti del suo intervallo di estensione: in quel caso il gantry esegue movimenti larghi per raggiungere la posizione obiettivo, che sono indicati come “rapids”.
Figura 9 mostra un confronto esemplificativo delle coordinate del percorso di utensile master originale x, y e le coordinate del percorso utensile smoothed
Specificamente:
- una porzione a) di Figura 9 mostra il percorso dell’asse x della coordinata orizzontale master (in linea tratteggiata) e la sua versione smoothed (in nero), quest’ultima essendo anche vincolata all’intervallo di estensione HX della testa; e
- porzione b) di Figura 9 mostra il percorso dell’asse y della coordinata verticale master (in linea tratteggiata) e la sua versione smoothed (in nero), quest’ultima essendo anche vincolata all’intervallo di estensione HY della testa.
Si intende che le diverse opzioni di implementazione individuale esemplificate nelle figure allegate a questa descrizione non sono necessariamente intese per essere adottate nelle stesse combinazioni esemplificate nelle figure. Una o più forme di attuazione potrebbero quindi adottare queste opzioni (altrimenti non-obbligatori) individualmente e/o in differenti combinazioni rispetto alle combinazioni esemplificate nelle figure allegate.
Fermi restando i principi di fondo, i dettagli e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto è stato qui descritto, puramente a titolo di esempio, senza uscire dall’ambito di protezione.
L’ambito di protezione è definito dalle rivendicazioni annesse.
Si sottolinea che, sebbene nelle forme di attuazione descritte è messo in funzione offline un campionamento temporale coarse allo scopo di ottenere il profilo master sul quale poi la ridondanza è risolta, mentre un campionamento fine online viene eseguito per mantenere la richiesta accuratezza del macchina, in forme di attuazioni varianti ci può essere solo il campionamento offline, possibilmente con un passo di tempo di campionamento più fine, in particolare se i moduli di elaborazione possono sostenere il costo computazionale. Quindi, il procedimento può comprendere di eseguire una operazione di generazione di un profilo di moto di detto punto centrale dell’utensile che include un singolo campionamento temporale di detto insieme di coordinate (X0, Y0, Z0, A0, B0) di detto Tool Center Point. Allo stesso modo, il campionamento può essere disposto su un diverso numero di passi rispetto a quelli di un campionamento offline coarse e un campionamento online fine.

Claims (16)

  1. RIVENDICAZIONI 1. Procedimento (1000) per la gestione di un percorso di utensile di una macchina utensile ad assi ridondanti (10) che comprende un insieme di attuatori ridondanti (11, 12), in cui l’insieme degli attuatori ridondanti (11, 12) comprende un primo sottosistema (11) operante secondo un primo insieme di coordinate, rappresentativo di un primo insieme di quantità fisiche da controllare ed un secondo sottosistema (12) operante secondo un secondo insieme di coordinate, rappresentativo di un secondo insieme di quantità fisiche da controllare, detto primo insieme di coordinate e detto secondo insieme di coordinate che identificano uno o più assi ridondanti (XH, YH), detto procedimento (1000) comprendente le operazioni di: - ricevere (400) un percorso di utensile (X0, Y0, Z0, A0, B0) di un Tool Center Point, di detta macchina utensile ad assi ridondanti (10); - elaborare (600) detto percorso di utensile (X0, Y0, Z0, A0, B0) di detto Tool Center Point, in cui elaborare (600) comprende: - eseguire una operazione di generazione (610; 610’) di un profilo (Pt; Ps) di detto Tool Center Point che include campionare nel tempo (Pt) o nel percorso (Ps) detto percorso di utensile (X0, Y0, Z0, A0, B0) di detto Tool Center Point; - eseguire una operazione di generazione (612) di un profilo master (P) che include eseguire una inversione cinematica su detto profilo (Pt; Ps) di detto Tool Center Point; - eseguire una operazione di generazione (614) di un profilo smoothed (P_smooth) che include applicare una elaborazione di smoothing a detto profilo master (P); e - fornire detto profilo smoothed (P_smooth) ad uno stadio di utilizzatore (62, 63), caratterizzato dal fatto che detta operazione di generazione (614) di detto profilo smoothed (P_smooth) comprende: - eseguire una regressione (6140; 6140’) di detto profilo master (P) su una smoothing spline, ottenendo detto profilo smoothed (P_smooth); - assegnare detto profilo smoothed (P_smooth) come una prima traiettoria di sottosistema (PG) a detto primo sottosistema (11), e - pilotare detto stadio di utilizzatore (62, 63) per controllare detto primo sottosistema (11) per seguire detta prima traiettoria di sottosistema (PG, P_smooth).
  2. 2. Procedimento (1000) secondo la rivendicazione 1, caratterizzato dal fatto che il procedimento (1000) comprende: - ottenere (6148) una seconda traiettoria di sottosistema (PH) sottraendo detto profilo smoothed (P_smooth) da detto profilo master (P), e - pilotare detto stadio di utilizzatore (62, 63) per controllare detto secondo sottosistema (12) per seguire detta seconda traiettoria di sottosistema (PH).
  3. 3. Procedimento (1000) secondo la rivendicazione 1 o la rivendicazione 2, caratterizzato dal fatto che eseguire la regressione (6140; 6140’) di detto profilo master (P) su una smoothing spline comprende impostare (6142, 6144, 6146; 6150, 6152) almeno uno di: - un passo di posizionamento dei nodi; - un termine di penalità parametrico (E), che comprende un ordine di derivata intero (m) ed un coefficiente di penalità (λ) come parametri.
  4. 4. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che eseguire la regressione (6140; 6140’) di detto profilo master (P) su una smoothing spline comprende impostare vincoli (6142, 6144, 6146; 6214, 6220) in funzione di parametri di macchina (GX, GY; HX, HY) e di detti parametri del termine di penalità (E, m, λ) parametrici.
  5. 5. Procedimento (1000) secondo la rivendicazione 4, caratterizzato dal fatto che impostare vincoli (6142, 6144, 6146; 6214, 6220) in funzione di parametri di macchina (GX, GY; HX, HY) e di detti parametri del termine di penalità (E, m, λ) parametrici comprende almeno uno di: - determinare almeno un intervallo di estensione (GX, GY; HX, HY), che comprende un insieme di limiti inferiori e superiori per almeno una quantità fisica in detto primo e/o secondo insieme di quantità fisiche; - generare un insieme di vincoli di disuguaglianza in funzione di detto almeno un intervallo di estensione (GX, GY; HX, HY); - determinare un insieme di coefficienti in funzione di detto insieme di vincoli di disuguaglianza.
  6. 6. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che eseguire la regressione (6140; 6140’) di detto profilo master (P) su una smoothing spline comprende almeno una di: - funzioni spline cubiche, o - funzioni spline di quinto grado.
  7. 7. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che il procedimento (1000) comprende: - identificare (6214) un primo insieme di disallineamenti per detto primo sottosistema (11) ed un secondo insieme di disallineamenti per detto secondo sottosistema (12), - generare una prima matrice di disallineamento in funzione di detto primo insieme di disallineamenti per detto primo sottosistema (11), - fornire (6220) una traiettoria di primo sotto-sistema compensata (PG_mis) per detto primo sottosistema (11) come un prodotto di detta traiettoria master (P) e di una matrice di disallineamento inversa ottenuta invertendo detta prima matrice di disallineamento.
  8. 8. Procedimento (1000) secondo la rivendicazione 7, caratterizzato dal fatto che il procedimento (1000) comprende: - eseguire la regressione (6214, 6220) di detta traiettoria di primo sottosistema compensata (PG_mis) su una smoothing spline, che comprende applicare un insieme globale di vincoli in funzione di detta seconda matrice di disallineamento ed almeno un intervallo di estensione (HX, HY) che comprende un insieme di limiti inferiori e superiori per almeno una quantità fisica in detto secondo insieme di quantità fisiche; - fornire una traiettoria smoothed compensata.
  9. 9. Procedimento (1000) secondo la rivendicazione 8, caratterizzato dal fatto che il procedimento comprende ottenere (6214) una seconda traiettoria compensata di sottosistema (PH_mis) per detto secondo sottosistema (12) sottraendo detta traiettoria compensata smoothed da detto profilo master (P).
  10. 10. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, caratterizzato dal fatto che detto eseguire una operazione di generazione (610; 610’) di un profilo (Pt; Ps) di detto Tool Center Point che include campionare nel tempo (Pt) e/o nel percorso (Ps) detto percorso di utensile (X0, Y0, Z0, A0, B0) di detto Tool Center Point comprende: - un campionamento temporale grossolano (610) di detto insieme di coordinate (X0, Y0, Z0, A0, B0) di detto Tool Center Point, detto campionamento temporale coarse (610) che viene eseguito secondo un passo temporale più grande di un campionamento applicato ai profili forniti per pilotare detto stadio di utilizzatore (62, 63), ed un successivo campionamento temporale fine (6212), o - un campionamento temporale (6210’), che fornisce un profilo di moto smoothed campionato nel tempo.
  11. 11. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, in cui detta macchina utensile ad assi ridondanti (10) è una macchina per la produzione additiva.
  12. 12. Procedimento (1000) secondo qualsiasi delle precedenti rivendicazioni, in cui detta macchina utensile ad assi ridondanti (10) è una macchina per il taglio laser.
  13. 13.. Prodotto informatico comprendente istruzioni che, quando il prodotto informatico è eseguito su un elaboratore, fanno sì che l’elaboratore esegua le operazioni del procedimento secondo qualsiasi delle rivendicazioni 1 a 12.
  14. 14. Supporto dati leggibile su elaboratore su cui è immagazzinato il prodotto informatico della rivendicazione 13.
  15. 15. Sistema di macchina utensile ad assi ridondanti (10) comprendente: - un insieme di attuatori ridondanti (11, 12), in cui l’insieme di attuatori ridondanti (11, 12) comprende un primo sottosistema (11) operante secondo un primo insieme di coordinate, rappresentativo di un primo insieme di quantità fisiche da controllare ed un secondo sottosistema (12) operante secondo un secondo insieme di coordinate, rappresentativo di un secondo insieme di quantità fisiche da controllare, detto primo insieme di coordinate e detto secondo insieme di coordinate che identificano uno o più assi ridondanti (XH, YH); - un’unità di controllo (60), configurata per fornire istruzioni (PI) per gestire detto insieme di attuatori ridondanti (11, 12); caratterizzato dal fatto che: - detto primo insieme di coordinate ha un primo intervallo di estensione associato (GX, GY), detto secondo insieme di coordinate ha un secondo intervallo di estensione (HX, HY) associato, in cui detto primo intervallo di estensione (GX, GY) è un intervallo ampio e detto secondo intervallo di estensione (HX, HY) è un intervallo corto; e - l’unità di controllo (60) è configurata per eseguire le operazioni del procedimento (1000) secondo qualsiasi delle rivendicazioni 1 a 12.
  16. 16. Sistema (10) della rivendicazione 15, in cui detta macchina utensile ad assi ridondanti (10) è configurata per eseguire una produzione additiva di oggetti tramite trattamento termico laser di polveri metalliche, preferibilmente tramite fusione.
IT102018000009981A 2018-10-31 2018-10-31 Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema IT201800009981A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102018000009981A IT201800009981A1 (it) 2018-10-31 2018-10-31 Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000009981A IT201800009981A1 (it) 2018-10-31 2018-10-31 Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema

Publications (1)

Publication Number Publication Date
IT201800009981A1 true IT201800009981A1 (it) 2020-05-01

Family

ID=65244525

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102018000009981A IT201800009981A1 (it) 2018-10-31 2018-10-31 Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema

Country Status (1)

Country Link
IT (1) IT201800009981A1 (it)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070040527A1 (en) * 2005-08-16 2007-02-22 Prima Industrie S.P.A. Method for managing systems provided with redundant actuators
WO2015125747A1 (en) * 2014-02-21 2015-08-27 Mitsubishi Electric Corporation Method for computing reference trajectory to position machine
US9170580B2 (en) 2012-10-19 2015-10-27 Mitsubishi Electric Rsearch Laboratories, Inc. Determining trajectories of redundant actuators jointly tracking reference trajectory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070040527A1 (en) * 2005-08-16 2007-02-22 Prima Industrie S.P.A. Method for managing systems provided with redundant actuators
US9170580B2 (en) 2012-10-19 2015-10-27 Mitsubishi Electric Rsearch Laboratories, Inc. Determining trajectories of redundant actuators jointly tracking reference trajectory
WO2015125747A1 (en) * 2014-02-21 2015-08-27 Mitsubishi Electric Corporation Method for computing reference trajectory to position machine

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAVID RUPPERT,: "Selecting the Number of Knots for Penalized Splines", JOURNAL OF COMPUTATIONAL AND GRAPHICAL STATITICS, vol. 11, no. 4, 9 October 2000 (2000-10-09), US, pages 735 - 757, XP055601144, ISSN: 1061-8600, DOI: 10.1198/106186002853 *
UNSER M: "SPLINES A PERFECT FIT FOR SIGNAL AND IMAGE PROCESSING", IEEE SIGNAL PROCESSING MAGAZINE, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 16, no. 6, 1 November 1999 (1999-11-01), pages 22 - 38, XP001059038, ISSN: 1053-5888, DOI: 10.1109/79.799930 *
V. POTKONJAK: "Distributed positioning for redundant robotic systems", ROBOTICA, vol. 8, 1990, pages 61 - 67

Similar Documents

Publication Publication Date Title
Shembekar et al. Trajectory planning for conformal 3d printing using non-planar layers
US6004016A (en) Motion planning and control for systems with multiple mobile objects
Olabi et al. Feedrate planning for machining with industrial six-axis robots
US7710060B2 (en) Method for managing systems provided with redundant actuators
Kabir et al. Generation of synchronized configuration space trajectories of multi-robot systems
My et al. A novel differential kinematics model to compare the kinematic performances of 5-axis CNC machines
Gao et al. Optimization of the robot and positioner motion in a redundant fiber placement workcell
Amersdorfer et al. Real-time freeform surface and path tracking for force controlled robotic tooling applications
CN113552877A (zh) 用于机器人优化动作规划的初始参考生成
Bhatt et al. Optimizing part placement for improving accuracy of robot-based additive manufacturing
Tarbouriech et al. Dual-arm relative tasks performance using sparse kinematic control
Li et al. A novel cartesian trajectory planning method by using triple nurbs curves for industrial robots
IT201800009981A1 (it) Procedimento di gestione di percorso di utensile per macchine utensili ad assi ridondanti, corrispondenti prodotto informatico e sistema
Tan et al. Geometrical error modeling and compensation using neural networks
Seo et al. Gain-scheduled robust control of a novel 3-DOF micro parallel positioning platform via a dual stage servo system
JP2014076498A (ja) 多関節ロボット及び半導体ウェハ搬送装置
Duong et al. Robot Control Using Alternative Trajectories Based on Inverse Errors in the Workspace
Atmosudiro et al. Productivity increase through joint space path planning for robot machining
Erwinski et al. Pso based feedrate optimization with contour error constraints for nurbs toolpaths
Lin et al. A look-ahead interpolator with curve fitting algorithm for five-axis tool path
Shembekar et al. Generating robot trajectories for conformal 3d printing using non-planar layers
Barari et al. Integrated inspection and machining approach to machining error compensation: advantages and limitations
Jana et al. A synchronized position control architecture for parallel manipulator-based positioning stage of coordinate measuring machine (CMM)
Uhart et al. Improving manufacturing of aeronautical parts with an enhanced industrial Robotised Fibre Placement Cell using an external force-vision scheme
Paing et al. A kinematically constrained reparameterization approach to optimal time and jerk motion of industrial machines