Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Come si implementa una retroazione in MATLAB?

Strumenti informatici per la matematica applicata, le simulazioni, il disegno: Mathcad, Matlab, Scilab, Microcap, PSpice, AutoCad ...

Moderatori: Foto Utenteg.schgor, Foto Utentedimaios

0
voti

[1] Come si implementa una retroazione in MATLAB?

Messaggioda Foto Utenteanton89 » 11 apr 2015, 15:06

Salve a tutti,
la domanda è del tutto generale. Come si implementa un sistema retroazionato? Qualunque esso sia. Ad esempio, sto lavorando ad un sistema di trasmissione numerico e ho bisogno di implementare un semplice PLL per il recupero di timing e portante.
Trovo difficoltà nel farlo perché il PLL l'ho studiato come circuito. Conosco gli schemi a blocchi. In Matlab riesco a simulare l'uscita di ogni blocco (il filtro d'anello lo implemento come un FIR, il comparatore di fase è un moltiplicatore, ecc.). Poi, quando devo utilizzare il risultato per fare la retroazione, mi blocco perché concretamente non so come inserire questo risultato nel codice Matlab che ho scritto :cry:
Questo non vale solo per il PLL, ma per tutti i sistemi retroazionati. Questa difficoltà la sto incontrando ora nel Matlab, ma se in futuro mi trovo a programmare un DSP che implementi uno schema di ricezione numerico e anche qui dovrò programmare un PLL???
Come diavolo si fa, me lo spiegate?

P.S. Non sto utilizzando simulink né tool già implementati in Matlab.
Avatar utente
Foto Utenteanton89
25 1 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 27 apr 2012, 11:29

0
voti

[2] Re: Come si implementa una retroazione in MATLAB?

Messaggioda Foto Utentesimo85 » 12 apr 2015, 17:31

anton89 ha scritto:Conosco gli schemi a blocchi.

Dovresti poter implementare l'espressione del sistema nel dominio di Laplace ed implementare il feedback.

Per esempio:

Avatar utente
Foto Utentesimo85
30,9k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9927
Iscritto il: 30 ago 2010, 4:59

0
voti

[3] Re: Come si implementa una retroazione in MATLAB?

Messaggioda Foto Utenteanton89 » 12 apr 2015, 19:13

Si, l'avevo pensato anch'io.
La difficoltà è solo implementativa.

Ad esempio, avevo pensato ad una soluzione di questo tipo. Dal segnale ricevuto, estraggo la portante con un filtro passa-banda molto stretto. Dalla portante estratta, attraverso la trasformata di Hilbert, estraggo la fase istantanea.
Dopo di che progetto il PLL non sul segnale ricevuto, ma solo sulla fase istantanea.
Dovrebbe venire così: detto F(s) il filtro d'anello e K/s il VCO (l'integratore), la funzione di trasferimento è:

T(s) = F(s)*(K/s) / 1 + F(s)*(K/s)

A questo punto con la funzione "filter" filtro il segnale fase con questa funzione di trasferimento (in termini di trasformate z, credo che sia immediato ricavarsi i coefficienti del filtro) e ottengo la fase istantanea con la quale costruire la portante coerente.

Domanda:
1) Questa procedura come vi sembra?
2) Come costruisco la portante a partire dalla fase istantanea?
Avatar utente
Foto Utenteanton89
25 1 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 27 apr 2012, 11:29

1
voti

[4] Re: Come si implementa una retroazione in MATLAB?

Messaggioda Foto Utentedimaios » 15 apr 2015, 12:16

Ingegneria : alternativa intelligente alla droga.
Avatar utente
Foto Utentedimaios
30,2k 7 10 12
G.Master EY
G.Master EY
 
Messaggi: 3381
Iscritto il: 24 ago 2010, 14:12
Località: Behind the scenes


Torna a Programmi applicativi: simulatori, CAD ed altro

Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti