Come posso calcolare la frequenza di loop richiesta per un servo controller?


11

Ho un motore che guida una stringa collegata a una cella di carico. Vorrei implementare un controller ad anello chiuso per controllare il carico applicato dal motore alla stringa.

Corda motrice collegata a una cella di carico

Come posso determinare la frequenza di loop richiesta per creare un sistema di controllo stabile? È qualcosa come la frequenza di Nyquist, in cui la velocità del loop dovrebbe essere almeno il doppio della frequenza più alta inerente al sistema meccanico?


Sarebbe utile che le risposte si concentrassero sul lato pratico o teorico della domanda. È una pura domanda teorica (dove vengono ignorati attrito, errori del sensore, errori del motore ecc.)? La frequenza del controller non dovrebbe essere superiore all'intervallo di validità del sensore e sarebbe anche definita dalle caratteristiche del motore.
Gürkan Çetin,

Risposte:


4

La frequenza di loop è un parametro che deve essere sintonizzato proprio come i termini proporzionali, integrali e / o derivati. Variando ha un effetto simile sul tuo output come variando i tuoi altri parametri. Una frequenza troppo bassa e non raggiungerai mai lo stato stazionario desiderato. Troppo alto e l'uscita oscillerà.

Per determinare la frequenza di loop ottimale, dovrai prima costruire diagrammi Bode a partire da dati di test o simulazione reali:

I diagrammi di Bode visualizzano in modo conciso tutte le informazioni di input e output di frequenza rilevanti su due grafici: rapporto di ampiezza in funzione della frequenza e sfasamento in funzione della frequenza. Il grafico del rapporto di ampiezza è un grafico log-log mentre il grafico dell'angolo di fase è un grafico semilog (o log-lineare).

Per costruire un diagramma di Bode, un ingegnere dovrebbe disporre di dati empirici che mostrano valori di input e output che variano come funzioni sinusoidali del tempo. Ad esempio, potrebbero esserci dati di temperatura in ingresso che variano in modo sinusoidale e dati di temperatura in uscita che variano anche in modo sinusoidale.

Il rapporto di ampiezza, AR, è il rapporto tra l'ampiezza della curva sinusoidale in uscita divisa per l'ampiezza della curva sinusoidale in ingresso.

AR=outputamplitudeinputamplitude

Per trovare lo sfasamento, è necessario trovare i periodi delle curve sinusoidali di input e output. Ricordiamo che il periodo, P, è il periodo di tempo da un picco a quello successivo.

f=frequencyω=frequency(rad/sec)

P=1f=2πω
f=frequency
ω=frequency(rad/sec)

AR vs. freq

fase vs. freq

Regole empiriche durante l'analisi dei diagrammi di Bode

In generale, una variazione di guadagno sposta il rapporto di ampiezza verso l'alto o verso il basso, ma non influisce sull'angolo di fase. Una modifica del ritardo temporale influisce sull'angolo di fase, ma non sul rapporto di ampiezza. Ad esempio, un aumento del ritardo rende lo sfasamento più negativo per una data frequenza. Un cambiamento nella costante di tempo cambia sia il rapporto di ampiezza che l'angolo di fase. Ad esempio, un aumento della costante di tempo diminuirà il rapporto di ampiezza e renderà il ritardo di fase più negativo a qualsiasi data frequenza.

Quindi dovrai determinare la frequenza di crossover :

Il termine proporzionale sposta l'entità della risposta in frequenza dell'anello aperto su o giù e quindi viene utilizzato per impostare la frequenza di crossover dell'anello aperto. La frequenza di crossover è la frequenza alla quale la magnitudine ha un guadagno di 1 (o 0 dB). Questa frequenza è importante in quanto è strettamente correlata alla larghezza di banda della risposta ad anello chiuso.

In un sistema ideale il guadagno proporzionale potrebbe essere realizzato (quasi) infinitamente grande portando ad un circuito chiuso infinitamente veloce, ma ancora stabile. In pratica non è così. Piuttosto, entrano in gioco due regole empiriche di progettazione.

Innanzitutto è necessario considerare la frequenza di campionamento dell'hardware digitale su cui verrà eseguito il controller. Una regola empirica tipica è che la frequenza di crossover dovrebbe essere impostata per essere almeno 10 volte inferiore alla frequenza di campionamento del controller. Concettualmente, ciò garantisce che il controller funzioni a una velocità sufficientemente elevata da poter gestire adeguatamente le variazioni del segnale da controllare.

La seconda regola empirica è correlata alla pendenza della risposta in frequenza alla frequenza di crossover. Se il roll-off della risposta di magnitudo ad anello aperto al crossover può essere reso vicino a -20dB / decennio, ci si può aspettare che la larghezza di banda ad anello chiuso sia vicina alla frequenza di crossover. Si noti che i termini integrale e derivativo, non solo il termine proporzionale, vengono utilizzati per controllare la pendenza in caso di incrocio.

bode grafico a croce

(enfatizzare il mio)

Quindi la frequenza ottimale del circuito di controllo dovrebbe essere circa 10 volte quella della frequenza di crossover del ritardo di fase del sistema che può essere ottenuta attraverso dati di test empirici o, idealmente, simulazione al computer.


Ottima risposta, ma utilizzerei il termine ciclo limite anziché oscillazione in questo contesto, poiché è più specifico per la teoria del controllo . L'importante è che qualsiasi piccola perturbazione della traiettoria chiusa provocherebbe il ritorno del sistema al ciclo limite, facendo sì che il sistema aderisse al ciclo limite . Ciò differisce dalla semplice oscillazione in quanto questa situazione indesiderata non decade da sola ed è effettivamente perpetuata.
Mark Booth

@MarkBooth Non ho mai studiato formalmente la teoria del controllo, ma piuttosto mi sono imbattuto in esso quando ho trovato lavoro scrivendo software incorporato per controller di motori. Non ho mai sentito il termine ciclo limite prima e l'articolo di Wikipedia su di esso è abbastanza breve. Gli articoli di Wikipedia sui controller PID e sulla teoria dei controlli usano entrambi il termine oscillazione ma non menzionano i cicli limite. Potresti indicare altri riferimenti che discutono i cicli limite nel contesto specifico della teoria del controllo? Sono abbastanza interessato a saperne di più.
embedded.kyle,

1
L'affermazione che una frequenza di loop troppo elevata può rendere instabile un sistema è essenzialmente errata. L'x10 la larghezza di banda di controllo è una buona regola empirica ma non c'è un aspetto negativo per andare più in alto (oltre i costi). Ovviamente se il tuo integratore fa + ogni ciclo, potresti dover abbattere il tuo termine I (ad es.).
Guy Sirton,

1
Non ho mai sentito il termine "frequenza di loop" usato per la frequenza di campionamento del loop prima, eppure questo sembra essere l'uso qui. I vecchi chiuditori di loop analogici penseranno che intendi la larghezza di banda del loop (frequenza di chiusura del loop AKA).
TimWescott,

1
L'impostazione di una frequenza di campionamento elevata in un loop di controllo causerà problemi di rumore (e non solo di quantizzazione) se è necessario un filtro passa-basso nel loop che viene in qualche modo soddisfatto dal campionamento a frequenza inferiore. Questo può essere sempre affrontato inserendo filtri passa-basso espliciti, se la situazione lo giustifica.
TimWescott,

3

Quando la corda non è sotto tensione, hai un sistema non lineare (cioè stai spingendo su una corda) che può anche rendere più difficile il controllo. La rigidità della corda limiterà la larghezza di banda. (La stringa funge da filtro passa-basso, almeno quando è sotto tensione). In realtà ho lavorato un po 'su una configurazione simile ed è stato davvero difficile da controllare.

Poiché stai campionando il teorema di campionamento si applica assolutamente e devi campionare almeno x2 la frequenza più alta nel tuo input (aumentando la frequenza di campionamento o filtrando l'input prima del campionamento o entrambi) altrimenti otterrai l'aliasing.

Come sottolinea Kyle, l'altro fattore è la larghezza di banda di controllo desiderata. Concordo con la regola empirica che il loop dovrebbe eseguire almeno ~ x10 quella frequenza.

Entrambe queste condizioni devono essere soddisfatte.

C'è una buona discussione di questo nel Capitolo 6: Campionamento nei sistemi di controllo a circuito chiuso delle tecniche di campionamento del segnale di tesi di Marten Derk van der Laan (1995) per l'acquisizione dei dati nel controllo di processo :

La selezione delle frequenze di campionamento è una questione importante. Per motivi economici, le frequenze di campionamento sono mantenute il più basse possibile: una frequenza inferiore significa che c'è più tempo disponibile per l'esecuzione dell'algoritmo di controllo, che può quindi essere eseguito su computer più lenti. La digitalizzazione di sistemi di controllo analogici ben educati può influire pesantemente sulla risposta del sistema. Se le frequenze di campionamento sono troppo basse, i sistemi potrebbero persino diventare instabili. Secondo il criterio di Nyquist, la frequenza di campionamento dovrebbe essere almeno doppia rispetto alla larghezza di banda del segnale di errore. Questa larghezza di banda è limitata dalla larghezza di banda del sistema, quindi da 2wB. Tuttavia, al fine di garantire una risposta soddisfacente, può essere richiesto un fattore da 10 a 20


È molto pericoloso iniziare a fare appello al teorema di Nyquist in un sistema di controllo a tempo campionato. Si finisce con ogni sorta di stranezze, non ultimo delle quali (e sicuramente indesiderabili nella maggior parte dei casi) sono i filtri anti-aliasing all'interno del circuito di controllo. Quel documento citato sta usando un vecchio approccio alla progettazione del circuito di controllo digitale più adatto per il personale che ha bisogno di dedicare un po 'di tempo ad abituarsi alla trasformazione z e dirigere la progettazione nel tempo campionato. wescottdesign.com/articles/Sampling/sampling.pdf
TimWescott

@TimWescott: il tuo documento sembra molto interessante. Lo leggerò più in dettaglio. Sono d'accordo che le persone applicano erroneamente il teorema al mondo reale in vari modi (e non solo in una configurazione di controllo). Tuttavia ogni volta che stai campionando si applica il teorema. Sono assolutamente d'accordo con quello che dici nel tuo ultimo paragrafo della sezione "Finalmente". Intuitivamente il controller non può mai essere migliore del segnale di errore campionato, quindi puoi provare che se hai un alias nessun controller può eliminare quell'errore.
Guy Sirton,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.