Contenuto principale

feedback

Connessione di feedback di più modelli

Descrizione

sys = feedback(sys1,sys2) restituisce un oggetto del modello sys per l'interconnessione di feedback negativi degli oggetti del modello sys1,sys2.

Come si evince dalla figura, il modello sys a loop chiuso presenta u come vettore di input e y come vettore di output. Entrambi i modelli sys1 e sys2, devono essere continui o discreti con tempi di campionamento identici.

esempio

sys = feedback(sys1,sys2,feedin,feedout) calcola un modello sys a loop chiuso utilizzando le connessioni di input e output specificate con feedin e feedout. Utilizzare questa sintassi quando si desidera connettere solo un sottoinsieme di I/O disponibili dei sistemi MIMO.

esempio

sys = feedback(sys1,sys2,'name') calcola un modello sys a loop chiuso con connessioni di feedback specificate dai rispettivi nomi di I/O dei modelli MIMO sys1 e sys2. Utilizzare l'indicatore 'name' solo quando tutti gli I/O richiesti nell'insieme dei sistemi MIMO sono denominati correttamente.

esempio

sys = feedback(___,sign) restituisce un oggetto del modello sys per un loop di feedback con il tipo di feedback specificato da sign. Per impostazione predefinita, feedback assume un feedback negativo ed equivale a feedback(sys1,sys2,-1). Per calcolare il sistema a loop chiuso con feedback positivo, utilizzare sign = +1.

esempio

Esempi

comprimi tutto

pendulumModelAndController.mat contiene un modello di funzione di trasferimento del pendolo invertito SISO G e il relativo controller PID C.

Caricare il modello del pendolo invertito e del controller nel workspace.

load('pendulumModelAndController','G','C');
size(G)
Transfer function with 1 outputs and 1 inputs.
size(C)
PID controller with 1 output and 1 input.

Per creare questa struttura a loop, collegare il controller e i modelli d'impianto in serie per creare sys1 e impostare sys2 su 1 per rappresentare il feedback dell'unità. Per impostazione predefinita, la funzione applica un feedback negativo, ma è possibile utilizzare l'argomento opzionale sign per specificare il tipo di feedback. Per questo esempio, è possibile omettere l'argomento sign o impostarlo su -1 per il feedback negativo.

sys1 = G*C;
sys2 = 1;
sign = -1;

Utilizzare feedback per creare il loop di feedback negativo utilizzando G e C.

sys = feedback(sys1,sys2,sign)
sys =
 
         1.307e-06 s^3 + 3.136e-05 s^2 + 5.227e-06 s
  ---------------------------------------------------------
  2.3e-06 s^4 + 1.725e-06 s^3 - 4.035e-05 s^2 - 5.018e-06 s
 
Continuous-time transfer function.
Model Properties

sys è la funzione di trasferimento a tempo continuo a loop chiuso risultante, ottenuta utilizzando il feedback negativo.

Per questo esempio, si considerino due funzioni di trasferimento che descrivono rispettivamente un impianto G e un controller C.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

Creare le funzioni di trasferimento dell'impianto e del controller.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

Utilizzare feedback per creare il loop di feedback negativo utilizzando G e C.

sys = feedback(G,C,-1)
sys =
 
  From input "torque" to output "velocity":
  2 s^3 + 25 s^2 + 51 s + 10
  ---------------------------
  11 s^3 + 57 s^2 + 78 s + 40
 
Continuous-time transfer function.
Model Properties

sys è la funzione di trasferimento a loop chiuso risultante, ottenuta utilizzando il feedback negativo con la coppia come input e la velocità come output.

Per questo esempio, si considerino due funzioni di trasferimento che descrivono rispettivamente un impianto G e un controller C.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

Creare le funzioni di trasferimento dell'impianto e del controller.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

Utilizzare feedback per creare il loop di feedback positivo utilizzando G e C.

sys = feedback(G,C,+1)
sys =
 
  From input "torque" to output "velocity":
  -2 s^3 - 25 s^2 - 51 s - 10
  ---------------------------
  9 s^3 + 33 s^2 + 32 s - 20
 
Continuous-time transfer function.
Model Properties

sys è la funzione di trasferimento a loop chiuso risultante, ottenuta utilizzando il feedback positivo con la coppia come input e la velocità come output.

Sulla base della figura seguente, si consideri di connettere due funzioni di trasferimento MIMO con due input e due output in un loop di feedback negativo.

Per questo esempio, creare due modelli casuali stato-spazio continui utilizzando rss.

G = rss(4,2,2);
C = rss(2,2,2);
size(G)
State-space model with 2 outputs, 2 inputs, and 4 states.
size(C)
State-space model with 2 outputs, 2 inputs, and 2 states.

Utilizzare feedback per connettere i due modelli stato-spazio in un loop di feedback negativo secondo la figura precedente.

sys = feedback(G,C,-1);
size(sys)
State-space model with 2 outputs, 2 inputs, and 6 states.

Il modello stato-spazio risultante sys è un modello con 2 input, 2 output e 6 stati. Il loop di feedback negativo è completato in modo tale che:

  • Il primo output di G sia connesso al primo input di C

  • Il secondo output di G sia connesso al secondo input di C

mimoPlantAndController.mat contiene un modello di impianto con funzione di trasferimento a 2 input e 2 output G e un modello di controller con funzione di trasferimento a 2 input e 2 output C da connettere come segue:

Innanzitutto, caricare i modelli di impianto e di controller nel workspace.

load('mimoPlantAndController.mat','G','C');
size(G)
Transfer function with 2 outputs and 2 inputs.
size(C)
Transfer function with 2 outputs and 2 inputs.

Per impostazione predefinita, feedback connetterebbe il primo output di G al primo input di C e il secondo output di G al secondo input di C. Affinché l'impianto e il controller si connettano secondo la figura, nominare i rispettivi I/O dei due sistemi per garantire le corrette connessioni.

G.InputName 
ans = 2×1 cell
    {'torque'}
    {'angle' }

G.OutputName
ans = 2×1 cell
    {'velocity'}
    {'force'   }

C.InputName
ans = 2×1 cell
    {'force'   }
    {'velocity'}

C.OutputName
ans = 2×1 cell
    {'angle' }
    {'torque'}

Utilizzare quindi l'indicatore 'name' con il comando feedback per connettere gli I/O in base ai loro nomi.

sys = feedback(G,C,'name');

La funzione di trasferimento risultante a loop chiuso con feedback negativo sys presenta le connessioni di feedback nell'ordine richiesto.

Si consideri un impianto stato-spazio G con cinque input e quattro output e un controller stato-spazio di feedback K con tre input e due output. Gli output 1, 3 e 4 dell'impianto G devono essere connessi agli input del controller K e gli output del controller agli input 2 e 4 dell'impianto.

feedback6-01.png

Per questo esempio, generare modelli stato-spazio casuali a tempo continuo utilizzando rss sia per G che per K.

G = rss(3,4,5);
K = rss(3,2,3);

Definire i vettori feedout e feedin sulla base degli input e degli output da connettere in un loop di feedback.

feedin = [2 4];
feedout = [1 3 4];
sys = feedback(G,K,feedin,feedout,-1);
size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.

sys è il modello stato-spazio a loop chiuso risultante, ottenuto connettendo gli input e gli output specificati di G e K.

Argomenti di input

comprimi tutto

Sistemi da connettere in un loop di feedback, specificati come modelli di sistemi dinamici. I sistemi dinamici che si possono utilizzare comprendono:

  • Modelli LTI numerici a tempo continuo o a tempo discreto, come i modelli tf, zpk, pid, pidstd o ss.

  • Modelli di risposta in frequenza, come frd o genfrd.

  • Modelli LTI generalizzati o incerti, come i modelli genss o uss (Robust Control Toolbox). (Per utilizzare i modelli incerti è necessario disporre del software Robust Control Toolbox™).

    Il loop di feedback risultante assume

    • i valori attuali dei componenti sincronizzabili per i blocchi di progettazione del controllo di sincronizzazione.

    • i valori nominali del modello per i blocchi di progettazione del controllo incerto.

Per ulteriori informazioni, vedere modelli di sistemi dinamici.

Quando sys1 e sys2 sono due tipi di modello diversi, feedback utilizza le regole di precedenza per determinare il modello sys risultante. Ad esempio, quando un modello stato-spazio e una funzione di trasferimento sono connessi in un loop di feedback, il sistema risultante è un modello stato-spazio basato sulle regole di precedenza. Per ulteriori informazioni, vedere Rules That Determine Model Type.

Sottoinsieme di input da utilizzare, specificato come vettore.

Come si evince dalla figura, feedin contiene gli indici del vettore di input dell'impianto MIMO P e specifica quale sottoinsieme di input u è coinvolto nel loop di feedback. Il modello risultante sys presenta gli stessi input di G, mantenendo il loro ordine.

Per un esempio, vedere Specifica delle connessioni di input e output in un loop di feedback.

Sottoinsieme di output da utilizzare, specificato come vettore.

feedout specifica quali output dell'impianto MIMO G sono utilizzati per il feedback. Il modello risultante sys presenta gli stessi output di G, mantenendo il loro ordine.

Per un esempio, vedere Specifica delle connessioni di input e output in un loop di feedback.

Tipo di feedback, specificato come -1 per il feedback negativo o come +1 per il feedback positivo. Per impostazione predefinita, feedback assume un feedback negativo.

Argomenti di output

comprimi tutto

Sistema a loop chiuso, restituito come modello di sistema dinamico SISO o MIMO. A seconda delle regole di precedenza, sys può essere uno dei seguenti modelli:

  • Modelli LTI numerici a tempo continuo o a tempo discreto, come i modelli tf, zpk, ss, pid o pidstd.

  • Modelli LTI generalizzati o incerti, come i modelli genss o uss (Robust Control Toolbox). (Per utilizzare i modelli incerti è necessario disporre del software Robust Control Toolbox).

Quando sys1 e sys2 sono due tipi di modello diversi, feedback utilizza le regole di precedenza per determinare il modello sys risultante. Ad esempio, quando un modello stato-spazio e una funzione di trasferimento sono connessi in un loop di feedback, il sistema risultante è un modello stato-spazio basato sulle regole di precedenza descritte in Rules That Determine Model Type.

Limiti

  • La connessione di feedback non deve contenere loop algebrici. Ad esempio, se D1 e D2 sono le matrici feedthrough di sys1 e sys2, questa condizione equivale a:

    • I + D1D2 non singolare quando si utilizza il feedback negativo

    • I − D1D2 non singolare quando si utilizza il feedback positivo

Suggerimenti

  • Per strutture di feedback complicate, utilizzare append e connect.

Cronologia versioni

Introduzione prima di R2006a