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