Domanda:
Fondamenti della teoria del controllo
Mike
2014-06-26 18:55:31 UTC
view on stackexchange narkive permalink

Sto cercando di capire qualcosa di molto basilare sulla teoria del controllo. Diciamo che ho il seguente ciclo:

Block Diagram

Se collegheremo questo ciclo a un carrello con un motore che va nel suo unico asse da X = 0 a X = 50, la variabile controllata sarà la velocità del motore (v), mentre la variabile monitorata sarà la posizione del carrello (x).

In questo caso:

  • L'output misurato dovrebbe essere la posizione del carrello, giusto? Ma l'uscita del sistema dovrebbe essere la velocità del motore, no? In caso affermativo, come funziona nelle equazioni? (per unità)

  • Quale sarà il riferimento, l'input di sistema, l'output di sistema?

Sette risposte:
Olin Lathrop
2014-06-26 19:06:03 UTC
view on stackexchange narkive permalink

L'uscita di controllo (ciò che si chiama input di sistema) e l'uscita di sistema non sono necessariamente proporzionali. Nel tuo esempio, il sistema è in parte un integratore. Questo genere di cose è comune. Il polo aggiuntivo nel sistema deve essere preso in considerazione nel controller, altrimenti può facilmente portare a instabilità.

Meno sono direttamente correlate l'uscita di controllo e l'uscita di sistema, più complicato è il controllo l'algoritmo deve essere. Nel mondo reale, spesso si ottengono sistemi non lineari, che integrano parzialmente l'input, ecc. Ecco perché la teoria del controllo è una disciplina su se stessa.

Citazione: "Nel tuo esempio, il sistema è in parte un integratore".Una buona approssimazione per un motore a corrente continua (tensione in ingresso e angolo di rotazione in uscita) è una funzione di trasferimento del terzo ordine (I-T2).
sherrellbc
2014-06-26 19:06:25 UTC
view on stackexchange narkive permalink

Devi avere un obiettivo da misurare rispetto a. Se l'obiettivo è semplicemente portare il carrello in una determinata posizione, monitorerai la posizione mentre ti muovi lungo il percorso (come un encoder conta i tick leggeri) e sottraendo quello dalla distanza totale che intendevi percorrere fino a raggiungere lo zero.

Nel tuo esempio mi viene in mente che l'output del sistema sarà la posizione del carrello e l'input del sistema sarà la velocità del motore. In questo modo, rallentiamo o acceleriamo la velocità del motore per raggiungere la nostra destinazione.

L'esempio a cui torno quando penso alla teoria del controllo è un'auto in cui l'intento è di ridurre al minimo la variazione tra un veicolo davanti a te e una distanza fissa dietro di esso. Il sensore è il tuo occhio attraverso il quale osservi (feedback) la variazione della distanza e la velocità di variazione della distanza. Se vedi che la varianza sta aumentando, puoi inserire nel sistema un'accelerazione proporzionale alla velocità di variazione osservata dai tuoi occhi tra te e il veicolo che precede (questo può essere positivo o accelerazione negativa a seconda della direzione in cui si sta muovendo l'auto rispetto alla tua posizione rispetto ad essa).

LvW
2014-06-26 19:28:55 UTC
view on stackexchange narkive permalink

Penso che un buon esempio per il tuo diagramma a blocchi sia il classico plotter xy, che ha due di questi sistemi (uno per ogni direzione). In questo caso:

  • Input (riferimento): Tensione in V;
  • Uscita: Posizione in cm;
  • Controller: Unità di controllo per la correzione delle proprietà del loop dinamico (V in e V out); nel nostro esempio (x-yplotter): principalmente controller PD-T1 (lead).
  • Sistema (due sezioni): (1) motore DC (conversione della tensione in giri al secondo, rps); (2) Cambio per la traslazione in movimento orizzontale (rps in cm).

  • Sensore: conversione della posizione (cm) in tensione (come un potenziometro).

hkBattousai
2014-06-26 19:13:43 UTC
view on stackexchange narkive permalink

L'output misurato dovrebbe essere la posizione del carrello, giusto? Ma l'uscita del sistema dovrebbe essere la velocità del motore, no? In caso affermativo, come funziona nelle equazioni? (per unità)

Lo implementerai in un circuito analogico o in un ambiente discreto. In un sistema analogico, le grandezze saranno in V (volt). E, in un sistema discreto, ci saranno bit e byte. Quindi le unità originali sono sparite. Non preoccuparti delle unità.

Quali saranno il riferimento, l'input di sistema, l'output di sistema?

Riferimento e input sono le stesse cose. Applichiamo il riferimento come input. Se stai chiedendo queste due informazioni, lasci a noi la progettazione del sistema. Potrebbero esserci infinite soluzioni a questo problema. Le informazioni sulla posizione e sulla velocità possono essere fornite da qualche parte del sistema. Tuttavia, l'effettiva uscita del sistema può essere qualsiasi cosa.

Esempio:

Riferimento: angolo del pedale del gas
Uscita: livello di tensione generato dal contagiri
Sensore: qualcosa che scala la lettura del contagiri al livello del pedale dell'acceleratore

Puoi trovare la posizione integrando la lettura del contagiri.

* L'uscita * nel tuo esempio sarebbe più appropriatamente l'aumento del numero di giri del motore o quello non è correlato al controllo da parte di è piuttosto solo una conseguenza di ciò?Il * sensore * sarebbe quindi qualcosa che misura l'RPM che regolerebbe il tachimetro.In questo modo, il guidatore osserva il tachimetro e, tramite il feedback, regola di conseguenza l'angolo del pedale dell'acceleratore.
Le unità sono molto importanti.Quei volt rappresentano una quantità fisica, secondo alcune conversioni di unità.Dire "non preoccuparti per le unità" è una ricetta per guai enormi.
sanchises
2014-06-26 20:41:36 UTC
view on stackexchange narkive permalink

Dal punto di vista delle unità, la soluzione è in realtà piuttosto banale. I parametri del controller (ad esempio, P, I e D) non sono infatti adimensionali, ma possono essere dimensionati (implicitamente) in modo tale da "convertire" l'errore nell'input di sistema desiderato. Ad esempio, se il tuo ingresso è volt, gli ampere di uscita, la tua azione proporzionale sarebbe in ampere per volt (quindi, proporzionale!).

I tuoi input e output dovrebbero essere scelti con cura da te stesso. Ad esempio, un'uscita misurata di "posizione" sarebbe molto più logica di una "tensione" priva di significato, ma ci sono dei limiti. Prendiamo ad esempio il flusso nel fiume con una diga: se misuri troppo lontano dalla diga, il tuo sistema avrà così tanto ritardo che diventerà incontrollabile. In altre parole, sei libero di scegliere i bordi del tuo sistema per qualsiasi sottosistema, ma sceglili attentamente.

Pål-Kristian Engstad
2015-08-16 03:41:34 UTC
view on stackexchange narkive permalink

Per qualsiasi problema di controllo, attaccare il modello matematico del sistema è il tuo primo obiettivo.

Qui abbiamo un carrello che ha un grado di libertà. Chiamiamo la posizione del carrello \ $ x \ $. Inoltre, hai identificato la velocità (\ $ v = \ dot {x} \ $) come una variabile importante.

L'unica legge fisica rilevante qui è la terza di Newton : \ $ F = ma = m \ ddot {x} \ $. Quali forze vengono applicate al carrello nell'asse \ $ x \ $? Presumo ci sia un motore. Ignorando cose come lo slittamento, potremmo modellare le ruote in modo che siano lineari rispetto alla corrente di ingresso \ $ F_w = k_e i \ $. Supponiamo che ci preoccupiamo del trascinamento, che è proporzionale alla velocità: \ $ F_d = k_d v \ $, quindi \ $ F = F_w - F_d \ $.

Modello: come al solito, proviamo a formare un modello lineare nella forma \ $ \ dot {\ mathbf {x}} = A \ mathbf {x} + B \ mathbf {u} \ $: $$ a = \ ddot {x} = \ frac {d} { dt} \ dot {x} = \ frac {1} {M} F = \ frac {k_e} {M} i - \ frac {k_d} {M} \ dot {x} \\ v = \ frac {d} {dt} x = \ dot {x} $$ Oppure, impostando il nostro vettore di stato a \ $ \ mathbf {x} = [\ dot {x}, x] ^ T \ $, otteniamo: $$ \ dot { \ mathbf {x}} = \ frac {d} {dt} \ pmatrix {\ dot {x} \\ x} = \ pmatrix {-k_d / M & 0 \\ 1 & 0} \ pmatrix {\ dot {x } \\ x} + \ pmatrix {k_e / M \\ 0} i = A \ mathbf {x} + Bi $$

Quindi, la posizione e la velocità sono il nostro vettore di stato (l'output del sistema ). L'attuale \ $ i \ $ è il nostro input di sistema (l'unico modo in cui possiamo influenzare il sistema).

Supponiamo di poter misurare la posizione con un segnale di tensione, in modo che 5 V corrisponda a 50 cm, oppure: \ $ v_m = \ frac {x_m} {50 \ text {cm}} 5 \ text {V } = (0,1 \ \ text {V / cm}) x_m \ = k_m x_m \ $. Quindi, la nostra misura è \ $ x_m = v_m / k_m \ $.

Infine, l'ingresso di controllo è la differenza tra la nostra misura \ $ x_m \ $ e il segnale di riferimento \ $ x_r \ $.

Per quanto riguarda la tua domanda, sia la posizione che la velocità potrebbero essere variabili controllate. Per tener conto della velocità, tutto ciò di cui hai bisogno è un modo per misurarla (o stimarla). (Scriviamo \ $ \ mathbf {y} = D \ mathbf {x} \ $ per quella connessione.) In ogni caso, l'unico input per il sistema è la corrente del motore, che di nuovo influenza sia la posizione che la velocità del sistema.

Per riassumere:

Modello: $$ \ dot {\ mathbf {x}} = A \ mathbf {x} + B \ mathbf {u} $$ Misure: $$ \ mathbf {y} = D \ mathbf {x} $$ Errore: $$ \ mathbf {e} = \ mathbf {r} - \ mathbf {y} $$ Controllo: $$ \ mathbf {u} = C \ mathbf { e} $$

D S Acharye
2015-02-01 23:13:37 UTC
view on stackexchange narkive permalink

Il "riferimento" (come nel diagramma a blocchi) è, sempre, l'uscita desiderata. Non confonderlo con l'input di sistema. In realtà, il diagramma dovrebbe includere un blocco "trasduttore di ingresso" all'inizio. Supponiamo di controllare la velocità di un motore e la velocità desiderata è 1000 giri / min. Hai un pannello, dove puoi impostare la velocità ruotando una manopola e impostare il puntatore a 1000rpm. Ora pensa a cosa sta realmente accadendo quando imposti la manopola a 1000 rpm. Ruotando la manopola, si modificano le impostazioni di tap di un autotrasformatore (integrato nel pannello), che a sua volta imposta una tensione proporzionale alla velocità desiderata di 1000rpm. Questa tensione (che è proporzionale a 1000 giri / min) è l'effettivo ingresso di sistema. Il sensore, che può essere un generatore tachimetrico, rileva la velocità effettiva (ad esempio 950 giri / min) e genera una tensione proporzionale alla velocità effettiva (950 giri / min) del motore. Questa tensione, viene reimmessa e confrontata, con il segnale di ingresso (tensione proporzionale a 1000rpm), per generare il segnale di errore.



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...