[Controlli Automatici] passaggio dalla funz di tras alla forma canonica di controllo
Salve,
stamani mi sono imbattuto in un esercizio in cui c'era la necessità, come da titolo, di trovare la forma canonica di controllo sapendo quale era la funzione di trasferimento.
se ci fossero stati i numeri non ci sarebbe stato nessun problema in quanto lasciavo questo bel compito a matlab, ma l'esercizio è letterale.
per fissare le idee
la funzione di trasferimento è la seguente
$G=(s+a)/((s+p)(s+q))$
il sistema in forma canonica di controllo corrispondente è, lo ho sbirciato dalle soluzioni,
$((\dot x_1),(\dot x_2))= ((0,1),(-pq,-(p+q))) ((x_1),(x_2)) +((0),(1))v$
$Y=((a),(1))^T((x_1),(x_2))$
dove v rappresenta l'ingresso e Y l'uscita.
(non mi riusciva scrivere ammodo il vettore riga (a 1) per cui l'ho scritto in colonna e ho messo che è trasposto)
mi chiedevo se c'era un modo di procedere, una formula, un qualcosa insomma che mi consentisse di trovare la forma canonica di controllo dalla funzione di trasferimento, che io non so proprio come muovermi. va bene anche qualcosa che preveda l'uso di mathematica o matlab.
vi ringrazio
stamani mi sono imbattuto in un esercizio in cui c'era la necessità, come da titolo, di trovare la forma canonica di controllo sapendo quale era la funzione di trasferimento.
se ci fossero stati i numeri non ci sarebbe stato nessun problema in quanto lasciavo questo bel compito a matlab, ma l'esercizio è letterale.
per fissare le idee
la funzione di trasferimento è la seguente
$G=(s+a)/((s+p)(s+q))$
il sistema in forma canonica di controllo corrispondente è, lo ho sbirciato dalle soluzioni,
$((\dot x_1),(\dot x_2))= ((0,1),(-pq,-(p+q))) ((x_1),(x_2)) +((0),(1))v$
$Y=((a),(1))^T((x_1),(x_2))$
dove v rappresenta l'ingresso e Y l'uscita.
(non mi riusciva scrivere ammodo il vettore riga (a 1) per cui l'ho scritto in colonna e ho messo che è trasposto)
mi chiedevo se c'era un modo di procedere, una formula, un qualcosa insomma che mi consentisse di trovare la forma canonica di controllo dalla funzione di trasferimento, che io non so proprio come muovermi. va bene anche qualcosa che preveda l'uso di mathematica o matlab.
vi ringrazio
Risposte
Guarda che su ogni libro di testo di automatica viene spiegata la forma canonica di controllo; per cui ti consiglio di andartela a studiare per bene.
PS: matlab usa il linguaggio letterale, ma ti consiglio di imparare a farle prima certe cose e poi magari farle fare a matlab
PS: matlab usa il linguaggio letterale, ma ti consiglio di imparare a farle prima certe cose e poi magari farle fare a matlab

bastava solo dove guardare
alla fine mi sono risposto da solo...
il fatto è che questa materia mi ben confonde le idee e quindi non so collegare bene varie cose
grazie della dritta

il fatto è che questa materia mi ben confonde le idee e quindi non so collegare bene varie cose
grazie della dritta
Di nulla, ma comunque posta il tuo procedimento che può essere di aiuto a qualcun altro

guarda ero tornato ora per farlo...più che un procedimento ho fatto un ragionamento
ho visto quale è l'aspetto diciamo della forma canonica di controllo, cioè nell'ultima riga della matrice A compaiono i coeff cambiati di segno delle varie derivare dell'uscita.
quando trasformi con laplace derivare vuol dire moltiplicare per s, quindi prendi i vari coefficienti delle potenze di s e li metti nella matrice in ordine
per quanto riguarda il numeratore, te vedi che l'uscita è moltiplicata per a e viene sommata la sua derivata. quindi nella matrice C, sapendo a cosa corrispondono le varie posizioni della riga, te la giostri. in questo caso essendo due le variabili di stato, una è l'uscita e l'altra è la sua derivata.
non so se è un po' contorto.
comunque con matlab ho provato a dichiarare prima con syms i simboli che avrei usato, poi ho dichiarato s come variabile con tf('s') e infine scritto la funzione di trasferimento. l'idea era quella di usare il comando ssdata. solo che la funzione di trasferimento in simboli non me la ha presa
ho visto quale è l'aspetto diciamo della forma canonica di controllo, cioè nell'ultima riga della matrice A compaiono i coeff cambiati di segno delle varie derivare dell'uscita.
quando trasformi con laplace derivare vuol dire moltiplicare per s, quindi prendi i vari coefficienti delle potenze di s e li metti nella matrice in ordine
per quanto riguarda il numeratore, te vedi che l'uscita è moltiplicata per a e viene sommata la sua derivata. quindi nella matrice C, sapendo a cosa corrispondono le varie posizioni della riga, te la giostri. in questo caso essendo due le variabili di stato, una è l'uscita e l'altra è la sua derivata.
non so se è un po' contorto.
comunque con matlab ho provato a dichiarare prima con syms i simboli che avrei usato, poi ho dichiarato s come variabile con tf('s') e infine scritto la funzione di trasferimento. l'idea era quella di usare il comando ssdata. solo che la funzione di trasferimento in simboli non me la ha presa
Un pò contorto a dire il vero, applicando la teoria ( cosa molto utile ) si risolve il maniera molto semplice; infatti:
$ G=(s+a)/(s^2+(p+q)s+pq) $
Quindi la prima riga della matrice dinamica $A$ si costruisce in modo banale prendendo gli opposti dei coefficienti del polinomio caratteristico ( partendo dall'ordine $n-1$ ); mentre la seconda riga è $1 - 0$; quindi la matrice diventa:
$ A=( ( -(p+q) , -pq ),( 1 , 0 ) ) $
la matrice $B$ si costruisce banalmente nel seguente modo:
$ B=( ( 1 ),( 0 ) ) $
mentre per la matrice $C$ si usano i coefficienti del numeratore in ordine decrescente di potenza; quindi:
$ C=( ( 1 , a ) ) $
ottenendo il risultato del libro.
$ G=(s+a)/(s^2+(p+q)s+pq) $
Quindi la prima riga della matrice dinamica $A$ si costruisce in modo banale prendendo gli opposti dei coefficienti del polinomio caratteristico ( partendo dall'ordine $n-1$ ); mentre la seconda riga è $1 - 0$; quindi la matrice diventa:
$ A=( ( -(p+q) , -pq ),( 1 , 0 ) ) $
la matrice $B$ si costruisce banalmente nel seguente modo:
$ B=( ( 1 ),( 0 ) ) $
mentre per la matrice $C$ si usano i coefficienti del numeratore in ordine decrescente di potenza; quindi:
$ C=( ( 1 , a ) ) $
ottenendo il risultato del libro.
domanda da 1 milione di dollari
ma quindi gli autovalori della matrice dinamica A sono sempre i poli della fdt?
ma quindi gli autovalori della matrice dinamica A sono sempre i poli della fdt?
Ovvio che si!
