Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Artefacts branch #40

Draft
wants to merge 77 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
7c9ba18
Adding initial artefacts files
MichaelClerx Aug 16, 2023
0dc2ae6
Worked through Cf stuff.
MichaelClerx Aug 16, 2023
4248590
Nicer appendix B
MichaelClerx Aug 16, 2023
7e89540
Adding in Cp
MichaelClerx Aug 16, 2023
74215a2
Getting sidetracked in the laplace domain
MichaelClerx Aug 18, 2023
96ce72d
Getting sidetracked in the laplace domain
MichaelClerx Aug 18, 2023
d130e09
Still in the laplace domain
MichaelClerx Aug 22, 2023
6bad2ce
Laplacing
MichaelClerx Sep 1, 2023
cab16b3
Done with laplace appendix - for now
MichaelClerx Sep 1, 2023
62a5b05
Analysed Chon's model vs one made using the 1995 op amp equation
MichaelClerx Sep 12, 2023
4b27e3d
Fixed typo
MichaelClerx Sep 12, 2023
df253c9
Tweaks
MichaelClerx Sep 13, 2023
2e66153
Tweaks
MichaelClerx Sep 13, 2023
42be43c
Back to working on main artefact document.
MichaelClerx Sep 13, 2023
3d67ad2
Nearly done with uncompensated case.
MichaelClerx Sep 13, 2023
5d2908c
First version of artefact notebook 1 done.
MichaelClerx Sep 14, 2023
6e02121
Aligning images
MichaelClerx Sep 15, 2023
88439a9
Artefact notebooks update
MichaelClerx Sep 26, 2023
eb93586
Updated artefact readme.
MichaelClerx Sep 26, 2023
c211009
Updated artefact readme.
MichaelClerx Sep 26, 2023
78a82f2
Updated artefact readme.
MichaelClerx Sep 26, 2023
57204a9
Updated artefact readme.
MichaelClerx Sep 26, 2023
1b438e2
Redid uncompensated models appendix, fixing a minor typo causing quit…
MichaelClerx Sep 28, 2023
ec56d2b
Working on Rs compensation again
MichaelClerx Sep 28, 2023
a7f92b3
Added series resistance
MichaelClerx Sep 29, 2023
552377e
Looking at bessel
MichaelClerx Sep 29, 2023
be6ddce
Added full equations
MichaelClerx Sep 29, 2023
4bcb8d4
Working on compensation notebooks
MichaelClerx Jan 11, 2024
9dec05a
Working on prediction
MichaelClerx Jan 17, 2024
71d44bd
Updated Rs prediction Cs correction part
MichaelClerx Jan 18, 2024
81f3a9a
Finished 2nd notebook.
MichaelClerx Jan 19, 2024
0d4917e
Working on 3d notebook
MichaelClerx Jan 23, 2024
f966250
Working on 3d notebook
MichaelClerx Jan 23, 2024
e658168
Fixed equations in some examples
MichaelClerx Jan 23, 2024
e07f9ad
Trying to fix equations in captions
MichaelClerx Jan 23, 2024
2f4890f
Trying to fix equations in captions
MichaelClerx Jan 23, 2024
3785b98
Trying to fix equations in captions
MichaelClerx Jan 23, 2024
a8eb1f2
Reorganising appendices
MichaelClerx Jan 24, 2024
c2b9508
Working on parameter values.
MichaelClerx Jan 24, 2024
751c472
Finished mini lit rev
MichaelClerx Jan 25, 2024
3dbd30a
Looking at Rs Cm estimates
MichaelClerx Jan 26, 2024
b788bc2
Worked out simplified models.
MichaelClerx Jan 29, 2024
7190ea6
Fixed typo
MichaelClerx Jan 29, 2024
d39e242
Looking at Rs Cm estimates
MichaelClerx Jan 30, 2024
e0d53ac
Finished Rs-Cm estimates 1/2.
MichaelClerx Jan 30, 2024
00ed648
Tweaks
MichaelClerx Jan 30, 2024
ec6a8b8
Tweaks
MichaelClerx Jan 30, 2024
a6b901c
wip
MichaelClerx Jan 30, 2024
8aa3c6a
Added library to perform one-shot Rm and Cm estimates.
MichaelClerx Jan 30, 2024
f349c11
Reference fixes
MichaelClerx Jan 31, 2024
abe70c7
Tweaks
MichaelClerx Feb 1, 2024
5b693fb
Added note on filtering
MichaelClerx Feb 13, 2024
9944740
Update appendix-C3-parameter-values.ipynb
MichaelClerx Mar 11, 2024
d88c5d8
Updated simplified models notebook.
MichaelClerx May 15, 2024
aedef10
Updated simplified models notebook.
MichaelClerx May 16, 2024
6e4cc44
Updated simplified models notebook.
MichaelClerx May 17, 2024
d8bab85
Updated readme
MichaelClerx Jun 26, 2024
546ad5f
Update README.md
MichaelClerx Jun 26, 2024
c96dcda
Update README.md
MichaelClerx Jun 26, 2024
0628575
Update README.md
MichaelClerx Jun 26, 2024
b5fe0c7
Update README.md
MichaelClerx Oct 11, 2024
01979d3
Update README.md
MichaelClerx Oct 11, 2024
ac3ee60
Merge pull request #42 from CardiacModelling/appendices-in-readme
MichaelClerx Oct 11, 2024
25a5b80
Look at iterative Rs Cm
MichaelClerx Oct 28, 2024
97f9df6
Added note on a priori ljp correction
MichaelClerx Nov 5, 2024
19760d5
Update README.md
MichaelClerx Nov 13, 2024
56e4381
Update README.md
MichaelClerx Nov 13, 2024
c7788d3
Adding more nbviewer links
MichaelClerx Nov 21, 2024
54e4128
Fix to notebook 4, added very short notebook 5
MichaelClerx Nov 21, 2024
4793d3d
Added lei-style check to book 4
MichaelClerx Nov 22, 2024
6aa7bd0
Parameter updates
MichaelClerx Nov 28, 2024
0fc150d
Working on bessel filter notebook
MichaelClerx Nov 29, 2024
7322ae5
Working on Bessel filter appendix.
MichaelClerx Dec 4, 2024
2b42a01
Updated bessel filter appendix.
MichaelClerx Dec 4, 2024
d8336a2
Looking at filtering
MichaelClerx Dec 5, 2024
f3ac26e
Working filters into the main body
MichaelClerx Dec 6, 2024
28fe026
Adding notes
MichaelClerx Dec 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ This repository contains notebooks showing how to fit Myokit models to data usin

A part on fitting AP models is planned, but for now the repository contains:

- A [set of notebooks](ion-currents/README.md) showing how to fit kinetic parameters of ion current models.
- A series of notebooks showing how to [fit kinetic parameters of ion current models](ion-currents/README.md),
- and how to include the [amplifier electronics](artefacts/README.md) in models of patch clamp experiments.

## Requirements

Expand Down
57 changes: 57 additions & 0 deletions artefacts/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Modelling patch-clamp experiments

When analysing data from whole-cell patch-clamp experiments, it can be useful to have a model of both the biological system of interest _and_ the experimental set up.
In these notebooks we retrace the steps taken in the supplement to [Lei et al., 2020](https://doi.org/10.1098/rsta.2019.0348), and construct (1) a model of a patch-clamp experiment with various experimental artefacts, and (2) a model of the corrections applied by patch-clamp amplifiers to mitigate these effects.
The exposition draws heavily on a book chapter by [Sigworth (1995a)](https://doi.org/10.1007/978-1-4419-1229-9_4).

I have tried to keep things as to-the-point as possible, but a lot of extra detail is provided in the appendices.

## Modelling patch-clamp experiments [![github](../img/github.svg)](artefacts-1-modelling-patch-clamp.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-1-modelling-patch-clamp.ipynb)

The first notebook describes the uncompensated patch-clamp set up, and shows how to derive both an electrical schematic and an ODE model.

## Modelling electronic compensation [![github](../img/github.svg)](artefacts-2-compensation.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-2-compensation.ipynb)

In the second notebook we update the model to include the compensation circuitry commonly used in patch-clamp amplifiers.

## Modelling filters [![github](../img/github.svg)](artefacts-3-filtering.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-3-filtering.ipynb)

(Unfinished) In this notebook, we walk through the steps of a manual patch-clamp experiment.

## Simulating a manual patch clamp experiment [![github](../img/github.svg)](artefacts-4-simulations.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-4-simulations.ipynb)

(Unfinished) In this notebook, we walk through the steps of a manual patch-clamp experiment.

## Simplified models [![github](../img/github.svg)](artefacts-5-simplified.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-5-simplified.ipynb)

(Unfinished) In notebook number five we derive simplified models of the compensated voltage clamp setup, which can be used in fitting.

## Summary [![github](../img/github.svg)](artefacts-6-summary.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/artefacts-6-summary.ipynb)

(Unfinished) Finally, we present two simplified models (with currents in pA and currents in A/F), in equation & Myokit form.

## Appendices

- Electronics
- A1. Ideal op amps [![github](../img/github.svg)](appendix-A1-op-amp.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-A1-op-amp.ipynb)
- A2. Laplace transforms and filters [![github](../img/github.svg)](appendix-A2-laplace-and-filters.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-A2-laplace-and-filters.ipynb)
- A3. Non-ideal op amps [![github](../img/github.svg)](appendix-A3-non-ideal-op-amp.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-A3-non-ideal-op-amp.ipynb)
- A4. Bessel low-pass filters [![github](../img/github.svg)](appendix-A4-bessel-filters.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-A4-bessel-filters.ipynb)
- A5. Bessel filter ODEs [![github](../img/github.svg)](appendix-A5-bessel-filter-odes.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-A5-bessel-filter-odes.ipynb)
- Extended models
- B1. Models without compensation [![github](../img/github.svg)](appendix-B1-uncompensated-models.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-B1-uncompensated-models.ipynb)
- B2. Models with compensation [![github](../img/github.svg)](appendix-B2-compensated-models.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-B2-compensated-models.ipynb)
- B3. Sigworth 1983/1995 Rs compensation [![github](../img/github.svg)](appendix-B3-sigworth-rs.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-B3-sigworth-rs.ipynb)
- Parameter names and values
- C1. Names & symbols [![github](../img/github.svg)](appendix-C1-symbols.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-C1-symbols.ipynb)
- C2. Default parameter values used in examples [![github](../img/github.svg)](appendix-C2-parameter-defaults.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-C2-parameter-defaults.ipynb)
- C3. Parameter values, estimates for different amplifiers etc. [![github](../img/github.svg)](appendix-C3-parameter-values.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-C3-parameter-values.ipynb)
- Remaining noise and errors
- D1. Strategies for dealing with experimental error [![github](../img/github.svg)](appendix-D1-strategies.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-D1-strategies.ipynb)
- D2. Stochastic and periodic noise [![github](../img/github.svg)](appendix-D2-inspecting-noise.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-D2-inspecting-noise.ipynb)
- D3. Liquid junction potential [![github](../img/github.svg)](appendix-D3-liquid-junction-potential.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-D3-liquid-junction-potential.ipynb)
- D4. Leak (unfinished) [![github](../img/github.svg)](appendix-D4-leak.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-D4-leak.ipynb)
- D5. Handling remaining capacitance artefacts (unfinished) [![github](../img/github.svg)](appendix-D5-remaining-Cp-artefacts.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-D5-remaining-Cp-artefacts.ipynb)
- Estimating Rs and Cm
- E1. Estimating Rs and Cm; a one-shot approach [![github](../img/github.svg)](appendix-E1-rs-cm-one-shot.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-E1-rs-cm-one-shot.ipynb)
- E2. Estimating Rs and Cm; an iterative approach [![github](../img/github.svg)](appendix-E2-rs-cm-iterative.ipynb) [![nbviewer](../img/nbviewer.svg)](https://nbviewer.jupyter.org/github/CardiacModelling/fitting-notebooks/tree/artefacts/artefacts/appendix-E2-rs-cm-iterative.ipynb)
240 changes: 240 additions & 0 deletions artefacts/appendix-A1-op-amp.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Appendix A1: Ideal op amps\n",
"**Appendix A provides extra background for path clamp electronics.**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In this notebook we take a look at op amps, connected in a negative feedback loop like below:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"resources/op-amp-1.png\" style=\"margin:auto\" />\n",
"\n",
"_Note that the proper way to draw an op amp also includes two terminals to which a power source is connected, see for example [wikipedia](https://en.wikipedia.org/wiki/Operational_amplifier).\n",
"These are omitted here for clarity._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The general (idealised) equation for an op amp is:\n",
"\n",
"$$ V_o = A (V_+ - V_-)$$\n",
"\n",
"where $A$ is the \"_open loop gain_\" and is $\\mathcal{O}(10^5)$.\n",
"\n",
"For the schematic on the left we can substitute $V_o$ for $V_-$ to find:\n",
"\n",
"\\begin{align}\n",
"V_o &= A (V_+ - V_o) \\\\\n",
"V_o &= \\frac{A}{1 + A} V_+ \\approx V_+\n",
"\\end{align}\n",
"\n",
"where the final approximation works if $A \\gg 1$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The schematic on the right is more similar to the patch-clamp set-up.\n",
"The resistor $R_1$ is equivalent to $R$ in Figure 2 of the main text, and is often called $R_f$, for _feedback_.\n",
"The second resistor $R_2$ represents the \"load\", which in this case is our pipette/cell/bath combination. As before, we analyse by\n",
"\n",
"1. Writing equations for the voltage drop over both resistors, assuming currents going from right to left.\n",
"2. Assuming no current flows into the op amp, so that the current through $R_1$ equals that through $R_2$.\n",
"3. Using $V_0=A(V_+ - V_-)$ and then letting $A \\gg 1$.\n",
"\n",
"We find:\n",
"\n",
"\\begin{align}\n",
"I_{R_1} &= I_{R_2} \\\\\n",
"(V_o - V_-) / R_1 &= (V_- - 0) / R_2 \\\\\n",
"R_2 (V_o - V_-) &= R_1 V_- \\\\\n",
"R_2 V_o &= (R_1 + R_2) V_-\n",
"\\end{align}\n",
"then use\n",
"\\begin{align}\n",
"V_- = V_+ - V_0/A\n",
"\\end{align}\n",
"to get\n",
"\\begin{align}\n",
"R_2 V_o &= (R_1 + R_2) (V_+ - V_0/A) \\\\\n",
"\\left(R_2 + \\frac{R_1 + R_2}{A} \\right) V_o &= (R_1 + R_2) V_+ \\\\\n",
"V_o &= \\frac{A (R_1 + R_2)}{A R_2 + (R_1 + R_2)} V_+ \\\\\n",
" &= \\frac{A}{1 + \\left(\\frac{R_2}{R_1 + R_2}\\right) A} V_+ \\\\\n",
"\\end{align}\n",
"\n",
"Finally, assuming that $A \\gg 1$, we get\n",
"\\begin{align}\n",
"V_o = \\frac{1}{1/A + \\frac{R_2}{R_1 + R_2}} V_+\n",
" \\approx \\frac{R_1 + R_2}{R_2} V_+ \n",
" = \\left(1 + \\frac{R_1}{R_2} \\right) V_+\n",
"\\end{align}\n",
"\n",
"The term $\\left(1 + \\frac{R_1}{R_2} \\right)$ is sometimes called $A_\\text{CL}$, the \"_closed loop gain_\".\n",
"\n",
"Note that we get the same result by using $V_- = V_+$, as we did in the original analysis of Figure 2.\n",
"This lets us jump straight from\n",
"\n",
"$$R_2 V_0 = (R_1 + R_2) V_-$$\n",
"to\n",
"$$V_0 = \\frac{R_1 + R_2}{R_2} V_+$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Without load"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"resources/op-amp-2-no-load.png\" style=\"margin:auto\" />"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If we draw a partial circuit, we can still find an equation for $V_o$:\n",
"\n",
"\\begin{align}\n",
"V_o = V_- + IR\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Inverting amplifier"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"resources/op-amp-5-inverting.png\" style=\"margin:auto\" />"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"An \"inverting op-amp\" has a voltage applied to its \"inverting input\", as shown above.\n",
"We can analyse this using the same procedure.\n",
"\n",
"Starting with the current through either resistor:\n",
"\n",
"\\begin{align}\n",
"\\frac{V_1 - V^-}{R_1} &= \\frac{V^- - V_2}{R_2} \\\\\n",
"R_2 V_1 &= (R_1 + R_2)V^-- R_1V_2 \\\\\n",
"\\end{align}\n",
"\n",
"and then using $V_2 = A(V^+ - V^-) = -AV^-$:\n",
"\n",
"\\begin{align}\n",
"R_2 V_1 = -\\frac{R_1 + R_2}{A}V_2 - R_1V_2 \\approx -R_1V_2\n",
"\\end{align}\n",
"\n",
"to get\n",
"\n",
"\\begin{align}\n",
"V_2 \\approx -\\frac{R_2}{R_1} V_1\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## A difference amplifier\n",
"\n",
"The second active component we introduced was a differential or [_difference amplifier_](https://en.wikipedia.org/wiki/Differential_amplifier), as shown in the left panel below:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"resources/op-amp-3-diff-amp.png\" style=\"margin:auto\" />"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A design using an op amp is shown on the right.\n",
"Once again assuming currents flow from right to left, and that no currents flow into the op amp terminals, we can see that the current through both resistors at the top must be equal:\n",
"\n",
"\\begin{align}\n",
"(V_a - V_1) / R_1 &= (0 - V_a) / R_2 \\\\\n",
"R_2 (V_a - V_1) &= - R_1 V_a \\\\\n",
"V_a = V_1 \\frac{R_2}{R_1 + R_2}\n",
"\\end{align}\n",
"\n",
"And the same holds for the two resistors at the bottom:\n",
"\n",
"\\begin{align}\n",
"R_2 (V_b - V_2) &= R_1 (V_\\text{out} - V_b) \\\\\n",
"R_1 V_\\text{out} &= (R_1 + R_2) V_b - R_2 V_2\n",
"\\end{align}\n",
"\n",
"setting $V_a = V_b$\n",
"\n",
"\\begin{align}\n",
"R_1 V_\\text{out} &= \\frac{R_2 (R_1 + R_2)}{R_1 + R_2} V_1 - R_2 V_2 \\\\\n",
" V_\\text{out} &= \\frac{R_2}{R_1} V_1 - \\frac{R_2}{R_1} V_2 = K (V_1 - V_2)\n",
"\\end{align}\n",
"\n",
"We can set the amplification factor $K = R_2 / R_1$ by choosing the right resistors.\n",
"For our application, we pick $R_1 = R_2$ so that $K = 1$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For the mathematical analysis of this schematic the diff amp doesn't seem to do anything: instead of measuring a voltage difference between a point at $V_o$ and a point at $V_c$ we now measure between a point at $V_\\text{out} = V_o - V_c$ and a point at $V=0$.\n",
"However, the difference amplifier acts as a _buffer_: any device you attach to its $V_{out}$ and the ground will draw power from the amplifier, not from the preparation."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Loading