Domanda:
Il suo generatore - Bubba Oscillator
Dravidian
2017-10-03 23:55:24 UTC
view on stackexchange narkive permalink

Sto provando a simulare un Bubba Ocsillator su MATLAB, Simulink.Il problema è che non sono in grado di generare la sinusoidale dal circuito.

Questo di seguito è il mio circuito: enter image description here

E questo di seguito è il mio risultato (simulato per 10 secondi): enter image description here

Risultato ingrandito (simulato per 10 secondi): enter image description here

Errore ricevuto: enter image description here

Dove ho sbagliato?Come ottenere una forma d'onda sinusoidale pura da questo oscillatore bubba ...

Cosa succede dopo .....
Quello che vedi è l'oscillatore che si avvia.Imposta più tempo per la simulazione.
Dopo aver impostato 100 sec come tempo di simulazione, l'ampiezza va all'infinito e intorno a 51 sec, * La derivata di stato al tempo 51.62098161663971 non è finita.La simulazione verrà interrotta. * Questo è il messaggio di errore.
Cinque risposte:
JonRB
2017-10-04 01:00:36 UTC
view on stackexchange narkive permalink

Hai creato un modello ideale (larghezza di banda infinita OPAMP, tensione di uscita infinita ecc ...) che è condizionatamente stabile & lo ha eseguito.

guarda il tuo asse y, ha raggiunto 1,5x \ $ 10 ^ {59} \ $ ENORME !.Questo è ciò che sta causando un'eccezione ... la sua mancanza di risoluzione per rappresentare questo "oscillatore" instabile

enter image description here

SE viene utilizzato un OPAMP più vicino alla realtà (+ -15V, guadagno limitato a 100.000) si comporta

enter image description here

enter image description here

+1, Grazie mille amico, puoi mostrarmi i valori che hai usato nel tuo circuito ... Grazie ancora
uuur ... esattamente come il tuo (solo il simulink è una schifezza nel visualizzarli ...) Ho il file di progettazione che posso caricare.NOTA: avrai bisogno di Simscape-Electronics se vuoi un OPAMP a banda limitata
https://ufile.io/fp62o
Mi dispiace infastidirti, sto usando MATLAB 2015 b, puoi caricare il file nella versione precedente se non è un problema, altrimenti non importa .. grazie per l'aiuto però ... * File> Esporta modello in> PrecedenteVersione *, in ogni caso qual è il guadagno di ampiezza che hai usato nei tuoi amplificatori operazionali?
https://ufile.io/lyvkj
Bimpelrekkie
2017-10-04 00:08:07 UTC
view on stackexchange narkive permalink

Oscilla, puoi vedere che lo fa sul lato destro della trama. Se ingrandisci sul lato sinistro dovresti anche vedere l'oscillazione ma con un'ampiezza molto inferiore.

La tua idea sbagliata deriva dal fatto che devi prima comprendere la teoria del funzionamento degli oscillatori.

Suggerisco di leggere il criterio di stabilità di Barkhausen.

Questo afferma che un oscillatore oscilla quando il guadagno del loop è maggiore di 1.

Per l'oscillatore Bubba questo è il caso.

Tuttavia, quando il guadagno del loop rimane superiore a 1, l'ampiezza dell'oscillazione aumenterà e continuerà ad aumentare.

Hai usato amplificatori operazionali ideali (sospetto) e questo significa che l'ampiezza dell'oscillazione aumenterà e continuerà ad aumentare. Questo è ciò che mostra la tua trama.

Nell'articolo sull'oscillatore Bubba l'autore usa gli operazionali real. Questi amplificatori operazionali non possono generare tensioni infinite, quindi a una certa tensione la loro tensione di uscita sarà inferiore a quella che ti aspetteresti idealmente da . E questo significa che il loopgain diventa più piccolo. Un simile oscillatore con amplificatori operazionali real stabilizzerà la sua ampiezza del segnale nel punto in cui il guadagno di loop è precisamente one.

E questo risulterà in un'ampiezza stabile.

Quindi la soluzione al tuo problema è: usa (modelli di) operazionali meno ideali.

Con ** amplificatori operazionali reali **, intendi * amplificatore operazionale a guadagno finito *?Scusa, sono abbastanza nuovo in elettronica ...
+1 Quindi quello che state dicendo è che i veri amplificatori operazionali sono come il cugino più povero di Bubba ....;)
No, intendo opamp a guadagno finito, ma provalo e vedi se aiuta, non lo farà.Ciò che serve è una limitazione della tensione di uscita.In un vero amplificatore operazionale saranno i transistor di uscita a corto di corrente / tensione.Non è così facile da modellare (lo so, ci ho provato).Potresti porre un limite ** duro ** alla tensione di uscita degli amplificatori operazionali come -10
@Trevor Sì, stranamente questo oscillatore ** si basa ** sulle proprietà non ideali degli amplificatori operazionali.
Bimpelrekkie: non è così.L'unica proprietà importante è una limitazione di ampiezza dovuta ai binari di alimentazione.Sorprendentemente, un tale "hard limiting" causerà solo una leggera distorsione perché il loop si adatterà a un guadagno di loop di unità.Un drastico miglioramento (riduzione) della distorsione è possibile quando si utilizzano due diverse coppie di tensione della linea di alimentazione e quando l'uscita viene prelevata dal blocco con la tensione di alimentazione maggiore (effetto limitante nel blocco con tensioni di alimentazione inferiori). Questo effetto non può essere trovato.nella letteratura.
user287001
2017-10-04 00:27:51 UTC
view on stackexchange narkive permalink

Ha iniziato a oscillare. L'ampiezza cresce in modo esponenziale. La simulazione viene interrotta quando una certa corrente, tensione o variabile interna raggiunge il limite dell'intervallo numerico disponibile.

Prendi un paio di diodi zener collegati in serie con gli anodi uno contro l'altro. Inserisci quel circuito limitatore in parallelo con uno dei condensatori. L'ampiezza non cresce più all'infinito.

Questa non è una buona soluzione se hai bisogno di un'onda sinusoidale a bassa distorsione. Un buon oscillatore sinusoidale analogico ha un circuito di controllo appositamente progettato che controlla l'ampiezza di uscita e riduce il guadagno fino a quando l'ampiezza di uscita è desiderata. Il controller ricerca continuamente il guadagno giusto ma ha un'inerzia adeguata che impedisce la distorsione degli impulsi sinusoidali. Nella teoria del controllo lo chiamano controller PI. Necessita di un componente controllato in tensione che abbia guadagno, attenuazione o resistenza variabili. Ho visto in circuiti pratici anche un resistore NTC qui utilizzato.

In Simulink puoi prendere un raddrizzatore, alimentarlo dalla tua onda sinusoidale, pompare la sua uscita a un integratore RC costante di lunga durata e sostituire uno dei tuoi follower di tensione con un circuito che ha normalmente guadagno = 1, ma riduce il guadagno con un pendenza non appena la tensione nell'integratore RC supera un certo limite.

Purtroppo non ho né Matlab né Simulink, solo imitazioni scadenti a basso costo, ma lì funziona.

jonk
2017-10-04 01:39:19 UTC
view on stackexchange narkive permalink

Solo per aggiungere un altro post su questo.Ecco un circuito che dovrebbe effettivamente funzionare, utilizzando un quad LT1631 e un singolo binario di alimentazione:

schematic

simula questo circuito - Schema creato utilizzando CircuitLab

La frequenza di uscita dovrebbe essere vicina a circa \ $ \ frac {1} {2 \ pi RC} \ $ o vicino a \ $ 15.9 \: \ textrm {kHz} \ $ per i valori forniti di \ $ R = 1 \: \ textrm {k} \ Omega \ $ e \ $ C = 10 \: \ textrm {nF} \ $ mostrati nello schema sopra.

Ecco l'output di LTSpice:

enter image description here

Dovresti essere in grado di replicare risultati simili nel tuo simulatore.

(Per una disposizione più economica, prova invece il dispositivo a pacchetto quadruplo TI LMV324IPWR.)

Stephen Mendes
2019-08-09 05:48:35 UTC
view on stackexchange narkive permalink

Il guadagno è insufficiente per sostenere l'oscillazione.Hai bisogno di un guadagno minimo di 4. Con le resistenze mostrate (1.5M e 360k il tuo guadagno è molto inferiore).

Ho costruito il circuito e NON funziona.In effetti, la maggior parte dei circuiti dell'oscillatore bubba su Internet non può funzionare (tranne in un programma di simulazione).

Sii mio ospite, costruiscili con parti reali su una breadboard e guarda tu stesso!



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...