diff --git a/MXfastStageDoc/MXfastStage.tex b/MXfastStageDoc/MXfastStage.tex index a7457df..382d2db 100644 --- a/MXfastStageDoc/MXfastStage.tex +++ b/MXfastStageDoc/MXfastStage.tex @@ -117,12 +117,21 @@ resonances 60Hz,142Hz,414Hz,231Hz\\ } } +The bode plot drops as expected at approx. 40dB/dec. (due to $F=m\ddot{x}$) + +Here a example to roughly calculate at which frequency the motor moves 1um at 2A current:\\ +1curr\_bits is approx. 1mA. At 0dB 1mA moves a sine of 1um.\\ +10dB=factor 10, 20dB=factor 100, 30dB=factor 1000, 3dB $\approx$ factor 2\\ +A factor 2000 is $1000 \cdot 2 =30dB+3dB=33dB$. +Out of the bode plot we can read approx.:\\ +Motor 1: -33dB at 130Hz\\ +Motor 2: -33dB at 84Hz + + \subsection{Closed Loop} \subsubsection{Deltatau schematics} \includegraphics[scale=.7]{/home/zamofing_t/Documents/doc-ext/DeltaTau/UsrMan290.png} - -\includegraphics[scale=.2]{/home/zamofing_t/Documents/doc-ext/DeltaTau/ServoBlockDiag.png} \\ Closed loops have been measured with the following control loop settings. @@ -132,7 +141,6 @@ motor_servo(mot=2,Kp=22,Kvfb=350,Ki=0.02,Kvff=240,Kaff=1500,MaxInt=1000) \end{verbatim} - \subsubsection{chirp sine closed loop} @@ -175,7 +183,6 @@ The parameters for that chirp is:\\ Moving 5um with frequencies from 10 to 220Hz\\ $\rightarrow$ at frequencies above 200 Hz, the current increses up to 2 amps, and the the following error kicks in\\ $\rightarrow$ The closed loop response becomes bad above 20Hz (motor 1 ca. -10\%, motor 2 +5\% )\\ -$\rightarrow$ Moving 1um at 1kHz seems to consume a current of about 2 amps.\\ %→n times higher mass → n times lower frequency for same amplitude response @@ -183,6 +190,47 @@ $\rightarrow$ Moving 1um at 1kHz seems to consume a current of about 2 amps.\\ %1um at 12Hz with 1 mA →with 2000mA → sqrt(2000)*12Hz=540Hz % %A very simplified transfer function of the system is G(s)=k/s² + +\FloatBarrier +\subsubsection{using advanced Deltatau Servo Loop} + +For now only following settings of the servo loop are used:Kp, Kvfb, Ki, Kvff, Kaff, MaxInt.\\ +The standard PID servo loop has some additional features, that were not yet used, especially the polynomial filters. + +\includegraphics[scale=.2]{/home/zamofing_t/Documents/doc-ext/DeltaTau/ServoBlockDiag.png} +\\ + +\cite[293]{PMACusr} shows details about the standard servo loop but unfortunately there are errors in documentation and the explanations are not really helpful. Hopefully the implementation is correct.\\ + +\textbf{Polynomial Filters:} +\begin{description} +\item[A:] $Ka_0+Ka_1z^{-1}+\ldots+Ka_1z^{-7}$ +\item[B:] $Kb_0+Kb_1z^{-1}+\ldots+Kb_1z^{-7}$ +\item[C/D:] $\frac{Kc_0+Kc_1z^{-1}+\ldots+Kc_1z^{-7}} + {Kd_0+Kd_1z^{-1}+\ldots+Kd_1z^{-7}}$ +\item[E:] $\frac{1}{Ke_0+Ke_1z^{-1}+Ke_1z^{-2}}$ +\item[F:] $\frac{1}{Kf_0+Kf_1z^{-1}+Kf_1z^{-2}}$ +\end{description} + +Filters A, B, C, and D are 7th-order polynomials. +if \texttt{Motor[x].Servo.SwPoly7} is set to its default value of 0, these only execute as 2nd-order polynomials, saving computation time. +If this element is set to 1, these execute as full 7th-order polynomials. +Filters E and F are always 2nd-order polynomials.\\ + +The flat amplitude in figure \ref{fig:mot_open} at low frequencies is mostly the result of the static and viscose friction and not of a linear mechanical spring and element as one could suggest out of the bode plot.\\ + +The Value of $K_{fff}$ is used to compensate the non linear static friction. It can be estimated out of the bode plot at low frequencies. It is a non linear element, because it only depends on the sign if the velocity.\\ + +$K_{vff}$ is used to compensate the linear viscose friction.\\ + +\textbf{TODO:}\\ +Make simulations in MATLAB. Set C/D filter to compensate resonance and the current loop.\\ +This sshould be mostly the inverse of the figures: \ref{fig:mot1_chirp} and \ref{fig:mot2_chirp}.\\ +Use $K_{fff}$ + + + + \newpage \section{Modeling the system} \subsection{Electrical model}