diff --git a/src/cheatsheets/Schaltungstheorie.typ b/src/cheatsheets/Schaltungstheorie.typ index e2d3db3..144e6c0 100644 --- a/src/cheatsheets/Schaltungstheorie.typ +++ b/src/cheatsheets/Schaltungstheorie.typ @@ -1,6 +1,8 @@ #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 "../lib/circuit.typ" : * #import "@preview/unify:0.7.1": num,qty,unit #import "@preview/cetz-plot:0.1.3" @@ -371,19 +373,357 @@ #bgBlock(fill: colorEineTore)[ #subHeading(fill: colorEineTore)[Bauelemente] #table( - columns: (1fr, 1fr, 1fr), + columns: (1fr, 1fr, 1fr ), + stroke: none, align: center, table.header([*Zeichen*],[*Gleichung*], [*Abbildung*]), - - scale(x: 100%, y: 100%, + + // 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)) - })), + 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 : line, content + 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 : line, content + 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 : line, content + 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) + })) + ], + [ + + ], + [ + + ], + + // 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) + ) + })) + ], + [ + + ], + [ + + ], + + // 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) + ) + })) + ], + [ + + ], + [ + + ], + + // Wiederstand + [ + Wiederstand + #scale(x: 100%, y: 100%, + zap.circuit({ + import zap : * + import cetz.draw : line, content + 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" + ) + })) + ], + [ + + ], + [ + + ], + + // Kapazität + [ + Kapazität + #scale(x: 100%, y: 100%, + zap.circuit({ + import zap : * + import cetz.draw : line, content + 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) + ) + })) + ], + [ + + ], + [ + + ], + + // Leerlauf + [ + Leerlauf + #scale(x: 100%, y: 100%, + zap.circuit({ + import zap : * + import cetz.draw : line, content + 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) + ) + })) + ], + [ + + ], + [ + + ], + + // Norator + [ + Norator + #scale(x: 100%, y: 100%, + zap.circuit({ + import zap : * + import cetz.draw : line, content + capacitor( + "b1", + (0, 0), + (2, 0) + ) + })) + ], + [ + + ], + [ + + ], + + ); - + ]