From cc432b1ab9a5f25d23c3b8ecdb5da051485e0616 Mon Sep 17 00:00:00 2001 From: Thomas Pietrzak Date: Wed, 30 Mar 2022 17:47:11 +0200 Subject: [PATCH] Closed-loop --- figures/amplifiers.tex | 12 ++++++------ mystyle.sty | 1 + tex/4-loop.tex | 23 +++++++++++++++++++---- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/figures/amplifiers.tex b/figures/amplifiers.tex index f1f7922..c4a9eab 100644 --- a/figures/amplifiers.tex +++ b/figures/amplifiers.tex @@ -10,23 +10,23 @@ %\begin{circuitikz}[scale=0.8, transform shape] \begin{circuitikz}[] \ctikzset{amplifiers/fill=cellblue, resistors/scale=0.5, component text=left} - \draw (0,0) node[above]{$v_i$} to[short, o-] ++(0.5,0) + \draw (0,0) node[above]{$v_i$} to[short, o-] ++(1,0) node[op amp, noinv input up, anchor=+, scale=0.7](OA){} (OA.-) -- ++(0,-0.8) coordinate(outnode) - to[R=$R_1$] ++(0,-1.0) node[tlground]{} + to[R, l_=$R_1$] ++(-1.0,0) -- ++(0,-0.5) node[tlground]{} (outnode) to[R=$R_2$, *-] (outnode -| OA.out) -- (OA.out) to [short, *-o] ++(1,0) node[above]{$v_o$} ; - \draw (7,0) node[above]{$v_i$} to[short,o-] ++(0.5,0) - to[R=$R_1$] ++(1.5,0) coordinate(outnode2) + \draw (7,0) node[above]{$v_i$} to[short,o-] ++(0.2,0) + to[R=$R_1$] ++(1.2,0) coordinate(outnode2) to[R=$R_2$] ++(2.0,0) -- ++(0,-1.0) node[op amp, anchor=out, scale=0.7](OB){} to [short, *-o] ++(1,0) node[above]{$v_o$} - (OB.+) -- ++(0,-0.5) node[ground]{} + (OB.+) -- ++(0,-0.5) node[tlground]{} (OB.-) -- (OB.- -| outnode2) to[short, -*] (outnode2) ; \end{circuitikz}% \tikzexternaldisable \caption[Non-inverting amplifier and inverting amplifier.]{Non-inverting amplifier and inverting amplifier. They both use their inputs and their own output to compute their output.} - \label{fig:actuatorcircuit} + \label{fig:amplifiers} \end{figure} diff --git a/mystyle.sty b/mystyle.sty index 3c3477d..d522dab 100644 --- a/mystyle.sty +++ b/mystyle.sty @@ -406,6 +406,7 @@ } \newcommand{\etal}{\emph{et al.}\xspace} +\newcommand{\eg}{\emph{e.g.}\xspace} \newcommand{\fixme}[1]{\textcolor{red}{#1}\xspace} diff --git a/tex/4-loop.tex b/tex/4-loop.tex index 150f10d..f9fa0ae 100644 --- a/tex/4-loop.tex +++ b/tex/4-loop.tex @@ -490,7 +490,24 @@ However, functions such as in this example make sense. We observe here that each iteration of the co-fixpoint can be inductive, as it is the case in the example. It shows that interaction is a general process that connects entities in the environment to enable them exchanging information. -Algorithms only process information to transform input into outputs without knowledge of the overall scheme. +Algorithms only process information to transform known input into outputs without knowledge of the overall scheme, and no external event can change their behavior during their execution. +Interactive systems we use everyday react to unpredictable inputs in real time. +Therefore they are not just built with algorithms. +%The input streams are unpredictable, and their behavior adapts to +They have separated input and output loops at different levels that communicate through streams. +For example, on the system level an input loop gets input streams of input data (\eg mouse displacements), produce output streams of input events (\eg mouse move event). +On the application level, an input loops gets output streams of input events and combine the information they convey with interaction techniques to produce an output stream of actions to be executed. +On the application level, a graphics loop gets an input stream of graphic commands and produces an output stream of objects to be displayed. +Therefore, applications are what Wegner calls \defwords{interaction machines}{interaction machine}~\cite{wegner97}. +%\defwords{Neural networks}{neural network} are other examples of interaction machines: they also get input streams and produce output streams~\cite{mcculloch43}. + +In the previous section we discussed the fundamental coupling between humans' perception and action. +Systems called \defword{closed-loop systems}\footurl{https://en.wikipedia.org/wiki/Control_system} also leverage such a mechanism. +For example the non-inverting and inverting amplifiers circuit depicted on \reffig{fig:amplifiers} have the output of their operational amplifier connected to one of its input through a resistor. +The output voltage is proportional to the input voltage whose value depends on $R_1$ and $R_2$. +But most importantly, the feedback loop stabilizes the output voltage to the desired value. +This kind of mechanism is used in many applications such as robots or drones control. +%Human-in-the-loop \input{figures/amplifiers.tex} @@ -547,7 +564,7 @@ Flexibility? Adaptability? PAC \cite{coutaz87} Arch \cite{arch92} -MVC \cite{reenskaug79a} +MVC \cite{reenskaug79,reenskaug79a} Seeheim \cite{green85} Différent ? Ou pas ? @@ -561,8 +578,6 @@ Their behavior Curiosity~\cite{laversannefinot18} -Arch~\cite{arch92}, MVC~\cite{reenskaug79,reenskaug79a}, PAC~\cite{coutaz87} - Implementation depends on ethnographic background of programmers \cite{rode04} Software architecture reproduce the organization structure\cite{conway68} -- 2.30.2