kit-books

books of obscure KIT shit
git clone git://source.orangerot.dev/university/kit-books.git
Log | Files | Refs | LICENSE

commit 058b94688ac145b2e3e529f8fbdb400fbd0d6040
parent d8d7ae8c148db14b3417b9917fab0395e6386c71
Author: orangerot <orangerot@orangerot.dev>
Date:   Sat, 16 Aug 2025 14:56:53 +0200

feat(etit-es): example exercise for 3dB and Arbeitspunkt + formatting

Diffstat:
Metit-es/summary.typ | 246++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 232 insertions(+), 14 deletions(-)

diff --git a/etit-es/summary.typ b/etit-es/summary.typ @@ -1,4 +1,5 @@ #import "@preview/zap:0.2.1" +#import "@preview/cetz-plot:0.1.2": plot, chart #set columns(gutter: 5pt) #set rect(outset: 0pt) @@ -22,6 +23,15 @@ circle(pos, name: name, radius: .1, fill: white) }) } + +#let arrow(a,b,..args) = { + import zap.draw: * + line((a,.2,b), (b, .2, a), name: "line", mark: (end: (symbol: ">", fill: black))) + content("line", anchor: "east", padding: .2, ..args) +} + + + #columns(2, [ #section[ @@ -47,12 +57,16 @@ ] #grid(columns: 2 * (1fr,), align: (right, left), gutter: 10pt, - -[Parallelwiderstände], $R_1 || R_2 = 1 / (1 / R_1 + 1 / R_2)$, +[Knotenregel, $sum I = 0$], [Maschenregel $sum U = 0$], +[Parallelwiderstände], $R_1 || R_2 = 1 / (1 / R_1 + 1 / R_2) = (R_1 dot R_2) / (R_1 + R_2)$, [Spannungsteiler], $U_2 = U dot R_2 / (R_1 + R_2)$, -[Stromteiler], $I_1 = I dot = R_2 / (R_2 + R_2)$, -[3 dB-Grenzfrequenz], $f_"3dB" = 1 / (2 pi dot C dot R)$ +[Stromteiler], $I_1 = I dot R_2 / (R_1 + R_2)$, [3 dB-Grenzfrequenz], $f_"3dB" = +1 / (2 pi dot C dot R)$ ) +Übertragungsfunktion normiert: $1/(1+j omega K)$ bzw $(j omega K)/(1 + j omega K)$ \ +$omega_"3dB" = 1 / K => f_"3dB" = 1 / (2 pi K)$ +$Z_L = j omega L, Z_C = 1 / (j omega C)$ \ +$abs(H(omega)) = abs(a+b j) = sqrt(a^2 + b ^2)$ ] #colbreak() @@ -60,22 +74,27 @@ #section[ == Diode #box(zap.canvas({zap.diode("d", (0,0),(1,0))})) -$ -I = I_s dot (e^(U/U_T) -1) approx 26"mv" " mit " U_T = (k_B dot T)/mono(e) -$ +#v(-.5cm) +#grid(columns: 2 * (1fr,), align: (right, left), gutter: 10pt, +[], $" mit " U_T = (k_B dot T)/mono(e) approx 26"mv"$, +[Diodenstrom], $I_D &= I_s dot (e^(U_D/U_T) -1)$, +[Diodenspannung], $U_D &= U_T dot ln(I_D/I_S)$ , +[Kleinsignal], $r_D &= U_T / I_D$ + ) #zap.canvas({ import zap: * import zap.cetz.draw: * scale(.6) - content((-5,0), [Kleinsignalersatzschaltbild]) + content((-5,-.3), [Kleinsignalersatzschaltbild]) out("A", (0,0)) out("K", (3,0)) resistor("rd", "A", "K", label: (content: $r_D$, anchor: "south", distance: 0pt)) - translate((0.8,-2.5)) - content((-5.8,0), [Erweitertes \ Kleinsignalersatzschaltbild]) + translate((0.8,-1.5)) + content((-4.2,0), [Erweitertes Kleinsignalersatzschaltbild]) + translate((2.4,.4)) scale(.6) out("A", (0,0)) out("K", (5,0)) @@ -88,12 +107,36 @@ $ wire("CD.in", (rel: (0,-1))) wire("CD.out", (rel: (0,-1))) }) + #stack(dir: ltr,[ + #zap.cetz.canvas({ + import zap.draw: * + plot.plot(axis-style: "school-book", name: "plot", size: (2,2), x-label: $U(V)$, y-label: + $I(A)$, x-tick-step: none, y-tick-step: none, { + plot.add(domain: (-23,15), u => if (u > 0) {(u, calc.exp(u - 2))} + else {(u,-calc.exp(-u - 10))}) + plot.add-anchor("brk", (-8,0)) + plot.add-anchor("UBR", (-18,0)) + plot.add-anchor("UF", (14,0)) + }) + content("plot.brk", text(fill: black, weight: "extrabold")[\/\/]) + line((rel: (0,.2), to: "plot.UBR"), (rel: (0,-.4))) + content("plot.UBR", anchor: "south", padding: 8pt, $U_"Br" "/" U_Z$) + line((rel: (0,.2), to: "plot.UF"), (rel: (0,-.4))) + content("plot.UF", anchor: "north", padding: 8pt, $U_"F"$) + }) +],[ +$ +U_F & "Flussspannung" \ +U_"Br" "/" U_Z & "Durchbruchspannung /" \ + & "Zenerspannung " +$ +]) ] ]) #section[ -#grid(columns: 2 * (1fr,), [ +#stack(dir: ltr, spacing: 1fr, [ == Bipolartransistor #box[#zap.canvas({ import zap: * import zap.draw: * @@ -105,10 +148,11 @@ content("Q.e", "E", anchor: "west", padding: (left: 5pt)) })] #grid(columns: 2, align: (right, left), gutter: 10pt, [Steilheit], $S = I_(C,A) / U_T$, -[Kleinsignal-Eingangs-Widerstand], $r_"BE" = beta / S$ +[Kleinsignal-Eingangs-\ Widerstand], $r_"BE" = beta / S$, +[Stromverstärkung], $beta = I_C / I_B$, +[Ausgangswiderstand], $r_"CE" = (abs(U_A) + U_"CE") / I_C$, ) ],[ -#grid(columns: 2 * (1fr,), [ #figure(zap.canvas({ import zap: * import zap.cetz.draw: * @@ -137,7 +181,7 @@ capacitor("CBE", ("E"), (rel: (0,2)), stroke: red, label: (content: text(fill:re capacitor("", ("K"), (rel: (-1,0)), stroke: red) content((rel: (-1.5,0), to: "K"), text(fill: red, $C_"BC"$)) }), -caption: [#text(fill:red)[vollständiges] Kleinsignalersatzschaltbild]) +caption: [#text(fill:red)[vollständiges] \ Kleinsignalersatzschaltbild]) ], [ #figure(zap.canvas({ import zap: * @@ -163,7 +207,33 @@ diode("RBE", "B", ((), "|-", "E")) isource("SUBE", "K", ((), "|-", "E"), label: (content: $S dot u_"BE"$, distance: 1pt)) }),caption: [Großsignalersatzschaltbild]) ]) +#align(right + horizon, stack(dir: ltr, [ +#figure(zap.canvas({ +import zap: * +import zap.cetz.draw: * +scale(.7) +out("U1E", (0,0)) +out("U1A", (0,-2)) +out("U2E", (5,0)) +out("U2A", (5,-2)) +set-style(zap: (wires: (stroke: green))) +resistor("Z1", (1.5,0), (1.5,-2), stroke: green, label: (content: text(fill: green, $Z/(1-A)$), distance: 1pt)) +resistor("Z2", (5-1.5,0), (5-1.5,-2), stroke: green, label: (content: text(fill: green, $(A Z)/(A-1)$), distance: 1pt)) +wire("U1E", "Z1.in") +wire("U2E", "Z2.in") +wire("U1A", "U2A") +set-style(zap: (wires: (stroke: red))) +resistor("Z","Z1.in", "Z2.in", stroke: red, label: (content: text(fill: red, $Z$), distance: 1pt)) + +arrow("U1E", "U1A", $u_1$, anchor: "west") +arrow("U2E", "U2A", $u_2$, anchor: "west") +}),caption: [ ]) +], [ + Miller-Theorem: $A = u_2/u_1$\ + #text(fill: red)[verbundene Impedanz $Z$] wird \ + zu #text(fill: green)[zwei getrennte Impedanzen] +])) #table(columns: 3 * (1fr,), align: center, table.header([Ermitterschaltung], [Basisschaltung], [Kollektorschaltung]),[ @@ -278,6 +348,64 @@ $) ] +== Übergangsfunktion und 3dB-Grenzfrequenz + +#grid(columns: 3*(1fr,), [ +#scale(80%, reflow: true)[ +#zap.canvas({ + import zap: * + // acvsource("UE", (0,0), (1,0)) + vsource("UE", (0,0), (0,-2), u: (label:$u_e$, position: bottom)) + resistor("R1", (0,0), (3,0), label: (content: $R 1 = 250 Omega$)) + wire((3,0), (5,0)) + resistor("RL", (3,0), (3,-2), label: (content: $R_L = 500 Omega$, anchor: "south"), distance: 0pt) + inductor("L", (5,0), (5,-2), u: (label: $u_L$, position: bottom), i: $i_L$, label: (content: $L = 850 "pH"$)) + wire((0,-2), (5,-2)) +}) +] +$ +H(omega) =& u_l / u_e = (j omega L || R_2) / (R_1 + (j omega L || R_2)) \ + =& (j omega L dot R_2) / (R_1 dot R_2 + j omega L dot (R_1 + R_2)) \ + =& R_2 / (R_1 + R_2) (j omega K) / (1+j omega K) +$ +], [ +#v(.3cm) +$ +" mit " K &= L dot (R_1 + R_2) / (R_1 dot R_2) = 5,1 "ps" \ +abs(H(omega)) =& R_2 / (R_1 + R_2) (omega K) / sqrt(1 + (omega K)^2) \ + &=> f_"3dB" = omega_"3dB" / (2 pi) = 1 / ( 2 pi K) \ + & = 1 / ( 2 pi * 5,1 "ps") = 31,2 "GHz" \ +H(omega -> oo) &= R_2 / (R_1 + R_2) = 2 / 3 | 20 log(x) \ + &= -3,51 "dB" +$ +], [ +#zap.canvas({ + import zap.draw: * + plot.plot( + x-tick-step: none, y-tick-step: none, + size: (4,3), + x-label: $f " in Hz"$, + y-label: $abs(H) " in dB"$, + legend: (-1,-1), + x-min: 100, + x-max: 150000, + y-min: -40, + x-mode: "log", + x-base: 10, + y-max: 0, + x-ticks: ((100,$100 M$), (1000,$1 G$), (10000,$10 G$), (100000,$100 G$)), + y-ticks: (-40, -20, 0), { + plot.add-hline((-3.52), label: $H(omega -> oo) = -3,51 "dB"$) + plot.add-vline((31200), label: $f_"3dB" = 31,2 "GHz"$) + plot.add(((500, -40), (31200, -3.52), (150000,-3.52))) + plot.annotate({ + line((1500,-30),(6000,-30),(6000,-18)) + content((14000,-24), $20 "dB"/"Dek"$) + }) + }) +}) +]) + #section[ #grid(columns: (2fr, 3fr), [ == Feldeffekttransistor (FET) #box[#zap.canvas({ @@ -445,4 +573,94 @@ $ ]) ] +== Arbeitspunkt und Lastgerade + +#grid(columns: 3*(1fr,),[ + #scale(80%, reflow: true, [ +#zap.canvas({ + import zap: * + import zap.draw: * + + out("UEE", (0,0)) + arrow((0,0), (0,-2), $u_e$) + ground("UEA", (0,-2)) + out("", (0,-2)) + capacitor("", (0,0), (2,0)) + resistor("RG2", (2,0), (2,-2), label: (content: $R_"G2"$, anchor: "south")) + ground("", (2,-2)) + resistor("RG1", (2,3),(2,0), i: (label: $i_a$, position: bottom), label: (content: $R_"G1"$, anchor: "south")) + wire((2,0), (3,0)) + nmos("Q", (4,0.5)) + wire("Q.s", (rel: (0,-2))) + ground("", (4,-2)) + resistor("RD", (4,3), (4,1), i: $i_D$, label: (content: $R_D$)) + wire((2,3), (6,3)) + out("Ub", (6,3)) + content((6,3), anchor: "west", padding: 5pt, $U_b = 2 V$) + capacitor("", (4,1), (6,1)) + out("UAE", (6,1)) + arrow((6,1),(6,-2), $U_a$) + ground("", (6,-2)) + out("UAA", (6,-2)) +}) + ]) +],[ +$ +U_b = U_"DS1" + R_D dot I_D \ +<=> I_D = (U_b - U_"DS1") / R_D +$ +$ +P 1: I_D (U_"DS1" = 0) = U_D / R_D = 16"mA" \ +P 2: I_D (U_"DS1" = U_b = 2 V) = 0 +$ + +],[ + #v(-1cm) + #zap.canvas({ + import zap.draw: * + plot.plot(name: "plot", size: (5,5), + x-label: $U_"DS1" "in V"$, + y-label: $I_D "in mA"$, + y-tick-step: 4, + x-tick-step: .5, + y-min: 0, y-max: 16, + x-min: 0, x-max: 2.1, + { + plot.add-anchor("AP", (1,8)) + plot.add-anchor("P1", (2,0)) + plot.add(((0,16), (2,0))) + plot.add(domain: (0.00001,2.1), u => 2 * calc.log(u) + 2) + plot.add(domain: (0.00001,2.1), u => 1.5 * calc.log(u) + 5) + plot.add(domain: (0.00001,2.1), u => 1 * calc.log(u) + 8) + plot.add(domain: (0.00001,2.1), u => .5 * calc.log(u) + 11) + plot.add(domain: (0.00001,2.1), u => .2 * calc.log(u) + 14) + plot.annotate({ + content((2.7,3), anchor: "east", padding: 0, $U_"GS1" = 0,8 V$) + content((2.7,6), anchor: "east", padding: 0, $U_"GS1" = 0,9 V$) + content((2.7,9), anchor: "east", padding: 0, $U_"GS1" = 1,0 V$) + content((2.7,12), anchor: "east", padding: 0, $U_"GS1" = 1,1 V$) + content((2.7,15), anchor: "east", padding: 0, $U_"GS1" = 1,2 V$) + }) + plot.annotate({ + content((1,8), $times$) + content((1,8), anchor: "north", padding: 20pt, [AP]) + content((2,0), $times$) + content((2,0), anchor: "north", padding: 20pt, [P1]) + content((0,16), $times$) + content((0,16), anchor: "north", padding: 20pt, [P2]) + }) + }) + }) +]) +#v(-1.3cm) +$ +"Einstellen sodass " U_"GS1" = 1 V": " & R_"G1" + R_"G2" = U_D / I_D =^! (2 V) / (8"mA") = 25 k Omega \ +&R_"G1" / (R_"G1" + R_"G2") =^! U_"GS1" = 1 V \ +&R_"G2" / (R_"G1" + R_"G2") dot U_D =^! U_D - U_"GS1" = 1 V => R_"G1" = R_"G2" = +&12,5 k Omega +$ + +NOT #box(align(horizon, stack(dir:ltr, rect[1],circle(radius: 3pt)))) +AND #box(rect[&]) +OR #box(rect[$>=1$])