diff --git a/src/cheatsheets/Schaltungstheorie.typ b/src/cheatsheets/Schaltungstheorie.typ index a9321af..1fa0ca0 100644 --- a/src/cheatsheets/Schaltungstheorie.typ +++ b/src/cheatsheets/Schaltungstheorie.typ @@ -407,427 +407,6 @@ ] */ - // Bauelemente - #bgBlock(fill: colorEineTore)[ - #subHeading(fill: colorEineTore)[Bauelemente] - #table( - columns: (1fr, 1fr, 1fr), - stroke: none, - align: center, - table.header([*Zeichen*], [*Gleichungen*], [*Abbildung*]), - - // Nullator - [ - Nullator - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - joham.nullator("nullator1",(0,0), (-1.75,0)) - })) - ], - [ - $u = 0$ - - $i = 0$ - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((0,0), (0,0)), - mark-style: (stroke: red, fill: red), mark: "o", ) - }) - })) - ], - - // Norator - [ - Norator - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - joham.norator("norator1",(0,0), (-1.75,0)) - })) - ], - [ - u = beliebig - i = beliebig - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - plot.add-contour(x-domain: (-3, 3), y-domain: (-3, 3), - style: (fill: rgb("#f7000832"), stroke: none), - fill: true, - op: "<", // Find contours where data < z - z: (0,100000), // Z values to find contours for - (x, y) => calc.sqrt(x*x + y * y)) - }) - })) - ], - - table.hline(), - - // Kurzschluss - [ - Kurzschluss - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - - node("n1", (0, 0)) - node("n2", (1, 0)) - wire((0,0), (1,0)) - wire((-0.25,0), (0,0)) - wire((1,0), (1.25,0)) - - })) - ], - [ - $u = 0$ - - i = beliebig - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((0, -1), (0, 1)), style: (stroke: red)) - }) - })) - ], - - // Leerlauf - [ - Leerlauf - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - node("n1", (0, 0)) - node("n2", (1, 0)) - - wire((-0.25,0), (0,0)) - wire((1,0), (1.25,0)) - })) - ], - [ - u = beliebig - $i = 0$ - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((-1, 0), (1, 0)), style: (stroke: red)) - }) - })) - ], - - table.hline(), - // Quellen: // - // Spannungs-quelle - [ - Spannungs-quelle - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - vsource( - "b1", - (0, 0), - (1.75, 0), - ) - })) - ], - [ - $u = U_0$ - - i = beliebig - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((1, -1), (1, 1)), style: (stroke: red)) - plot.add-anchor("pt",(1,0)) - }) - content("plot.pt", [$U_0$], anchor: "north-west", padding: .1) - })) - ], - - // Strom-quelle - [ - Strom-quelle - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - isource( - "b1", - (0, 0), - (1.75, 0), - ) - })) - ], - [ - u = beliebig - - $i = I_0$ - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((-1, 1), (1, 1)), style: (stroke: red)) - plot.add-anchor("pt",(0,1)) - }) - content("plot.pt", [$I_0$], anchor: "south-east", padding: .1) - })) - ], - - table.hline(), - -// Wiederstand - [ - Wiederstand - #scale(x: 100%, y: 100%, zap.circuit({ - import zap: * - import cetz.draw: content, line - resistor( - "b1", - (0, 0), - (2, 0), - ) - })) - ], - [ - $u = r * i$ - $i = u/r$ - ], - [ - #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]) - - plot.plot(axis-style: "school-book", ..opts, name: "plot", { - - plot.add(((-1, -1), (1, 1)), style: (stroke: red)) - }) - })) - ], - - // Induktivität - [ - 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: content, line - capacitor( - "b1", - (0, 0), - (2, 0), - ) - })) - ], - [ - - ], - [ - - ], - - table.hline(), - - // Dioden :// - // - // ideale Diode - [ - 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")) - - 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 - - })) - */ - #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]) - - 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: 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)$ - ], - [ - #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)) - - plot.plot(axis-style: "school-book", ..opts, data, name: "plot") - })) - ], - - // Photodiode - [ - 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) - })) - ], - [ - $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]) - - 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: 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: content, line - tunnel("b1", (0, 0), (1., 0), stroke: black, fill: black) - })) - ], - [ - - ], - [ - - ], - - - ); - - - ] - // Graphen und Matrizen #bgBlock(fill: colorAnalyseVerfahren)[ #subHeading(fill: colorAnalyseVerfahren)[Graphen und Matrizen] @@ -1573,6 +1152,427 @@ ) ] + + #colbreak() + + // Bauelemente + #bgBlock(fill: colorEineTore)[ + #subHeading(fill: colorEineTore)[Bauelemente] + #table( + columns: (1fr, 1fr, 1fr), + stroke: none, + fill: (x, y) => if (calc.rem(y, 2) == 0) { tableFillLow } else { tableFillHigh }, + align: center, + table.header([*Zeichen*], [*Gleichungen*], [*Abbildung*]), + table.hline(), + + // Nullator + [ + Nullator + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + joham.nullator("nullator1",(0,0), (-1.75,0)) + })) + ], + align(center+horizon, + $u = 0 \ i = 0$ + ), + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((0,0), (0,0)), + mark-style: (stroke: red, fill: red), mark: "o", ) + }) + })) + ], + + // Norator + [ + Norator + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + joham.norator("norator1",(0,0), (-1.75,0)) + })) + ], + [ + $u = "bel." \ + i = "bel."$ + ], + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + plot.add-contour(x-domain: (-3, 3), y-domain: (-3, 3), + style: (fill: rgb("#f7000832"), stroke: none), + fill: true, + op: "<", // Find contours where data < z + z: (0,100000), // Z values to find contours for + (x, y) => calc.sqrt(x*x + y * y)) + }) + })) + ], + + table.hline(), + + // Kurzschluss + [ + Kurzschluss + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + + node("n1", (0, 0)) + node("n2", (1, 0)) + wire((0,0), (1,0)) + wire((-0.25,0), (0,0)) + wire((1,0), (1.25,0)) + + })) + ], + [ + $u = 0$ + + i = bel. + ], + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((0, -1), (0, 1)), style: (stroke: red)) + }) + })) + ], + + // Leerlauf + [ + Leerlauf + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + node("n1", (0, 0)) + node("n2", (1, 0)) + + wire((-0.25,0), (0,0)) + wire((1,0), (1.25,0)) + })) + ], + [ + $u = "bel." \ + i = 0$ + ], + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((-1, 0), (1, 0)), style: (stroke: red)) + }) + })) + ], + + table.hline(), + // Quellen: // + // Spannungs-quelle + [ + Spannungs-quelle + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + vsource( + "b1", + (0, 0), + (1.75, 0), + ) + })) + ], + [ + $u = U_0$ + + i = bel. + ], + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((1, -1), (1, 1)), style: (stroke: red)) + plot.add-anchor("pt",(1,0)) + }) + content("plot.pt", [$U_0$], anchor: "north-west", padding: .1) + })) + ], + + // Strom-quelle + [ + Strom-quelle + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + isource( + "b1", + (0, 0), + (1.75, 0), + ) + })) + ], + [ + u = bel. + + $i = I_0$ + ], + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((-1, 1), (1, 1)), style: (stroke: red)) + plot.add-anchor("pt",(0,1)) + }) + content("plot.pt", [$I_0$], anchor: "south-east", padding: .1) + })) + ], + + table.hline(), + +// Wiederstand + [ + Wiederstand + #scale(x: 100%, y: 100%, zap.circuit({ + import zap: * + import cetz.draw: content, line + resistor( + "b1", + (0, 0), + (2, 0), + ) + })) + ], + align(center+horizon, + $u = r dot i \ + i = u/r$ + ), + [ + #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]) + + plot.plot(axis-style: "school-book", ..opts, name: "plot", { + + plot.add(((-1, -1), (1, 1)), style: (stroke: red)) + }) + })) + ], + + // Induktivität + [ + 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: content, line + capacitor( + "b1", + (0, 0), + (2, 0), + ) + })) + ], + [ + + ], + [ + + ], + + table.hline(), + + // Dioden :// + // + // ideale Diode + [ + 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")) + + 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 + + })) + */ + #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]) + + 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: content, line + diode("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) + ], + + [ + $u_D = u_T dot ln((i_D/I_S)+1) \ + i_D = I_S dot (e^(u_D/U_T)-1)$ + ], + [ + #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)) + + plot.plot(axis-style: "school-book", ..opts, data, name: "plot") + })) + ], + + // Photodiode + [ + 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) + })) + ], + align(horizon+center, + $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]) + + 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: 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: content, line + tunnel("b1", (0, 0), (1., 0), stroke: black, fill: black) + })) + ], + [ + + ], + [ + + ], + + + ); + ] ] #bgBlock(fill: colorZweiTore, width: 100%)[