Added norator/nullator to knoten potenziell
All checks were successful
Build Typst PDFs (Docker) / build-typst (push) Successful in 26s

This commit is contained in:
alexander
2026-02-07 23:19:03 +01:00
parent 2c9c26de99
commit 48fa668059
3 changed files with 152 additions and 105 deletions

View File

@@ -54,6 +54,8 @@
[Schaltungstheorie],
))
#set text(8.5pt)
#columns(4, gutter: 2mm)[
// Allgemein
#bgBlock(fill: colorAllgemein)[
@@ -73,7 +75,7 @@
[
KCL: $sum_(k=1)^n i_k =0$ (Knotenregel)
],
[
/*[
#cetz.canvas(length: 8mm, {
import cetz.draw: *
@@ -88,12 +90,12 @@
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: *
@@ -113,7 +115,7 @@
translate((0, -2mm))
mark((angle: 0deg, radius: 4mm), 270deg, symbol: "straight", stroke: blue, scale: 0.75)
})
],
],*/
)
$u dot i > 0$: Nimmt Energie auf\
@@ -121,7 +123,7 @@
$u dot i < 0$: Gibt Energie ab\
]
// Eintrag
// Verschaltung
#bgBlock(fill: colorAllgemein)[
#subHeading(fill: colorAllgemein)[Verschaltung]
@@ -178,7 +180,6 @@
)
]
//
// Quell Wandlung
#bgBlock(fill: colorEineTore)[
@@ -206,6 +207,7 @@
)
]
// Lineare Quelle
#bgBlock(fill: colorEineTore)[
#subHeading(fill: colorEineTore)[Lineare Quelle]
@@ -407,6 +409,106 @@
]
*/
// Linearsierung
#bgBlock(fill: colorEineTore)[
#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)$
#colbreak()
#line(length: 100%)
*Stromgesteuert* $quad r(i) = u$
*Groß-Signal* \
#grid(columns: (1fr, 1fr),
column-gutter: 4mm,
$I_0 = i_"AP" - g'_cal(F)(u_"AP")u_"AP"$,
$g_0 = g'_cal(F)(u_"AP")u$
)
#linebreak()
$i_"lin" = g_"lin" (u) = g'_cal(F)(u_"AP")(u-u_"AP") + i_"AP"\
i_"lin" = g_"lin" (u) = g_0 u + I_0$
#block(
height: 20mm,
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("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))
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* $quad i_"lin" = g_"lin" (u) = g'(u_"AP")u$
#line(length: 100%)
*Spannungsgesteuert* $quad g(u) = i$
*Groß-Signal* \
#grid(columns: (1fr, 1fr),
column-gutter: 4mm,
$U_0 = u_"AP" - r'(i_"AP") i_"AP"$,
$r_0 = r'(i_"AP")$
)
#linebreak()
$u_"lin" = r_"lin" (i) = r'(i_"AP")(i-i_"AP") + u_"AP"\
u_"lin" = r_"lin" (i) = r_0 i + U_0$
#block(
height: 25mm,
scale(x: 75%, y: 75%, zap.circuit({
import zap: *
import cetz.draw: content, line
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)
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))
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$)
})),
);
#linebreak()
*Klein-Signal* $quad u_"lin" = r_"lin" (i) = r'(i_"AP")i$
]
#colbreak()
// Graphen und Matrizen
#bgBlock(fill: colorAnalyseVerfahren)[
#subHeading(fill: colorAnalyseVerfahren)[Graphen und Matrizen]
@@ -425,7 +527,7 @@
$bold(A) : bold(i_k) -> text("Knotenstrombilanz") = 0$ \
$bold(A^T) : bold(u_b)-> bold(u_k)$
$
bold(A) = quad mannot.mark(
bold(A) = quad space space mannot.mark(
mat(
a_11, a_12, ..., a_(1m);
a_21, a_22, ..., a_(2m);
@@ -433,13 +535,13 @@
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)
#mannot.annot(<1>, pos: left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Knoten \ ($n-1$)]], dx: 2mm)
#mannot.annot(<1>, pos: bottom, text(rgb("#404296"))[Zweige ($b$) $->$], dy: -0.5mm)
a in {-1, 0, 1}
$
$-1$: In Knoten rein \
$1$: Aus Knoten raus \
#linebreak()
$-1 &: "In Knoten rein" \
1 &: "Aus Knoten raus"$
#line(length: 100%, stroke: (thickness: 0.2mm))
@@ -450,21 +552,22 @@
$bold(B^T) : bold(i_m) -> i_b$
$
bold(B) = quad mannot.mark(mat(
bold(B) = quad space space 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)
#mannot.annot(<1>, pos:left, text(rgb("#404296"))[#rotate(-90deg)[$<-$ Maschen \ $b-(n-1)$]], dx: 4mm)
#mannot.annot(<1>, pos:bottom, text(rgb("#404296"))[Zweige ($b$) $->$], dy: -0.5mm)
b in {-1, 0, 1}
$
$-1$: Gegen Maschenrichtung
$1$: In Maschenrichtung
#linebreak()
$-1 &: "Gegen Maschenrichtung" \
1 &: "In Maschenrichtung"$
#line(length: 100%, stroke: (thickness: 0.2mm))
@@ -476,6 +579,9 @@
KVL in Nullraum: $bold(B) bold(u_b) = bold(0)$ \
KCL in Bildraum: $bold(B^T) bold(i_m) = bold(i_b)$ \
#line(length: 100%, stroke: (thickness: 0.2mm))
*Tellegen'sche Satz* \
$bold(A B^T) = bold(B^T A) = 0$ \
$bold(u_b^T i_b) = 0$
@@ -729,88 +835,6 @@
)
],
// Linearsierung
#bgBlock(fill: colorEineTore)[
#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$*
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"$
$I_0 = i_"AP" - g'_cal(F)(u_"AP")u_"AP"$
$g_0 = g'_cal(F)(u_"AP")u$
#block(
height: 20mm,
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("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))
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: content, line
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)
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))
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$)
})),
);
Klein-Signal: $u_"lin" = r_"lin" (i) = r'(i_"AP")i$
]
#colbreak()
// Linearsierung (N-Tore)
#bgBlock(fill: colorZweiTore)[
#subHeading(fill: colorZweiTore)[Linearisierung (N-Tore)]
@@ -905,16 +929,32 @@
columns: (1fr, 0pt, 1fr),
row-gutter: 4mm,
column-gutter: 2mm,
[
*Kapazitiv*
],
[*Kapazitiv*],
grid.vline(stroke: 0.75pt),
[],
[*Induktivität*],
[
*Induktivität*
$q = c(u) \ u = chi(q)$\
],
[],
[
$q = c(u) \ chi(q) = u$\
$Phi = l(i) \ i = lambda(Phi)$
],
[$u,q$ stetig und beschränkt],
[],
[$i,Phi$ stetig und beschränkt],
grid.hline(stroke: 0.75pt),
[],
[],
[],
[*Restiv*],
[],
[*Memristiv*],
[
$i = g(u) \ u = r(i)$\
],
[],
[
@@ -927,6 +967,8 @@
[],
)
#line(length: 100%, stroke: (thickness: 0.2mm))
#align(center, [*Lineare Bauelemente*])
#grid(
columns: (1fr, 0pt, 1fr),
@@ -1198,7 +1240,7 @@
#subHeading(fill: colorAnalyseVerfahren)[Knotenpotenzial-Analyse Komponetent]
#import mannot: *
#let ImageHeight = 3.0cm
#let ImageHeight = 2.5cm
#table(
columns: (1fr, 1fr),
@@ -1222,6 +1264,10 @@
align(center, image("../images/schaltungstheorie/knotenpotenzial/schaltKontenPotenziell1.png", height: ImageHeight, fit: "contain")),
align(center, image("../images/schaltungstheorie/knotenpotenzial/schaltKontenPotenziell2.png", height: ImageHeight, fit: "contain")),
align(center, image("../images/schaltungstheorie/knotenpotenzial/nullator.jpg", height: ImageHeight, fit: "contain")),
align(center, image("../images/schaltungstheorie/knotenpotenzial/norator.jpg", height: ImageHeight, fit: "contain")),
)
]
@@ -1231,6 +1277,7 @@
// Bauelemente
#bgBlock(fill: colorEineTore)[
#subHeading(fill: colorEineTore)[Bauelemente]
#table(
columns: (1fr, 1fr, 1fr),
stroke: none,

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB