Vai al contenuto
PLC Forum


Pid Controllo Asse + Limitatore Forza


Messaggi consigliati

Inserito:

Salve a tutti

Mi sto rompendo la testa con un problemino da un po di tempo.. Controllo un asse idraulico con un PID e la cosa funziona gia' abbastanza bene. Quello che vorrei fare e' aggiungere un controllo (limite) di forza al loop di controllo.

Provo a spiegarmi meglio. Se l'asse va a sbattere contro un ostacolo, ovvero contro un oggetto che si muove in senso opposto, ovvero viene trattenuto durante il suo movimento e la forza di contrasto va oltre ad un Set Point definito, l'asse deve cedere (o farsi trascinare) senza superare la soglia impostata.

Qualora la forza scenda al disotto della soglia definita devo riprendere in mano l'asse in controllo di posizione..

Ero partito con un secondo PID ma non mi da i risultati sperati, anzi.. de facto il PID cerca di mantenere il proprio set point a discapito del loop di posizione.

qualcuno ha idee/suggerimenti ??

Grazie

Luca


Inserita:

Non devi aggiungere nessun controllo reazionato! Devi solo eseguire un analogo del controllo di coppia di un motore in cc. Questo controllo si realizza limitando la corrente fornita al motore basabdosi sulla relazione Cm =k*Ia.

Quale è il parametro che determina la forza del pistone del tuo asse? Non potendo variare le caratteristiche geometriche del pistone hai solo la pressione del fluido, quindi dovrai limitare la pressione ad un valore predeterminato.

Inserita:
Non devi aggiungere nessun controllo reazionato! Devi solo eseguire un analogo del controllo di coppia di un motore in cc. Questo controllo si realizza limitando la corrente fornita al motore basabdosi sulla relazione Cm =k*Ia.

Quale è il parametro che determina la forza del pistone del tuo asse? Non potendo variare le caratteristiche geometriche del pistone hai solo la pressione del fluido, quindi dovrai limitare la pressione ad un valore predeterminato.

Anzitutto grazie per la tua cortese e veloce risposta,

Detto questo metto a nudo i miei limiti.

Ovvero.... Si, capisco che devo diminuire il valore di riferimento (se non invertirlo) per diminuire la pressione nella camera del pistone.

Non mi e' assolutamente chiaro COME farlo. la relazione che mi hai scritto in primis, Cm = Corrente Motore ? Ia parrebbe un

altra corrente e k proprio non ho idea.

Teoricamente dovrebbe essere il risultato di una formuletta che aggiungo al risultato del PID. a quanto posso capire, tale che quando arrivo al limite di coppia impostato non ho overshoot di sorta (in forza, ovviamente).

Purtroppo le mie lacune matematiche non mi consentono di trovare (sin'ora) una formuletta cosi' furba.

Ti pregherei quindi, per cortesia, di unzippare un poco il concetto per renderlo comprensibile anche a me.

Grazie

Luca

Inserita:

Se ho capito bene, hai una servovalvola che controlla un attuatore idraulico in posizione.

Se è così, potresti semplicemente aggiungere una valvola regolatrice di pressione ( esistono sia manuali, da regolare "una tantum" oppure servocomandate, con riferimento analogico).

Solo modulando o limitando la pressione nel circuito puoi limitare la "forza" del tuo attuatore.

E' l'equivalente idraulico della "rappresentazione" elettrica che ti ha dato Livio.

Tieni comunque presente che al di sotto di una determinata pressione ( limite minimo ) il tuo attuale impianto smetterà di funzionare nel modo che conosci, perchè minor pressione vuol dire anche minor velocità di riempimento del cilindro, e quindi per forza una limitazione di velocità.

Quale sia questo limite........non è dato sapere, bisogna provare...

Inserita: (modificato)
Se ho capito bene, hai una servovalvola che controlla un attuatore idraulico in posizione.

Ho un pistone idraulico di cui conosco la geometria, pilotato da una servovalvola che comando con un'uscita analogica +/- 10V.

Sul pistone e' montata solidalmente una cremagliera che e' a contatto con un encoder per conoscere la posizione.

Attualmente controllo perfettamente la posizione / velocita' con un PID e un generatore di traiettoria teorica.

Ho fatto aggiungere due trasduttori di pressione che entrano nel mio controllo. Sapendo le aree e le pressioni calcolare il vettore di forza e' un attimo.

Il problema si pone nel momento in cui voglio "sopraffare" il controllo di posizione con un controllo di forza.

Se è così, potresti semplicemente aggiungere una valvola regolatrice di pressione ( esistono sia manuali, da regolare "una tantum" oppure servocomandate, con riferimento analogico).

Partendo dal concetto che tutto quello che non c'e' non si rompe, eviterei con gioia questa soluzione anche perche' dovrei montare DUE limitatrici di pressione sui due rami della servovalvola, e dovrebbero essere delle proporzionali di controllo, non economicissime e neppure di prestazioni paragonabili (come tempi di risposta) alle servo.

La soluzione alternativa (montare UNA regolatrice di pressione sulla porta P della servo) mi pare di nuovo improponibile,

Da una parte perche' tutto avviene a VALLE della servo, quindi se ho la servo a centri chiusi per mantenere la posizione, se qualcosa mi spinge, la pressione / forza puo' arrivare all'infinito (o comunque al limite di sicurezza dettato dalle limitatrici di sicurezza)

Altra ragione per non usarla e' che ho una pompa (con una regolatrice) e diverse utenze, ognuna dovrebbe essere settata a pressione diversa. a seconda del ciclo e a seconda della fase... No.. direi che montando una servovalvola tenderei ad usare quella per gestire il tutto.

Tieni comunque presente che al di sotto di una determinata pressione ( limite minimo ) il tuo attuale impianto smetterà di funzionare nel modo che conosci, perchè minor pressione vuol dire anche minor velocità di riempimento del cilindro, e quindi per forza una limitazione di velocità.

Non smettera' di funzionare, se la valvola ha una pressione di pilotaggio a parte (come ha) o se e' una Direct Drive (pilotata con un motore lineare) comunque la mia idea era di tenere la valvola a cavallo dello zero facendola oscillare tra P e T per dare o togliere pressione alle camere. Ma ripeto, il problema e' quale algoritmo usare per limitare la forza.

Quale sia questo limite........non è dato sapere, bisogna provare...

So che ti occupi anche tu di applicazioni idrauliche.. Di compattazione polveri se ho letto bene. Diciamo che siamo "quasi" colleghi :)

Grazie comunque per il tuo contributo.

Ciao

Luca

Modificato: da nervousluca
Inserita:
.. Di compattazione polveri se ho letto bene. Diciamo che siamo "quasi" colleghi

Si, mi occupo ANCHE di questo....

(montare UNA regolatrice di pressione sulla porta P della servo) mi pare di nuovo improponibile

Perchè improponibile ??? Al di là del costo del componente, potresti dosare la forza disponibile su QUEL cilindro senza grossi problemi.

Se hai una centri chiusi, facendola oscillare tra P e T come dici di voler fare non scarichi la pressione ( se sono 50 bar, anche se la apri per 1 msec. sono sempre 50 bar...) e forse riduci la vita della servo.

L'idea di lavorare solo sull'elettronica di comando della servo può essere secondo me applicabile nel senso di avere un sensore di pressione analogico, ed usare il suo segnale per "falsare" il setpoint del PID di posizione in funzione della forza massima ammessa.

Cioè, se vuoi 50 bar, e il sensore di dice che sei a 60, introduci una correzione di posizione facendo "arretrare" il cilindro, come se cedesse, in modo da ridurre questo eccesso di pressione.

Non ho mai provato a fare qualcosa del genere, ma potrebbe essere interessante....

Inserita:

Nervosoluca la formula che ti ho citato nella mia risposta è riferita ad un motore in continua, ed era solo esemplificativa del tipo di regolazione.

Nel tuo caso l'unica regolazione possibile, almeno io non ne vedo altre, è quella suggerita da Walter.

Inserita:
.. Di compattazione polveri se ho letto bene. Diciamo che siamo "quasi" colleghi

Si, mi occupo ANCHE di questo....

Anche io anche. :)

CITAZIONE

(montare UNA regolatrice di pressione sulla porta P della servo) mi pare di nuovo improponibile

Perchè improponibile ??? Al di là del costo del componente, potresti dosare la forza disponibile su QUEL cilindro senza grossi problemi.

Se conosci la compattazione polveri (io mi occupo di polveri metalliche) forse sai anche che puoi avere n assi nella stessa condizione. Questo implica una serie di valvole di massima, cose che di per se ho gia' fatto e provato, ma penso (e credo) che con la tecnologia e le velocita' dei processori di oggi si possa fare di meglio.

Ti aggiungo anche una chicca al problema: se metti una valvola di non ritorno sulla P della servo, puoi arrivare a pressioni anche piu' alte di quella della pompa, se regoli SOLO con la servovalvola.

Se hai una centri chiusi, facendola oscillare tra P e T come dici di voler fare non scarichi la pressione ( se sono 50 bar, anche se la apri per 1 msec. sono sempre 50 bar...) e forse riduci la vita della servo.

L'idea di lavorare solo sull'elettronica di comando della servo può essere secondo me applicabile nel senso di avere un sensore di pressione analogico, ed usare il suo segnale per "falsare" il setpoint del PID di posizione in funzione della forza massima ammessa.

Esattamente quello che voglio fare. due trasduttori, di modo di poter lavorare con vettori di forza positivi e negativi, la geometria del pistone la si sa... quindi ho sempre calcolato il mio vettore di forza. Ora, come ho scritto, ho provato con un controllo PID e PD ma il problema e' l'uscita... mi spiego meglio...

Se il PID aggancia la forza del set point, fargliela mollare non e' ovvio, almeno per me. Ho provato anche con solo una funzione iperbolica, ma se passo il set point per qualsivoglia ragione, si innesca un effetto cascata, che mi porta nel senso opposto a quello desiderato.

Ora, quello che cerco e' una formula di un limitatore di forza da applicare in cascata al mio PID di controllo posizione / velocita'.

Purtroppo un po i miei limiti matematici, un po per la documentazione scarsa, al momento attuale non so avvero come fare.

Cioè, se vuoi 50 bar, e il sensore di dice che sei a 60, introduci una correzione di posizione facendo "arretrare" il cilindro, come se cedesse, in modo da ridurre questo eccesso di pressione.

Non ho mai provato a fare qualcosa del genere, ma potrebbe essere interessante....

e' esattamente quello che intendo fare. Immagino che le rettifiche, per esempio, abbiano questo algoritmo inserito, solo che non trovo nulla di documentato o meglio di documentato e comprensibile al mio livello.

Sarebbe un "offset" da aggiungere al riferimento che do alla valvola, truffando cosi' il loop di posizione/velocita'.

Sinceramente non credo che la servo si possa rovinare... sta facendo solo il suo lavoro...

Ti e' chiaro che in questo modo semplifichi di molto il circuito aggiungendo prestazioni che prima erano impensabili.

L'unico problema serio che vedo e' il tempo di loop, che per ottenere la precisione che ho ora nel controllo velocita'/posizione non supera il mS. Come ben sai la velocita' dell'olio e' a livello sonico per cui la mia velocita' di correzione deve essere almeno due/quattro volte maggiore (a orecchio) per evitare rotture e/o overshoot.

Se ti va di collaborare sono a tua disposizione per aggiornarti su dove sono arrivato.

Grazie ancora per la risposta

Ciao

Luca

Inserita:
Nervosoluca la formula che ti ho citato nella mia risposta è riferita ad un motore in continua, ed era solo esemplificativa del tipo di regolazione.

Nel tuo caso l'unica regolazione possibile, almeno io non ne vedo altre, è quella suggerita da Walter.

Credo che anche Walter si stia ricredendo :)

Grazie comunque Livio

Luca

Inserita:

Tu se vuoi insisti pure, però io ritengo che andrai incontro a delusioni ed ad inconvenienti. La valvola che usi per il posizionamento (tra l'altro sarebbe interesante conoscere marca e modello), da quanto ho capito, agisce sulla portata quindi regola la velocità del pistone. Cercare di regolare forza in modo surrettizio, agendo sulla velocità, non è bello e, soprattutto, non da risultati stabili ed affidabili, almeno per mia esperienza. Anche variare troppo velocemente la portata può causare inconvenienti dannosi, come i colpi di ariete nel circuito oleodinamico.

In quanto alla banda del controllo non devi prendere a riferimento la velocità del'olio, ma il componente più lento che è la servovalvola. Se la sevovalvola ha, ad esempio, una frequenza limite di 30Hz è inutile avere un controllo che taglia a 1kHz

Inserita:
Tu se vuoi insisti pure, però io ritengo che andrai incontro a delusioni ed ad inconvenienti.

Oh, Livio... :) ti ho visto difendere a spada tratta una persona che voleva fare un controllo assi con un S7 e ora fai la Cassandra con me ?? :)

(per inciso gli e' andata TROPPO bene, personalmente la vedevo veramente dura...Ovviamente le precisioni sono quelle che sono, ma con un sistema cosi' non credo sinceramente si possa ottenere di piu')

Scherzi a parte, la ricerca ha SEMPRE come prezzo delusioni e inconvenienti, sono il sale della stessa, credo. Se ci si ferma alla nozione degli altri, tu mi insegni, non andiamo MAI avanti. Ora... Non dico che il sistema di limitare con una valvola non funzioni, dico che credo sia possibile fare meglio e con meno. poi... ovvio, ricerca e' ricerca, il giorno che avro' la dimostrazione fisica che la cosa non e' possibile, peccato, vorra' dire che ho preso un granchio...Non sara' ne' il primo ne' (spero) l'ultimo della mia vita :) Ma se poi funziona ?

La valvola che usi per il posizionamento (tra l'altro sarebbe interesante conoscere marca e modello),

Valvola usata:

Come puoi vedere ha prestazioni di tutto rispetto. (13mS 0-100%) quindi potrei anche dire +/- 10% 2.6mS (?)

da quanto ho capito, agisce sulla portata quindi regola la velocità del pistone.

Ovviamente.

Cercare di regolare forza in modo surrettizio, agendo sulla velocità, non è bello e, soprattutto, non da risultati stabili ed affidabili, almeno per mia esperienza. Anche variare troppo velocemente la portata può causare inconvenienti dannosi, come i colpi di ariete nel circuito oleodinamico.

A parte che proprio NON SO cosa voglia dire surrettizio (ma questo capisco che sia un mio problema), ovviamente se apri e chiudi un rubinetto in 26 mS puoi pensare di avere un colpo di ariete, in realta' i flussi in giuoco sono generalmente di pochi grammi d'olio piu' o meno.. Ovvero se sono fermo contro un ostacolo qualche grammo di olio in piu' fa schizzare la pressione (per la pochissima comprimibilita' dell'olio) ed e' questo, a mio modesto avviso, il punto.

Poi, ovviamente se l'asse viene spinto o tirato, in realta' si APRE la servovalvola per consentire il movimento a forza costante ma anche qui la regolazione e' veramente infinitesimale, a mio avviso. Una volta aperta la valvola per consentire il movimento dopo la LEGGERA apertura o chiusura della stessa creera' la forza che ci interessa.

In quanto alla banda del controllo non devi prendere a riferimento la velocità del'olio, ma il componente più lento che è la servovalvola. Se la sevovalvola ha, ad esempio, una frequenza limite di 30Hz è inutile avere un controllo che taglia a 1kHz

Be' se faccio i conti della serva... (aldila' dei grafici della Moog sulle risposte in frequenza) in 2.6 mS ho un controllo di +/- 10% del flusso totale. Ora... Se questo e' vero, mi da una frequenza massima raggiungibile attorno ai 20Khz, nel momento in cui serve. Ora.., Sin'ora ho lavorato con Servo (sempre della stessa casa) assolutamente piu' lente e mi pare che con queste sia possibile avere risultati decisamente migliori.Sto pensando ad una soluzione con un loop a 200 uS come campionamento e 1mS di attuazione...Vedremo..

Ora, mettere un loop di controllo di forza SOPRA ad un controllo di posizione e' la cosa che veramente mi pare dura da fare senza che si pestino i piedi l'un l'altro.

Ultima considerazione sulla soluzione proposta da Walter... Una regolatrice sul ramo P della servo ha un'altro limite: se tiro o se spingo (e apriori non so cosa succede) da luogo a due FORZE differenti a seconda del vettore e del ratio delle due camere del cilindro.... Piu' e' marcata la differenza di aree (e con queste servo arrivi a gestire anche rapporti 2:1 tranquillamente) piu' il problema si pone. Senza scordarci che il tempo di reazione di queste valvole e' dell'ordine del DECIMO di secondo, soldino piu' soldino meno....

Sempre a disposizione se servono altri chiarimenti e sempre aperto a consigli

Ciao

Luca

Inserita:

Interessante la discussione, almeno per me.

Dunque, nervousluca, puoi togliermi una curiosità ??

Pressando materiali ( qualunque ...) in genere si vuole che, una volta raggiunta la pressione e/o la posizione voluta, il pistone non si muova più da lì, fino a quando lo decide il ciclo della macchina.

Che ti serve "far cedere" il cilindro quando la forza è superiore ad un tot ?? E' un segreto o puoi raccontarmelo ??

Se il PID aggancia la forza del set point, fargliela mollare non e' ovvio, almeno per me. Ho provato anche con solo una funzione iperbolica, ma se passo il set point per qualsivoglia ragione, si innesca un effetto cascata, che mi porta nel senso opposto a quello desiderato.

Con il principio di funzionamento che spieghi, secondo me quello che ti accade è abbastanza ovvio: è il set di posizione che devi truccare, se speri di riuscire a far funzionare il tutto, e non è detto.....

Hai mai fatto un accompagnamento pezzo dopo la pressatura ??

Se vuoi alleggerire il carico per non far "esplodere" il pezzo appena esce dalla camera, puoi ridurre la pressione, ma puoi anche "spostare" in posizione uno dei due assi di una entità minima tale da mentenere l'attrezzo a contatto col pezzo ma senza "caricarlo".

Quello che dovresti provare a fare, secondo me, è di "levare" una certa quantità ( piccola...) al setpoint di posizione, quindi "a monte" del PID. Così lui lavora per te.

Facci sapere se ci sei riuscito.... :)

Inserita: (modificato)
Dunque, nervousluca, puoi togliermi una curiosità ??

Parliamone :)

Pressando materiali ( qualunque ...) in genere si vuole che, una volta raggiunta la pressione e/o la posizione voluta, il pistone non si muova più da lì, fino a quando lo decide il ciclo della macchina.

Che ti serve "far cedere" il cilindro quando la forza è superiore ad un tot ?? E' un segreto o puoi raccontarmelo ??

Sui principi di pressatura esistono trattati interi, e non sono certo io l'autore :) Provo a dirla come la so..

Ad un certo punto della compattazione, alcuni assi (minori, ausiliari) spesso non hanno piu' la potenza necessaria per poter continuare con un profilo di velocita' prestabilito. Per ridurre al minimo il danno e' importante pero' che cedano quantomeno con una controforza costante. Da qui il mio problema

Altro caso, durante la sformatura, se hai dei pezzi con un'anima centrale questa deve cedere (nel caso sia intrappolata) ad una forza costante.

Hai mai fatto un accompagnamento pezzo dopo la pressatura ??

solo per qualche miliardo di pezzi :) L'ultimo giuoco l'ho fatto in Master/Slave tra asse superiore e due assi ausiliari, uno sopra e uno sotto... anche qui sarebbe preferibile che i due fossero in controllo ANCHE di forza perche' durante la decompressione non sai di quanto ti sei staccato dal pezzo, motivo per cui se non sei a contatto hai un movimento perfettamente sincronizzato ma che non serve ad una cippa

Se vuoi alleggerire il carico per non far "esplodere" il pezzo appena esce dalla camera, puoi ridurre la pressione, ma puoi anche "spostare" in posizione uno dei due assi di una entità minima tale da mentenere l'attrezzo a contatto col pezzo ma senza "caricarlo".

Walter il pezzo si rompe per due ragioni fondamentali

a ) durante la sformatura non hai tenuto una forza (de nuevo) sufficiente a mantenere ferme le fibre dello stesso

b ) Qualche cretino in ufficio tecnico ha "scordato" il ritorno elastico dei punzoni

Quello che dovresti provare a fare, secondo me, è di "levare" una certa quantità ( piccola...) al setpoint di posizione, quindi "a monte" del PID. Così lui lavora per te.

Certo, Walter, per UN pezzo va bene....Oppure gli fai programmare una compensazione idraulica che ha si, come dici, bisogno di una posizione ma ANCHE di un limite di forza....Come vedi cadiamo sempre li'

Comunque, Walter, ho fatto il mio primo prototipo di pressa per sinterizzati metallici qualcosa come 20 anni fa, e girava (principalmente) con bellinuovissimo 286 12 Mhz. piu' un plc Omron...

Comunque, se ti interessa, forse ho trovato una soluzione. Anche piuttosto semplice, a mio vedere (se funziona, eh..) sto facendo alcune simulazioni con un banale foglio di calcolo per vedere segni e curve di reazione...

Ciao

Luca

P.S. Ti e' piaciuto quel giocattolo di servovalvola che uso ? :)

Modificato: da nervousluca
emanuele.croci
Inserita:
Ora, mettere un loop di controllo di forza SOPRA ad un controllo di posizione e' la cosa che veramente mi pare dura da fare senza che si pestino i piedi l'un l'altro.

Ciao,

non so se ho capito bene il tuo problema, comunque secondo me non puoi far lavorare contemporaneamente i due PID, ma dovrai commutare da un PID a un altro.

Il problema è farlo molto rapidamente e in modo indolore.

Esempio: supponiamo che il tuo limite critico di forza corrisponda a 50 bar idraulici:

- quando P sale oltre i 55 bar passi da controllo posizione a controllo forza

- quando P scende sotto i 45 bar ripassi in controllo posizione

Hai dei motivi per credere che così non sia fattibile o ci sono delle difficoltà in tal senso?

Ciao, Emanuele

Inserita:
P.S. Ti e' piaciuto quel giocattolo di servovalvola che uso ?

Si, non è male. Le prime Moog che ho visto le ricordo su delle vecchie macchine utensili con assi idraulici, anni 70-80....

Sai darmi un'idea del costo ?? Se non c'è molta differenza con quelle che uso adesso magari la provo anch'io.... :rolleyes:

b ) Qualche cretino in ufficio tecnico ha "scordato" il ritorno elastico dei punzoni

Ma come, non sai che i punzoni non sono elastici ???? :lol: :lol:

Io 20 anni fa mi occupavo di altro, ma effettivamente da qualche anno ho scoperto questo settore e.... si imparano cose interessanti...

Inserita: (modificato)
Oh, Livio... ti ho visto difendere a spada tratta una persona che voleva fare un controllo assi con un S7 e ora fai la Cassandra con me ??

Stai confondendo le cose. nel caso che citi si tratta di saper "spremere" un componente per fare qulache cosa che è teoricamente possibile. Nel tuo caso si tratta di realizzare un qualche cosa che non vedo teoricamente possibile o, meglio, lo vedo complicato al punto tale che che i risultati sarebbero molto aleatori, se si tratta di un'applicazione industraile.

Per inciso, nel caso del controllo assi, non è che sia andata di lusso. I buoni risultati sono dovuti esclusivamente alla capacità tecniche di chi lo ha realizzato. Capacità che hanno permesso di valutare, in primis, i limiti del dispositivo e stabilire se questi consentivano il raggiungimento dell'obbiettivo.

Surrettizio. Termine usato spesso nel linguaggio legale, indicante un modo di trarre benefici illegali tacendo informazioni. Cioè non mentendo, ma non dicendo tutta la verità. Nel linguaggio comune indica una sorta di sotterfugio. Nel caso nostro, tu non "dici" alla valvola che deve regolare la pressione, ma cerchi di farlo egualmente.

La valvola che stai usando è ottima, ne ho usate anch'io della medesima famiglia. Non considereri, però, una banda passante di 20kHz ma starei almeno un ordine sotto, anzi io terrei 500Hz come limite.

Sto pensando ad una soluzione con un loop a 200 uS come campionamento e 1mS di attuazione...Vedremo..

non sono sicuro di aver compreso esattamente quello che intendi fare, però io ti sconsiglio (derivato da una pluriennale esperienza di progettazione di controli discreti) di avere tempi diversi per il campionamento e per l'attuazione

Può anche essere che mi sbagli, non ho mai sostenuto di sapere tutto e di essere infallibile, però io continuo ad essere dell'idea che hai imboccato una strada non facile e di cui non si intravede una destinazione certa.

Modificato: da Livio Orsini
emanuele.croci
Inserita:

Comunque, non so se ho capito bene, ma mi pare che la discriminante se uno ci può riuscire o no sia l'elasticità del materiale che stai comprimendo.

Se il materiale è elastico, allora ad una variazione di pressione DELTA-P corrisponde anche una discreta variazione di posizione, che puoi sfruttare nel tuo controllo.

Se il tuo materiale è talmente rigido che puoi contare solo sulla FAMOSA comprimibilità dell'olio, allora la cosa mi pare ardua....

(E' come sbattere la testa contro il muro con una forza controllata usando come retroazione lo spostamento del muro...)

Per il resto, penso che sia interessante scriversi l'algoritmo e provare, al limite andrà male.

Hai problemi in tal senso?

Ciao, Emanuele

emanuele.croci
Inserita:

Ciao,

visto che mi hai incuriosito con la comprimibilità dell'olio (argomento che ho sentito solo citare a livello paradossale...) sono andato a vedere su internet quanto vale, ho trovato un valore di 7*10E-5 /bar,

cioè per ogni aumento di 1 bar il tuo volume d'olio si riduce dello 0.007%.

Quindi, SE hai ad es. un cilindro lungo 1 metro, per ogni bar in più ti si sposta di 70 micron.

Io credo che, se tu riesci a controllare degli spostamenti di questo ordine di grandezza, tu possa controllare anche la pressione, altrimenti devi confidare nella elasticità del tuo materiale, sperando che sia più clemente dell'olio....

Ciao, Emanuele

Inserita:
Si, non è male. Le prime Moog che ho visto le ricordo su delle vecchie macchine utensili con assi idraulici, anni 70-80....

Sai darmi un'idea del costo ?? Se non c'è molta differenza con quelle che uso adesso magari la provo anch'io....

Ho visto un'offerta per una 20 litri a 2200 Neuri, ma veniva da Moog Francia ed era un anno fa... Non so se sono allineati qui. Comunque costa 4-500 Euro meno di una equivalente pilotata idraulicamente.

Io 20 anni fa mi occupavo di altro, ma effettivamente da qualche anno ho scoperto questo settore e.... si imparano cose interessanti...

Io ho una discreta conoscenza del settore specifico.

Se ti serve contattami pure

Ciao

Luca

Inserita:

Ciao Emanuele

non so se ho capito bene il tuo problema, comunque secondo me non puoi far lavorare contemporaneamente i due PID, ma dovrai commutare da un PID a un altro.

Il problema è farlo molto rapidamente e in modo indolore.

Esempio: supponiamo che il tuo limite critico di forza corrisponda a 50 bar idraulici:

- quando P sale oltre i 55 bar passi da controllo posizione a controllo forza

- quando P scende sotto i 45 bar ripassi in controllo posizione

Hai dei motivi per credere che così non sia fattibile o ci sono delle difficoltà in tal senso?

Se innesca il loop (PID) di forza la forza non scendera' mai piu'... A orecchio, eh...

Grazie comunque

Ciao

Luca

Inserita:

Ciao Livio

non sono sicuro di aver compreso esattamente quello che intendi fare, però io ti sconsiglio (derivato da una pluriennale esperienza di progettazione di controli discreti) di avere tempi diversi per il campionamento e per l'attuazione

Può anche essere che mi sbagli, non ho mai sostenuto di sapere tutto e di essere infallibile, però io continuo ad essere dell'idea che hai imboccato una strada non facile e di cui non si intravede una destinazione certa.

Allora... Partiamo dai fondamentali...

Mi scuso se sono stato troppo caustico, e' il mio modo di fare... Altrimenti avrei probabilmente usato un Nick diverso...Invece questo mi segue ormai da 15 anni...

Allora... Per chiarire il concetto Tempo campionamento <> tempo attuazione...

Ho usato per anni controlli con la caratteristica di avere tempi di acquisizione diversi da quelli di attuazione (se vuoi in separata sede ti dico anche quali) con tempi di campionamento da 23 a 60 uS e con attuazione a 1 mS.

E ti garantisco che al momento controllo assi idraulici in posizione con errori +/- 2 tacche di encoder (+/- 8 um)

Assi elettrici (brush or brushless) anche meglio, anche senza tachimetrica, anche in solo loop di corrente (de facto uso il driver/azionamento come un amplificatore puro)...

la mia idea era di fare la stessa cosa...

Ambizioso ??? Sicuramente..

Scusandomi ancora se ti ho offeso in qualsivoglia modo

Ciao

Luca

Inserita:
Scusandomi ancora se ti ho offeso in qualsivoglia modo

Nessuna offesa, altrimenti mi avresti sentito :) Tu sarai "nervoso", ma io sono "fumante" :lol:

M'interessa capire meglio il doppio tempo.

Se ho capito bene tu dici che hai effettuato controlli dove campioni tra 20us e 60us, ed aggiorni il comando con periodo di 1ms? E' così?

Personalmente ritengo che sia una complicazione inutile, anzi che sia foriera di guai, però è lecito avere idee diverse :)

A meno che la differenza tra campionamento ed attuazione sia solo formale. Cerco di spiegarmi meglio. Se, ad esempio campiono a 20us la variabile di ingresso, ne eseguo la media su 50 campionamenti, uso poi la media per effetuare il controllo ad 1ms. In questo caso il vero tempo di campionamento, per il controllore, non è 20us ma 1ms.

Se non è così potresti spiegare più dettagliatamente la filosofia del tuo regolatore? Sono molto curioso.

Inserita:
E' come sbattere la testa contro il muro con una forza controllata usando come retroazione lo spostamento del muro...

Emanuele....questa me la scrivo nel libro delle perle....... :roflmao::lol:

Io ho una discreta conoscenza del settore specifico. Se ti serve contattami pure

Grazie della disponibilità, Luca, per ora me la sono cavata, le macchine funzionano bene,ma non si sa mai...... :)

Per il costo, beh, non è molto di più di quella che uso adesso ( ha il nome di uno dei Tre moschettieri, per intenderci...), quindi può valere la pena di provare.... Chissà ...!

Circa i tempi di campionamento, beh, la teoria darebbe ragione a Livio, data la TEORICA inutilità di avere tempi diversi.

In pratica anch'io ho controllato degli attuatori con diversi tick, ma per l'appunto calcolavo una media di valori per poter fare una correzione MEDITATA, data l'instabilità del segnale d'ingresso.

Inserita:

Ciao Emanuele

Per il resto, penso che sia interessante scriversi l'algoritmo e provare, al limite andrà male.

Hai problemi in tal senso?

Il problema (come dicevo) e' la mia scarsa affinita' / dimestichezza con la matematica. perche' credo esista un modo semplice per "prevenire" la forza senza usare un PID.

Ora sto preparando un foglio di calcolo per simulare (comunque) due PID ma con alcuni accorgimenti un po' particolari. Il tempo, purtroppo e' tiranno quindi lo faccio un po quando posso.

Quindi, SE hai ad es. un cilindro lungo 1 metro, per ogni bar in più ti si sposta di 70 micron.

Ho attualmente corse dai 150 ai 600 mm e risoluzione a 4um (che penso e spero di portare ad 1um)

Io credo che, se tu riesci a controllare degli spostamenti di questo ordine di grandezza, tu possa controllare anche la pressione, altrimenti devi confidare nella elasticità del tuo materiale, sperando che sia più clemente dell'olio....

Il materiale si sta comprimendo quindi in parte fa da ammortizzatore, anche se schiacciare molecole di ferro l'una contro l'altra non e' proprio come un cuscino di piume

Se hai qualche illuminazione qui aspettiamo sicuramente la luce :)

Grazie ancora

Luca

Inserita:

Ciao Livio

L'ora e' tarda, giornata lunga ma provo a scrivere una risposta sensata....

M'interessa capire meglio il doppio tempo.

Se ho capito bene tu dici che hai effettuato controlli dove campioni tra 20us e 60us, ed aggiorni il comando con periodo di 1ms? E' così?

E' satto. Da una parte calcoli il loop in "tempo reale" ma lo attui con la frequenza accettata dal tuo attuatore. Credo che soprattutto le parti integrativa (usando un tempo intelligente di reset) e derivativa ne possano trarre vantaggio. Attenzione... parlo di un loop che NON si basa sull'uscita precedente (o seriale).

Cosi' come in tempo reale (se possibile, altrimenti a tabella) il calcolo del profilo teorico (di conseguenza dell'errore)

Spero di essere stato quantomeno vagamente comprensibile... ma ripeto, se ti interessa ti mando documentazione di un paio di controlli con tanto di formulone di calcolo dell'uscita (roba che viene da gente ex NASA)

Cottissimo saluto

Luca

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...