Obligatorisk oppgave 2
Transcription
Obligatorisk oppgave 2
FYS1120 Obligatorisk oppgave 2 Nicolai Kristen Solheim Obligatorisk oppgave 2 Oppgave 1 a) Bruker vi Kirchhoffs lover, kan vi vise at tidsutviklingen til ladningen på kondensatoren i RLC-kretsen beskrives av differensialligningen 0. Vi tar utgangspunkt i at summen av den totale spenningen er lik 0 (Kirchhoffs lover). 0 0, og setter inn for 0 0 Vi har med dette vist at tidsutviklingen til ladningen på kondensatoren i RLC-kretsen beskrives av differensialligningen b) Videre kan vi vise at så lenge / 0. er den analytiske løsningen av ligningen cos . Vi tar utgangspunkt i differensialligningen fra forrige oppgave. 0 0 For å finne løsningen til denne oppgaven, kan vi skrive om uttrykket slik at 0 Vi finner deretter en løsning vi hjelp av √ Vi tester så for Page 1 of 9 . Dette gir 0 FYS1120 Obligatorisk oppgave 2 Nicolai Kristen Solheim og ser for dette at løsningen vil være kompleks for vi regne oss frem til . Med utgangspunkt i dette kan . cos Vi bruker så formelen sin sin √ som kan skrives om til cos √ . Dette gir oss cos / cos / Vi har med dette vist at og cos , hvor √ , . c) Vi kan så finne strømmen i kretsen og spenningen over motstanden når initialbetingelsene er / 0 1 og 0. Vi tar utgangspunkt i cos . For 0 har vi at / 0 1 cos 0 1 cos Videre har vi at cos cos cos cos cos sin cos cos cos sin cos sin sin Page 2 of 9 sin sin cos FYS1120 Obligatorisk oppgave 2 cos cos cos Nicolai Kristen Solheim sin sin sin cos sin cos sin tan sin cos tan cos sin tan sin cos tan Vi har nå et uttrykk for cos 0 0 1 0 0 0. 0 og kan løse for sin 0 tan 0 sin 0 cos 0 tan 1 tan tan tan Vi kan nå sette dette inn for utrykket vi har funnet for cos sin . sin cos sin sin sin Med dette kan vi uttrykke spenningen over motstanden da . sin Vi har med dette at strømmen i kretsen med hensyn til tiden er gitt ved sin Slik at spenningen over motstanden er sin . d) Vi kan så sette opp alogritmen for Euler-Cromers metode for differensialligningen. 0 Dette gir oss. Page 3 of 9 0 FYS1120 Obligatorisk oppgave 2 1 Nicolai Kristen Solheim 1 1 1 ∆ 1 ∆ Vi ser fra dette at alogritmen for Euler-Cromers metode er: 1 1 1 1 ∆ ∆ e) Vi kan så lage et program som integrerer opp tidsutviklingen av ladningen på kondensatoren for 0,60 . For programkode, se vedlegg. Dersom vi nå kjører dette programmet vil vi få en figur som viser tidsutviklingen av ladningen, strømmen til kretsen og spenningen over motstanden. Figur 1: Tidsutviklingen av ladningen, strømmen til kretsen og spenningen over motstanden. Vi ser fra figuren at tidsutviklingen til de numeriske løsningene sammenlignet med de analytiske løsningene vil gi relativt like resultater. Page 4 of 9 FYS1120 Obligatorisk oppgave 2 Nicolai Kristen Solheim Oppgave 2 a) Vi tar her samme utgangspunkt som i oppgave 1a, men vi legger her til en vekselspenningskilde sin . 0 sin 0, og setter inn for 0 sin 0 Vi har med dette at den modifiserte likningen er 0. b) Vi kan så bruke programmet vi har skrevet tidligere til å måle spenningsamplituden etter at kretsen har stabilisert seg. Dette gjør vi ved å moderere det foregående programmet slik at det tar hensyn til den den modifiserte likningen og beregner spenningsamplituden. Vi plotter deretter . For programkode, se vedlagt program. Figur 2: Plott av . Vi ser fra denne figuren at vi vil få et makspunkt når 1. Dette betyr at effekten og spenningen vil være høyest for denne verdien mens impedansen er på sitt minimum. c) Den drevne RLC-kretsen kalles en resonanskrets fordi den består av en spole (induktans), kondensator (kapitans) og en resistor (resistans). Denne typen krest danner en harmonisk oscillator (resonans) som følge av vekselspenning i kretsen som blir til fordi spolen og kondensatoren oppfører seg ulikt. Resistoren vil kun føre til at resonansen dør ut, dersom det ikke er en drevet krets. Vi kan derfor se bort fra dette, og se på de andre elemententene for å forklare hvorfor dette kalles en resonanskrets. Page 5 of 9 FYS1120 Obligatorisk oppgave 2 Nicolai Kristen Solheim Kondensatoren lagrer den energien den tilføres som potensiell energi i det elektriske feltet mellom platene, mens en spole lagrer den energien den tilføres som i det magnetiske feltet spolen setter opp. Energi kan ikke tilføres eller fjernes momentant fra systemet. Videre kan spenningen over en kondensator kun kan endres gradvis, mens strømmen kan endres momentant. For spoler er det umulig å endre strømmen momentant. Spenningen, derimot, kan derimot endres momentant. En kondensator og en spole oppfører seg akkurat motsatt av hverandre når det gjelder hvordan strøm og spenning kan variere. Dersom vi putter disse sammen i en krets med vekselstrøm vil vi se at spolens impedans øker når frekvensen stiger, mens kondensatorens impedans avtar. Som en følge av dette impedansforholdet vil vi få resonans. d) Vi kan så bruke likning (27.28) i læreboken til å finne resonansfrekvensen. Denne likningen er gitt ved sin ø sin ø . Vi setter dette inn for effekten , likning (27.29). sin ø sin ø , hvor Vi ser nå at den maksimale effekten oppnås når . Fra dette ser vi lett at har sin minimumsverdi, og det er når Vi har fra dette at resonansfrekvensen er , som også er lik kretsens naturlige svingefrekvens . Oppgave 3 a) Vi skal nå finne for forskjellige bærefrekvensenser. Vi har gitt at kan bruke formelen for som utgangspunkt. , hvor Hvis vi nå setter inn verdier, vil vi få 2 for de forskjellige bærefrekvensene. 150 1.126 · 10 200 6.338 · 10 Page 6 of 9 70 Ω, 1 , og FYS1120 Obligatorisk oppgave 2 250 4.056 · 10 300 2.817 · 10 Nicolai Kristen Solheim , som en funksjon av tid for ett av signalene. b) Vi plotter så spenningen over motstanden, Her har vi valgt 250 med tilhørende . Vi plotter så et utsnitt som viser ulike egenskaper ved kurven. Programmet som brukes her er igjen en modifisert versjon av programmet som ble brukt tidligere. For programkode, se vedlegg. Figur 3: Et utsnitt av . Kommentar: Jeg hadde ikke nok minne, så maskinen min klarte ikke å plotte med hensyn på tiden. ??? Out of memory. Type HELP MEMORY for your options. Error in ==> treb at 42 plot(t,vrs) Error in ==> run at 57 evalin('caller', [s ';']); c) Vi ønsker så å vise at kretsen kan beskrives av differensiallikningen , er spenningen over kondensatoren. Parantesen angir at at funksjonen skal evalueres der for , altså at . Vi tar utgangspunkt i Kirchhoffs lover for å vise dette. Vi har at Page 7 of 9 FYS1120 Obligatorisk oppgave 2 Nicolai Kristen Solheim og . , hvor Med dette utgangspunktet får vi at Vi har med dette vist at denne kretsen kan beskrive av differensiallikningen . d) Videre kan vi sette opp Eulers algoritme for denne kretsen. , da 1 ∆ e) Vi kan nå implementere algoritmen i programmet. Vi bruker , 0.33 og 150 . 13 1 Ω, 0.05 , Figur 4: Et utsnitt av plottet som viser spenningen over kondensatoren i demoduleringskretsen og spenningen over motstanden i svingekretsen med hensyn til tiden . Page 8 of 9 FYS1120 Obligatorisk oppgave 2 0.6 · 10 Fra figuren ser vi at at perioden 2.9 · 10 er funnet ved 435 . Frekvensen 435 . · at tonen er tilnærmet “A” da denne er definert mellom 439 Nicolai Kristen Solheim 2.3 · 10 slik at frekvensen 440 slik at vi kan anta 443 . f) Vi kan i denne oppgaven bruke deler av programmet fra forrige oppgave. Kjører vi programmet for de forskjellige bærefrekvensene, får vi at 150 200 250 300 tilsvarer tonen A, tilsvarer tada.wav, tilsvarer notify.wav og tilsvarer chimes.wav. På samme måte som vi fant frekvensen til tonen “A”, kan vi finne frekvensene til tada, notify og chimes. Vi måler perioden for hver av filene ved å se på figurene som programmet i 3e lager. Deretter er frekvensen funnet ved 1/ . Page 9 of 9 Oppgave 3b 2.5 VRS(t) 2 1.5 1 V 0.5 0 -0.5 -1 -1.5 -2 -2.5 4 4.5 5 5.5 t 6 6.5 7 -4 x 10 Oppgave 2b 1.14 V(omega) 1.12 1.1 V 1.08 1.06 1.04 1.02 1 0 1 2 3 4 5 omega 6 7 8 9 10 Oppgave 1e 1 q(t) I(t) V(t) 0.8 0.6 0.4 C/A/V 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 10 20 30 t 40 50 60 Oppgave 3b 4 VR V C 3 2 V 1 0 -1 -2 -3 -4 0 0.5 1 1.5 2 t 2.5 3 3.5 4 -3 x 10 12.11.10 00:01 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\Oblig2\ene.m % Definere variabler L = 1; C = 1; R = 0.2; q = 1; I = 0; dt = 0.01; tll = 0; tul = 60; n = tul/dt; % Lag vektorer t = linspace(0,tul,(n+1)); q0 = zeros(1, n+1); q1 = zeros(1, n+1); q2 = zeros(1, n+1); % sett inn initialverdier q0(1,1) = q; q1(1,1) = I; q2(1,1) = -(R/L)*q1(1,1) - q0(1,1)/(L*C); % for i=2:n+1 q2(1,i) = -(R/L)*q1(1,i-1) - q0(1,i-1)/(L*C); q1(1,i) = q1(1,i-1) + q2(1,i)*dt; q0(1,i) = q0(1,i-1) + q1(1,i)*dt; end % ladning hold('on') figure(1) p1 = plot(t(1,:),q0(1,:)); set(p1,'Color','blue','LineWidth',1) % strøm figure(1) p2 = plot(t(1,:),q1(1,:)); set(p2,'Color','red','LineWidth',1) % spenning figure(1) p3 = plot(t(1,:),R*q1(1,:)); set(p3,'Color','green','LineWidth',1) title('Oppgave 1e') legend('q(t)','I(t)','V(t)') xlabel('t'); ylabel('C / A / V') 1 of 1 12.11.10 00:51 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\Oblig2\tob.m % Definere variabler L = 1; C = 1; R = 0.2; q = 1; I = 0; dt = 0.01; tll = 0; tul = 150; n = tul/dt; % Lag vektorer t = linspace(0,tul,(n+1)); q0 = zeros(1, n+1); q1 = zeros(1, n+1); q2 = zeros(1, n+1); % sett inn initialverdier q0(1,1) = q; q1(1,1) = I; q2(1,1) = -(R/L)*q1(1,1) - q0(1,1)/(L*C); % Legger til v(omega) n2=9.90/dt; omega = linspace(0.1,10,n2+1); V = zeros(1,n2+1); % Euler cromer til Euler for j=1:n2+1 for i=2:n+1 q2(1,i) = -sin(t(1,i)*omega(1,j))/L-(R/L)*q1(1,i-1) - q0(1,i-1)/(L*C); q1(1,i) = q1(1,i-1) + q2(1,i-1)*dt; q0(1,i) = q0(1,i-1) + q1(1,i-1)*dt; end Imaks = max(abs(q1(round(i/2):end))); Xl = omega(1,j)*L; Xc = 1/(omega(1,j)*C); V(1,j) = Imaks*sqrt(R^2+(Xl-Xc)^2); end % ladning %figure(1) %plot(t(1,:),q0(1,:)) % strøm %figure(2) %plot(t(1,:),q1(1,:)) % spenning %figure(3) %plot(t(1,:),R*q1(1,:)) % V(omega) 1 of 2 12.11.10 00:51 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\Oblig2\tob.m figure(4) plot(omega(1,:),V(1,:)) title('Oppgave 2b') legend('V(omega)') xlabel('omega'); ylabel('V') 2 of 2 12.11.10 02:14 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\Ob...\treb.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler R = 70.0*10^(-3); L = 1.0*10^(-6); f = 250.0*10^3; dt = 1.0/fshigh; % Finne C omega = 2.0*pi*f; C = 1.0/((omega^2)*L); % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); vrs = zeros(n+1,1); % Euler for i=2:n+1 t(i) = t(i-1) + dt; q2(i) = -yrs(i-1)/L - (R/L)*q1(i-1) - q0(i-1)/(L*C); q1(i) = q1(i-1) + q2(i)*dt; q0(i) = q0(i-1) + q1(i)*dt; % MATLAB fikk problemer hvis jeg ikke tok dette elementvis vrs(i-1) = R*q1(i-1); end vrs(n+1) = R*q1(n+1); % Plott (utsnitt) plot(t(4001:7000),vrs(4001:7000)) title('Oppgave 3b') legend('V_R_S(t)') xlabel('t'); ylabel('V') % Jeg hadde ikke nok minne til å plotte hele kurven figure() plot(t,vrs) title('Oppgave 3b') legend('V_R_S(t)') xlabel('t'); ylabel('V') 1 of 1 12.11.10 13:47 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\Ob...\tree.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler Rs = 70.0*10^(-3); Rd = 1000.0; Ls = 1.0*10^(-6); f = 150.0*10^3; omega = 2*pi*f; Cd = 0.05*10^(-6); Cs = 1.0/(omega^2*Ls); alpha = 13.0; Is = 0.33*10^(-9); dt = 1.0/fshigh; % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); Vc1 = zeros(n+1,1); Vc0 = zeros(n+1,1); Vr = zeros(n+1,1); q1(1,1) = Is; % Euler for i=1:n t(i+1) = t(i) + dt; q2(i+1) = -yrs(i)/Ls - (Rs/Ls)*q1(i) - q0(i)/(Ls*Cs); q1(i+1) = q1(i) + q2(i+1)*dt; q0(i+1) = q0(i) + q1(i+1)*dt; Vrs = q1(i)*Rs; Vd = Vrs-Vc0(i); Id = Is*(exp(alpha*Vd)-1); Vc1(i) = (Id/Cd)*(Vrs-Vc0(i))-(1/(Rd*Cd))*Vc0(i); Vc0(i+1)= Vc0(i)+Vc1(i)*dt; % MATLAB fikk problemer hvis jeg ikke tok dette elementvis Vr(i) = Rs*q1(i); end Vr(n) = Rs*q1(n); % Plott hold('on') p1 = plot(t(1:40000),Vr(1:40000)); set(p1,'Color','red','LineWidth',1) p2 = plot(t(1:40000),Vc0(1:40000)); set(p2,'Color','blue','LineWidth',1) title('Oppgave 3b'); legend('V_R','V_C') xlabel('t'); ylabel('V') 1 of 1 12.11.10 13:29 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\O...\trefa.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler Rs = 70.0*10^(-3); Rd = 1000.0; Ls = 1.0*10^(-6); f = 150.0*10^3; omega = 2*pi*f; Cd = 0.05*10^(-6); Cs = 1.0/(omega^2*Ls); alpha = 13.0; Is = 0.33*10^(-9); dt = 1.0/fshigh; % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); Vc1 = zeros(n+1,1); Vc0 = zeros(n+1,1); q1(1,1) = Is; % Euler for i=1:n t(i+1) = t(i) + dt; q2(i+1) = -yrs(i)/Ls - (Rs/Ls)*q1(i) - q0(i)/(Ls*Cs); q1(i+1) = q1(i) + q2(i+1)*dt; q0(i+1) = q0(i) + q1(i+1)*dt; Vrs = q1(i)*Rs; Vd = Vrs-Vc0(i); Id = Is*(exp(alpha*Vd)-1); Vc1(i) = (Id/Cd)*(Vrs-Vc0(i))-(1/(Rd*Cd))*Vc0(i); Vc0(i+1)= Vc0(i)+Vc1(i)*dt; end % Resample og spill av lyd new = resample(Vc0,10000,fshigh); soundsc(new) 1 of 1 12.11.10 13:29 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\O...\trefb.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler Rs = 70.0*10^(-3); Rd = 1000.0; Ls = 1.0*10^(-6); f = 200.0*10^3; omega = 2*pi*f; Cd = 0.05*10^(-6); Cs = 1.0/(omega^2*Ls); alpha = 13.0; Is = 0.33*10^(-9); dt = 1.0/fshigh; % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); Vc1 = zeros(n+1,1); Vc0 = zeros(n+1,1); q1(1,1) = Is; % Euler for i=1:n t(i+1) = t(i) + dt; q2(i+1) = -yrs(i)/Ls - (Rs/Ls)*q1(i) - q0(i)/(Ls*Cs); q1(i+1) = q1(i) + q2(i+1)*dt; q0(i+1) = q0(i) + q1(i+1)*dt; Vrs = q1(i)*Rs; Vd = Vrs-Vc0(i); Id = Is*(exp(alpha*Vd)-1); Vc1(i) = (Id/Cd)*(Vrs-Vc0(i))-(1/(Rd*Cd))*Vc0(i); Vc0(i+1)= Vc0(i)+Vc1(i)*dt; end % Resample og spill av lyd new = resample(Vc0,10000,fshigh); soundsc(new) 1 of 1 12.11.10 13:29 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\O...\trefc.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler Rs = 70.0*10^(-3); Rd = 1000.0; Ls = 1.0*10^(-6); f = 250.0*10^3; omega = 2*pi*f; Cd = 0.05*10^(-6); Cs = 1.0/(omega^2*Ls); alpha = 13.0; Is = 0.33*10^(-9); dt = 1.0/fshigh; % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); Vc1 = zeros(n+1,1); Vc0 = zeros(n+1,1); q1(1,1) = Is; % Euler for i=1:n t(i+1) = t(i) + dt; q2(i+1) = -yrs(i)/Ls - (Rs/Ls)*q1(i) - q0(i)/(Ls*Cs); q1(i+1) = q1(i) + q2(i+1)*dt; q0(i+1) = q0(i) + q1(i+1)*dt; Vrs = q1(i)*Rs; Vd = Vrs-Vc0(i); Id = Is*(exp(alpha*Vd)-1); Vc1(i) = (Id/Cd)*(Vrs-Vc0(i))-(1/(Rd*Cd))*Vc0(i); Vc0(i+1)= Vc0(i)+Vc1(i)*dt; end % Resample og spill av lyd new = resample(Vc0,10000,fshigh); soundsc(new) 1 of 1 12.11.10 13:29 C:\Users\Nicolai Solheim\Desktop\Obliger\FYS1120\O...\trefd.m % Hent data load('radiosignal.mat'); yrs = yRadioSignal; n = length(yrs); fshigh = FsHigh; % Definer variabler Rs = 70.0*10^(-3); Rd = 1000.0; Ls = 1.0*10^(-6); f = 300.0*10^3; omega = 2*pi*f; Cd = 0.05*10^(-6); Cs = 1.0/(omega^2*Ls); alpha = 13.0; Is = 0.33*10^(-9); dt = 1.0/fshigh; % Lag vektorer t = zeros(n+1,1); q0 = zeros(n+1,1); q1 = zeros(n+1,1); q2 = zeros(n+1,1); Vc1 = zeros(n+1,1); Vc0 = zeros(n+1,1); q1(1,1) = Is; % Euler for i=1:n t(i+1) = t(i) + dt; q2(i+1) = -yrs(i)/Ls - (Rs/Ls)*q1(i) - q0(i)/(Ls*Cs); q1(i+1) = q1(i) + q2(i+1)*dt; q0(i+1) = q0(i) + q1(i+1)*dt; Vrs = q1(i)*Rs; Vd = Vrs-Vc0(i); Id = Is*(exp(alpha*Vd)-1); Vc1(i) = (Id/Cd)*(Vrs-Vc0(i))-(1/(Rd*Cd))*Vc0(i); Vc0(i+1)= Vc0(i)+Vc1(i)*dt; end % Resample og spill av lyd new = resample(Vc0,10000,fshigh); soundsc(new) 1 of 1