kit-books

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

summary.typ (18699B)


      1 #import "@preview/zap:0.2.1"
      2 #import "@preview/cetz-plot:0.1.2": plot, chart
      3 
      4 #set columns(gutter: 5pt)
      5 #set rect(outset: 0pt)
      6 #set figure(supplement: "", numbering: none)
      7 // #set block(spacing: 5pt)
      8 #let section(..args) = block(width: 100%, fill: silver, spacing: 5pt, below: 5pt, breakable: false, ..args)
      9 #set page(
     10   // columns: 2, 
     11   numbering: "1",
     12   margin: 1cm,
     13   header: rect(width: 100%, stroke: (bottom: 1pt), inset: (left: 0pt, right: 0pt))[
     14     #smallcaps[Elektronische Schaltungen]
     15     #h(1fr)
     16     Gero Beckmann
     17   ]
     18 )
     19 
     20 #let out(name, pos) = {
     21   import zap.cetz.draw: *
     22   on-layer(1, {
     23   circle(pos, name: name, radius: .1, fill: white)
     24   })
     25 }
     26 
     27 #let arrow(a,b,..args) = {
     28   import zap.draw: *
     29   line((a,.2,b), (b, .2, a), name: "line", mark: (end: (symbol: ">", fill: black)))
     30   content("line", anchor: "east", padding: .2, ..args)
     31 }
     32 
     33 
     34 
     35 #columns(2, [
     36 
     37 #section[
     38 == E 24 Reihe
     39 #{range(24)
     40   .map(n => calc.pow(calc.root(10,24),n))
     41   .map(e => str(calc.round(e, digits: 1) + calc.pow(10,-10)).slice(0,3))
     42   .join(" | ")
     43 }
     44 
     45 #let units = (
     46   ([Giga], $10^9$),
     47   ([Mega], $10^6$),
     48   ([Kilo], $10^3$),
     49   ([Milli], $10^(-3)$),
     50   ([Mikro $mu$], $10^(-6)$),
     51   ([Nano], $10^(-9)$),
     52   ([Piko], $10^(-12)$),
     53   ([Femto], $10^(-15)$),
     54 )
     55 
     56 #text(size: 8pt)[#table(columns: units.len() * (1fr,), inset: 3pt, table.header(..units.map(array.first)), ..units.map(array.last))
     57 ]
     58 
     59 #grid(columns: 2 * (1fr,), align: (right, left), gutter: 10pt,
     60 [Knotenregel, $sum I = 0$], [Maschenregel $sum U = 0$],
     61 [Parallelwiderstände], $R_1 || R_2 = 1 / (1 / R_1 + 1 / R_2) = (R_1 dot R_2) / (R_1 + R_2)$,
     62 [Spannungsteiler], $U_2 = U dot R_2 / (R_1 + R_2)$,
     63 [Stromteiler], $I_1 = I dot R_2 / (R_1 + R_2)$, [3 dB-Grenzfrequenz], $f_"3dB" =
     64 1 / (2 pi dot C dot R)$
     65 )
     66 Übertragungsfunktion normiert: $1/(1+j omega K)$ bzw $(j omega K)/(1 + j omega K)$ \
     67 $omega_"3dB" = 1 / K => f_"3dB" = 1 / (2 pi K)$
     68 $Z_L = j omega L, Z_C = 1 / (j omega C)$ \
     69 $abs(H(omega)) = abs(a+b j) = sqrt(a^2 + b ^2)$
     70 
     71 ]
     72 #colbreak()
     73 
     74 #section[
     75 == Diode #box(zap.canvas({zap.diode("d", (0,0),(1,0))}))
     76 
     77 #v(-.5cm)
     78 #grid(columns: 2 * (1fr,), align: (right, left), gutter: 10pt,
     79 [], $" mit " U_T = (k_B dot T)/mono(e) approx 26"mv"$,  
     80 [Diodenstrom], $I_D &= I_s dot (e^(U_D/U_T) -1)$,
     81 [Diodenspannung], $U_D &= U_T dot ln(I_D/I_S)$ ,
     82 [Kleinsignal], $r_D &= U_T / I_D$
     83  )
     84 
     85   #zap.canvas({
     86     import zap: *
     87     import zap.cetz.draw: *
     88 
     89     scale(.6)
     90     content((-5,-.3), [Kleinsignalersatzschaltbild])
     91     out("A", (0,0))
     92     out("K", (3,0))
     93     resistor("rd", "A", "K", label: (content: $r_D$, anchor: "south", distance: 0pt))
     94 
     95     translate((0.8,-1.5))
     96     content((-4.2,0), [Erweitertes Kleinsignalersatzschaltbild])
     97     translate((2.4,.4))
     98     scale(.6)
     99     out("A", (0,0))
    100     out("K", (5,0))
    101     resistor("RB", "A", (3,0), label: (content: $R_B$, anchor: "south", distance: 0pt))
    102     resistor("rd", (2,0), "K", label: (content: $r_D$, anchor: "south", distance: 0pt))
    103     capacitor("CD", 
    104     (rel: (0.5, 1), to: "rd.in"), 
    105     (rel: (-.5, 1), to: "K"),
    106     label: (content: $C_D$, anchor: "north", distance: 1pt))
    107     wire("CD.in", (rel: (0,-1)))
    108     wire("CD.out", (rel: (0,-1)))
    109   })
    110   #stack(dir: ltr,[
    111   #zap.cetz.canvas({
    112     import zap.draw: *
    113     plot.plot(axis-style: "school-book", name: "plot", size: (2,2), x-label: $U(V)$, y-label:
    114     $I(A)$, x-tick-step: none, y-tick-step: none, {
    115       plot.add(domain: (-23,15), u => if (u > 0) {(u, calc.exp(u - 2))}
    116       else {(u,-calc.exp(-u - 10))})
    117       plot.add-anchor("brk", (-8,0))
    118       plot.add-anchor("UBR", (-18,0))
    119       plot.add-anchor("UF", (14,0))
    120     })
    121     content("plot.brk", text(fill: black, weight: "extrabold")[\/\/])
    122     line((rel: (0,.2), to: "plot.UBR"), (rel: (0,-.4)))
    123     content("plot.UBR", anchor: "south", padding: 8pt, $U_"Br" "/" U_Z$)
    124     line((rel: (0,.2), to: "plot.UF"), (rel: (0,-.4)))
    125     content("plot.UF", anchor: "north", padding: 8pt, $U_"F"$)
    126   })
    127 ],[
    128 $
    129 U_F & "Flussspannung" \
    130 U_"Br" "/" U_Z & "Durchbruchspannung /" \
    131                & "Zenerspannung "
    132 $
    133 ])
    134 ]
    135 ])
    136 
    137 #section[
    138 
    139 #stack(dir: ltr, spacing: 1fr, [
    140 == Bipolartransistor #box[#zap.canvas({
    141 import zap: *
    142 import zap.draw: *
    143 scale(.5)
    144 pnp("Q", (0,0))
    145 content("Q.b", "B", anchor: "east", padding: (right: 5pt))
    146 content("Q.c", "C", anchor: "west", padding: (left: 5pt))
    147 content("Q.e", "E", anchor: "west", padding: (left: 5pt))
    148 })]
    149 #grid(columns: 2, align: (right, left), gutter: 10pt,
    150 [Steilheit], $S = I_(C,A) / U_T$,
    151 [Kleinsignal-Eingangs-\ Widerstand], $r_"BE" = beta / S$,
    152 [Stromverstärkung], $beta = I_C / I_B$,
    153 [Ausgangswiderstand], $r_"CE" = (abs(U_A) + U_"CE") / I_C$,
    154 )
    155 ],[
    156 #figure(zap.canvas({
    157 import zap: *
    158 import zap.cetz.draw: *
    159 scale(.7)
    160 out("UBEE", (0,0))
    161 out("UBEA", (0,-2))
    162 out("UCEE", (5,0))
    163 out("UCEA", (5,-2))
    164 
    165 node("B", (1,0))
    166 content("B", anchor: "south", padding: 5pt, [Basis])
    167 node("K", (3.5,0))
    168 content("K", anchor: "south", padding: 5pt, [Kollektor])
    169 node("E", (2.5,-2))
    170 content("E", anchor: "north", padding: 5pt, [Emitter])
    171 
    172 wire("UBEE", "B", i: "hi")
    173 wire("UCEE", "K")
    174 wire("UBEA", "UCEA")
    175 
    176 resistor("RBE", "B", ((), "|-", "E"), label: (content: $r_"BE"$, anchor: "south", distance: 0pt))
    177 isource("SUBE", "K", ((), "|-", "E"), label: (content: $S dot u_"BE"$, distance: 1pt))
    178 set-style(zap: (wires: (stroke: red)))
    179 wire("B", (2.5,0), stroke: red)
    180 capacitor("CBE", ("E"), (rel: (0,2)), stroke: red, label: (content: text(fill:red, $C_"BE"$), anchor: "west", distance: 5pt))
    181 capacitor("", ("K"), (rel: (-1,0)), stroke: red)
    182 content((rel: (-1.5,0), to: "K"), text(fill: red, $C_"BC"$))
    183 }),
    184 caption: [#text(fill:red)[vollständiges] \ Kleinsignalersatzschaltbild])
    185 ], [
    186 #figure(zap.canvas({
    187 import zap: *
    188 import zap.cetz.draw: *
    189 scale(.7)
    190 out("UBEE", (0,0))
    191 out("UBEA", (0,-2))
    192 out("UCEE", (5,0))
    193 out("UCEA", (5,-2))
    194 
    195 node("B", (1.5,0))
    196 content("B", anchor: "south", padding: 5pt, [Basis])
    197 node("K", (3.5,0))
    198 content("K", anchor: "south", padding: 5pt, [Kollektor])
    199 node("E", (2.5,-2))
    200 content("E", anchor: "north", padding: 5pt, [Emitter])
    201 
    202 wire("UBEE", "B", i: "hi")
    203 wire("UCEE", "K")
    204 wire("UBEA", "UCEA")
    205 
    206 diode("RBE", "B", ((), "|-", "E"))
    207 isource("SUBE", "K", ((), "|-", "E"), label: (content: $S dot u_"BE"$, distance: 1pt))
    208 }),caption: [Großsignalersatzschaltbild])
    209 ])
    210 #align(right + horizon, stack(dir: ltr, [
    211 #figure(zap.canvas({
    212 import zap: *
    213 import zap.cetz.draw: *
    214 scale(.7)
    215 out("U1E", (0,0))
    216 out("U1A", (0,-2))
    217 out("U2E", (5,0))
    218 out("U2A", (5,-2))
    219 set-style(zap: (wires: (stroke: green)))
    220 resistor("Z1", (1.5,0), (1.5,-2), stroke: green, label: (content: text(fill: green, $Z/(1-A)$), distance: 1pt))
    221 resistor("Z2", (5-1.5,0), (5-1.5,-2), stroke: green, label: (content: text(fill: green, $(A Z)/(A-1)$), distance: 1pt))
    222 wire("U1E", "Z1.in")
    223 wire("U2E", "Z2.in")
    224 wire("U1A", "U2A")
    225 set-style(zap: (wires: (stroke: red)))
    226 resistor("Z","Z1.in", "Z2.in", stroke: red, label: (content: text(fill: red, $Z$), distance: 1pt))
    227 
    228 arrow("U1E", "U1A", $u_1$, anchor: "west")
    229 arrow("U2E", "U2A", $u_2$, anchor: "west")
    230 }),caption: [
    231 ])
    232 ], [
    233   Miller-Theorem: $A = u_2/u_1$\
    234   #text(fill: red)[verbundene Impedanz $Z$] wird \
    235   zu #text(fill: green)[zwei getrennte Impedanzen]
    236 ]))
    237 
    238 #table(columns: 3 * (1fr,), align: center, 
    239 table.header([Ermitterschaltung], [Basisschaltung], [Kollektorschaltung]),[
    240 #set text(size: 9pt)
    241 #zap.canvas({
    242 import zap: *
    243 import zap.cetz.draw: *
    244 
    245 
    246 scale(.8)
    247 out("e", (0,0))
    248 out("a", (2.5,1))
    249 out("eg", (0,-1))
    250 out("ag", (2.5,-1))
    251 
    252 pnp("n1", (1.5,0))
    253 wire("e", "n1.b")
    254 wire("n1.c", ((), "|-", "a"), "a")
    255 wire("n1.e", ((), "|-", "ag"), "ag")
    256 wire("n1.e", ((), "|-", "eg"), "eg")
    257 
    258 scale(.3)
    259 resistor("", "n1.e", (rel: (0,-2)), stroke: red, label: (content: text(fill: red, size:8pt,$R_E$), distance: 1pt))
    260 
    261 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    262 content("line", anchor: "east", padding: .2, $U_e$)
    263 
    264 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    265 content("line", anchor: "east", padding: .2, $U_a$)
    266 })
    267 ],
    268 [ #zap.canvas({
    269 import zap: *
    270 import zap.cetz.draw: *
    271 scale(.8)
    272 out("e", (-1.25,0))
    273 out("a", (1.5,1))
    274 out("eg", (-1.25,-1))
    275 out("ag", (1.5,-1))
    276 
    277 rotate(x:180deg)
    278 rotate(z:-90deg)
    279 pnp("n1", (0,0))
    280 set-transform(none)
    281 
    282 wire("e", "n1.e")
    283 wire("n1.c", ((), "|-", "a"), "a")
    284 wire("n1.b", ((), "|-", "ag"), "ag")
    285 wire("n1.b", ((), "|-", "eg"), "eg")
    286 
    287 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    288 content("line", anchor: "east", padding: .2, $U_e$)
    289 
    290 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    291 content("line", anchor: "east", padding: .2, $U_a$)
    292 })
    293 ],[
    294 
    295 #zap.canvas({
    296 import zap: *
    297 import zap.cetz.draw: *
    298 scale(.8)
    299 out("e", (0,0))
    300 out("a", (2.5,1))
    301 out("eg", (0,-1))
    302 out("ag", (2.5,-1))
    303 
    304 rotate(x: 180deg)
    305 pnp("n1", (1.5,0))
    306 wire("e", "n1.b")
    307 wire("n1.e", ((), "|-", "a"), "a")
    308 wire("n1.c", ((), "|-", "ag"), "ag")
    309 wire("n1.c", ((), "|-", "eg"), "eg")
    310 
    311 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    312 content("line", anchor: "east", padding: .2, $U_e$)
    313 
    314 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    315 content("line", anchor: "east", padding: .2, $U_a$)
    316 })
    317 ]
    318 ,[
    319 #text(size: 8pt)[
    320   #grid(columns: 2 * (1fr,), [
    321 $
    322 A &= -S R_C \
    323 r_e &= r_"BE" \
    324 r_a &= r_"CE" || R_C
    325 $
    326   ],text(fill: red)[
    327 Stromgegen-\kopplung $
    328 A &= -R_C / R_E \
    329 r_e &= r_"BE" \
    330 r_a &= r_"CE" || R_C
    331 $
    332   ])
    333 ]
    334 ], [
    335 
    336 #text(size: 9pt, $
    337 A &= S R_C \
    338 r_e &= 1 / S \
    339 r_a &= r_"CE" || R_C
    340 $)
    341 ], [
    342 #text(size: 9pt, $
    343 A &= 1 \
    344 r_e &= r_"BE" + beta R_E \
    345 r_a &= 1 / S
    346 $)
    347 ])
    348 
    349 ]
    350 
    351 == Übergangsfunktion und 3dB-Grenzfrequenz
    352 
    353 #grid(columns: 3*(1fr,), [
    354 #scale(80%, reflow: true)[
    355 #zap.canvas({
    356   import zap: *
    357   // acvsource("UE", (0,0), (1,0))
    358   vsource("UE", (0,0), (0,-2), u: (label:$u_e$, position: bottom))
    359   resistor("R1", (0,0), (3,0), label: (content: $R 1 = 250 Omega$))
    360   wire((3,0), (5,0))
    361   resistor("RL", (3,0), (3,-2), label: (content: $R_L = 500 Omega$, anchor: "south"), distance: 0pt)
    362   inductor("L", (5,0), (5,-2), u: (label: $u_L$, position: bottom), i: $i_L$, label: (content: $L = 850 "pH"$))
    363   wire((0,-2), (5,-2))
    364 })
    365 ]
    366 $
    367 H(omega) =& u_l / u_e = (j omega L || R_2) / (R_1 + (j omega L || R_2)) \
    368          =& (j omega L dot R_2) / (R_1 dot R_2 + j omega L dot (R_1 + R_2)) \
    369          =& R_2 / (R_1 + R_2) (j omega K) / (1+j omega K) 
    370 $
    371 ], [
    372 #v(.3cm)
    373 $
    374 " mit " K &= L dot (R_1 + R_2) / (R_1 dot R_2) = 5,1 "ps" \
    375 abs(H(omega)) =& R_2 / (R_1 + R_2) (omega K) / sqrt(1 + (omega K)^2) \
    376         &=> f_"3dB" = omega_"3dB" / (2 pi) = 1 / ( 2 pi K) \
    377         & = 1 / ( 2 pi * 5,1 "ps") = 31,2 "GHz" \
    378 H(omega -> oo) &= R_2 / (R_1 + R_2) = 2 / 3 | 20 log(x) \
    379         &= -3,51 "dB"
    380 $
    381 ], [
    382 #zap.canvas({
    383   import zap.draw: *
    384   plot.plot(
    385     x-tick-step: none, y-tick-step: none,
    386     size: (4,3),
    387     x-label: $f " in Hz"$,
    388     y-label: $abs(H) " in dB"$,
    389     legend: (-1,-1),
    390     x-min: 100,
    391     x-max: 150000,
    392     y-min: -40,
    393     x-mode: "log",
    394     x-base: 10,
    395     y-max: 0,
    396     x-ticks: ((100,$100 M$), (1000,$1 G$), (10000,$10 G$), (100000,$100 G$)), 
    397     y-ticks: (-40, -20, 0), {
    398       plot.add-hline((-3.52), label: $H(omega -> oo) = -3,51 "dB"$)
    399       plot.add-vline((31200), label: $f_"3dB" = 31,2 "GHz"$)
    400       plot.add(((500, -40), (31200, -3.52), (150000,-3.52)))
    401       plot.annotate({
    402         line((1500,-30),(6000,-30),(6000,-18))
    403         content((14000,-24), $20 "dB"/"Dek"$)
    404       })
    405   })
    406 })
    407 ])
    408 
    409 #section[
    410 #grid(columns: (2fr, 3fr), [
    411 == Feldeffekttransistor (FET) #box[#zap.canvas({
    412   import zap: *
    413   import zap.draw: *
    414   scale(.5)
    415   pmos("Q", (0,0))
    416   content("Q.gl", "G", anchor: "east", padding: (right: 5pt))
    417   content("Q.d", "D", anchor: "west", padding: (left: 5pt))
    418   content("Q.s", "S", anchor: "west", padding: (left: 5pt))
    419 })]
    420 
    421 $
    422 r_"DS" = (partial U_"DS") / (partial I_D) = (abs(U_A) + U_"DS") / I_D \
    423 S = (partial I_D) / (partial U_"DS") = beta (U_"GS" - U_"th") \
    424 beta = mu dot C'_"ox" dot omega / l
    425 $
    426 ], [
    427   #grid(columns: 2 * (1fr,), align: center, [
    428     #scale(60%, reflow: true)[#table(columns: (auto, 1fr, 1fr), [], [n-Kanal], [p-Kanal],
    429     rotate(-90deg, reflow: true)[normal\ leitend], 
    430     zap.canvas({ zap.nmos("", (), mode: "depletion") }), 
    431     zap.canvas({ zap.pmos("", (), mode: "depletion") }), 
    432     rotate(-90deg, reflow: true)[normal\ sperrend], 
    433     zap.canvas({ zap.nmos("", ()) }), 
    434     zap.canvas({ zap.pmos("", ()) }), 
    435   )]
    436 ], [
    437   #figure(scale(65%, reflow: true)[
    438     #zap.canvas({
    439       import zap: *
    440       import zap.cetz.draw: *
    441       scale(.9)
    442       out("G", (0,0))
    443       content("G", "G", anchor: "east", padding: 5pt)
    444       out("S", (0,-2))
    445       content("S", "S", anchor: "east", padding: 5pt)
    446       out("D", (6,0))
    447       content("D", "D", anchor: "west", padding: 5pt)
    448       out("DA", (6,-2))
    449       node("", (4,0))
    450       node("", (2,-2))
    451       node("", (4,-2))
    452       isource("Su", (2,0), (2,-2), i: (label: [#h(.6cm)$S dot u_"GS"$], position: end + top ))
    453       resistor("", (4,0), (4,-2), label: (content: $r_"DS"$, anchor: "south", distance: 3pt))
    454       wire((2,0), "D")
    455       wire("S", "DA")
    456       line(("G",.2,"S"), ("S", .2, "G"), name: "line", mark: (end: (symbol: ">", fill: black)))
    457       content("line", anchor: "east", padding: .2, $u_"GS"$)
    458       line(("D",.2,"DA"), ("DA", .2, "D"), name: "line", mark: (end: (symbol: ">", fill: black)))
    459       content("line", anchor: "east", padding: .2, $u_"DS"$)
    460     })
    461   ], caption: [ Kleinsignalersatzschaltbild ])
    462 ])
    463 
    464 $
    465 I_D &= cases(
    466   0 & U_"GS" <= U_"th", 
    467   beta dot ((U_"GS" - U_"th") - U_"th"^2 / 2) dot (1 + U_"DS" / U_A) & "linearer Bereich",
    468   beta / 2 dot (U_"GS" - U_"th")^2 dot (1 + U_"DS" / U_A) & "Sättigungsbereich"
    469 )
    470 $
    471 ])
    472 
    473 
    474 #table(columns: 3 * (1fr,), align: center, 
    475 table.header([Source-Schaltung], [Gate-Schaltung], [Drain-Schaltung]) ,[
    476 #zap.canvas({
    477 import zap: *
    478 import zap.cetz.draw: *
    479 
    480 scale(.8)
    481 out("e", (0,0))
    482 out("a", (2.5,1))
    483 out("eg", (0,-1))
    484 out("ag", (2.5,-1))
    485 
    486 scale(.5)
    487 nmos("n1", (3,0.5))
    488 wire("e", "n1.g")
    489 wire("n1.d", ((), "|-", "a"), "a")
    490 wire("n1.s", ((), "|-", "ag"), "ag")
    491 wire("n1.s", ((), "|-", "eg"), "eg")
    492 
    493 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    494 content("line", anchor: "east", padding: .2, $U_e$)
    495 
    496 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    497 content("line", anchor: "east", padding: .2, $U_a$)
    498 })
    499 ],
    500 [
    501 #zap.canvas({
    502 import zap: *
    503 import zap.cetz.draw: *
    504 scale(.8)
    505 out("e", (-1.25,0))
    506 out("a", (1.5,1))
    507 out("eg", (-1.25,-1))
    508 out("ag", (1.5,-1))
    509 
    510 rotate(x:180deg)
    511 rotate(z:-90deg)
    512 scale(.5)
    513 nmos("n1", (0,0))
    514 set-transform(none)
    515 
    516 wire("e", "n1.s")
    517 wire("n1.d", ((), "|-", "a"), "a")
    518 wire("n1.g", ((), "|-", "ag"), "ag")
    519 wire("n1.g", ((), "|-", "eg"), "eg")
    520 
    521 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    522 content("line", anchor: "east", padding: .2, $U_e$)
    523 
    524 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    525 content("line", anchor: "east", padding: .2, $U_a$)
    526 })
    527 ], [
    528 #zap.canvas({
    529 import zap: *
    530 import zap.cetz.draw: *
    531 scale(.8)
    532 out("e", (0,0))
    533 out("a", (2.5,1))
    534 out("eg", (0,-1))
    535 out("ag", (2.5,-1))
    536 
    537 rotate(x: 180deg)
    538 scale(.5)
    539 nmos("n1", (3,.5))
    540 wire("e", "n1.g")
    541 wire("n1.s", ((), "|-", "a"), "a")
    542 wire("n1.d", ((), "|-", "ag"), "ag")
    543 wire("n1.d", ((), "|-", "eg"), "eg")
    544 
    545 line(("e",.2,"eg"), ("eg", .2, "e"), name: "line", mark: (end: (symbol: ">", fill: black)))
    546 content("line", anchor: "east", padding: .2, $U_e$)
    547 
    548 line(("a",.2,"ag"), ("ag", .2, "a"), name: "line", mark: (end: (symbol: ">", fill: black)))
    549 content("line", anchor: "east", padding: .2, $U_a$)
    550 })
    551 ],
    552 [
    553 #text(size: 9pt, $
    554 r_e &= oo \
    555 r_a &= R_D || r_"DS" \
    556 A &= -S dot (R_D || r_"DS")
    557 $)
    558 
    559 ] ,[
    560 #text(size: 9pt, $
    561 r_e &= 1/S \
    562 r_a &= R_D || r_"DS" \
    563 A &= S dot (R_D || r_"DS")
    564 $)
    565 ], [
    566 #text(size: 9pt, 
    567 $
    568 r_e &= oo \
    569 r_a &= 1 / S || R_S \
    570 A &= (S dot R_S) / (1 + S dot R_S)
    571 $
    572 )
    573 ])
    574 ]
    575 
    576 == Arbeitspunkt und Lastgerade
    577 
    578 #grid(columns: 3*(1fr,),[
    579   #scale(80%, reflow: true, [
    580 #zap.canvas({
    581   import zap: *
    582   import zap.draw: *
    583   
    584   out("UEE", (0,0))
    585   arrow((0,0), (0,-2), $u_e$)
    586   ground("UEA", (0,-2))
    587   out("", (0,-2))
    588   capacitor("", (0,0), (2,0))
    589   resistor("RG2", (2,0), (2,-2), label: (content: $R_"G2"$, anchor: "south"))
    590   ground("", (2,-2))
    591   resistor("RG1", (2,3),(2,0), i: (label: $i_a$, position: bottom), label: (content: $R_"G1"$, anchor: "south"))
    592   wire((2,0), (3,0))
    593   nmos("Q", (4,0.5))
    594   wire("Q.s", (rel: (0,-2)))
    595   ground("", (4,-2))
    596   resistor("RD", (4,3), (4,1), i: $i_D$, label: (content: $R_D$))
    597   wire((2,3), (6,3))
    598   out("Ub", (6,3))
    599   content((6,3), anchor: "west", padding: 5pt, $U_b = 2 V$)
    600   capacitor("", (4,1), (6,1))
    601   out("UAE", (6,1))
    602   arrow((6,1),(6,-2), $U_a$)
    603   ground("", (6,-2))
    604   out("UAA", (6,-2))
    605 })
    606   ])
    607 ],[
    608 $
    609 U_b = U_"DS1" + R_D dot I_D \
    610 <=> I_D = (U_b - U_"DS1") / R_D
    611 $
    612 $
    613 P 1: I_D (U_"DS1" = 0) = U_D / R_D = 16"mA" \
    614 P 2: I_D (U_"DS1" = U_b = 2 V) = 0
    615 $
    616 
    617 ],[
    618   #v(-1cm)
    619   #zap.canvas({
    620     import zap.draw: *
    621     plot.plot(name: "plot", size: (5,5), 
    622     x-label: $U_"DS1" "in V"$,
    623     y-label: $I_D "in mA"$,
    624     y-tick-step: 4,
    625     x-tick-step: .5,
    626     y-min: 0, y-max: 16,
    627     x-min: 0, x-max: 2.1,
    628     {
    629       plot.add-anchor("AP", (1,8))
    630       plot.add-anchor("P1", (2,0))
    631       plot.add(((0,16), (2,0)))
    632       plot.add(domain: (0.00001,2.1), u => 2 * calc.log(u) + 2)
    633       plot.add(domain: (0.00001,2.1), u => 1.5 * calc.log(u) + 5)
    634       plot.add(domain: (0.00001,2.1), u => 1 * calc.log(u) + 8)
    635       plot.add(domain: (0.00001,2.1), u => .5 * calc.log(u) + 11)
    636       plot.add(domain: (0.00001,2.1), u => .2 * calc.log(u) + 14)
    637       plot.annotate({
    638         content((2.7,3),  anchor: "east", padding: 0, $U_"GS1" = 0,8 V$)
    639         content((2.7,6),  anchor: "east", padding: 0, $U_"GS1" = 0,9 V$)
    640         content((2.7,9),  anchor: "east", padding: 0, $U_"GS1" = 1,0 V$)
    641         content((2.7,12), anchor: "east", padding: 0, $U_"GS1" = 1,1 V$)
    642         content((2.7,15), anchor: "east", padding: 0, $U_"GS1" = 1,2 V$)
    643       })
    644       plot.annotate({
    645         content((1,8), $times$)
    646         content((1,8), anchor: "north", padding: 20pt, [AP])
    647         content((2,0), $times$)
    648         content((2,0), anchor: "north", padding: 20pt, [P1])
    649         content((0,16), $times$)
    650         content((0,16), anchor: "north", padding: 20pt, [P2])
    651       })
    652     })
    653   })
    654 ])
    655 #v(-1.3cm)
    656 $
    657 "Einstellen sodass " U_"GS1" = 1 V": " & R_"G1" + R_"G2" = U_D / I_D =^! (2 V) / (8"mA") = 25 k Omega \
    658 &R_"G1" / (R_"G1" + R_"G2") =^! U_"GS1" = 1 V \
    659 &R_"G2" / (R_"G1" + R_"G2") dot U_D =^! U_D - U_"GS1" = 1 V => R_"G1" = R_"G2" =
    660 &12,5 k Omega
    661 $
    662 
    663 NOT #box(align(horizon, stack(dir:ltr, rect[1],circle(radius: 3pt))))
    664 AND #box(rect[&])
    665 OR #box(rect[$>=1$])
    666