Domanda:
Qualche strumento aperto per tracciare grafici per determinare i parametri di regolazione PID?
Rick2047
2012-02-16 19:31:06 UTC
view on stackexchange narkive permalink

Ho esaminato diverse implementazioni PID e i suoi tutorial, documenti e tutto il resto. Il miglior tutorial sull'ottimizzazione era PID-without-a-PhD.pdf. Ma non è stato di grande aiuto. Posso dire che funziona un po '.

Sto lavorando a un progetto di levitazione magnetica. Si prega di passare attraverso il collegamento ( Barry's Maglev) per un esempio. Sono in grado di far levitare il magnete mantenendo una piastra di alluminio sotto. Avanzamento attuale: Video.

Voglio eseguirlo senza la piastra di alluminio.

La mia domanda è come iniziare con la stampa di grafici e tutto il resto. Ho visto e sono stato attratto solo dal grafico. Supponiamo di prendere il file PID-without-a-PhD.pdf e di guardare i grafici tracciati. Come ottenerlo? con quale strumento aperto iniziare?

Ho provato a costruire e lavorare su uno strumento di tracciamento grafico autocostruito. Il grafico in base al tempo non è soddisfacente, e quindi la determinazione del guadagno.

[Se è disponibile un algoritmo di autotaratura autoesplicativo! : questa non è la mia domanda ora.]

Voglio ricominciare da capo con un approccio sistematico duro. Qualsiasi aiuto sarà come un dio utile. Non voglio andare con il metodo trail-n-error. Poiché ciò non ha aiutato.

Sto usando AtMega2560, una bobina, una pila di 2 magneti al neodimio, un ponte ad H ben funzionante.

.... Update1 .. ..

Anche un sensore di hall per il feedback.

........

.... Update2 ....

Ora ho con me la sua funzione di trasferimento. Sto studiando LTI Transient-Response Analysis utilizzando Python. Il problema è che ho una matrice di funzioni di trasferimento. Potrei sbagliarmi perché quello che viene chiamato come, non lo so esattamente. Lo imparerò presto.

........

Qual è la misurazione del sensore ad effetto hall? Hai una misurazione diretta della posizione della palla? Nell'ultimo sistema maglev ho lavorato con esso come fatto con rilevatori di foto e LED - IR credo.
Sì, sto misurando direttamente la posizione. L'unità non è la distanza per ora. Ma sì, posso mettere in relazione l'uscita del sensore con la distanza. Che non è attualmente necessario. In breve, il sistema può sapere dove si trova la palla, anzi magnetica. :) N è bello che tu abbia già esperienza in Maglev.
Se si dispone di un solo sensore (sensore di spostamento) e di un attuatore (forza), è necessario disporre di una sola funzione di trasferimento. Perché / come si dispone di una matrice di funzioni di trasferimento?
@nibot Perché la gravità sta esercitando un'altra forza. Quindi totale due forze e un sensore. :)
La forza di gravità è costante. E tu non lo controlli. Quindi: nessuna funzione di trasferimento.
Potrei sbagliarmi allora. Quindi, ti dispiace se ti mando le "funzioni"?
Tre risposte:
AngryEE
2012-02-16 23:02:44 UTC
view on stackexchange narkive permalink

Generalmente nell'industria questo sarebbe fatto con Matlab. Se lo stai provando da solo, hai diverse opzioni per quanto riguarda il software di calcolo numerico / grafico. Il primo tra questi è SciLab, un programma molto simile a Matlab ma open source e gratuito. Ci sono un paio di toolbox che possono o meno fornire funzioni utili per progettare e analizzare i sistemi di controllo: Control Design Tool (molto popolare a quanto pare) e ADS CoLiSyS (molto meno popolare).

Altrimenti potresti provare NumPy o SciPy che hanno alcune capacità numeriche / grafiche ma nessun toolbox del sistema di controllo.

Modifica: come per sintonizzare un controller PID usando un metodo ben noto .. potresti essere sfortunato. Puoi provare metodi come Ziegler-Nichols ma dal momento che stai lavorando con un sistema instabile (la palla cadrà senza controllo del feedback) non puoi fare ciò che il metodo consiglia (ad esempio, "spegni" guadagni integrali e derivati ​​per regolare solo proporzionale, quindi assegnare guadagni integrali e derivati ​​come multiplo del guadagno proporzionale). Tuttavia, se è possibile creare un controller che stabilizza semplicemente la sfera in un punto impostato (un controller di rifiuto del disturbo - il disturbo è la gravità), è possibile aggiungere il controller PID in serie e regolarlo in questo modo una volta che il sistema è stabile. Ma sembra che il tuo obiettivo generale sia creare un controller che stabilizzi semplicemente la palla e non, ad esempio, la faccia seguire un'onda quadra o un input sinusoidale. Quindi potrebbe non essere un approccio utile. Tieni presente che ciò che stai facendo non è affatto un controllo di base e gli approcci semplicistici non si applicano necessariamente. Buona fortuna.

Mi dispiace tanto .. Ho dimenticato di menzionare l'ingresso del sensore di hall al PID. Sto anche usando un sensore di hall. Sto anche aggiornando lo stesso sopra.
Ti sei scordato Octave, che ho letto per essere più simile a Matlab, è un software libero e con Octave-forge ha una serie di toolbox, quasi sicuramente anche quello dei sistemi di controllo.
Avevo l'impressione che Scilab fosse stato creato dai naufraghi della stessa Matlab. Scommetto che sono entrambi abbastanza vicini però. Tutti copiano il leader ...
Octave è più vicino alle versioni precedenti di Matlab. L'interfaccia è pura riga di comando. Il sytax di Octave è pensato per essere quasi completamente compatibile con Matlab. SciLab ha più funzionalità GUI e compatibilità Matlab meno diretta. SciLab sembra essere più allineato con gli usi didattici. Probabilmente uno dei due ha tutto il necessario per eseguire simulazioni di sistema PID di base.
Dovrebbe anche aggiungere che Octave è stato originariamente sviluppato per Unix / Linux e la versione per Windows non è del tutto priva di bug. SciLab sembra avere una migliore compatibilità con Windows (tuttavia ho usato Octave più di SciLab).
Attualmente valuta i sistemi di controllo Python. Vediamo se riesco a risolverlo. Fare riferimento a: http://sourceforge.net/apps/mediawiki/python-control/index.php?title=Main_Page
So che Octave ha alcuni bug fastidiosi, ma ci sono diverse GUI, come GUIOctave o QtOctave.
Paul
2013-09-23 02:21:52 UTC
view on stackexchange narkive permalink

Dai un'occhiata a 20-sim, hanno una versione gratuita disponibile, ci sono molti toolbox (anche per la progettazione di controller e sistemi LTI) e l'ultima versione 4.4 ha anche lo scripting con Matlab e Octave. Ecco il loro sito: http://www.20sim.com

compumike
2013-09-23 08:00:36 UTC
view on stackexchange narkive permalink

Non open source, ma CircuitLab eseguirà il tracciamento nel dominio del tempo e della frequenza come richiesto. Puoi comporre graficamente il ciclo di feedback utilizzando elementi del circuito o blocchi di trasformazione di Laplace, quindi misurare la risposta e modificare i parametri PID per assicurarti di ottenere un risultato stabile! Ad esempio, vedere risposta al gradino della trasformazione di Laplace e diagramma di Bode.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...