\ Diagrammi asintotici di Bode con Matlab | Muffo.it
Muffo.it
26ott/075

Diagrammi asintotici di Bode con Matlab

Sto preparando l'esame di Controlli Automatici L-A e tra i vari esercizi c'è anche quello di tracciare un diagramma di Bode di una f.d.t.

Certo non sarebbe male potere avere qualche aiutino da matlab, anche se il programma non disegna un diagramma asintotico ma quello reale. Per questo ci viene incontro questo script che ho trovato sul sito di un docente dell'Università di Cagliari. Il funzionamento è molto semplice:

ASBODE : traccia il diagramma asintotico di Bode
****************************************************************

## SYNTAX ##

ASBODE(NUM,DEN)
Traccia il diagramma di Bode di una funzione di trasferimento

W(s) = NUM / DEN

e scrive sullo schermo i termini che compongono la fattorizzazione di Bode della W(s).

Il vettore
NUM = [ b_m b_{m-1} ... b_1 b_0 ]
contiene i coefficienti del polinomio al numeratore mentre il vettore
DEN = [ a_n a_{n-1} ... a_1 a_0 ]
contiene i coefficienti del polinomio al denominatore della W(s).

I diagrammi asintotici dei singoli termini sono tracciati in diversi colori,il diagramma asintotico complessivo e' tracciato con una linea nera spessa,il diagramma reale complessivo e' tracciato con una linea gialla spessa. Le scale e il vettore delle frequenze sono scelti automaticamente.

Ho provato questo script e devo dire che funziona veramente bene...peccato non averlo durante l'esame!!

Hendrik Wade Bode: lo scienziato che invenò i diagrammi. Sembra che sia piuttosto arrabbiato...forse ha scoperto che noi disegnamo i diagrammi con il PC mentre a lui toccava di farli a mano!! Razz

Nessun post simile.

Commenti (5) Trackback (1)
  1. sarò cretino ma non ho capito come fare, potresti farrmi un’esempio di diagramma di bode asintotico di una funzione con due poli?
    grazie

    • Non so se ti serve ancora ma per prima cosa devi copiare il file dentro la cartella di matlab preferibilmente creando una sottocartella della cartella “toolbox”, io l’ho chiamata “asbode”. Quindi avrai [percorso mathlab]\toolbox\asbode\asbode.m
      A questo punto vai sul menu di mathlab (menu file di solito) e selezioni “imposta percorsi” (set path). A questo punto fai “add folder”, selezioni la cartella appena creata (asbode) poi __salvi__ e chiudi.
      A questo punto puoi usare la funzione, ma siccome io ho la funzione di trasf. scritta in termini di componenti elementari mentre “asbode” lavora con i coefficienti io faccio così:
      >> s=tf(‘s’Wink

      Transfer function:
      s

      >> G1=1000*(s+1)*(s+50)/(s*((s+10)^2)*(s+100))

      Transfer function:
      1000 s^2 + 51000 s + 50000
      ———————————-
      s^4 + 120 s^3 + 2100 s^2 + 10000 s

      >> asbode([1000 51000 50000],[1 120 2100 10000 0])

      Spero di essere stato utile. Ciao.

  2. grazie! utilissimo! sei un grande!

  3. Molto utile! Grazie Wink

  4. Ciao, scusami ma non sono una cima con Matlab; io se uso questa funzione ricevo il seguente errore (qualsiasi argomenti inserisca per num e den):

    “Undefined function or method ‘asbode’ for input arguments of type ‘double’”

    Potresti spiegarmi dove sbaglio? Fornisco il comando, ad esempio, in questo modo:

    “asbode([1],[4 4 4 2])”

    Grazie mille


Lascia un commento


Click to Insert Smiley