diff --git a/src/cheatsheets/Digitaltechnik.typ b/src/cheatsheets/Digitaltechnik.typ index 8958d3e..5deae01 100644 --- a/src/cheatsheets/Digitaltechnik.typ +++ b/src/cheatsheets/Digitaltechnik.typ @@ -590,7 +590,41 @@ $P_"dyn"~ V_"DD"^2$ + *Dynamisch:* Bei Schlaten \ + 1. Kapazitiv Verlustleistung $I_C$ \ + 2. Querstrom Verlustleistung $I_Q$ \ + + #zap.circuit({ + import zap : * + import cetz.draw : content + import "../lib/circuit.typ" : * + + set-style(wire: (stroke: (thickness: 0.025))) + + registerAllCustom(); + fet("N0", (0,0), type: "N", angle: 90deg); + fet("P0", (0,1), type: "P", angle: 90deg); + wire("N0.G", (rel: (-0.1, 0)), (horizontal: (), vertical: "P0.G"), "P0.G") + + node("outNode", (0,0.5)) + node("inNode", (-0.6,0.5)) + wire((-1, 0.5), "inNode") + wire((0.5, 0.5), "outNode") + wire((0, -0.5), (0, -1)) + + node("N2", (0,-1)) + node("N2", (0,1.5)) + + wire((-1, -1), (0.5, -1)) + wire((-1, 1.5), (0.5, 1.5)) + + content((-1, 0.5), scale($"X"$, 60%), anchor: "east") + content((0.8, 0.5), scale($overline("X")$, 60%), anchor: "east") + content((-0.9, 1.5), scale($"U"_"DD"$, 60%), anchor: "east") + content((-0.9, -1), scale($"GND"$, 60%), anchor: "east") + }), + - Quer/Kurzschluss Strom $i_q$ \ $P_"short" = a_01 f beta_n tau (V_"DD" - 2 V_"Tn")^3$ \ $tau$: Kurzschluss/Schaltzeit @@ -599,14 +633,18 @@ *Statisch:* Konstant - Leckstom (weil Diode) - Gatestrom + ] + + #bgBlock(fill: colorRealsierung)[ + #subHeading(fill: colorRealsierung)[Verlustleistung] + + $alpha = "#Schaltvorgänge"/"#Takte (#Clk Flanken)"$ - *Schaltrate* - - $alpha_"clk" = 100%$ - - $alpha_"logic" = 50%$ + $P_"cap" = alpha dot f_"clk" dot C dot U_"DD"$ ] + + #SIPrefixesTable ] #place(bottom, diff --git a/src/cheatsheets/Schaltungstheorie.typ b/src/cheatsheets/Schaltungstheorie.typ index 95a31e4..eb03da3 100644 --- a/src/cheatsheets/Schaltungstheorie.typ +++ b/src/cheatsheets/Schaltungstheorie.typ @@ -1,42 +1,42 @@ #import "@preview/mannot:0.3.1" #import "@preview/zap:0.5.0" -#import "@preview/cetz:0.4.2" : * +#import "@preview/cetz:0.4.2": * #import "@preview/cetz-plot:0.1.3" -#import "@preview/unify:0.7.1": num,qty,unit +#import "@preview/unify:0.7.1": num, qty, unit #import "@preview/cetz-plot:0.1.3" -#import "../lib/schaltungstheorie/opampTable.typ" : * +#import "../lib/schaltungstheorie/opampTable.typ": * #import "../lib/schaltungstheorie/tumCustomSymbols.typ" as tumSymbols -#import "../lib/circuit.typ" : * -#import "../lib/common_rewrite.typ" : * -#import "../lib/circuit.typ" : * +#import "../lib/circuit.typ": * +#import "../lib/common_rewrite.typ": * +#import "../lib/circuit.typ": * -#set math.mat(delim: "[") +#set math.mat(delim: "[") #show math.equation.where(block: true): it => math.inline(it) -#set math.mat(delim: "[") +#set math.mat(delim: "[") #show math.integral: it => math.limits(math.integral) #show math.sum: it => math.limits(math.sum) #let jVec(x) = $bold(underline(#x))$ #let jMat(x) = $bold(#x)$ #set page( - paper: "a4", + paper: "a4", margin: ( bottom: 10mm, top: 5mm, left: 5mm, - right: 5mm + right: 5mm, ), - flipped:true, + flipped: true, footer: context [ #grid( align: center, columns: (1fr, 1fr, 1fr), - [#align(left, datetime.today().display("[day].[month].[year]"))], - [#align(center, counter(page).display("– 1 –"))], - [#align(right, image("../images/cc0.png", height: 5mm,))] + [#align(left, datetime.today().display("[day].[month].[year]"))], + [#align(center, counter(page).display("– 1 –"))], + [#align(right, image("../images/cc0.png", height: 5mm))], ) ], ) @@ -49,8 +49,8 @@ #let colorComplexAC = color.hsl(356.92deg, 92.13%, 75.1%) #let colorMathe = color.hsl(34.87deg, 92.13%, 75.1%) -#place(top+center, scope: "parent", float: true, heading( - [Schaltungstheorie] +#place(top + center, scope: "parent", float: true, heading( + [Schaltungstheorie], )) #columns(4, gutter: 2mm)[ @@ -66,53 +66,61 @@ *Kirchhoff* - #grid(columns: (1fr, 1fr), row-gutter: 5mm, [ - KCL: $sum_(k=1)^n i_k =0$ (Knotenregel) - ], [ - #cetz.canvas(length: 8mm, { - import cetz.draw: * + #grid( + columns: (1fr, 1fr), + row-gutter: 5mm, + [ + KCL: $sum_(k=1)^n i_k =0$ (Knotenregel) + ], + [ + #cetz.canvas(length: 8mm, { + import cetz.draw: * - circle((0, 0),radius: 1) + circle((0, 0), radius: 1) - line((angle: 0deg, radius: 0.2), (angle: 0deg, radius: 1.5), stroke: red) - line((angle: 120deg, radius: 1.5), (angle: 120deg, radius: 0.2), stroke: red) - line((angle: 240deg, radius: 1.5), (angle: 240deg, radius: 0.2), stroke: red) + line((angle: 0deg, radius: 0.2), (angle: 0deg, radius: 1.5), stroke: red) + line((angle: 120deg, radius: 1.5), (angle: 120deg, radius: 0.2), stroke: red) + line((angle: 240deg, radius: 1.5), (angle: 240deg, radius: 0.2), stroke: red) - set-style(mark: (end: ("straight"))) - line((angle: 0deg, radius: 0.2), (angle: 0deg, radius: 0.8), stroke: red) - line((angle: 120deg, radius: 1.2), (angle: 120deg, radius: 0.4), stroke: red) - line((angle: 240deg, radius: 1.2), (angle: 240deg, radius: 0.4), stroke: red) - }) - ], [ - KVL: $sum_(k=1)^n u_k =0$ (Maschenregel) - ], [ - #zap.circuit({ - import zap: wire - import cetz.draw: * + set-style(mark: (end: "straight")) + line((angle: 0deg, radius: 0.2), (angle: 0deg, radius: 0.8), stroke: red) + line((angle: 120deg, radius: 1.2), (angle: 120deg, radius: 0.4), stroke: red) + line((angle: 240deg, radius: 1.2), (angle: 240deg, radius: 0.4), stroke: red) + }) + ], - registerAllCustom(); + [ + KVL: $sum_(k=1)^n u_k =0$ (Maschenregel) + ], + [ + #zap.circuit({ + import zap: wire + import cetz.draw: * - einTor("F1", (0, -1), (0, 1)) - einTor("F2", (1.5, 0), (1.5, 1), flip: true) - einTor("F3", (1.5, 0), (1.5, -1), flip: true) - wire((0, -1), (1.5, -1)) - wire((0, 1), (1.5, 1)) + registerAllCustom() - translate((0.75, 0)) - circle((0, 0), radius: 4mm, stroke: blue) - translate((0, 1mm)) - mark((angle: 180deg, radius: 4mm), 90deg, symbol: "straight", stroke: blue, scale: 0.75) - translate((0, -2mm)) - mark((angle: 0deg, radius: 4mm), 270deg, symbol: "straight", stroke: blue, scale: 0.75) - }) - ]) + einTor("F1", (0, -1), (0, 1)) + einTor("F2", (1.5, 0), (1.5, 1), flip: true) + einTor("F3", (1.5, 0), (1.5, -1), flip: true) + wire((0, -1), (1.5, -1)) + wire((0, 1), (1.5, 1)) + + translate((0.75, 0)) + circle((0, 0), radius: 4mm, stroke: blue) + translate((0, 1mm)) + mark((angle: 180deg, radius: 4mm), 90deg, symbol: "straight", stroke: blue, scale: 0.75) + translate((0, -2mm)) + mark((angle: 0deg, radius: 4mm), 270deg, symbol: "straight", stroke: blue, scale: 0.75) + }) + ], + ) $u dot i > 0$: Nimmt Energie auf\ $u dot i = 0$: Verlustlos\ $u dot i < 0$: Gibt Energie ab\ ] - + // Eintrag #bgBlock(fill: colorAllgemein)[ #subHeading(fill: colorAllgemein)[Verschaltung] @@ -126,59 +134,46 @@ columns: (1fr, 1fr), fill: (x, y) => if calc.rem(x, 2) == 1 { tableFillLow } else { tableFillHigh }, - [*Serie*], - [*Reihe/Parrallel*], - - - align( - horizon+center, - scale(100%, - zap.circuit({ - import zap : * + [*Serie*], [*Reihe/Parrallel*], - resistor("R1", (0,0.375), (1.5,0.375), fill: none, width: 1, height: 0.4) - resistor("R2", (1.5,0.375), (3,0.375), fill: none, width: 1, height: 0.4) - }) - ) + align( + horizon + center, + scale(100%, zap.circuit({ + import zap: * + + resistor("R1", (0, 0.375), (1.5, 0.375), fill: none, width: 1, height: 0.4) + resistor("R2", (1.5, 0.375), (3, 0.375), fill: none, width: 1, height: 0.4) + })), ), align( - horizon+center, + horizon + center, scale( 100%, zap.circuit({ - import zap : * + import zap: * - resistor("R1", (0,0), (2,0), fill: none, width: 1, height: 0.4) - resistor("R2", (0,0.75), (2,0.75), fill: none, width: 1, height: 0.4) + resistor("R1", (0, 0), (2, 0), fill: none, width: 1, height: 0.4) + resistor("R2", (0, 0.75), (2, 0.75), fill: none, width: 1, height: 0.4) wire("R1.in", "R2.in") wire("R1.out", "R2.out") - node("N2", (0,0.375)) - node("N3", (2,0.375)) + node("N2", (0, 0.375)) + node("N3", (2, 0.375)) wire("N2", (rel: (-0.3, 0))) wire("N3", (rel: (0.3, 0))) }), - ) + ), ), + $R_"ges" = R_1+R_2$, $R_"ges" = R_1 parallel R_2$, + $G_"ges" = G_1 parallel G_2$, $G_"ges" = G_1 + G_2$, + $L_"ges" = L_1 + L_2$, $L_"ges" = L_1 parallel L_2$, + $C_"ges" = C_1 parallel C_2$, $C_"ges" = C_1 + C_2$, - - $R_"ges" = R_1+R_2$, - $R_"ges" = R_1 parallel R_2$, - $G_"ges" = G_1 parallel G_2$, - $G_"ges" = G_1 + G_2$, - $L_"ges" = L_1 + L_2$, - $L_"ges" = L_1 parallel L_2$, - $C_"ges" = C_1 parallel C_2$, - $C_"ges" = C_1 + C_2$, - - $U_"ges" = U_1 + U_2$, - $U_"ges" = U_1 = U_2$, - $I_"ges" = I_1 = I_2$, - $I_"ges" = I_1 + I_2$, - [In $U$-Richtung Addieren], - [In $I$-Richtung Addieren], + $U_"ges" = U_1 + U_2$, $U_"ges" = U_1 = U_2$, + $I_"ges" = I_1 = I_2$, $I_"ges" = I_1 + I_2$, + [In $U$-Richtung Addieren], [In $I$-Richtung Addieren], ) ] @@ -191,11 +186,15 @@ column-gutter: 3mm, zap.circuit({ import zap: * - registerAllCustom(); - einTor("F1", (0,0), (2,0), i: (content: $i_(cal(F),1)$, anchor: "south-east", label-distance: -10pt), - u: $u_1$ + registerAllCustom() + einTor( + "F1", + (0, 0), + (2, 0), + i: (content: $i_(cal(F),1)$, anchor: "south-east", label-distance: -10pt), + u: $u_1$, ) - einTor("F1", (0,0), (2,0), i: (content: $i_(cal(F),2)$, anchor: "west", label-distance: -10pt, invert: true)) + einTor("F1", (0, 0), (2, 0), i: (content: $i_(cal(F),2)$, anchor: "west", label-distance: -10pt, invert: true)) }), [ Tor-Bedinung:\ @@ -209,21 +208,31 @@ #subHeading(fill: colorEineTore)[Lineare Quelle] #align( - center+horizon, + center + horizon, cetz.canvas({ import cetz.draw: * import cetz-plot: * - plot.plot(size: (3, 3), name: "plot", - axis-style: "school-book", - x-label: "u", y-label: "i", - x-tick-step: none, y-tick-step: none, - axes: ("u", "i"), - x-min: -1, x-max: 2, x-grid: "both", - y-min: -2, y-max: 1, y-grid: "both", { - plot.add(((-2, -3), (3,2))) - plot.add-anchor("u0", (1,0)) - plot.add-anchor("i0", (0,-1)) - }) + plot.plot( + size: (3, 3), + name: "plot", + axis-style: "school-book", + x-label: "u", + y-label: "i", + x-tick-step: none, + y-tick-step: none, + axes: ("u", "i"), + x-min: -1, + x-max: 2, + x-grid: "both", + y-min: -2, + y-max: 1, + y-grid: "both", + { + plot.add(((-2, -3), (3, 2))) + plot.add-anchor("u0", (1, 0)) + plot.add-anchor("i0", (0, -1)) + }, + ) content("plot.u0", $U_0$, anchor: "south", padding: .2) content("plot.i0", $-I_0$, anchor: "east", padding: .2) @@ -231,32 +240,47 @@ mark("plot.u0", 0deg, symbol: "+", fill: black) mark("plot.i0", 0deg, symbol: "+", fill: black) - line("plot.i0", (horizontal: "plot.u0", vertical: "plot.i0"), "plot.u0", stroke: (dash: "dashed", paint: rgb("#005c00"))) + line( + "plot.i0", + (horizontal: "plot.u0", vertical: "plot.i0"), + "plot.u0", + stroke: (dash: "dashed", paint: rgb("#005c00")), + ) - content((horizontal: "plot.u0", vertical: "plot.i0"), anchor: "south-west", text(rgb("#005c00"))[$R$], padding: 0.1) - }) + content( + (horizontal: "plot.u0", vertical: "plot.i0"), + anchor: "south-west", + text(rgb("#005c00"))[$R$], + padding: 0.1, + ) + }), ) $U_0$: LL-Spannung ($i = 0 => u = U_0$) \ $I_0$: KS-Strom ($u = 0 => i = -I_0$) - $R_i$: Innenwiderstand $R_i = U_0/I_0$ + $R_i$: Innenwiderstand $R_i = U_0/I_0$ #table( columns: (1fr, 1fr), fill: (x, y) => if calc.rem(x, 2) == 1 { tableFillLow } else { tableFillHigh }, inset: 3mm, - align(center, [*$u$-gesteuert*]), - align(center, [*$i$-gesteuert*]), - + align(center, [*$u$-gesteuert*]), align(center, [*$i$-gesteuert*]), + align( - horizon+center, + horizon + center, zap.circuit({ - import zap : * + import zap: * import cetz.draw zap.resistor("R1", (1, 0), (1, -1.5), fill: none, width: 0.8, height: 0.3) - zap.isource("I0", (0, 0), (0, -1.5), fill: none, scale: 0.6, i: (content: $-I_0$, distance: 6pt, label-distance: -11pt, anchor: "west", invert: true)) + zap.isource("I0", (0, 0), (0, -1.5), fill: none, scale: 0.6, i: ( + content: $-I_0$, + distance: 6pt, + label-distance: -11pt, + anchor: "west", + invert: true, + )) node("N0", "R1.in") node("N0", "R1.out") @@ -268,25 +292,33 @@ cetz.draw.set-style(mark: (end: ">", fill: black, scale: 0.6)) cetz.draw.content((1.7, -0.75), [$u$]) cetz.draw.line((1.5, -0.1), (1.5, -1.4), stroke: 0.5pt) - }) + }), ), align( - horizon+center, + horizon + center, zap.circuit({ - import zap : * + import zap: * import cetz.draw - zap.vsource("U0", (0, 0), (0, -1.5), fill: none, scale: 0.6, u: (content: $U_0$, distance: -4pt, label-distance: -8pt, anchor: "south-west", invert: true)) - zap.resistor("R1", (0, 0), (1.75, 0), fill: none, width: 0.8, height: 0.3, - i: (content: $i$, invert: true, distance: 0.3) - ) + zap.vsource("U0", (0, 0), (0, -1.5), fill: none, scale: 0.6, u: ( + content: $U_0$, + distance: -4pt, + label-distance: -8pt, + anchor: "south-west", + invert: true, + )) + zap.resistor("R1", (0, 0), (1.75, 0), fill: none, width: 0.8, height: 0.3, i: ( + content: $i$, + invert: true, + distance: 0.3, + )) wire((0, -1.5), (1.75, -1.5)) - + cetz.draw.content((0.62, -0.75), [$R_i$]) cetz.draw.set-style(mark: (end: ">", fill: black, scale: 0.6)) cetz.draw.content((1.95, -0.75), [$u$]) cetz.draw.line((1.75, -0.1), (1.75, -1.4), stroke: 0.5pt) - }) + }), ), [ @@ -297,11 +329,9 @@ $i = G_i u - I_0$ ], - align(center, text(size: 7mm, $-->$)), - [$G_i = 1/R_i \ I_0 = U_0 G_i$], + align(center, text(size: 7mm, $-->$)), [$G_i = 1/R_i \ I_0 = U_0 G_i$], - [$R_i = 1/G_i \ U_0 = I_0 R_i$], - align(center, text(size: 7mm, $<--$)), + [$R_i = 1/G_i \ U_0 = I_0 R_i$], align(center, text(size: 7mm, $<--$)), ) ] @@ -358,7 +388,7 @@ })), [ $U_0 = I_0 R_i$ - + $R_i=1/G_i$ $u = r(i) = R_i i + U_0$ @@ -377,359 +407,329 @@ // Bauelemente #bgBlock(fill: colorEineTore)[ #subHeading(fill: colorEineTore)[Bauelemente] - #table( - columns: (1fr, 1fr, 1fr ), + #table( + columns: (1fr, 1fr, 1fr), stroke: none, align: center, - table.header([*Zeichen*],[*Gleichung*], [*Abbildung*]), + table.header([*Zeichen*], [*Gleichung*], [*Abbildung*]), // Dioden :// - // + // // ideale Diode - [ - ideale Diode - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - diode("b1", (0, 0), (1., 0), stroke: black, fill: white) - - })) + [ + ideale Diode + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + diode("b1", (0, 0), (1., 0), stroke: black, fill: white) + })) ], - [ + [ $u=0$ falls $i>0$ $i=0$ falls $u<0$ ], [ - /* - #scale(x: 50%, y: 50%, - cetz.canvas({ - import cetz.draw: * - line((-1.5, 0), (1.5, 0), mark: (end: "straight")) - line((0, -1.5), (0, 1.5), mark: (end: "straight")) + /* + #scale(x: 50%, y: 50%, + cetz.canvas({ + import cetz.draw: * + line((-1.5, 0), (1.5, 0), mark: (end: "straight")) + line((0, -1.5), (0, 1.5), mark: (end: "straight")) - content( (1.55, 0), $u$, anchor: "west") - content( (0.15, 1.4), $i$, anchor: "west") + content( (1.55, 0), $u$, anchor: "west") + content( (0.15, 1.4), $i$, anchor: "west") - line((-1.5, 0), (0, 0), stroke: red) // u = 0 - line((0, 0), (0, 1.35), stroke: red) // i = 0 + line((-1.5, 0), (0, 0), stroke: red) // u = 0 + line((0, 0), (0, 1.35), stroke: red) // i = 0 - })) - */ - #scale(x: 75%, y: 75%, - cetz.canvas({ + })) + */ + #scale(x: 75%, y: 75%, cetz.canvas({ import cetz.draw: * import cetz-plot: * - let opts = (x-tick-step: none, y-tick-step: none, size: (2,1), x-label: [u], y-label: [i]) + let opts = (x-tick-step: none, y-tick-step: none, size: (2, 1), x-label: [u], y-label: [i]) - plot.plot(axis-style: "school-book", ..opts, name: "plot", - { - plot.add(((-1,0), (0,0),), style: (stroke: red)) - plot.add(((0,0), (0,1),), style: (stroke: red)) - } - ) - })) + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + plot.add(((-1, 0), (0, 0)), style: (stroke: red)) + plot.add(((0, 0), (0, 1)), style: (stroke: red)) + }) + })) ], //table.hline(start: 1, end: 2), - - // reale/pn Diode - [ - reale/pn Diode - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - diode("b1", (0, 0), (1., 0), stroke: black, fill: black) - })) + // reale/pn Diode + [ + reale/pn Diode + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + diode("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) ], - [ + [ $u_D = u_T*ln((i_D/I_S)+1)$ - $i_D = I_S*(e^(u_D/U_T)-1)$ + $i_D = I_S*(e^(u_D/U_T)-1)$ ], [ - #scale(x: 75%, y: 75%, - cetz.canvas({ + #scale(x: 75%, y: 75%, cetz.canvas({ import cetz.draw: * import cetz-plot: * - let opts = (x-tick-step: none, y-tick-step: none, size: (2,1), x-label: [u], y-label: [i]) - let data = plot.add(x => calc.exp(x)-1, - domain: (-2, 2), style: (stroke: red)) + let opts = (x-tick-step: none, y-tick-step: none, size: (2, 1), x-label: [u], y-label: [i]) + let data = plot.add(x => calc.exp(x) - 1, domain: (-2, 2), style: (stroke: red)) plot.plot(axis-style: "school-book", ..opts, data, name: "plot") - })) + })) ], // Photodiode - [ - Photodiode - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - photodiode("b1", (0, 0), (1., 0), stroke: black, fill: black) - })) - ], - [ - $i = I_S*(e^(u_D/U_T)-1)- i_L$ + [ + Photodiode + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + photodiode("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) ], [ - #scale(x: 75%, y: 75%, - cetz.canvas({ + $i = I_S*(e^(u_D/U_T)-1)- i_L$ + ], + [ + #scale(x: 75%, y: 75%, cetz.canvas({ import cetz.draw: * import cetz-plot: * - let opts = (x-tick-step: none, y-tick-step: none, size: (2,1), x-label: [u], y-label: [i]) + let opts = (x-tick-step: none, y-tick-step: none, size: (2, 1), x-label: [u], y-label: [i]) - plot.plot(axis-style: "school-book", ..opts, name: "plot", - { - plot.add(x => calc.exp(x)-1, - domain: (-2, 2), style: (stroke: red)) - - plot.add(x => calc.exp(x)-2, - domain: (-2, 2), style: (stroke: red)) - - plot.add(x => calc.exp(x)-3, - domain: (-2, 2), style: (stroke: red)) - } + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + plot.add(x => calc.exp(x) - 1, domain: (-2, 2), style: (stroke: red)) - ) - })) + plot.add(x => calc.exp(x) - 2, domain: (-2, 2), style: (stroke: red)) + + plot.add(x => calc.exp(x) - 3, domain: (-2, 2), style: (stroke: red)) + }) + })) ], // Zenerdiode - [ - Zenerdiode - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - zener("b1", (0, 0), (1., 0), stroke: black, fill: black) - })) + [ + Zenerdiode + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + zener("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) ], - [ + [ Durchbruch bei $u=U_Z$ : $u<=U_Z$ stark leitend ], - [ - + [ + ], // Tunneldiode - [ - Tunneldiode - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - tunnel("b1", (0, 0), (1., 0), stroke: black, fill: black) - })) + [ + Tunneldiode + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + tunnel("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) ], [ ], [ - + ], // Quellen: // // Spannungs-quelle [ Spannungs-quelle - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - vsource( - "b1", - (0, 0), - (1.75, 0) - ) - })) + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + vsource( + "b1", + (0, 0), + (1.75, 0), + ) + })) ], [ ], [ - + ], // Strom-quelle [ Strom-quelle - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - isource( - "b1", - (0, 0), - (1.75, 0) - ) - })) + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + isource( + "b1", + (0, 0), + (1.75, 0), + ) + })) ], [ ], [ - + ], // Wiederstand [ - Wiederstand - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - resistor( - "b1", - (0, 0), - (2, 0) - ) - })) + Wiederstand + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + resistor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], // Induktivität [ - Induktivität - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - inductor( - "b1", - (0, 0), - (2, 0), - variant: "ieee" - ) - })) + Induktivität + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + inductor( + "b1", + (0, 0), + (2, 0), + variant: "ieee", + ) + })) ], [ ], [ - + ], // Kapazität [ - Kapazität - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - capacitor( - "b1", - (0, 0), - (2, 0) - ) - })) + Kapazität + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], // Kurzschluss [ - Kurzschluss - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - capacitor( - "b1", - (0, 0), - (2, 0) - ) - })) + Kurzschluss + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], // Leerlauf [ - Leerlauf - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - capacitor( - "b1", - (0, 0), - (2, 0) - ) - })) + Leerlauf + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], // Nullator [ - Nullator - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - capacitor( - "b1", - (0, 0), - (2, 0) - ) - })) + Nullator + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], // Norator [ - Norator - #scale(x: 100%, y: 100%, - zap.circuit({ - import zap : * - import cetz.draw : line, content - capacitor( - "b1", - (0, 0), - (2, 0) - ) - })) + Norator + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) ], [ ], [ - + ], - - ); - - + + ] // Graphen und Matrizen @@ -739,9 +739,9 @@ $bold(i_b)$ (oder $bold(i)$): Zweigstrom-Vektor \ $bold(u_b)$ (oder $bold(u)$): Zweigspannungs-Vektor \ $bold(i_m)$ : Maschenstrom-Vektor \ - #text(rgb(20%, 20%, 20%))[(Strom in einer viruellen Masche)] \ + #text(rgb(20%, 20%, 20%))[(Strom in einer viruellen Masche)] \ $bold(u_k)$ : Kontenspannungs-Vektor \ - #text(rgb(20%, 20%, 20%))[(Spannung zwischen Referenzknoten und Knoten k)] \ + #text(rgb(20%, 20%, 20%))[(Spannung zwischen Referenzknoten und Knoten k)] \ #line(length: 100%, stroke: (thickness: 0.2mm)) @@ -749,42 +749,42 @@ $bold(A) : bold(i_k) -> text("Knotenstrombilanz") = 0$ \ $bold(A^T) : bold(u_b)-> bold(u_k)$ - $ - bold(A) = quad mannot.mark(mat( - a_11, a_12, ..., a_(1m); - a_21, a_22, ..., a_(2m); - dots.v, dots.v, dots.down, dots.v; - a_(n 1), a_(n 2), ..., a_(n m) - ), tag: #<1>) - - #mannot.annot(<1>, pos:left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Knoten]], dx: 5mm) - #mannot.annot(<1>, pos:bottom, text(rgb("#404296"))[Zweige $->$], dy: -0.5mm) - + $ + bold(A) = quad mannot.mark( + mat( + a_11, a_12, ..., a_(1m); + a_21, a_22, ..., a_(2m); + dots.v, dots.v, dots.down, dots.v; + a_(n 1), a_(n 2), ..., a_(n m) + ), tag: #<1> + ) + #mannot.annot(<1>, pos: left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Knoten]], dx: 5mm) + #mannot.annot(<1>, pos: bottom, text(rgb("#404296"))[Zweige $->$], dy: -0.5mm) a in {-1, 0, 1} $ $-1$: In Knoten rein \ $1$: Aus Knoten raus \ - + #line(length: 100%, stroke: (thickness: 0.2mm)) - + Mascheninsidenz Matrix $bold(B)$\ $bold(B) : bold(u_b) -> text("Zweigspannungsbilanz") = 0$ \ $bold(B^T) : bold(i_m) -> i_b$ - $ - bold(B) = quad mannot.mark(mat( - b_11, b_12, ..., b_(1m); - b_21, b_22, ..., b_(2m); - dots.v, dots.v, dots.down, dots.v; - b_(n 1), b_(n 2), ..., b_(n m) - ), tag: #<1>) - - #mannot.annot(<1>, pos:left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Maschen]], dx: 6mm) - #mannot.annot(<1>, pos:bottom, text(rgb("#404296"))[Zweige $->$], dy: -0.5mm) - + $ + bold(B) = quad mannot.mark( + mat( + b_11, b_12, ..., b_(1m); + b_21, b_22, ..., b_(2m); + dots.v, dots.v, dots.down, dots.v; + b_(n 1), b_(n 2), ..., b_(n m) + ), tag: #<1> + ) + #mannot.annot(<1>, pos: left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Maschen]], dx: 6mm) + #mannot.annot(<1>, pos: bottom, text(rgb("#404296"))[Zweige $->$], dy: -0.5mm) b in {-1, 0, 1} $ @@ -795,8 +795,8 @@ *KCL und KVL* \ - KCL in Nullraum: $ bold(A) bold(i_b) = bold(0)$ \ - KVL in Bildraum: $ bold(A^T) bold(u_k) = bold(u_b)$ + KCL in Nullraum: $bold(A) bold(i_b) = bold(0)$ \ + KVL in Bildraum: $bold(A^T) bold(u_k) = bold(u_b)$ KVL in Nullraum: $bold(B) bold(u_b) = bold(0)$ \ KCL in Bildraum: $bold(B^T) bold(i_m) = bold(i_b)$ \ @@ -811,7 +811,7 @@ #subHeading(fill: colorAnalyseVerfahren)[Baumkonzept] KCLs: $n-1$\ KVLs: $b-(n-1)$ - + Baum einzeichnen (Keine Schleifen!) ] @@ -851,16 +851,21 @@ *Umrechnung* - #grid(columns: (auto, 1fr), column-gutter: 2mm, row-gutter: 2mm, + #grid( + columns: (auto, 1fr), + column-gutter: 2mm, + row-gutter: 2mm, $"Nullraum" "Explizit"$, [ $G = I U^(-1)\ R = U I^(-1)$\ ], + $"Explizit" -> "Nullraum"$, [ Zwei Messungen einsetzen ], - $"Kernraum" -> "Nullraum"$ + + $"Kernraum" -> "Nullraum"$, ) ] @@ -877,11 +882,11 @@ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); - zweiTor("G1", (0,-6mm), $jMat(G_1)$) - zweiTor("G2", (0,6mm), $jMat(G_2)$) + registerAllCustom() + zweiTor("G1", (0, -6mm), $jMat(G_1)$) + zweiTor("G2", (0, 6mm), $jMat(G_2)$) zwire("G1.in1", (-8mm, -3.5mm), (-8mm, 8.5mm), "G2.in1") zwire("G1.in0", (-10mm, -8.5mm), (-10mm, 3.5mm), "G2.in0") @@ -902,17 +907,18 @@ wire("n3", "n33") }) ], + [ Seriel-Seriel \ $jMat(G)_"ges" = jMat(G_1) + jMat(G_2)$ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); - zweiTor("G1", (0,-6mm), $jMat(R_1)$) - zweiTor("G2", (0,6mm), $jMat(R_2)$) + registerAllCustom() + zweiTor("G1", (0, -6mm), $jMat(R_1)$) + zweiTor("G2", (0, 6mm), $jMat(R_2)$) node("n0", (13mm, 8.5mm), fill: false) node("n1", (13mm, -8.5mm), fill: false) @@ -929,17 +935,18 @@ zwire("G2.in1", "n2") }) ], + [ Seriel-Parallel \ $jMat(H)_"ges" = jMat(H_1) + jMat(H_2)$ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); - zweiTor("G1", (0,-6mm), $jMat(H_1)$) - zweiTor("G2", (0,6mm), $jMat(H_2)$) + registerAllCustom() + zweiTor("G1", (0, -6mm), $jMat(H_1)$) + zweiTor("G2", (0, 6mm), $jMat(H_2)$) node("n0", (13mm, 8.5mm), fill: false) node("n1", (13mm, -8.5mm), fill: false) @@ -960,17 +967,18 @@ wire("n1", "n11") }) ], + [ Parallel-Seriel \ $jMat(H')_"ges" = jMat(H'_1) + jMat(H'_2)$ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); - zweiTor("G1", (0,-6mm), $jMat(H'_1)$) - zweiTor("G2", (0,6mm), $jMat(H'_2)$) + registerAllCustom() + zweiTor("G1", (0, -6mm), $jMat(H'_1)$) + zweiTor("G2", (0, 6mm), $jMat(H'_2)$) node("n0", (13mm, 8.5mm), fill: false) node("n1", (13mm, -8.5mm), fill: false) @@ -991,15 +999,16 @@ wire("n3", "n33") }) ], + [ Kette normal \ $jMat(A)_"ges" = jMat(A_1) dot jMat(A_2)$ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); + registerAllCustom() zweiTor("A2", (6mm, 0), $jMat(A_2)$, height: 8mm, width: 8mm) zweiTor("A1", (-6mm, 0), $jMat(A_1)$, height: 8mm, width: 8mm) @@ -1008,23 +1017,24 @@ node("n2", (13mm, 2mm), fill: false) node("n3", (13mm, -2mm), fill: false) - wire((-13mm, 2mm), "A1.in1") + wire((-13mm, 2mm), "A1.in1") wire((-13mm, -2mm), "A1.in0") - wire((13mm, 2mm), "A2.out1") - wire((13mm, -2mm), "A2.out0") + wire((13mm, 2mm), "A2.out1") + wire((13mm, -2mm), "A2.out0") wire("A2.in1", "A1.out1") wire("A2.in0", "A1.out0") }) ], + [ Kette invers \ $jMat(A')_"ges" = jMat(A'_2) dot jMat(A'_1)$ ], [ #zap.circuit({ - import zap : * + import zap: * - registerAllCustom(); + registerAllCustom() zweiTor("A2", (6mm, 0), $jMat(A'_2)$, height: 8mm, width: 8mm) zweiTor("A1", (-6mm, 0), $jMat(A'_1)$, height: 8mm, width: 8mm) @@ -1033,14 +1043,14 @@ node("n2", (13mm, 2mm), fill: false) node("n3", (13mm, -2mm), fill: false) - wire((-13mm, 2mm), "A1.in1") + wire((-13mm, 2mm), "A1.in1") wire((-13mm, -2mm), "A1.in0") - wire((13mm, 2mm), "A2.out1") - wire((13mm, -2mm), "A2.out0") + wire((13mm, 2mm), "A2.out1") + wire((13mm, -2mm), "A2.out0") wire("A2.in1", "A1.out1") wire("A2.in0", "A1.out0") }) - ] + ], ) ], @@ -1049,7 +1059,7 @@ #subHeading(fill: colorEineTore)[Linearisierung (Ein-Tore)] 1. Arbeitspunkt bestimmen \ $"AP" =(u_"AP", i_"AP")$ - + 2. Ableitung $g_cal(F)(u)$/$r_cal(F)(i)$ bilden \ $g'_cal(F)(u)$/$r'_cal(F)(i)$ *Stromgesteuert $r(i) = u$* @@ -1057,8 +1067,7 @@ Groß-Signal: $i_"lin" = g_"lin" (u) = g'_cal(F)(u_"AP")(u-u_"AP") + i_"AP" = \ - g'_cal(F)(u_"AP")u - g'_cal(F)(u_"AP")u_"AP" + i_"AP" - $ + g'_cal(F)(u_"AP")u - g'_cal(F)(u_"AP")u_"AP" + i_"AP"$ $I_0 = i_"AP" - g'_cal(F)(u_"AP")u_"AP"$ @@ -1066,65 +1075,63 @@ #block( height: 20mm, - scale(x: 75%, y: 75%, - zap.circuit({ - import zap : * - import cetz.draw : line, content + scale(x: 75%, y: 75%, zap.circuit({ + import zap: * + import cetz.draw: content, line isource("I0", (0, 1.5), (0, -1.5), fill: none) - node("n0", (2,1.5)) - node("n1", (2,-1.5)) + node("n0", (2, 1.5)) + node("n1", (2, -1.5)) - node("n2", (3.5,1.5), fill: false) - node("n3", (3.5,-1.5), fill: false) + node("n2", (3.5, 1.5), fill: false) + node("n3", (3.5, -1.5), fill: false) resistor("g0", "n1", "n0", fill: none, label: (content: $g_0$, anchor: "south", distance: 0.2)) wire("I0.in", "n0", "n2") wire("I0.out", "n1", "n3") wire("n0", "n2", i: (content: $i_"lin"$, anchor: "south", invert: true)) - wire((0,0.6), "I0.in", i: (content: $I_0$, anchor: "east", invert: true)) + wire((0, 0.6), "I0.in", i: (content: $I_0$, anchor: "east", invert: true)) set-style(mark: (end: ">", fill: black)) line((3.5, 1.2), (3.5, -1.2), stroke: 0.5pt) content((3.9, 0), $u$) - }) - )); + })), + ); #linebreak() Klein-Signal:$i_"lin" = g_"lin" (u) = g'(u_"AP")u$ *Spannungsgesteuert $g(u) = i$* - + $u_"lin" = r_"lin" (i) = r'(i_"AP")(i-i_"AP") + u_"AP"$ $U_0 = u_"AP" - r'(i_"AP") i_"AP"$ #block( height: 25mm, - scale(x: 75%, y: 75%, - zap.circuit({ - import zap : * - import cetz.draw : line, content + scale(x: 75%, y: 75%, zap.circuit({ + import zap: * + import cetz.draw: content, line - vsource("U0", (0, 1.5), (0, -1.5), fill: none) + vsource("U0", (0, 1.5), (0, -1.5), fill: none) - node("n2", (3.5,1.5), fill: false) - node("n3", (3.5,-1.5), fill: false) + node("n2", (3.5, 1.5), fill: false) + node("n3", (3.5, -1.5), fill: false) - resistor("R0", "U0.in", "n2", fill: none, label: (content: $r_0$, anchor: "south", distance: 0.1)) - wire("U0.out", "n3") + resistor("R0", "U0.in", "n2", fill: none, label: (content: $r_0$, anchor: "south", distance: 0.1)) + wire("U0.out", "n3") - wire((2.49,1.5), "n2", i: (content: $i$, anchor: "south", invert: true)) + wire((2.49, 1.5), "n2", i: (content: $i$, anchor: "south", invert: true)) - set-style(mark: (end: ">", fill: black)) - line((3.5, 1.2), (3.5, -1.2), stroke: 0.5pt) - content((3.9, 0), $u_"lin"$) + set-style(mark: (end: ">", fill: black)) + line((3.5, 1.2), (3.5, -1.2), stroke: 0.5pt) + content((3.9, 0), $u_"lin"$) - line((0.7, 0.5), (0.7, -0.5), stroke: 0.5pt) - content((1.2, 0), $U_0$) - }) - )); + line((0.7, 0.5), (0.7, -0.5), stroke: 0.5pt) + content((1.2, 0), $U_0$) + })), + ); Klein-Signal: $u_"lin" = r_"lin" (i) = r'(i_"AP")i$ ] #colbreak() @@ -1138,8 +1145,7 @@ $f_1(x_1, x_2, ... x_n) &= y_1\ f_2(x_1, x_2, ... x_n) &= y_2\ &dots.v \ - f_n (x_1, x_2, ... x_n) &= y_n - $ + f_n (x_1, x_2, ... x_n) &= y_n$ $bold(f)(jVec(x))=jVec(y)$ @@ -1148,7 +1154,7 @@ $jMat(J) = mat( #mannot.mark($delta y_1$, color: red)/(#mannot.mark($delta x_1$, color: red)), #mannot.mark($delta y_1$, color: red)/(#mannot.mark($delta x_2$, color: purple)), ..., #mannot.mark($delta y_1$, color: red)/(#mannot.mark($delta x_n$, color: blue)); #mannot.mark($delta y_2$, color: purple)/(#mannot.mark($delta x_1$, color: red)), #mannot.mark($delta y_2$, color: purple)/(#mannot.mark($delta x_2$, color: purple)), ..., #mannot.mark($delta y_2$, color: purple)/(#mannot.mark($delta x_n$, color: blue)); - dots.v, dots.v, dots.down, dots.v; + dots.v, dots.v, dots.down, dots.v; #mannot.mark($delta y_n$, color: blue)/(#mannot.mark($delta x_1$, color: red)), #mannot.mark($delta y_n$, color: blue)/(#mannot.mark($delta x_2$, color: purple)), ..., #mannot.mark($delta y_n$, color: blue)/(#mannot.mark($delta x_n$, color: blue)); )$ @@ -1161,15 +1167,15 @@ // Newton-Raphson #bgBlock(fill: colorEineTore)[ - #subHeading(fill: colorEineTore)[Newton-Raphson (Eine-Tor)] + #subHeading(fill: colorEineTore)[Newton-Raphson (Eine-Tor)] $x_(n+1) = x_n - f(x_n)/(f'(x_n))$ ] - + // Netwen-Raphson N-Tore #bgBlock(fill: colorZweiTore)[ - #subHeading(fill: colorZweiTore)[Newton-Raphson (N-Tore)] + #subHeading(fill: colorZweiTore)[Newton-Raphson (N-Tore)] Nicht lineare Beschreibung in Nullraum/Impliziter Darstellung: - $f(jVec(x)) = jVec(0)$\ + $f(jVec(x)) = jVec(0)$\ $jVec(x)_(n+1) = jVec(x)_n - (jMat(J)|_(jVec(x)_"AP"))^(-1) f(jVec(x))$ ] @@ -1181,36 +1187,35 @@ *Zustandsgrößen*\ - #grid(columns: (1fr, 0pt, 1fr), + #grid( + columns: (1fr, 0pt, 1fr), row-gutter: 10mm, column-gutter: 2mm, - [ - $[i(t)] = unit("A")$\ - $[q(t)] = unit("A s") = unit("C")$\ - ], - grid.vline(stroke: 0.75pt), - [], - [ - $[u(t)] = unit("V")$ \ - $[Phi(t)] = unit("A s") = unit("W b") $ \ - ], - + [ + $[i(t)] = unit("A")$\ + $[q(t)] = unit("A s") = unit("C")$\ + ], + grid.vline(stroke: 0.75pt), + [], + [ + $[u(t)] = unit("V")$ \ + $[Phi(t)] = unit("A s") = unit("W b")$ \ + ], - [ - $q(t) = integral_(-infinity)^(t) i(tau) d tau = \ - q(0) + integral_(0)^(t) i(tau) d tau - $ \ + [ + $q(t) = integral_(-infinity)^(t) i(tau) d tau = \ + q(0) + integral_(0)^(t) i(tau) d tau$ \ - $i(t) = (d q)/(d t) = dot(q(t))$ - ], - [], - [ - $Phi(t) = integral_(-infinity)^(t) u(tau) d tau = \ - Phi(0) + integral_(0)^(t) u(tau) d tau - $ \ + $i(t) = (d q)/(d t) = dot(q(t))$ + ], + [], + [ + $Phi(t) = integral_(-infinity)^(t) u(tau) d tau = \ + Phi(0) + integral_(0)^(t) u(tau) d tau$ \ - $u(t) = (d Phi)/(d t) dot(Phi(t))$ - ]) + $u(t) = (d Phi)/(d t) dot(Phi(t))$ + ], + ) $W(t_1, t_2) = integral_(t_1)^(t_2) P(tau) d tau = integral_(t_1)^(t_2) u(tau) i(tau) d tau$ @@ -1221,67 +1226,70 @@ #bgBlock(fill: colorComplexAC)[ #subHeading(fill: colorComplexAC)[Reaktive Bauelemente] - #grid(columns: (1fr, 0pt, 1fr), + #grid( + columns: (1fr, 0pt, 1fr), row-gutter: 4mm, column-gutter: 2mm, - [ - *Kapazitiv* - ], - grid.vline(stroke: 0.75pt), - [], - [ - *Induktivität* - ], - [ - $q = c(u) \ chi(q) = u$\ - ], - [], - [ - $Phi = l(i) \ i = lambda(Phi)$ - ], + [ + *Kapazitiv* + ], + grid.vline(stroke: 0.75pt), + [], + [ + *Induktivität* + ], + [ + $q = c(u) \ chi(q) = u$\ + ], + [], + [ + $Phi = l(i) \ i = lambda(Phi)$ + ], - [$u,q$ stetig und beschränkt], - [], - [$i,Phi$ stetig und beschränkt], - [] + [$u,q$ stetig und beschränkt], + [], + [$i,Phi$ stetig und beschränkt], + [], ) #align(center, [*Lineare Bauelemente*]) - #grid(columns: (1fr, 0pt, 1fr), + #grid( + columns: (1fr, 0pt, 1fr), row-gutter: 4mm, column-gutter: 2mm, - [ - *Kapazitiv* - ], - grid.vline(stroke: 0.75pt), - [], - [ - *Induktivität* - ], - [ - $q(t) = C dot u(t)$\ - $i(t) = C dot (d u)/(d t)$\ - $[C] = F = unit("A s")/unit("V")$ - ], - [], - [ - $Phi(t) = L dot i(t)$\ - $u(t) = L dot (d i)/(d t)$\ - $[L] = H = unit("V s") / unit("A")$ - ], - [ - $E_C = q^2 / 2C = C/2 u^2$ - ], - [], - [ - $E_L = Phi^2/2L = (L i^2)/2$ - ], - [ - $C$: Admittanz $hat(=) G$ - ], [], - [ - $L$: Impedanz $hat(=) R$ - ] + [ + *Kapazitiv* + ], + grid.vline(stroke: 0.75pt), + [], + [ + *Induktivität* + ], + [ + $q(t) = C dot u(t)$\ + $i(t) = C dot (d u)/(d t)$\ + $[C] = F = unit("A s")/unit("V")$ + ], + [], + [ + $Phi(t) = L dot i(t)$\ + $u(t) = L dot (d i)/(d t)$\ + $[L] = H = unit("V s") / unit("A")$ + ], + [ + $E_C = q^2 / 2C = C/2 u^2$ + ], + [], + [ + $E_L = Phi^2/2L = (L i^2)/2$ + ], + [ + $C$: Admittanz $hat(=) G$ + ], + [], + [ + $L$: Impedanz $hat(=) R$ + ], ) Admittanz: $Y = I/U$\ @@ -1293,10 +1301,11 @@ #bgBlock(fill: colorComplexAC)[ #subHeading(fill: colorComplexAC)[Reaktive Dualwandlung] - #grid(columns: (1fr, 1fr), + #grid( + columns: (1fr, 1fr), row-gutter: 4mm, $u --> R_d i^d$, $i --> u^d/R_d$, - $q --> Phi^d / R_d$, $Phi --> q^d R_d$ + $q --> Phi^d / R_d$, $Phi --> q^d R_d$, ) ] @@ -1307,25 +1316,24 @@ $u(t) =U_m "Re"{e^(j omega t + phi)}$ - $u(t) = U_m cos(omega t + alpha)$ \ - $i(t) = I_m cos(omega t + beta)$ + $u(t) = U_m cos(omega t + alpha)$ \ + $i(t) = I_m cos(omega t + beta)$ $(d u)/(d t) = A_m$ - + Kreisfrequenz: $omega = 2 pi f$ \ Amplitude: $A_m$ \ Phaseverschieben: $alpha$ - *Ohm:* $u(t) = R I_m cos(omega t + beta) = omega A_m cos(omega)$) + *Ohm:* $u(t) = R I_m cos(omega t + beta) = omega A_m cos(omega)$) *Serienschaltung*\ $u_1(t) = U_1 cos(omega t)$\ $u_2(t) = U_2 cos(omega t + phi)$ $u(t)_"ges" = u_1(t) + u_2(t) = \ - U_"ges"^2 = U_1^2 + 2 U_1 U_2 + U_2^2 \ - tan(phi) = (U_2 sin(phi))/(U_1 + U_2 cos(phi)) - $ + U_"ges"^2 = U_1^2 + 2 U_1 U_2 + U_2^2 \ + tan(phi) = (U_2 sin(phi))/(U_1 + U_2 cos(phi))$ ] // AC Components @@ -1338,18 +1346,28 @@ [], [*$Y = U/I$*], [*$Z = I/U$*], [*$phi$*], [], [*$Omega$*], [*$S$*], [*rad*], zap.circuit({ - import zap : * + import zap: * resistor("R", (0, 0), (0.6, 0), width: 3mm, height: 2mm, fill: none) - }), $R$, $1/G = R$, $0$, + }), + $R$, + $1/G = R$, + $0$, zap.circuit({ - import zap : * + import zap: * capacitor("R", (0, 0), (0.6, 0), width: 4mm, height: 6mm, fill: none) - }), $1/(j w C)$, $j w C$, $-pi/2$, + }), + $1/(j w C)$, + $j w C$, + $-pi/2$, + zap.circuit({ - import zap : * + import zap: * inductor("R", (0, 0), (0.6, 0), width: 4mm, height: 2mm, fill: none, variant: "ieee") - }), $j w L$, $1/(j w L)$, $pi/2$ + }), + $j w L$, + $1/(j w L)$, + $pi/2$, ) ] @@ -1362,8 +1380,8 @@ columns: (auto, 1fr, auto), fill: (x, y) => if calc.rem(y, 2) == 0 { tableFillLow } else { tableFillHigh }, [Scheinleitsung], [$S = abs(P)$], [$["VA"]$], - [Wirkleistung], [$P_w = "Re"{P} $], [$["W"]$], - [Blindleistung], [$P_b = "Im"{P}$], [$["var"]$] + [Wirkleistung], [$P_w = "Re"{P}$], [$["W"]$], + [Blindleistung], [$P_b = "Im"{P}$], [$["var"]$], ) Bei Wiederstand: $R$ @@ -1395,6 +1413,85 @@ #pagebreak() +#let NodeRed = rgb("#ff5656") +#let NodeGreen = rgb("#5eff56") +#let NodeBlue = rgb("#6156ff") +#let NodeYellow = rgb("#ffa856") + +#let nodeSymbol(s, center, color, ..style) = { + import cetz.draw: * + ( + ctx => { + // Define a default style + let def-style = (n: 5, inner-radius: .5, radius: 1, stroke: auto, fill: auto) + + // Resolve center to a vector + let (ctx, center) = cetz.coordinate.resolve(ctx, center) + + // Resolve the current style ("star") + let style = cetz.styles.resolve(ctx.style, merge: style.named(), base: def-style, root: "star") + + let paths = ( + cetz.drawable.ellipse(center.at(0), center.at(1), 0, 0.25, 0.25, fill: color, stroke: black), + cetz.drawable.content((center.at(0),center.at(1) + 0.025), 1, 1, none, s), + ) + ( + ctx: ctx, + drawables: cetz.drawable.apply-transform(ctx.transform, paths) + ) + }, + ) +} + +#bgBlock(fill: colorAnalyseVerfahren)[ + #subHeading(fill: colorAnalyseVerfahren)[Knotenpotenzial-Analyse Komponetent] + #import mannot: * + + #table( + columns: (auto, 1fr, auto, 1fr), + fill: (x, y) => if calc.rem(y, 2) == 0 { tableFillHigh } else { tableFillLow }, + [*Element*], [*Eintrag*], [*Element*], [*Eintrag*], + [*Wiederstand* + #zap.circuit({ + import zap: * + import cetz.draw: * + + resistor("R1", (0, 0), (0, 2), width: 1) + nodeSymbol($beta$, (0, 0), NodeBlue) + nodeSymbol($alpha$, (0, 2), NodeRed) + }) + ], + align(center + horizon, scale([$ G_k = mat( + , mark(dots.v, tag: #, color: NodeRed), , mark(dots.v, tag: #, color: NodeBlue), ; + mark(..., tag: #, color: NodeRed), G, ..., -G, ...; + , dots.v, , dots.v, ; + mark(..., tag: #, color: NodeBlue), -G, ..., G, ...; + , dots.v, , dots.v, , + ) + + #annot(, pos: top)[$alpha$] + #annot(, pos: top)[$beta$] + #annot(, pos: left + horizon, dx: -2mm)[$alpha$] + #annot(, pos: left + horizon, dx: -2mm)[$beta$] + + $ \ $G$ Definieren nicht vergessen!])), + [#zap.circuit({ + tumSymbols.gyrator("G_d", (0, 0), constant: $G_d$) + })], + $ + G_k = mat( + mark(, tag: #), , mark(, tag: #), ..., mark(G_d, tag: #), ..., mark(-G_d, tag: #); + , , , , dots.v, , dots.v; + , , , ..., -G_d, ..., G_d; + dots.v, , dots.v, , dots.v, , dots.v; + -G_d, ..., G_d, ..., , , ; + dots.v, , dots.v; + G_d, ..., -G_d, ..., + ) + $, + ) +] + #bgBlock(fill: colorZweiTore, width: 100%)[ #subHeading(fill: colorZweiTore)[OpAmp Schaltungen] @@ -1408,75 +1505,25 @@ #table( fill: (x, y) => if calc.rem(y, 2) == 0 { tableFillHigh } else { tableFillLow }, columns: (auto, auto, auto, 1fr, 1fr, 1fr), - [*Name*], - [*Schaltbild*], - [*Ersatz-Schaltbild*], - [*Eigenschaften*], - [*Beschreibung*], - [*Knotenspannungs Analyse*], - - [Nullor], - [], - [], - [], - [$A = mat(0, 0; 0, 0)$], - [], + [*Name*], [*Schaltbild*], [*Ersatz-Schaltbild*], [*Eigenschaften*], [*Beschreibung*], [*Knotenspannungs Analyse*], - [OpAmp \ lin], - [], - [], - [], - [], - [], + [Nullor], [], [], [], [$A = mat(0, 0; 0, 0)$], [], - [OpAmp \ $U_"sat+"$], - [], - [], - [], - [], - [], + [OpAmp \ lin], [], [], [], [], [], - [OpAmp \ $U_"sat-"$], - [], - [], - [], - [], - [], + [OpAmp \ $U_"sat+"$], [], [], [], [], [], - [VCVS], - [], - [], - [], - [$H' = mat(0, 0; mu, 0) quad A = mat(1/mu 0; 0, 0)$], - [], + [OpAmp \ $U_"sat-"$], [], [], [], [], [], - [VCCS], - [], - [], - [], - [$G = mat(0, 0; g, 0) quad A = mat(0, -1/g; 0, 0)$], - [], + [VCVS], [], [], [], [$H' = mat(0, 0; mu, 0) quad A = mat(1/mu 0; 0, 0)$], [], - [CCVS], - [], - [], - [], - [$R = mat(0, 0, r, 0) quad A = mat(0, 0; 1/r, 0)$], - [], + [VCCS], [], [], [], [$G = mat(0, 0; g, 0) quad A = mat(0, -1/g; 0, 0)$], [], - [CCCS], - [], - [], - [], - [$H = mat(0, 0; beta, 0) quad A = mat(0, 0; 0, -1/beta)$], - [], + [CCVS], [], [], [], [$R = mat(0, 0, r, 0) quad A = mat(0, 0; 1/r, 0)$], [], - [Übertrager], - [], - [], - [], - [], - [], + [CCCS], [], [], [], [$H = mat(0, 0; beta, 0) quad A = mat(0, 0; 0, -1/beta)$], [], + + [Übertrager], [], [], [], [], [], [Gyrator], [], @@ -1513,10 +1560,11 @@ [], [ - ] + ], ) ] +// Knoten Spannungs Analyse // Tor Eigenschaften #bgBlock(fill: colorEigenschaften, width: 100%)[ @@ -1533,7 +1581,7 @@ [$forall (u,i) in cal(F): u dot i >= 0$], [ $jMat(U)^T jMat(I) + jMat(I)^T jMat(U)$\ - $forall vec(jVec(u),jVec(v)) in cal(F) : jVec(u)^T jVec(i) >=0$ + $forall vec(jVec(u), jVec(v)) in cal(F) : jVec(u)^T jVec(i) >=0$ ], [], @@ -1543,7 +1591,7 @@ Kennline nur $u\/i$-Achsen ], - [$forall vec(jVec(u),jVec(v)) in cal(F) : jVec(u)^T jVec(i) = 0$], + [$forall vec(jVec(u), jVec(v)) in cal(F) : jVec(u)^T jVec(i) = 0$], [ $u\/q$-Plot: Wenn keine Schleifen \ $i\/Phi$-Plot: Wenn keine Schleifen \ @@ -1551,7 +1599,6 @@ $Phi\/q$-Plot: Wenn auf Achse \ ], - [*linear*], [Kennline ist Gerade], [ @@ -1565,16 +1612,11 @@ [$(qty("0", "A"), qty("0", "V")) in cal(F)$], [$(qty("0", "A"), qty("0", "V")) in cal(F)$], - [*streng linear*], - [linear UND quellenfrei], - [linear UND quellenfrei\ Darstellbar: Nur Matrix], - [], + [*streng linear*], [linear UND quellenfrei], [linear UND quellenfrei\ Darstellbar: Nur Matrix], [], - [*ungepolt* \ (Punkt sym.)], [$(u,i) in cal(F) <=> (-u, -i) in cal(F)\ - g(u) = i, r(i) = u - $], + g(u) = i, r(i) = u$], [ N/A ], @@ -1585,7 +1627,7 @@ [ $jMat(A) = jMat(A')$\ $jMat(G) = jMat(P) jMat(G) jMat(P), space jMat(R) = jMat(P) jMat(R) jMat(P), quad jMat(P) = mat(0, 1; 1, 0) \ - det(H) = 1, $ + det(H) = 1,$ ], [], @@ -1598,13 +1640,10 @@ $jMat(U)^T jMat(I) - jMat(I)^T jMat(U) = 0 \ jMat(R)^T = jMat(R), quad jMat(G)^T = jMat(G) quad h_21 = -h_12 \ det(jMat(A)) = 1 quad det(jMat(A')) = 1 quad h'_21 = -h'_12$], [], - - [*$x$-gesteudert*], [Existiert $r(i) = u \/g(u) = i$], [Existiert die Matrix? siehe Tabelle], - [], - - [Alle Beschreibung], - [Klar], - [$det(M) != 0$, Alle Eintrag $!= 0$] + + [*$x$-gesteudert*], [Existiert $r(i) = u \/g(u) = i$], [Existiert die Matrix? siehe Tabelle], [], + + [Alle Beschreibung], [Klar], [$det(M) != 0$, Alle Eintrag $!= 0$], ) ] @@ -1612,93 +1651,93 @@ #set text(size: 10pt) #subHeading(fill: colorZweiTore)[Umrechnung Zweitormatrizen] - #table( - columns: (12mm, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), - align: center, - inset: (bottom: 4mm, top: 4mm), - gutter: 0.1mm, - fill: (x, y) => if x != 0 and calc.rem(x, 2) == 0 { rgb("#c5c5c5") } else { white }, + #table( + columns: (12mm, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), + align: center, + inset: (bottom: 4mm, top: 4mm), + gutter: 0.1mm, + fill: (x, y) => if x != 0 and calc.rem(x, 2) == 0 { rgb("#c5c5c5") } else { white }, - table.cell( - inset: 0mm, - [ - #cetz.canvas(length: 12mm,{ - import cetz.draw : * - line((1,0), (0,1)) + table.cell( + inset: 0mm, + [ + #cetz.canvas(length: 12mm, { + import cetz.draw: * + line((1, 0), (0, 1)) content((0.309, 0.25), "Out") content((0.75, 0.75), "In") }) - ]), - $bold(R) quad mat(Omega, Omega; Omega, Omega)$, - $bold(G) quad mat(S, S; S, S)$, - $bold(H) quad mat(Omega, 1; 1, S)$, - $bold(H') quad mat(S, 1; 1, Omega)$, - $bold(A) quad mat(S, 1; 1, Omega)$, - $bold(A') quad mat(S, 1; 1, Omega)$, - - $bold(R)$, - $mat(r_11, r_12; r_21, r_22)$, - $jMat(G^(-1) =) 1/det(bold(G)) mat(g_22, -g_12; -g_21, g_11)$, - $1/h_22 mat(det(bold(H)), h_12; -h_21, 1)$, - $1/h'_11 mat(1, -h'_12; h'_21, det(bold(H')))$, - $1/a_21 mat(a_11, det(bold(A)); 1, a_22)$, - $1/a'_21 mat(a'_22, 1; det(bold(A')), a'_11)$, + ], + ), + $bold(R) quad mat(Omega, Omega; Omega, Omega)$, + $bold(G) quad mat(S, S; S, S)$, + $bold(H) quad mat(Omega, 1; 1, S)$, + $bold(H') quad mat(S, 1; 1, Omega)$, + $bold(A) quad mat(S, 1; 1, Omega)$, + $bold(A') quad mat(S, 1; 1, Omega)$, - $bold(G)$, - $jMat(R^(-1) =) 1/det(bold(R)) mat(r_22, -r_12; -r_21, r_11)$, - $mat(g_11, g_12; g_21, g_22)$, - $1/h_11 mat(1, -h_12; h_21, det(bold(H)))$, - $1/h'_22 mat(det(bold(H')), h'_12; -h'_21, 1)$, - $1/a_12 mat(a_22, -det(bold(A)); -1, a_11)$, - $1/a'_12 mat(a'_11, -1; -det(bold(A')), a'_22)$, + $bold(R)$, + $mat(r_11, r_12; r_21, r_22)$, + $jMat(G^(-1) =) 1/det(bold(G)) mat(g_22, -g_12; -g_21, g_11)$, + $1/h_22 mat(det(bold(H)), h_12; -h_21, 1)$, + $1/h'_11 mat(1, -h'_12; h'_21, det(bold(H')))$, + $1/a_21 mat(a_11, det(bold(A)); 1, a_22)$, + $1/a'_21 mat(a'_22, 1; det(bold(A')), a'_11)$, - $bold(H)$, - $1/r_22 mat(det(bold(R)), r_12; -r_21, 1)$, - $1/g_11 mat(1, -g_12; g_21, det(bold(G)))$, - $mat(h_11, h_12; h_21, h_22)$, - $jMat(H')^(-1)= 1/det(bold(H')) mat(h'_22, -h'_12; -h'_21, h'_11)$, - $1/a_22 mat(a_12, det(bold(A)); -1, a_21)$, - $1/a'_11 mat(a'_12, 1; -det(bold(A')), a'_21)$, + $bold(G)$, + $jMat(R^(-1) =) 1/det(bold(R)) mat(r_22, -r_12; -r_21, r_11)$, + $mat(g_11, g_12; g_21, g_22)$, + $1/h_11 mat(1, -h_12; h_21, det(bold(H)))$, + $1/h'_22 mat(det(bold(H')), h'_12; -h'_21, 1)$, + $1/a_12 mat(a_22, -det(bold(A)); -1, a_11)$, + $1/a'_12 mat(a'_11, -1; -det(bold(A')), a'_22)$, - $bold(H')$, - $1/r_11 mat(1, -r_12; r_21, det(bold(R)))$, - $1/g_22 mat(det(bold(G)), g_12; -g_21, 1)$, - $jMat(H^(-1))= 1/det(bold(H)) mat(h_22, -h_12; -h_21, h_11)$, - $mat(h'_11, h'_12; h'_21, h'_22)$, - $1/a_11 mat(a_21, -det(bold(A)); 1, a_12)$, - $1/a'_22 mat(a'_21, -1; det(bold(A')), a'_12)$, + $bold(H)$, + $1/r_22 mat(det(bold(R)), r_12; -r_21, 1)$, + $1/g_11 mat(1, -g_12; g_21, det(bold(G)))$, + $mat(h_11, h_12; h_21, h_22)$, + $jMat(H')^(-1)= 1/det(bold(H')) mat(h'_22, -h'_12; -h'_21, h'_11)$, + $1/a_22 mat(a_12, det(bold(A)); -1, a_21)$, + $1/a'_11 mat(a'_12, 1; -det(bold(A')), a'_21)$, - $bold(A)$, - $1/r_21 mat(r_11, det(bold(R)); 1, r_22)$, - $1/g_21 mat(-g_22, -1; -det(bold(G)), -g_11)$, - $1/h_21 mat(-det(bold(H)), -h_11; -h_22, -1)$, - $1/h'_21 mat(1, h'_22; h'_11, det(bold(H')))$, - $mat(a_11, a_12; a_21, a_22)$, - $jMat(A'^(-1))= 1/det(bold(A')) mat(a'_22, a'_12; a'_21, a'_11)$, + $bold(H')$, + $1/r_11 mat(1, -r_12; r_21, det(bold(R)))$, + $1/g_22 mat(det(bold(G)), g_12; -g_21, 1)$, + $jMat(H^(-1))= 1/det(bold(H)) mat(h_22, -h_12; -h_21, h_11)$, + $mat(h'_11, h'_12; h'_21, h'_22)$, + $1/a_11 mat(a_21, -det(bold(A)); 1, a_12)$, + $1/a'_22 mat(a'_21, -1; det(bold(A')), a'_12)$, - $bold(A')$, - $1/r_12 mat(r_22, det(bold(R)); 1, r_11)$, - $1/g_12 mat(-g_11, -1; -det(bold(G)), -g_22)$, - $1/h_12 mat(1, h_11; h_22, det(bold(H)))$, - $1/h'_12 mat(-det(bold(H')), -h'_22; -h'_11, -1)$, - $jMat(A^(-1))= 1/det(bold(A)) mat(a_22, a_12; a_21, a_11)$, - $mat(a'_11, a'_12; a'_21, a'_22)$, - ) + $bold(A)$, + $1/r_21 mat(r_11, det(bold(R)); 1, r_22)$, + $1/g_21 mat(-g_22, -1; -det(bold(G)), -g_11)$, + $1/h_21 mat(-det(bold(H)), -h_11; -h_22, -1)$, + $1/h'_21 mat(1, h'_22; h'_11, det(bold(H')))$, + $mat(a_11, a_12; a_21, a_22)$, + $jMat(A'^(-1))= 1/det(bold(A')) mat(a'_22, a'_12; a'_21, a'_11)$, - #table( - columns: (12mm, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), - align: center, - inset: (bottom: 4mm, top: 4mm), - gutter: 0.1mm, - fill: (x, y) => if x != 0 and calc.rem(x, 2) == 0 { rgb("#c5c5c5") } else { white }, + $bold(A')$, + $1/r_12 mat(r_22, det(bold(R)); 1, r_11)$, + $1/g_12 mat(-g_11, -1; -det(bold(G)), -g_22)$, + $1/h_12 mat(1, h_11; h_22, det(bold(H)))$, + $1/h'_12 mat(-det(bold(H')), -h'_22; -h'_11, -1)$, + $jMat(A^(-1))= 1/det(bold(A)) mat(a_22, a_12; a_21, a_11)$, + $mat(a'_11, a'_12; a'_21, a'_22)$, + ) - [], - $bold(R) jVec(i) = jVec(u)$, - $bold(G) jVec(u) = jVec(i)$, - $bold(H) vec(i_1, u_2) = vec(u_1, i_2)$, - $bold(H') vec(u_1, i_2) = vec(i_1, u_2)$, - $bold(A) vec(u_2, -i_2) = vec(i_1, u_1)$, - $bold(A') vec(u_1, -i_1) = vec(i_2, u_2)$, - - ) + #table( + columns: (12mm, 1fr, 1fr, 1fr, 1fr, 1fr, 1fr), + align: center, + inset: (bottom: 4mm, top: 4mm), + gutter: 0.1mm, + fill: (x, y) => if x != 0 and calc.rem(x, 2) == 0 { rgb("#c5c5c5") } else { white }, + + [], + $bold(R) jVec(i) = jVec(u)$, + $bold(G) jVec(u) = jVec(i)$, + $bold(H) vec(i_1, u_2) = vec(u_1, i_2)$, + $bold(H') vec(u_1, i_2) = vec(i_1, u_2)$, + $bold(A) vec(u_2, -i_2) = vec(i_1, u_1)$, + $bold(A') vec(u_1, -i_1) = vec(i_2, u_2)$, + ) ] diff --git a/src/lib/common_rewrite.typ b/src/lib/common_rewrite.typ index 3e5f538..a7b73d7 100644 --- a/src/lib/common_rewrite.typ +++ b/src/lib/common_rewrite.typ @@ -115,4 +115,33 @@ }) ) -} \ No newline at end of file +} + +#let SIPrefixesTable = [ + #table( + columns: (1fr, 1fr, 1fr), + stroke: (thickness: 0.3mm), + align: (col, row) => if row == 0 { center } else { left }, + fill: (x, y) => if (calc.rem(y, 2) == 0) { tableFillLow } else { tableFillHigh }, + + [*Prefix*], [*Symbol*], [*Factor*], + + [exa], [T], [$10^18$], + [peta], [T], [$10^15$], + [tera], [T], [$10^12$], + [giga], [G], [$10^9$], + [mega], [M], [$10^6$], + [kilo], [k], [$10^3$], + [hecto], [h], [$10^2$], + [deca], [da], [$10^1$], + [(none)], [(none)], [$10^0$], + [deci], [d], [$10^(-1)$], + [centi], [c], [$10^(-2)$], + [milli], [m], [$10^(-3)$], + [micro], [μ], [$10^(-6)$], + [nano], [n], [$10^(-9)$], + [pico], [p], [$10^(-12)$], + [femto], [f], [$10^(-15)$], + [atto], [p], [$10^(-18)$], + ) +] \ No newline at end of file