• Aucun résultat trouvé

Projet : asservissement num´erique d’un oscillateur `a quartz

N/A
N/A
Protected

Academic year: 2022

Partager "Projet : asservissement num´erique d’un oscillateur `a quartz"

Copied!
27
0
0

Texte intégral

(1)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Projet : asservissement num´ erique d’un oscillateur ` a quartz

E. Carry, J.-M Friedt´

jmfriedt@femto-st.fr transparents `ajmfriedt.free.fr

5 mars 2021

1 / 27

(2)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al

eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Programmation du circuit

• Divers protocoles de communication pour flasher le microcontrˆoleur

• Carte Olimex Atmega32U4 : protocole AVR 1091

• Par d´efaut, Atmel commercialise ses Atmega32U4 avec le

bootloader DFU (Device Firmware Upgrade)2qui communique par le port USB

• Nouvel outil de configuration du microcontrˆoleur en replacement de avrdude:

MCU=atmega32u4 DFU=dfu-programmer install: $(EXEC).hex

$(DFU) $(MCU) erase

$(DFU) $(MCU) flash $(EXEC).hex

$(DFU) $(MCU) reset

1. www.atmel.com/images/doc1644.pdf 2. http://www.atmel.com/Images/doc7618.pdf

2 / 27

(3)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al

eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : communiquer

r´ ecepteur GPS

1.57 GHz Atmega

projet

1 PPS

1 s

32u{2,4}

(Thal`es AC12, Motorola Oncore) IC

PWM USB

RS232

correction fr´ equence

• Communication : bus USB v.s RS232

• RS232 est simple (protocole asynchrone sym´etrique) mais lent et n’est plus support´e sur PC

• USB est asym´etrique et n´ecessite des transactions complexes : LUFA3

3. http://jmfriedt.free.fr/LUFA_light_EEA.tar.gz

3 / 27

(4)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al

eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : compter

• Fonctioninput-capturedu compteur

• M´emorisation du compteur `a chaque front montant de 1 PPS

• Oscillateur 16 MHz : 16·106216 donc le compteuroverflow

• L’oscillateur pr´esente une d´erive maximum de 100 ppm ...

• `a 16 MHz, 1600 Hz qui tiennent sur 11 bits donc un compteur 16 bits suffit

⇒second programme de d´emonstration : mesurer la fr´equence du quartzet observer sa d´erive en le chauffant.

4 / 27

(5)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al

eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : compter

• Fonctioninput-capturedu compteur

• M´emorisation du compteur `a chaque front montant de 1 PPS

• Oscillateur 16 MHz : 16·106216 donc le compteuroverflow

• L’oscillateur pr´esente une d´erive maximum de 100 ppm ...

• `a 16 MHz, 1600 Hz qui tiennent sur 11 bits donc un compteur 16 bits suffit

9700 9800 9900 10000 10100 10200

0 100 200 300 400 500 600 700

ecart de frequence (Hz)

temps (s)

’temperature_mode_normal.dat’ u 4

fer a souder

bombe givrante

⇒second programme de d´emonstration : mesurer la fr´equence du quartzet observer sa d´erive en le chauffant.

5 / 27

(6)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : commander

• Utilisation de la PWM pour g´en´erer un signal p´eriodique de rapport cyclique ajustable

• Fr´equence de PWM d´etermin´ee en accord avec filtre passe bas de lissage (fr´equence ´elev´ee⇒temps de r´eaction court)

• Mesurer la gamme de tensionspour lesquelles le quartz continue

`

a osciller et la fr´equence du quartz en fonction de la tension Bonus: impl´ementer lewatchdog pour r´einitialiser le microcontrˆoleur en cas de perte de l’oscillation du quartz

6 / 27

(7)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : commander

Analyse statique et dynamique en boucle ouverte

• d´eterminer la plage de tensions de fr´equences command´ees par la tension de PWM

• d´eterminer la constante de temps et gain de la commande

x1

Xout

10 pF

Xin

20 pF

16 MHz

440 nF

PWM

33 k 33 k

1 nF 82 kΩ mesure

commande localement lineaire

0 9900+/−0

9400 9600 9800 10000 10200 10400 10600

0 200 400 600 800 1000

variation frequence (Hz)

PWM (x100/1024 %) 7 / 27

(8)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : asservir (1)

• Mise en œuvre d’une PID num´erique en temps discret (quantification) : dxdtxn−xTn−1

e etX =R

x·dt →X+ =xn·Te

• c(t) =Kp·e(t) +KiR

e(t) +Kdde(t)

• choix des param`etres :Kd etKi nuls,dt Kp croˆıt jusqu’`a osciller.

• Ki pour rendre l’erreur statique nulle

• Kd pour augmenter la dynamique et r´eduire les d´epassements `a la consigne

erreur=0;

integrale=0;

erreur_avant=0;

while(1) {

mesure(&freq_mesure); // prend un temps dt erreur=consigne-freq_mesure;

integrale+=erreur; // *dt

sature_integrale(&integrale); // anti-windup derivee=(erreur-erreur_avant); // /dt

commande_pwm=Kp*erreur+Ki*integrale+Kd*derivee; // PID

sature_commande(commande_pwm); // rester dans la gamme erreur_avant=erreur;

} 8 / 27

(9)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

D´ ecoupage du programme : asservir (2)

• ´evolution dec(t) et en consid´erant (temps discret) la diff´erence cn+1−cn

• loi r´ecursive de commande ...

• ... la somme infinie de l’int´egrale se r´eduit `aKi·εn+1

• les termes proportionnel et int´egral sont Kp·(εn+1−εn)·Te et Kd· n+1−εn)−(εT n−εn−1)

e =Kd· n+1−2εTnn−1)

e .

• ´equation r´ecursive qui exprime la transform´ee en Z de la PID :

C(z)(z1)

| {z }

cn+1−cn

=E(z)

Kp·(z1) +Ki·Te+Kd

z2 +z−1 Te

C(z)

E(z)= αz+β+γz−1

z1 = α+βz−1+γz−2 1z−1 err=0;

err_1=0;

err_2=0;

commande_pwm=0;

while(1) {

mesure(&freq_mesure); // prend un temps dt err_2=err_1;

err_1=err;

err=consigne-freq_mesure;

commande_pwm+=Kp*(err-err_1)+Ki*err+Kd*(err+err_2-2*err_1);

sature_commande_et_integrale(&commande_pwm);

} 9 / 27

(10)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

De la th´ eorie ` a la pratique

9000 9500 10000 10500 11000 11500 12000

0 50 100 150 200 250 300 350-200 -100 0 100 200 300 400 500

frequence % 65536 (Hz) error v.s 9500 (Hz)

time (s)

no PID control PID output frequency PID error signal no feedback

error v.s 9500

soldering iron controlled frequency

Fr´equence de l’oscillateur apr`es chauffe puis refroidissement du quartz.

• Saturation de la commande

• Divergence de l’int´egrale⇒saturation de l’int´egrateur ou strat´egie d’anti-windup

10 / 27

(11)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Cas particulier de l’asservissement num´ erique

Caract´erisation en boucle ouverte (gainaet retardL) pour en d´eduire les coefficients de la boucle d’asservissement4

4. A. Besan¸con-Voda & S. Gentil,egulateurs PID analogiques et num´eriques, Tech. de l’ing´enieur R7416 (1999), ou sans les fautes, le cours de Gonzalo Cabodevila disponible `ahttp://jmfriedt.free.fr/Gonzalo_cours1A.pdf

11 / 27

(12)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Simulation SPICE

• Composant sp´ecifique SPICE (Add→pspice→VSOURCE)

• D´efinition des propri´et´es de la source dans sa valeur

• D´esactiver les composants qui ne font pas partie de la simulation (Edit →Edit Spice Model →Disable symbol for simulation)

• Tools→Simulator→Simulation →Settings

• Run/Stop Simulation→Probe pour s´electionner le point de mesure

• Simulation→Show SPICE Netlist pour r´ecup´erer le fichier ngspice

12 / 27

(13)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation de l’amplificateur op´ erationnel

Utilisation de SPICE (Simulation Program with Integrated Circuit Emphasis – Univ. Berkeley, CA) et sa version opensourcengspice5

• filtre passe-bas : mod´elisation d’un amplificateur op´erationnel id´eal

• ampli-op id´eal : source de tension command´ee en tensionavec fort gain, suivi de passe bas pour une bande passante finie (´eviter oscillations)

* +in (=1) -in (=2) out (=3) -- 100k=gain, rbw.cbw=LPF, eout=suiveur .subckt opamp 1 2 3

e 3 0 1 2 100k .ends opamp

e1

-

+ OUT

β= 105

5. J.-M Friedt,Introduction `a SPICE3 : simulation de circuits ´electroniques, et au-del`a, OpenSilicum 1 (Janvier-Mars 2011) `ajmfriedt.free.fr/lm_spice.pdfet cours de R´emy Brendel `ahttp://jmfriedt.free.fr/Spice3.pdf

13 / 27

(14)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation de l’amplificateur op´ erationnel

Utilisation de SPICE (Simulation Program with Integrated Circuit Emphasis – Univ. Berkeley, CA) et sa version opensourcengspice6

• filtre passe-bas : mod´elisation d’un amplificateur op´erationnel id´eal

• ampli-op id´eal : source de tension command´ee en tensionavec fort gain, suivi de passe bas pour une bande passante finie (´eviter oscillations)

* +in (=1) -in (=2) out (=3) -- 100k=gain, rbw.cbw=LPF, eout=suiveur .subckt opamp 1 2 3

rin 1 2 2meg e 3 0 1 2 100k .ends opamp

e1

-

+ OUT

β= 105 Rin=2M

6. J.-M Friedt,Introduction `a SPICE3 : simulation de circuits ´electroniques, et au-del`a, OpenSilicum 1 (Janvier-Mars 2011) `ajmfriedt.free.fr/lm_spice.pdfet cours de R´emy Brendel `ahttp://jmfriedt.free.fr/Spice3.pdf

14 / 27

(15)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation de l’amplificateur op´ erationnel

Utilisation de SPICE (Simulation Program with Integrated Circuit Emphasis – Univ. Berkeley, CA) et sa version opensourcengspice7

• filtre passe-bas : mod´elisation d’un amplificateur op´erationnel id´eal

• ampli-op id´eal : source de tension command´ee en tensionavec fort gain, suivi de passe bas pour une bande passante finie (´eviter oscillations)

* +in (=1) -in (=2) out (=3) -- 100k=gain, rbw.cbw=LPF, eout=suiveur .subckt opamp 1 2 3

rin 1 2 2meg e 4 0 1 2 100k rbw 4 3 0.5meg cbw 3 0 31.85nf .ends opamp

-

+ OUT

e1 β= 105 Rin=2M

7. J.-M Friedt,Introduction `a SPICE3 : simulation de circuits ´electroniques, et au-del`a, OpenSilicum 1 (Janvier-Mars 2011) `ajmfriedt.free.fr/lm_spice.pdfet cours de R´emy Brendel `ahttp://jmfriedt.free.fr/Spice3.pdf

15 / 27

(16)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation de l’amplificateur op´ erationnel

Utilisation de SPICE (Simulation Program with Integrated Circuit Emphasis – Univ. Berkeley, CA) et sa version opensourcengspice8

• filtre passe-bas : mod´elisation d’un amplificateur op´erationnel id´eal

• ampli-op id´eal : source de tension command´ee en tensionavec fort gain, suivi de passe bas pour une bande passante finie (´eviter oscillations)

-

+ OUT

β= 1 e1

β= 105 Rin=2M1

2

4 5 6 3

eout

XAlternate node sequence: 3 2 6 pour faire correspondre le mod`ele SPICE avec notre assignation de broches

8. J.-M Friedt,Introduction `a SPICE3 : simulation de circuits ´electroniques, et au-del`a, OpenSilicum 1 (Janvier-Mars 2011) `ajmfriedt.free.fr/lm_spice.pdfet cours de R´emy Brendel `ahttp://jmfriedt.free.fr/Spice3.pdf

16 / 27

(17)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Simulation SPICE (ngspice)

• Charger un mod`ele :Edit Spice Model→Model→Libraryet charger fichier du sous-circuit (.libr´edig´e avec son ´editeur favori), s´electionner leModeletType=Subcircuit

• Possibilit´e de charger des mod`eles “complexes”, e.g. pour le TL081 (mais polynˆome de LTSpice)

http://www.ti.com/product/TL081/toolssoftware

• Alternate Node Sequence pour faire correspondre broches du mod`ele et du composant (3 2 7 4 6 avec mod`ele TL081, 3 2 6 avec mod`ele id´eal sans alim.)

• Tunepour balayer la valeur d’un composant et voir son impact sur la fonction de transfert

17 / 27

(18)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Simulation SPICE (ngspice)

• Charger un mod`ele :Edit Spice Model→Model→Libraryet charger fichier du sous-circuit (.libr´edig´e avec son ´editeur favori), s´electionner leModeletType=Subcircuit

• Possibilit´e de charger des mod`eles “complexes”, e.g. pour le TL081 (mais polynˆome de LTSpice)

http://www.ti.com/product/TL081/toolssoftware

• Alternate Node Sequence pour faire correspondre broches du mod`ele et du composant (3 2 7 4 6 avec mod`ele TL081, 3 2 6 avec mod`ele id´eal sans alim.)

• Tunepour balayer la valeur d’un composant et voir son impact sur la fonction de transfert

18 / 27

(19)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Passif command´ e en tension

* resistance

.subckt varres 1 2 CTRL r1 1 2 1e6

b1 1 2 I=V(1,2)/(V(CTRL)+1) .ends

V1 1 0 ac 1 dc 1 sin(1 1 100k) V2 6 0 sin(5 1 10k)

R1 1 2 1000 X1 2 0 6 varres .control tran 1u 200u plot v(2) .endc

• une r´esistance est d´etermin´ee par un courant variant lin´eairement avec la tension (I =U/R)

• facteur de proportionnalit´e d´etermin´e par une tension (sourceB n+ n-: Nonlinear dependent source)

2 1

X1 V2 V1

R1 6

0

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014

0 5e-05 0.0001 0.00015 0.0002

tension2 (V)

temps (s) 19 / 27

(20)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation du comportement de l’oscillateur

• Mod´eliser le tirage en tension en faisant varier lavaricap(varactor)

• varactor9:VC(t) =C1 R

i(t)·dt⇔C = V1

C

Ri(t)·dt et R i est la charge d’un condensanteur de 1 F

* varactor demonstration

* (RC circuit with C: varactor)

* V=1/C \int i(t)dt

* => C=1/V \int i(t)dt .SUBCKT VARICAP 1 2 R1 1 3 1 VC 3 4

BC 4 2 V=(1/(v(1)*10e-9))*v(int) BINT 0 INT I=I(VC)

CINT INT 0 1 .ENDS

Ve 1 0 AC 1 DC 2 sin(1.5 1 1k) R1 1 2 1k

C1 2 0 20n X1 2 0 VARICAP Coff 2 4 1u Ro 4 0 100 .control destroy all set units = degrees

R1 3 4

2 1

VC

1F BINT

B2

INT

alter @ve[dc]=0 ac lin 10001 2k 100k alter @ve[dc]=1 ac lin 10001 2k 100k alter @ve[dc]=2 ac lin 10001 2k 100k alter @ve[dc]=3 ac lin 10001 2k 100k set hcopydevtype=postscript set hcopypscolor=1 set color0=rgb:0/0/0 set color1=rgb:f/f/f

plot db(ac1.v(4)) db(ac2.v(4)) db(ac3.v(4)) db(ac4.v(4)) xlabel f[Hz] ylabel |mag(V)|[dB]

plot ph(ac1.v(4)) ph(ac2.v(4)) ph(ac3.v(4)) ph(ac4.v(4)) xlabel f[Hz] ylabel phase[deg]

hardcopy varicap_abs.ps abs(ac1.v(4)) abs(ac2.v(4)) abs(ac3.v(4)) abs(ac4.v(4)) xlabel f[Hz]

hardcopy varicap_pha.ps ph(ac2.v(4)) ph(ac3.v(4)) ph(ac4.v(4)) xlabel f[Hz] ylabel phase[deg]

unset units .endc

9. C. Basso,SPICE Analog Behavioral Modeling of Variable Passives, Power Electronics Technology (April 2005)

20 / 27

(21)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation du comportement de l’oscillateur

• Validation du comportement de la varicap en l’ins´erant dans un filtreRC (τ= 1/(RC))

• variation de la valeur de la varicap en modifiant la polarisation DC

f[hz]

phase[deg]

0.0 20.0 40.0 60.0 80.0 100.0

kHz -1.4

-1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2

V ph(ac3.v(4)) ph(ac2.v(4))

ph(ac4.v(4))

f[hz]

0.0 20.0 40.0 60.0 80.0 100.0

kHz 10.0

20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0

mV abs(ac2.v(4)) abs(ac1.v(4))

abs(ac3.v(4)) abs(ac4.v(4))

21 / 27

(22)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation du comportement de l’oscillateur

• Capacit´e de tirage d’un r´esonateur `a quartz : on peut aller de la r´esonance `a l’antir´esonance (diff´erence donn´ee par le coefficient de couplage ´electrom´ecanique du substrat pi´ezo´electrique)

• conditions de Barkhausen :ϕ= 2nπ,n∈N& gain>pertes,

esonateur oscille sur sa condition de phase nulle, compte tenu des condensateurs dans la r´etroaction.

1 Statek CX-1-03 CRYSTAL 8 MHz to 160 MHz Miniature AT-Cut Quartz Crystal

2 J.R. Vig,Quartz Crystal Resonators and Oscillators, tutorial UFFC, New Orleans (2000),http://www.am1.us/

Local_Papers/U11625%20VIG- TUTORIAL.pdfslide 73

R1

L1

C0

C1

• fr =1q

1 L1·C1

• Q =2π·f1

r·R1·C1

df =360π ·Qf

r

• C1=C0ω2 a−ω2r

ω2r

=C0·k2

22 / 27

(23)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Mod´ elisation du comportement de l’oscillateur

• Capacit´e de tirage d’un r´esonateur `a quartz : on peut aller de la r´esonance `a l’antir´esonance (diff´erence donn´ee par le coefficient de couplage ´electrom´ecanique du substrat pi´ezo´electrique)

• ⇒mod´eliser le signal oscillant, le filtre passe bas, la varicap et le tirage en tension

f[hz]

phase[deg]

15.9960 15.9970 15.9980 15.9990 16.0000

MHz -180.0

-160.0 -140.0 -120.0 -100.0 -80.0 -60.0 -40.0 -20.0 0.0

V ph(ac3.v(4)) ph(ac2.v(4))

ph(ac4.v(4)) ph(ac5.v(4))

ph(ac6.v(4))

f[hz]

15.9960 15.9970 15.9980 15.9990 16.0000

MHz 0.0

5.0 10.0 15.0 20.0 25.0

V abs(ac2.v(4)) abs(ac1.v(4))

abs(ac3.v(4)) abs(ac4.v(4))

abs(ac5.v(4)) abs(ac6.v(4))

23 / 27

(24)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Exploitation de ngspice depuis octave

• ngspicepour la simulation de circuits

´

electroniques, mais peu de fonctions de

traitement

• octavepermet de traiter les fichiers textes (print) g´en´er´es parngspice

• ⇒g´en´erer lanetlist (fichier texte) depuis octave, simuler, puis exploiter les r´esultats (e.g. optimisation par fminsearch())

n =1;

f o r d = 1 : 1 : 2 0 m=1;

f o r c = 1 : 1 : 2 0

f=f o p e n(’ r c o c t a v e . cir ’,’ w ’) ; % n e t l i s t f p r i n t f( f ," * t i r a g e r e s o n a t e u r \ n ") ; f p r i n t f( f ," V1 99 0 1.0 ac 1 . 0 \ n ") ;% s o u r c e f p r i n t f( f ," rs 99 1 100 k \ n ") ; % s r c Z f p r i n t f( f ," R1 1 2 2 2 . 8 \ n ") ; % BVD m o t i o n a l f p r i n t f( f ," L1 2 3 7 0 . 3 m \ n ") ;

f p r i n t f( f ," C1 3 4 1.4 f \ n ") ;

f p r i n t f( f ," C0 1 4 0 . 6 5 p \ n ") ; % BVD e l e c f p r i n t f( f ," Cp1 1 0 % fp \ n ", d ) ; % c a p a f p r i n t f( f ," Cp2 4 0 % fp \ n ", c ) ; % c a p a f p r i n t f( f ," RL 4 0 100 k \ n ") ; % l o a d i m p e d a n c e f p r i n t f( f ," . c o n t r o l \ n ") ;

f p r i n t f( f ," ac lin 5 0 0 0 1 6 . 0 2 meg 1 6 . 0 8 meg \ n ") ; f p r i n t f( f ," p r i n t vdb (4) vp (4) > t \ n ") ;

f p r i n t f( f ," q u i t \ n ") ; % 1= l i n e , 2= f r e q , 3=dB , 4=ph f p r i n t f( f ," . e n d c \ n ") ;

f c l o s e( f ) ;

s y s t e m(’ n g s p i c e r c o c t a v e . cir > / dev / n u l l ’) ; s y s t e m(’ cat t | g r e p ^[0 -9] t > tt ’) ; s y s t e m(’ rm t ’) ;

l o a d t t

[ a , b ]=max( t t ( : , 3 ) ) ; % r e c h e r c h e max d ’ a d m i t t a n c e s o l u t i o n (m, n )=t t ( b , 2 ) ;% 2eme c o l o n n e = f r e q u e n c e m=m+1;

end n=n+1 end

24 / 27

(25)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Exploitation de ngspice depuis octave

• ngspicepour la simulation de circuits ´electroniques, mais peu de fonctions de traitement

• octavepermet de traiter les fichiers textes (print) g´en´er´es parngspice

• ⇒g´en´erer lanetlist (fichier texte) depuis octave, simuler, puis exploiter les r´esultats (e.g. optimisation par fminsearch())

0 5 10 15 20

16.0495 16.05 16.0505 16.051 16.0515 16.052 16.0525 16.053

C1 (pF)

freq (MHz)

0 5 10 15 20

2500 3000 3500 4000 4500 5000 5500 6000

Cp1 (pF)

fmax-fmin (Hz)

Cp2 (pF)

Cp1 (pF) 16.042

16.044 16.046 f (MHz) 16.048 16.05 16.052 16.054 16.056

0 5 0

10 5

15 10

15 20

20

16.02 16.03 16.04 16.05 16.06 16.07 16.08 16.09

-120 -100 -80 -60 -40 -20 0

freq (MHz)

|Y| (a.u.)

16.02 16.03 16.04 16.05 16.06 16.07 16.08 16.09

-4 -2 0 2 4

freq (MHz)

ph(Y) (rad)

25 / 27

(26)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Optimisation de filtre

• fonctionfminsearch()de Matlab/Octave pour la descente de gradient,

• fonction de coˆut exploite ngspicepour calculer la fonction de transfert d’un filtreLC coupe-bande dont on visefc= 500 kHz

0 200000 400000 600000 800000 1e+06

-200 -150 -100 -50 0

frequency (Hz)

|S21| (dB)

Solution :L= 0.175µH, C= 0.579µH

fc= 5.03e+ 05 Hz

L =.1 e−6;% c o n d i t i o n s i n i t i a l e s ( L , C g r o s s i e r s ) C=1e−6;

X0=[L C ] ;

Xopt=f m i n s e a r c h (’ c o u t _ f i l t r e ’, X0 ) ;

% o p t i m f i l t r e ( [ 1 e−6,1e−6])

p r i n t f(" s o l u t i o n =% f % f \ n ", Xopt ( 1 ) , Xopt ( 2 ) ) ; 1/2/p i/s q r t( L∗C )

1/2/p i/s q r t( Xopt ( 1 )∗Xopt ( 2 ) ) f u n c t i o n e r r e u r= c o u t f i l t r e ( param ) L=param ( 1 )

C=param ( 2 )

i f ( ( L<=0) | | ( C<=0)) e r r e u r =1e 9 ; e l s e

f=f o p e n(’ o p t i m _ f i l . cir ’,’ w ’) ; f p r i n t f( f ," * f i l t r e passe - b a n d e \ n ") ; f p r i n t f( f ," V1 99 0 1.0 ac 1 . 0 \ n ") ; f p r i n t f( f ," rs 99 1 10 k \ n ") ; f p r i n t f( f ," L1 1 2 % fu \ n ", L ) ; f p r i n t f( f ," C1 2 0 % fu \ n ", C ) ; f p r i n t f( f ," RL 1 0 10 k \ n ") ; f p r i n t f( f ," . c o n t r o l \ n ") ;

f p r i n t f( f ," ac lin 5 0 0 0 100 1 meg \ n ") ; f p r i n t f( f ," p r i n t vdb (1) vp (1) > t \ n ") ; f p r i n t f( f ," q u i t \ n ") ;

f p r i n t f( f ," . e n d c \ n ") ; f c l o s e( f ) ;

s y s t e m(’ n g s p i c e o p t i m _ f i l . cir > / dev / n u l l ’) ; s y s t e m(’ cat t | g r e p ^[0 -9] t > tt ’) ; s y s t e m(’ rm t ’) ;

l o a d t t ;

p l o t( t t ( : , 2 ) , t t ( : , 3 ) ) ;h o l d on [ a , b ]=min( t t ( : , 3 ) ) ; f r e q=t t ( b , 2 ) e r r e u r=a b s( f r e q−5e 5 ) ; end

end

26 / 27

(27)

asservissement num´erique d’un oscillateur `a

quartz J.-M Friedt & al eveloppement microcontroleur P.I.D.

Simulation SPICE Tirage de l’oscillateur SPICE pour l’optimisation

Conclusion (et questions)

1 Reproduire les simulations de la varicap,

2 Reproduire les simulation de tirage de fr´equence du r´esonateur, compte tenu des informations fournies dans la documentation d’un r´esonateur, par exemple

http://www.andhraelec.com/app_quartz_crystals.html.

3 Etendre la plage de fr´´ equences de simulation : commenter sur l’´evolution de la phase. Comment se compare-t-elle `a la phase d’un circuit RLC s´erie ?

4 Quel est le comportement asymptotique (en basse et haute fr´equence) d’un circuitRLC? d’un circuit Butterworth-van Dyke ? Est-ce coh´erent avec les simulations ?

27 / 27

Références

Documents relatifs

[r]

[r]

[r]

[r]

un script (ou une fonction) scilab donnant la solution exacte et la solution num´ erique donn´ ee par le sch´ ema

D´ ecrire les polynˆ omes d’interpolation de Hermite dans le cadre g´

Estimer le nombre minimum de points pour que l’erreur entre la fonction et son polynˆ ome d’in- terpolation de Lagrange soit inf´ erieure ` a 0.1, 0.01

La convergence de la formule du point milieu compos´ ee est quadratique.. EXERCICE 3 Formule