1

here and there

This commit is contained in:
Evan Pratten 2023-12-13 09:58:30 -05:00
parent 4d12ce5cb3
commit d8b2471d14
7 changed files with 553 additions and 0 deletions

View File

@ -0,0 +1,54 @@
---
title: PID
description: Getting from here to there
date: 2023-11-23
tags:
- math
draft: true
extra:
auto_center_images: true
excerpt: A post about PID controllers
uses:
- mermaid
aliases:
- /blog/pid
---
We are here.
<img src="/images/posts/pid/here.svg" style="margin: 2em auto;" />
And we want to go there.
<img src="/images/posts/pid/here_there.svg" style="margin: 2em auto;" />
## Figuring out how to get there
The first step in getting from *here* to *there* is knowing where *there* *isn't*.
I suppose a good place to start is checking to see if *here* and *there* are in fact the same place.
Are we there?
<img src="/images/posts/pid/are_we_there.svg" style="margin: 2em auto;" />
*Nope.*
Well, let's say we want to go *there* from *here* (because we do).. Which way do we have to go?
<img src="/images/posts/pid/this_way.svg" style="margin: 2em auto;" />
I think we can do that. How far will we have to travel?
<img src="/images/posts/pid/how_far.svg" style="margin: 2em auto;" />
Great!
## Getting there
So, we know where we are, we know where we aren't, and we know the distance and direction we'll have to travel. What's next?
Unfortunately, as the answer tends to be, physics is next.
We can't exactly just *go* there. We have to *get* there. And that means we have to spend some time 'twixt *here* and *there*.

View File

@ -0,0 +1,25 @@
---
title: Tank Tracks
description:
date: 2023-11-24
tags:
- math
draft: true
extra:
auto_center_images: true
excerpt: A post about the math behind tank tracks
uses:
- mermaid
aliases:
- /blog/tank-tracks
---
$$
f(\vec{v}) =
\vec{v} +
\begin{bmatrix}
0 & 1 \\\\
-1 & 0
\end{bmatrix}
\vec{v}
$$

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="445.84464"
height="87.293289"
viewBox="0 0 117.96305 23.096351"
version="1.1"
id="svg1"
inkscape:export-filename="here_there.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
sodipodi:docname="here_there.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-36.636952,-60.296368)">
<g
id="g3"
transform="translate(24.7095,8.5222687)">
<g
id="g2"
transform="translate(0,1.2906574)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1"
cx="23.812496"
cy="69.914482"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="11.525287"
y="63.687035"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="11.525287"
y="63.687035">Here</tspan></text>
</g>
<g
id="g1"
transform="translate(-5.2916667,19.321217)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1-0"
cx="112.16212"
cy="51.883923"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="97.562447"
y="45.656475"
id="text1-9"><tspan
sodipodi:role="line"
id="tspan2"
x="97.562447"
y="45.656475">There</tspan></text>
</g>
</g>
<path
style="fill:none;stroke:#e73434;stroke-width:1.465;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="m 113.83496,63.941416 35.01302,11.438512"
id="path3" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#18b200;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="137.01051"
y="64.893768"
id="text3"><tspan
sodipodi:role="line"
id="tspan3"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:6.35px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#18b200;fill-opacity:1;stroke-width:0.264583"
x="137.01051"
y="64.893768">Here?</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="89.839706"
height="65.949875"
viewBox="0 0 23.770088 17.449238"
version="1.1"
id="svg1"
sodipodi:docname="here.svg"
inkscape:export-filename="here.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-54.260791,-56.130557)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1"
cx="66.145836"
cy="69.914482"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="53.858624"
y="63.687035"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="53.858624"
y="63.687035">Here</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="413.21954"
height="67.789871"
viewBox="0 0 109.331 17.936071"
version="1.1"
id="svg1"
inkscape:export-filename="here_there.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm" />
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-11.927453,-56.934386)">
<g
id="g2"
transform="translate(0,1.2906574)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1"
cx="23.812496"
cy="69.914482"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="11.525287"
y="63.687035"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="11.525287"
y="63.687035">Here</tspan></text>
</g>
<g
id="g1"
transform="translate(-5.2916667,19.321217)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1-0"
cx="112.16212"
cy="51.883923"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="97.562447"
y="45.656475"
id="text1-9"><tspan
sodipodi:role="line"
id="tspan2"
x="97.562447"
y="45.656475">There</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="413.21954"
height="89.411865"
viewBox="0 0 109.331 23.656891"
version="1.1"
id="svg1"
inkscape:export-filename="this_way.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
sodipodi:docname="here_there.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false">
<inkscape:grid
id="grid3"
units="px"
originx="-93.390232"
originy="6.2621491e-06"
spacingx="0.26458332"
spacingy="0.26458335"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
dotted="false"
gridanglex="30"
gridanglez="30"
visible="false" />
</sodipodi:namedview>
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-36.636952,-56.934384)">
<g
id="g3"
transform="translate(24.7095)">
<g
id="g2"
transform="translate(0,1.2906574)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1"
cx="23.812496"
cy="69.914482"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="11.525287"
y="63.687035"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="11.525287"
y="63.687035">Here</tspan></text>
</g>
<g
id="g1"
transform="translate(-5.2916667,19.321217)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1-0"
cx="112.16212"
cy="51.883923"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="97.562447"
y="45.656475"
id="text1-9"><tspan
sodipodi:role="line"
id="tspan2"
x="97.562447"
y="45.656475">There</tspan></text>
</g>
</g>
<path
style="fill:none;stroke:#585858;stroke-width:1.136;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 126.77617,71.311147 H 53.305576"
id="path4" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="71.572311"
y="80.534828"
id="text4"><tspan
sodipodi:role="line"
id="tspan4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="71.572311"
y="80.534828">About This Far</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="413.21954"
height="94.318527"
viewBox="0 0 109.331 24.955112"
version="1.1"
id="svg1"
inkscape:export-filename="are_we_there.svg"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
sodipodi:docname="here_there.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false">
<inkscape:grid
id="grid3"
units="px"
originx="-93.390232"
originy="6.2621491e-06"
spacingx="0.26458332"
spacingy="0.26458335"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
dotted="false"
gridanglex="30"
gridanglez="30"
visible="false" />
</sodipodi:namedview>
<defs
id="defs1" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-36.636952,-56.934384)">
<g
id="g3"
transform="translate(24.7095)">
<g
id="g2"
transform="translate(0,1.2906574)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1"
cx="23.812496"
cy="69.914482"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="11.525287"
y="63.687035"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="11.525287"
y="63.687035">Here</tspan></text>
</g>
<g
id="g1"
transform="translate(-5.2916667,19.321217)">
<circle
style="fill:#000000;fill-opacity:1;stroke-width:0.354894;stroke-dasharray:0.508247, 0.508247;paint-order:markers stroke fill"
id="path1-0"
cx="112.16212"
cy="51.883923"
r="3.6653111" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.5833px;line-height:1.25;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="97.562447"
y="45.656475"
id="text1-9"><tspan
sodipodi:role="line"
id="tspan2"
x="97.562447"
y="45.656475">There</tspan></text>
</g>
</g>
<g
id="g4"
transform="translate(-0.56213149,-4.3369966)">
<path
sodipodi:type="star"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.465;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
id="path3"
inkscape:flatsided="false"
sodipodi:sides="3"
sodipodi:cx="267.62521"
sodipodi:cy="42.960022"
sodipodi:r1="8.6969891"
sodipodi:r2="4.348495"
sodipodi:arg1="0"
sodipodi:arg2="1.0471976"
inkscape:rounded="0"
inkscape:randomized="0"
d="m 276.3222,42.960022 -6.52274,3.765907 -6.52274,3.765906 0,-7.531813 0,-7.531813 6.52274,3.765906 z"
transform="matrix(0.36860108,0,0,0.36860108,-23.482782,59.719034)"
inkscape:transform-center-x="-0.80142752" />
<path
style="fill:none;stroke:#000000;stroke-width:1.865;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
d="M 74.127337,75.648144 H 54.802687"
id="path4" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="78.929832"
y="80.534828"
id="text4"><tspan
sodipodi:role="line"
id="tspan4"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Serif;-inkscape-font-specification:'Serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.264583"
x="78.929832"
y="80.534828">This Way</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.5 KiB