Added verschaltung
All checks were successful
Build Typst PDFs (Docker) / build-typst (push) Successful in 20s
All checks were successful
Build Typst PDFs (Docker) / build-typst (push) Successful in 20s
This commit is contained in:
@@ -1,8 +1,10 @@
|
|||||||
#import "../lib/common_rewrite.typ" : *
|
|
||||||
#import "@preview/mannot:0.3.1"
|
#import "@preview/mannot:0.3.1"
|
||||||
#import "@preview/cetz:0.4.2"
|
#import "@preview/cetz:0.4.2"
|
||||||
#import "@preview/zap:0.5.0"
|
#import "@preview/zap:0.5.0"
|
||||||
|
|
||||||
|
#import "../lib/common_rewrite.typ" : *
|
||||||
#import "../lib/truthtable.typ" : *
|
#import "../lib/truthtable.typ" : *
|
||||||
|
#import "../lib/fetModel.typ" : *
|
||||||
|
|
||||||
#show math.integral: it => math.limits(math.integral)
|
#show math.integral: it => math.limits(math.integral)
|
||||||
#show math.sum: it => math.limits(math.sum)
|
#show math.sum: it => math.limits(math.sum)
|
||||||
@@ -565,10 +567,7 @@
|
|||||||
(cycle_start,signal_hight), (cycle_time*(t_setup + 2), signal_hight),
|
(cycle_start,signal_hight), (cycle_time*(t_setup + 2), signal_hight),
|
||||||
(cycle_time*(t_setup + 2) + switch_offset, 0), (cycle_end + switch_offset, 0), stroke: signal_storke
|
(cycle_time*(t_setup + 2) + switch_offset, 0), (cycle_end + switch_offset, 0), stroke: signal_storke
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,63 @@
|
|||||||
#bgBlock(fill: colorAllgemein)[
|
#bgBlock(fill: colorAllgemein)[
|
||||||
#subHeading(fill: colorAllgemein)[Verschaltung]
|
#subHeading(fill: colorAllgemein)[Verschaltung]
|
||||||
|
|
||||||
|
$1/x_"ges" = 1/x_1 + 1/x_2 + 1/x_3 + ...$
|
||||||
|
|
||||||
|
$x_1 parallel x_2 = 1/(1/x_1 + 1/x_2) = (x_1 x_2)/(x_1 + x_2)$
|
||||||
|
|
||||||
|
$x_1 parallel x_2 parallel x_3 = (x_1 x_2 x_3)/(x_1 x_2 + x_2 x_3 + x_1 x_3)$
|
||||||
|
|
||||||
|
#table(
|
||||||
|
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 : *
|
||||||
|
|
||||||
|
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), (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))
|
||||||
|
|
||||||
|
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$,
|
||||||
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
// Quell Wandlung
|
// Quell Wandlung
|
||||||
@@ -133,8 +189,6 @@
|
|||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
#colbreak()
|
|
||||||
|
|
||||||
// Quell Wandlung
|
// Quell Wandlung
|
||||||
#bgBlock(fill: colorEineTore)[
|
#bgBlock(fill: colorEineTore)[
|
||||||
#subHeading(fill: colorEineTore)[Quelle Wandlung]
|
#subHeading(fill: colorEineTore)[Quelle Wandlung]
|
||||||
@@ -785,13 +839,14 @@
|
|||||||
|
|
||||||
*Levi's Lustig Leistung*
|
*Levi's Lustig Leistung*
|
||||||
|
|
||||||
$underline(S) = underline(U) dot underline(I)^*$\
|
$(P =) space underline(S) = underline(U) dot underline(I)^*$\
|
||||||
|
|
||||||
#table(
|
#table(
|
||||||
columns: (auto, 1fr, auto),
|
columns: (auto, 1fr, auto),
|
||||||
[Scheinleitsung], [$abs(underline(S))$], [$["VA"]$],
|
fill: (x, y) => if calc.rem(y, 2) == 0 { tableFillLow } else { tableFillHigh },
|
||||||
[Wirkleistung], [$P = "Real"(underline(S)) $], [$["W"]$],
|
[Scheinleitsung], [$(P_s =) space abs(underline(S))$], [$["VA"]$],
|
||||||
[Blindleistung], [$Q = "Imag"(underline(S))$], [$["var"]$]
|
[Wirkleistung], [$(P_w =) space P = "Real"(underline(S)) $], [$["W"]$],
|
||||||
|
[Blindleistung], [$(P_b =) space Q = "Imag"(underline(S))$], [$["var"]$]
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -829,6 +884,8 @@
|
|||||||
columns: (auto, auto, auto, auto),
|
columns: (auto, auto, auto, auto),
|
||||||
inset: 2mm,
|
inset: 2mm,
|
||||||
align: horizon,
|
align: horizon,
|
||||||
|
fill: (x, y) => if calc.rem(y, 2) == 1 { rgb("#c5c5c5") } else { white },
|
||||||
|
|
||||||
table.header([], [*Ein-Tor*], [*Zwei-Tor*], [*Reaktive Elemente*]),
|
table.header([], [*Ein-Tor*], [*Zwei-Tor*], [*Reaktive Elemente*]),
|
||||||
[*passiv*\ (nimmt Energie auf)\ $not$aktiv],
|
[*passiv*\ (nimmt Energie auf)\ $not$aktiv],
|
||||||
[$forall (u,i) in cal(F): u dot i >= 0$],
|
[$forall (u,i) in cal(F): u dot i >= 0$],
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
ctx.zap.style.insert("einTor", (
|
ctx.zap.style.insert("einTor", (
|
||||||
scale: auto,
|
scale: auto,
|
||||||
fill: auto,
|
fill: none,
|
||||||
height: 3mm,
|
height: 3mm,
|
||||||
width: 6mm,
|
width: 6mm,
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -27,6 +27,9 @@
|
|||||||
align(left, block(e))
|
align(left, block(e))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#let tableFillHigh = white
|
||||||
|
#let tableFillLow = color.lighten(gray, 30%)
|
||||||
|
|
||||||
#let sinTable = [
|
#let sinTable = [
|
||||||
#let data = json("../sintable.json")
|
#let data = json("../sintable.json")
|
||||||
#table(
|
#table(
|
||||||
@@ -34,10 +37,11 @@
|
|||||||
rows: data.keys().len(),
|
rows: data.keys().len(),
|
||||||
stroke: none,
|
stroke: none,
|
||||||
table.hline(stroke: (thickness: 0.3mm)),
|
table.hline(stroke: (thickness: 0.3mm)),
|
||||||
fill: (x, y) => if (calc.rem(y, 2) == 0) { color.lighten(gray, 50%) } else { white },
|
fill: (x, y) => if (calc.rem(y, 2) == 0) { tableFillLow } else { tableFillHigh },
|
||||||
|
|
||||||
..for (label) in data.keys() {
|
table.vline(),
|
||||||
([*#eval(label, mode: "math")*], )
|
..for (i, label) in data.keys().enumerate() {
|
||||||
|
([*#eval(label, mode: "math")*], if i > 0 { table.vline() } else { table.vline(stroke: none) })
|
||||||
},
|
},
|
||||||
|
|
||||||
table.hline(stroke: (thickness: 0.3mm)),
|
table.hline(stroke: (thickness: 0.3mm)),
|
||||||
@@ -46,6 +50,7 @@
|
|||||||
for (col) in data.keys() {
|
for (col) in data.keys() {
|
||||||
(eval(data.at(col).at(i), mode: "math"),)
|
(eval(data.at(col).at(i), mode: "math"),)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
table.hline(stroke: (thickness: 0.3mm)),
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
242
src/lib/fetModel.typ
Normal file
242
src/lib/fetModel.typ
Normal file
@@ -0,0 +1,242 @@
|
|||||||
|
#import "@preview/zap:0.5.0"
|
||||||
|
|
||||||
|
#set page(width: auto, height: auto)
|
||||||
|
|
||||||
|
#let FetModelSubstrate = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: *
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2)
|
||||||
|
})
|
||||||
|
|
||||||
|
#let FetModel1 = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: *
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
|
||||||
|
content("kanal1", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("kanal2", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2)
|
||||||
|
})
|
||||||
|
|
||||||
|
#let FetModel2 = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: *
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
|
||||||
|
content("kanal1", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("kanal2", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2)
|
||||||
|
|
||||||
|
|
||||||
|
rect((0, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
|
||||||
|
content("isolator.west", [Isolator ($"SiO"_2$)], anchor: "west", padding: .2)
|
||||||
|
})
|
||||||
|
|
||||||
|
#let FetModel3 = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: *
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
|
||||||
|
content("kanal1", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("kanal2", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2)
|
||||||
|
|
||||||
|
|
||||||
|
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
|
||||||
|
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
|
||||||
|
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
|
||||||
|
|
||||||
|
rect((3, 4), (5, 4.25), fill: gray)
|
||||||
|
rect((7, 4), (9, 4.25), fill: gray)
|
||||||
|
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
|
||||||
|
|
||||||
|
content("isolator", [$"SiO"_2$])
|
||||||
|
content("isolator2", [Isolator])
|
||||||
|
})
|
||||||
|
|
||||||
|
#let FetModel(type: "N", s: 100%) = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: rect, content
|
||||||
|
|
||||||
|
cetz.draw.scale(s)
|
||||||
|
|
||||||
|
let pTypeFill = rgb("#ffb1b1");
|
||||||
|
let pTypeFill = rgb("#ffb1b1");
|
||||||
|
let nTypeFill = rgb("#61ff9f")
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: if(type == "N") { pTypeFill } else { nTypeFill },
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
wire((13, 5.5), (13, 0), mark: (end: ">"))
|
||||||
|
node("n-r1", (13, 5.75))
|
||||||
|
|
||||||
|
wire((6, 4.5), (6, 5.75))
|
||||||
|
node("n-g1", (6, 5.75))
|
||||||
|
wire("n-g1", "n-r1")
|
||||||
|
|
||||||
|
node("n-s1", (4, 5))
|
||||||
|
wire("n-s1", (4, 4.25))
|
||||||
|
|
||||||
|
node("n-d1", (8, 5))
|
||||||
|
wire("n-d1", (8, 4.25))
|
||||||
|
|
||||||
|
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
|
||||||
|
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
|
||||||
|
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
|
||||||
|
|
||||||
|
rect((3, 4), (5, 4.25), fill: gray)
|
||||||
|
rect((7, 4), (9, 4.25), fill: gray)
|
||||||
|
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
|
||||||
|
|
||||||
|
content("n-g1", [*G*\ate], anchor: "south", padding: 0.2, auto-scale: true)
|
||||||
|
content("n-s1", [*S*\ource], anchor: "south", padding: 0.2)
|
||||||
|
content("n-d1", [*D*\rain], anchor: "south", padding: 0.2, auto-scale: true)
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2, auto-scale: true)
|
||||||
|
content("p", if type == "N" [p] else [n], auto-scale: true)
|
||||||
|
content("isolator", [$"SiO"_2$], auto-scale: true)
|
||||||
|
|
||||||
|
content("isolator2", [Isolator], auto-scale: true)
|
||||||
|
|
||||||
|
rect((2.75, 3), (5.25, 4), fill: if(type == "N") { nTypeFill } else { pTypeFill }, name: "kanal1", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((6.75, 3), (9.25, 4), fill: if(type == "N") { nTypeFill } else { pTypeFill }, name: "kanal2", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
|
||||||
|
content("kanal1", if type == "N" [n+] else [p+], anchor: "center", padding: 0.2, auto-scale: true)
|
||||||
|
content("kanal2", if type == "N" [n+] else [p+], anchor: "center", padding: 0.2, auto-scale: true)
|
||||||
|
})
|
||||||
|
|
||||||
|
#let FetModelConducting = zap.circuit({
|
||||||
|
import zap: *
|
||||||
|
import cetz.draw: *
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(0, 0),
|
||||||
|
(12, 4),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
name: "p",
|
||||||
|
)
|
||||||
|
rect((0, -0.05), (12, -0.05), stroke: 3pt, name: "substrate")
|
||||||
|
earth("g1", (11.5, 0))
|
||||||
|
|
||||||
|
wire((13, 5.5), (13, 0), mark: (end: ">"))
|
||||||
|
node("n-r1", (13, 5.75))
|
||||||
|
|
||||||
|
wire((6, 4.5), (6, 5.75))
|
||||||
|
node("n-g1", (6, 5.75))
|
||||||
|
wire("n-g1", "n-r1")
|
||||||
|
|
||||||
|
node("n-s1", (4, 5))
|
||||||
|
wire("n-s1", (4, 4.25))
|
||||||
|
|
||||||
|
node("n-d1", (8, 5))
|
||||||
|
wire("n-d1", (8, 4.25))
|
||||||
|
|
||||||
|
rect((0, 4), (3, 4.5), fill: rgb("#fffc61"), name: "isolator2")
|
||||||
|
rect((5, 4), (7, 4.5), fill: rgb("#fffc61"))
|
||||||
|
rect((9, 4), (12, 4.5), fill: rgb("#fffc61"), name: "isolator")
|
||||||
|
|
||||||
|
rect((3, 4), (5, 4.25), fill: gray)
|
||||||
|
rect((7, 4), (9, 4.25), fill: gray)
|
||||||
|
rect((5.1, 4.5), (6.9, 4.75), fill: gray)
|
||||||
|
|
||||||
|
content("n-g1", [*G*\ate], anchor: "south", padding: 0.2)
|
||||||
|
content("n-s1", [*S*\ource], anchor: "south", padding: 0.2)
|
||||||
|
content("n-d1", [*D*\rain], anchor: "south", padding: 0.2)
|
||||||
|
content("substrate", [Bulk], anchor: "north", padding: 0.2)
|
||||||
|
content("p", [p])
|
||||||
|
content("isolator", [$"SiO"_2$])
|
||||||
|
content("isolator2", [Isolator])
|
||||||
|
|
||||||
|
rect((2.75, 3), (5.25, 4), fill: rgb("#61ff9f"), name: "kanal1", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((6.75, 3), (9.25, 4), fill: rgb("#61ff9f"), name: "kanal2", radius: (
|
||||||
|
south: 0.2,
|
||||||
|
))
|
||||||
|
rect((5.20, 3.99), (6.8, 3.9), fill: rgb("#61ff9f"), stroke: none)
|
||||||
|
|
||||||
|
content("kanal1", [n+], anchor: "center", padding: 0.2)
|
||||||
|
content("kanal2", [n+], anchor: "center", padding: 0.2)
|
||||||
|
|
||||||
|
rect((0.5, -1), (1, -0.70), fill: gray, stroke: none, name: "metal")
|
||||||
|
content("metal", [metal], anchor: "west", padding: 0.3)
|
||||||
|
|
||||||
|
rect((0.5, -1.2), (1, -1.5), fill: rgb("#61ff9f"), stroke: none, name: "n")
|
||||||
|
content("n", [n+], anchor: "west", padding: 0.3)
|
||||||
|
|
||||||
|
rect(
|
||||||
|
(2.5, -1),
|
||||||
|
(3, -0.7),
|
||||||
|
fill: rgb("#ffb1b1"),
|
||||||
|
stroke: none,
|
||||||
|
name: "p-substrate",
|
||||||
|
)
|
||||||
|
content("p-substrate", [p], anchor: "west", padding: 0.3)
|
||||||
|
|
||||||
|
rect((2.5, -1.2), (3, -1.5), fill: rgb("#fffc61"), stroke: none, name: "siO2")
|
||||||
|
content("siO2", [oxide], anchor: "west", padding: 0.3)
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user