• Meetings e Workshop
    l'associazione organizza workshop e meeting periodici

  • HowTo e manuali
    come costruire da te gadget elettronici e come programmarli

  • Hacking della PS3
    howto su come installare linux ed effettuare altri hack

  • Una comunità organizzata
    entra a far parte di una associazione organizzata e attiva

  • Strumenti di supporto
    per mantenersi in contatto e favorire la cooperazione

beginner - gnu octave - asymptotic bode diagram - UPDATED PDF Stampa E-mail
Scritto da allanon   
allanon

[ENG] I made a conversion from the MatLab script of Alessandro Giua to GNU/Octave. This script can draw asymptotic bode diagram. Not all features are active now.

[ITA] Ho convertito per GNU/Octave lo script per MatLab di Alessandro Giua  per il calcolo dei diagrammi di bode asintotici (non reali), utili per controllare gli esercizi svolti su carta semilogaritmica.

 

 

Iniziamo

Innanzi tutto scarichiamo il file >>> [ link file aggiornato ] ( i ringraziamenti sono all'interno del file )

Come usarlo

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

NUM     b_m*s^m + b_{m-1}*s^{m-1} + ... + b_1*s + b_0
W(s) =  ----- = -----------------------------------------------
DEN     a_n*s^n + a_{n-1}*s^{n-1} + ... + a_1*s + a_0

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 nera tratteggiata. Le scale e il vettore delle frequenze sono scelti automaticamente.

ASBODE(NUM,DEN,[W1,W2],[M1,M2],[F1,F2]) - Specifica le scale:

  • le scala delle ascisse in entrambi i diagrammi e' compresa fra 10^W1 e 10^W2
  • la scala delle ordinate nel diagramma dei moduli e' compresa fra M1 e M2
  • la scala delle ordinate nel diagramma delle fasi e' compresa fra F1 e F2

ASBODE(NUM,DEN,[W1,W2],[M1,M2],[F1,F2],PAR)
Il parametro opzionale PAR consente di specificare che non si desidera tracciare i diagrammi dei singoli termini ma:

  • PAR = 1 : si traccia solo il diagramma reale complessivo
  • PAR = 2 : si traccia solo il diagramma asintotico complessivo
  • PAR = 3 : si tracciano entrambi i diagrammi complessivi

- la curva nera tratteggiata indica il diagramma reale
- la curva blu continua indica il diagramma asintotico

[MOD,FASE,W]=ASBODE(NUM,DEN)
[MOD,FASE,W]=ASBODE(NUM,DEN,[W1,W2],[M1,M2],[F1,F2])
Non traccia il diagramma ma salva i valori di modulo, fase e frequenza nelle matrici
- MOD:  la matrice del moduli in decibel
- la prima colonna contiene il diagramma reale complessivo,
- la seconda colonna contiene il diagramma asintotico complessivo,
- le altre colonne contengono i diagrammi asintotici dei singoli termini
- FASE: la matrice delle fasi in gradi
- la prima colonna contiene il diagramma reale complessivo,
- la seconda colonna contiene il diagramma asintotico complessivo,
- le altre colonne contengono i diagrammi asintotici dei singoli termini
- W:    il vettore delle frequenze

Si veda anche BODE.
Autore: Alessandro Giua. Versione 3.1, Gennaio 2007.
Modificato da Carlo Denaro - versione per GNU/OCTAVE Gennaio 2009 versione 0.0.1 beta

Esempio

shell$> octave -p {PATH-OF-FILE-ASBODE}

octave$> n = [1 10]

octave$> d = [1 100 0]

octave$> asbode(n,d)

Galleria esempio


 

Commenti  

 
+1 #1 Marcello e Dario 2011-07-22 08:13 Abbiamo trovato un problema nel codice dello script: il parametro "par" viene a prescindere impostato uguale a 2 per cui l'unico diagramma che viene tracciato risulta quello asintotico.
Non viene, quindi, effettuato il controllo sul valore di par nell'if per 6 argomenti.
Abbiamo modificato parte del codice e funziona, non l'abbiamo testato a fondo ma non dovrebbe aver più problemi.
Di seguito il link con il file col codice modificato: http://dl.dropbox.com/u/15290936/asbode.m
Citazione
 
 
#2 Blac]{out 2011-07-26 00:08 grazie Marcello
grazie Dario
ho aggiornato il file e messo subito online cosi che la comunita possa fruire della vostra modifica
ecco la vera potenza dell'opensource
Citazione
 
 
+1 #3 salvatore 2015-07-04 04:55 Ciao, ho incollato il 3 comandi in octave
mi da questo.

>> n = [1 10]
n =

1 10

>> d = [1 100 0]
d =

1 100 0

>> asbode(n,d)

Guadagno di Bode: K = 0.1, K_db = -20
Numero poli nell'origine: nu = 1
Zero reale: z = -10.0000 tau = 0.1000
Polo reale: p = -100.0000 tau = 0.0100

error: horizontal dimensions mismatch (1×500 vs 500×1)
error: called from:
error: /home/sa/asbode.m at line 331, column 6
>>
cosa c'è che non va ?
Citazione
 
 
#4 Blac]{out 2016-04-03 10:29 hai utilizzato lo stesso file dell esempio? che versione hai di octave? Citazione
 

Aggiungi commento


Codice di sicurezza
Aggiorna


grayhats.org, Powered by Joomla!; Joomla templates by SG web hosting
valid xhtml valid css