diff --git a/LICENSE b/.github/LICENSE
similarity index 100%
rename from LICENSE
rename to .github/LICENSE
diff --git a/.github/requirements-Book.txt b/.github/requirements-Book.txt
index edee88203..fd0938cd9 100644
--- a/.github/requirements-Book.txt
+++ b/.github/requirements-Book.txt
@@ -1,8 +1,9 @@
jinja2>=3.1.4
git+https://github.com/jangenoe/sphinx-book-theme#egg=sphinx-book-theme
jupyter-KULeuven-slides
-jupyter-book>=1.0
+jupyter-book==1.*
ghp-import
sphinx-exercise
sphinxext-opengraph
-matplotlib
\ No newline at end of file
+matplotlib
+jupytercards>=3.0.0
\ No newline at end of file
diff --git a/.github/requirements-Lite.txt b/.github/requirements-Lite.txt
index 797fc1606..19cedb1bf 100644
--- a/.github/requirements-Lite.txt
+++ b/.github/requirements-Lite.txt
@@ -14,5 +14,5 @@ scikit-rf
networkx
pyspice
schemdraw
-jupytercards
+jupytercards>=3.0.0
nbformat
\ No newline at end of file
diff --git a/AnalogeElektronica2/berekening.ipynb b/AnalogeElektronica2/berekening.ipynb
index 6359b314a..f728cdde7 100644
--- a/AnalogeElektronica2/berekening.ipynb
+++ b/AnalogeElektronica2/berekening.ipynb
@@ -68,11 +68,11 @@
},
"editable": true,
"execution": {
- "iopub.execute_input": "2024-07-09T22:31:53.978586Z",
- "iopub.status.busy": "2024-07-09T22:31:53.976673Z",
- "iopub.status.idle": "2024-07-09T22:31:55.518764Z",
- "shell.execute_reply": "2024-07-09T22:31:55.518104Z",
- "shell.execute_reply.started": "2024-07-09T22:31:53.978419Z"
+ "iopub.execute_input": "2025-01-22T12:43:09.065614Z",
+ "iopub.status.busy": "2025-01-22T12:43:09.065383Z",
+ "iopub.status.idle": "2025-01-22T12:43:09.820831Z",
+ "shell.execute_reply": "2025-01-22T12:43:09.820167Z",
+ "shell.execute_reply.started": "2025-01-22T12:43:09.065590Z"
},
"mystnb": {
"figure": {
@@ -3804,6 +3804,945 @@
"source": [
"We kunnen ons afvragen of het ook hier niet voordelig is eerst het stelsel {ref}`TransformEq` op te lossen zodat we $I_1$ en $I_2$ bekomen in functie van $V_i-V_j$ en $V_k-V_l$, en dan deze bekomen numerieke waardes invullen in de vergelijkingen met nummer $i$,$j$,$k$,$l$. Hierdoor hebben we 2 vergelijkingen en 2 onbekenden minder in {ref}`Transformmatrix`. Echter in vele gevallen willen we gebruik maken van een goede transformator en gaat $M \\approx \\sqrt{L_{ij} L_{kl}}$ waardoor de determinant $D$ van dit stelsel $\\approx 0$. Hierdoor wordt het overblijvende stelsel numeriek minder stabiel."
]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "de0f2e38-4b49-4286-a1bb-7d2e23cca8b0",
+ "metadata": {},
+ "source": [
+ "## Berekening in SPICE\n",
+ "\n",
+ "Hieronder tonen we een eenvoudig verschilversterker circuit met 5 transistors dat eenvoudig in spice kan geimplementeerd worden."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "aedc7b15-b172-4336-95f0-e2ae8cb4be8c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2025-01-22T12:43:32.985321Z",
+ "iopub.status.busy": "2025-01-22T12:43:32.985024Z",
+ "iopub.status.idle": "2025-01-22T12:43:33.100105Z",
+ "shell.execute_reply": "2025-01-22T12:43:33.098599Z",
+ "shell.execute_reply.started": "2025-01-22T12:43:32.985305Z"
+ },
+ "jupyter": {
+ "source_hidden": true
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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",
+ "image/svg+xml": [
+ "\n",
+ "\n",
+ "\n"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "with schemdraw.Drawing() as d:\n",
+ " # tail transistor\n",
+ " Q1 = AnalogNFet().anchor('source').theta(0).reverse()\n",
+ " Line().down().length(0.5)\n",
+ " ground = d.here\n",
+ " Ground()\n",
+ " # input pair\n",
+ " Line().left().length(1).at(Q1.drain)\n",
+ " Q2 = AnalogNFet().anchor('source').theta(0).reverse()\n",
+ " Dot().at(Q1.drain)\n",
+ " Line().right().length(1)\n",
+ " Q3 = AnalogNFet().anchor('source').theta(0)\n",
+ " # current mirror\n",
+ " Q4 = AnalogPFet().anchor('drain').at(Q2.drain).theta(0)\n",
+ " Q5 = AnalogPFet().anchor('drain').at(Q3.drain).theta(0).reverse()\n",
+ " Line().right().at(Q4.gate).to(Q5.gate)\n",
+ " Dot().at(0.5*(Q4.gate + Q5.gate))\n",
+ " Line().down().toy(Q4.drain)\n",
+ " Line().left().tox(Q4.drain)\n",
+ " Dot()\n",
+ " # vcc connection\n",
+ " Line().right().at(Q4.source).to(Q5.source)\n",
+ " Dot().at(0.5*(Q4.source + Q5.source))\n",
+ " Vdd()\n",
+ " # bias source\n",
+ " Line().left().length(0.25).at(Q1.gate)\n",
+ " SourceV().down().toy(ground).reverse().scale(0.5).label(\"Bias\")\n",
+ " Ground()\n",
+ " # signal labels\n",
+ " Tag().at(Q2.gate).label(\"In+\").left()\n",
+ " Tag().at(Q3.gate).label(\"In−\").right()\n",
+ " Dot().at(Q3.drain)\n",
+ " Line().right().tox(Q3.gate)\n",
+ " Tag().right().label(\"Out\").reverse()\n",
+ " # bias currents\n",
+ " CurrentLabel(length=1.25, ofst=0.25).at(Q1).label(\"20µA\")\n",
+ " CurrentLabel(length=1.25, ofst=0.25).at(Q4).label(\"10µA\")\n",
+ " CurrentLabel(length=1.25, ofst=0.25).at(Q5).label(\"10µA\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "9bbf8462-d48a-4da6-b23e-679efbd76307",
+ "metadata": {},
+ "outputs": [],
+ "source": []
}
],
"metadata": {
diff --git a/binder/environment.yml b/binder/environment.yml
index 9c23b420c..9a61c00f8 100644
--- a/binder/environment.yml
+++ b/binder/environment.yml
@@ -25,6 +25,6 @@ dependencies:
- pip:
- jupyterlab-myst
- schemdraw>=0.19
- - jupytercards>=3.0.0a3
+ - jupytercards>=3.0.0
- wikitables
- python-pptx>=1.0.2