Physics of a rotating millstone: forces, torques, and angular momentum. The normal force FN is larger when the runner store is rolling around. Inspiration from Physics LibreTexts.
Edit and compile if you like:
% Author: Izaak Neutelings (August 2021)
\documentclass[border=3pt,tikz]{standalone}
\usepackage{physics}
\usepackage{tikz}
\usepackage[outline]{contour} % glow around text
\usetikzlibrary{calc}
\usetikzlibrary{angles,quotes} % for pic
\usetikzlibrary{arrows.meta}
\usetikzlibrary{bending}
\usetikzlibrary{patterns}
\tikzset{>=latex} % for LaTeX arrow head
\contourlength{1pt}
\colorlet{xcol}{blue!70!black}
\colorlet{vcol}{green!60!black}
\colorlet{acol}{red!50!blue!80!black!80}
\colorlet{myred}{red!65!black}
\colorlet{mypurple}{blue!60!red!80}
\tikzstyle{rvec}=[->,xcol,very thick,line cap=round]
\tikzstyle{vvec}=[->,vcol,very thick,line cap=round]
\tikzstyle{avec}=[->,acol,very thick,line cap=round]
\tikzstyle{force}=[->,myred,very thick,line cap=round]
\tikzstyle{myarr}=[-{Latex[length=3,width=3]}]
\tikzstyle{mysmallarr}=[-{Latex[length=2,width=2]}]
\tikzstyle{myarr2}=[{Latex[length=2,width=3]}-{Latex[length=2,width=3]}]
\tikzstyle{CM}=[red!40!black,fill=red!80!black!80]
\tikzstyle{origin}=[blue!50!black,fill=blue!80!black!80]
\tikzstyle{mass}=[line width=0.6,draw=red!30!black, %rounded corners=1,
top color=red!40!black!30,bottom color=red!40!black!10,shading angle=30]
\tikzstyle{ground}=[preaction={fill,top color=black!15,bottom color=black!8,shading angle=20},
fill,pattern=north east lines,thick,minimum width=0.3,minimum height=0.6]
\tikzstyle{metal}=[fill,top color=black!40,bottom color=black!20,shading angle=10]
\tikzstyle{stone}=[fill,top color=black!20,bottom color=black!10,shading angle=10]
\tikzstyle{wood}=[draw=brown!30!black,fill,top color=brown!80!black!60,bottom color=brown!80!black!40,shading angle=10]
\tikzset{
pics/Tin/.style={
code={
\def\R{0.10}
\draw[pic actions,line width=0.6,#1,fill=white] % ,thick
(0,0) circle (\R) (-135:.75*\R) -- (45:.75*\R) (-45:.75*\R) -- (135:.75*\R);
}},
pics/Tout/.style={
code={
\def\R{0.10}
\draw[pic actions,line width=0.6,#1,fill=white] (0,0) circle (\R);
\fill[pic actions,#1] (0,0) circle (0.3*\R);
}},
pics/rotarr/.style={
code={
\draw[white,very thick] ({#1*cos(200)},0) arc(-200:30:{#1} and {#1/2}) --++ (125:0.1);
\draw[->] ({#1*cos(200)},0) coordinate (W1) arc(-200:20:{#1} and {#1/2}) node[midway] (W2) {} --++ (125:0.1) coordinate (W3);
}},
pics/Tin/.default=mypurple,
pics/Tout/.default=mypurple,
pics/rotarr/.default=0.4,
}
\begin{document}
% MILLSTONE 3D
\def\hs{3.3} % shaft height
\def\rs{0.3} % shaft radius
\def\bp{0.4} % shaft radius horizontal scale
\def\la{1.2} % axis length
\def\ra{0.14} % axis radius
\begin{tikzpicture}
\def\t{0.6} % wheel thickness
\def\R{1.6} % wheel radius
\def\b{0.6} % wheel radius horizontal scale
\def\RG{2.5} % ground (bedstone) radius
\def\tG{0.4} % ground (bedstone) height
\def\ro{0.11} % omega rotation arrow radius
\def\rO{0.15} % Omega rotation arrow radius
\def\Rd{(\la+0.78*\t)} % radius dashed circle on bedstone
\def\ang{10} % angle perspective stone mill (rhat)
\def\angt{150} % angle perspective stone mill (theta hat)
\def\angp{20} % angle perspective pole
\def\F{0.6*\R} % magnitude of the force
\def\T{0.35*\R} % torque magnitude
\coordinate (O) at (0,0);
\coordinate (P) at (\ang+180:\la); % axis
\coordinate (M) at (\ang:\t/2); % CM
\coordinate (O') at ($(P)+(155:0.9*\R)$); % frame origin
%\coordinate (om) at ($(O)+(\ang-180:0.7*\la)$); % rotation vector omega
% BEDSTONE
\draw[stone]
(P)++(-\RG,-\R) --++ (0,-\tG) arc(-180:0:{\RG} and {\bp*\RG}) --++ (0,\tG);
\draw[stone] % bedstone
(P)++(0,-\R) ellipse({\RG} and {\bp*\RG});
\draw[dashed,xcol]
(P)++(0,-\R) ellipse({\Rd} and {0.95*\bp*\Rd});
\draw[->] (P)++(0,-\R) --++ (\ang-20:{\Rd} and {0.95*\bp*\Rd})
node[pos=0.5,below=-1] {R};
\draw[mass]
(90+\ang/2:{\b*\R} and \R) --++ (\ang:\t)
arc(90+\ang/2:-90+\ang/2:{\b*\R} and \R) --++ (\ang-180:\t)
arc(-90+\ang/2:90+\ang/2:{\b*\R} and \R);
\draw[mass,rounded corners=0.9] (O) ellipse ({\b*\R} and \R); % runner stone
\draw[myarr] (O) --++ (\ang+40:{\b*\R} and {\R})
node[midway] {\contour{red!40!black!23}{b}};
% AXIS
\draw[wood]
(0,\ra) arc(90+\ang/2:-90+\ang/2:{\ra*\b} and \ra) --++ (\ang-180:\la)
arc(-90+\ang/2:90+\ang/2:{\ra*\b} and \ra) -- cycle;
% POLE
\draw[wood] (P) arc(-90+\ang/2:270+\ang/2:{\ra*\b} and \ra);
\draw[wood] % pole
(P)++(-\rs,-\R)arc(-180:0:{\rs} and {\bp*\rs}) --++
(0,\hs) arc(0:-180:{\rs} and {\bp*\rs}) -- cycle
(P)++(0,{\hs-\R)}) ellipse({\rs} and {\bp*\rs});
% FORCE VECTORS
\draw[CM] (M) circle(0.5*\ra); % CM
\draw[origin] (P) circle(0.5*\ra) % origin
node[left=3,below=0] {O};
\draw[force] (0,-\R) --++ (0,1.25*\F) node[pos=0.5,left=-3] {$\vb{F}_\mathrm{N}$};
\draw[force] (M)++(0,-0.4*\ra) --++ (0,-\F) node[pos=0.4,right=-3.2] {$M\vb{g}$};
\draw[force] (O)++(0,-1.3*\ra) --++ (\ang-180:0.7*\F) node[pos=1,right=3,below=-1.5] {$\vb{F}_\mathrm{c}$};
% ROTATION VECTORS
\draw[vvec] (O) --++ (\ang-180:0.7*\la) coordinate (om)
node[pos=0.8,above=1] {$\vb*{\omega}$};
\draw[vvec] (P)++(0,{0.88*(\hs-\R)}) --++ (0,{0.4*(\hs-\R)}) coordinate (Om)
node[pos=0.8,left=0] {$\vb*{\Omega}$};
\draw[mysmallarr] (om)++($(\ang:0.41*\F)+(-100:{\b*\ro} and {\ro})$) arc(-100:160:{\b*\ro} and {\ro});
\draw[mysmallarr] (Om)++($(0,-0.36*\F)+(150:{\rO} and {\bp*\rO})$) arc(150:430:{\rO} and {\bp*\rO});
\draw[->] % arrow rotation Omega
(P)++(\ang-170:0.25*\RG) arc(110:140:{1.2*\Rd} and {0.4*\Rd})
node[above=2] {$\Omega$};
\draw[->] % arrow rotation Omega
(O)++(90:{\b*1.1*\R} and {1.1*\R}) arc(90:120:{\b*1.1*\R} and {1.1*\R})
node[above=2] {$\omega$};
% TORQUE VECTORS
\draw[avec] (0,-\R)++(30-\ang:0.12*\R) --++ (180+\angt:1.1*\T)
node[right=2,below=-1] {$\vb*{\tau}_\text{N}$};
\draw[avec] (M)++(140-\ang:0.12*\R) --++ (\angt:\T)
node[pos=0.8,above left=-2] {$\vb*{\tau}_\text{g}$};
%\draw[myarr2] (\bp*\rs,0.7*\R) --++ (\ang-180:\la+\bp*\rs)
% node[midway] {\contour{red!40!black!26}{R}};
% FRAME
\draw[rvec,{Latex[length=6,width=4]}-{Latex[length=6,width=4]}]
(O')++(\ang:0.5) node[above=2,right=-2] {$\vu{r}$} --++
(\ang+180:0.5) --++ (\angt:0.5) node[above=2,left=-2] {$\vu*{\theta}$};
\draw[rvec,-{Latex[length=6,width=4]}]
(O') --++ (0,0.5) node[above=-2] {$\vu{z}$};
\end{tikzpicture}
% MILLSTONE 2D side view
\def\t{0.80} % wheel thickness
\def\R{1.6} % wheel radius
\def\RG{2.3} % ground (bedstone) radius
\def\hG{0.4} % ground (bedstone) radius
\def\F{0.49*\R} % force magnitude
\begin{tikzpicture}
\coordinate (O) at (0,0);
\coordinate (O') at (155:0.9*\R);
\coordinate (M) at (\la+\t/2,0);
\coordinate (N) at (\la+0.63*\t,-\R);
\coordinate (TG) at (\la+0.91*\t,0);
\coordinate (TN) at (\la+0.91*\t,-0.90*\R);
% BEDSTONE
\draw[ground] (-\RG,-\R-\hG) rectangle++ (2*\RG,\hG);
%\draw[thick] (-\RG,-\R-\hG) |-++ (2*\RG,\hG) --++ (0,-\hG);
\draw[wood,rounded corners=0.9] (-\rs,-\R) rectangle++ (2*\rs,\hs);
\draw[wood] (\rs,\ra) -|++ (\la,-2*\ra) --++
(-\la,0) to[out=130,in=-130] cycle;
\draw[wood,rounded corners=0.9] (\la,-\ra) rectangle++ (1.1*\t,2*\ra);
\draw[mass,rounded corners=0.9] (M)++(-\t/2,-\R) rectangle++ (\t,2*\R);
\draw[CM] (M) circle(0.5*\ra); %node[above right=2,scale=0.9] {$M$};
\draw[<->] (M)++(0.14*\t,0.01) --++ (0,\R-0.02)
%node[pos=0.5,fill=red!40!black!25,inner sep=0.5] {$b$};
node[pos=0.5,right=-6] {\contour{red!40!black!26}{$b$}};
\draw[<->] (0,0.7*\R) --++ (\la+\t/2,0) node[pos=0.5,above=-1] {$R$};
% FORCE
\draw[force] (M)++(-0.01,-0.05) --++ (0,-\F)
node[pos=0.5,right=-1.8,opacity=0.3] {\contour{white}{$M\vb{g}$}}
node[pos=0.5,right=-1.8] {$M\vb{g}$};
\draw[force] (N)++(0,0.02) --++ (0,1.2*\F)
node[pos=0.5,right=-2,opacity=0.3] {\contour{white}{$\vb{F}_\mathrm{N}$}}
node[pos=0.5,right=-2] {$\vb{F}_\mathrm{N}$};
\draw[force] (0.98*\la,-1.4*\ra) --++ (-0.6*\la,0)
node[pos=0.3,below=-1] {$\vb{F}_\mathrm{c}$};
% POSITION
\draw[rvec] (O) -- (M)
node[midway,above=-2,opacity=0.3] {\contour{white}{$\vb{r}$}}
node[midway,above=-2] {$\vb{r}$};
\draw[rvec] (O) -- (N) node[pos=0.52,below=1] {$\vb{r}$};
\draw[origin] (O) circle(0.5*\ra) % origin
node[left=3,below=0] {O};
% TORQUE
\pic[scale=1] at (TG) {Tin};
\pic[scale=1] at (TN) {Tout};
\node[mypurple,below=2,right=1] at (TG) {$\vb*\tau_\mathrm{g}$};
\node[mypurple,below=0.5,right=1] at (TN) {$\vb*\tau_\mathrm{N}$};
% ROTATION VECTOR
\draw[vvec] (M)++(-0.6*\t,2.6*\ra) --++ (-0.66*\la,0)
node[pos=0.4,above=-1] {$\vb*{\omega}$};
\draw[vvec] (0,{0.86*(\hs-\R)}) --++ (0,{0.36*(\hs-\R)})
node[pos=0.8,left=0] {$\vb*{\Omega}$};
% FRAME
\draw[rvec,{Latex[length=6,width=4]}-{Latex[length=6,width=4]}]
(O')++(0.5,0) node[above=2,right=-2] {$\vu{r}$} --++
(-0.5,0) --++ (0,0.5) node[above=-1] {$\vu{z}$};
\pic[scale=1] at (O') {Tin=xcol};
\node[xcol,below=1,left=1] at (O') {$\vu*{\theta}$};
\end{tikzpicture}
% MILLSTONE 2D top view
\begin{tikzpicture}
\def\Rd{\la+\t/2}
\def\T{0.4*\R} % torque magnitude
\def\ang{20}
\coordinate (O) at (0,0);
\coordinate (O') at (158:0.55*\Rd);
\coordinate (M) at (\ang:\la+\t/2);
\coordinate (FG) at ($(M)+(\ang+40:0.4*\t)$);
\coordinate (FN) at ($(M)+(\ang-40:0.4*\t)$);
\draw[stone] (O) circle(\RG);
\draw[wood,rounded corners=0.9,rotate=\ang]
(0,-\ra) rectangle++ (\la+1.1*\t,2*\ra);
\draw[wood] (O) circle(\rs);
\draw[mass,rounded corners=0.9,rotate around={\ang:(M)}]
(M)++(-\t/2,-\R) rectangle++ (\t,2*\R);
\draw[dashed,xcol] (O) circle(\Rd);
\draw[CM] (M) circle(0.5*\ra);
% FORCE
\draw[force] (\ang:\la)++(\ang-90:1.5*\ra) --++ (\ang-180:0.6*\la)
node[pos=1,right=3,below=-1.5] {$\vb{F}_\mathrm{c}$};
\node[myred,right=2,above=-1,opacity=0.3] at (FG) {\contour{white}{$\vb{F}_\mathrm{g}$}};
\node[myred,right=2,above=-1] at (FG) {$\vb{F}_\mathrm{g}$};
\node[myred,right=6,below=1,opacity=0.3] at (FN) {\contour{white}{$\vb{F}_\mathrm{N}$}};
\node[myred,right=6,below=1] at (FN) {$\vb{F}_\mathrm{N}$};
\pic[scale=1] at (FG) {Tin={myred}};
\pic[scale=1] at (FN) {Tout={myred}};
% TORQUE
\draw[force,mypurple] (M)++(\ang+90:0.06) --++ (\ang+90:\T)
node[right=0,above=-3] {$\vb*{\tau}_\mathrm{g}$};
\draw[force,mypurple] (M)++(\ang-90:0.06) --++ (\ang-90:\T)
node[right=4,below=-2] {$\vb*{\tau}_\mathrm{N}$};
% ROTATION VECTOR
\draw[vvec] (\ang:0.94*\la) --++ (\ang-180:0.66*\la)
node[pos=0.8,above=2] {$\vb*{\omega}$};
\draw[->] (86:1.2*\Rd) arc(86:115:1.2*\Rd)
node[midway,above left=-1.5] {$\Omega$};
\pic[scale=1] at (O) {Tout={vcol}};
\node[vcol,below left=-0.7,opacity=0.3] at (O) {\contour{white}{$\vb*{\Omega}$}};
\node[vcol,below left=-0.7] at (O) {$\vb*{\Omega}$};
% FRAME
\draw[rvec,{Latex[length=6,width=4]}-{Latex[length=6,width=4]}]
(O')++(\ang:0.5) node[above=2,right=-2] {$\vu{r}$} --++
(\ang+180:0.5) --++ (\ang+90:0.5)
node[above left=-4] {\contour{black!18}{$\vu*{\theta}$}};
\pic[scale=1] at (O') {Tout=xcol};
\node[xcol,below left=-1] at (O') {$\vu{z}$};
\end{tikzpicture}
\end{document}
Click to download: dynamics_millstone.tex • dynamics_millstone.pdf
Open in Overleaf: dynamics_millstone.tex


