\XtoCVerification{PID Float32 CPU STM32G474RE}
\begin{tabular}{l l}
\textbf{Date of Test} & 2026-06-19 \\
\textbf{Target controller} & STM32G474RE \\
\end{tabular}
\vspace{1ex}
\XtoCTestCase{Inport test}{1}
Inport test for Control block PID.

\vspace{1em}
\begin{tblr}{width=\textwidth, colspec={|c|c|c|X[c]|c|}}
\hline
\SetRow{lightgray} \SetCell[c=5]{l} \textbf{Test results} \\ \hline
\textbf{Time step} & 1 & 2 & ... & 201 \\ \hline
\textbf{CPU cycles} & 73 & 73 & ... & 173 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Inputs} \\ \hline
\textbf{In (DSP)} & 0 & 0 & ... & 0 \\ \hline
\textbf{Init (DSP)} & 0.11 & 0.11 & ... & 0.11 \\ \hline
\textbf{Enable (DSP)} & 0 & 0 & ... & 1 \\ \hline
\textbf{In} & 0 & 0 & ... & 0 \\ \hline
\textbf{Init} & 0.11 & 0.11 & ... & 0.11 \\ \hline
\textbf{Enable} & 0 & 0 & ... & 1 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Parameters} \\ \hline
\textbf{Kp} & \SetCell[c=4]{c}2 \\ \hline
\textbf{Ki} & \SetCell[c=4]{c}2500 \\ \hline
\textbf{Kd} & \SetCell[c=4]{c}0.003 \\ \hline
\textbf{fc} & \SetCell[c=4]{c}200 \\ \hline
\textbf{initHandling} & \SetCell[c=4]{c}initialize integral \\ \hline
\textbf{ts\_fact} & \SetCell[c=4]{c}1 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Outputs} \\ \hline
\textbf{Out} & 0 & 0 & ... & -1.838 \\ \hline
\textbf{Exp. Out} & 0 & 0 & ... & -1.838 \\ \hline
\textbf{Out (DSP)} & 0 & 0 & ... & -1.838 \\ \hline
\textbf{Exp. Out (DSP)} & 0 & 0 & ... & -1.838 \\ \hline
\end{tblr}
\vspace{1ex}

\begin{XtoCtabular}{Test settings}
Tolerance Out & $\pm$2,3283e-06 ($\pm$5000 LSB) \\ \hline
\end{XtoCtabular}

\begin{XtoCtabular}{Test statistics}
Min CPU cycles & 73 \\ \hline
Max CPU cycles & 179 \\ \hline
Avg CPU cycles & 171 \\ \hline
\end{XtoCtabular}
\XtoCTestCase{Conversion test}{1}
Conversion test for Control block PID.

\vspace{1em}
\begin{tblr}{width=\textwidth, colspec={|c|c|c|X[c]|c|}}
\hline
\SetRow{lightgray} \SetCell[c=5]{l} \textbf{Test results} \\ \hline
\textbf{Time step} & 1 & 2 & ... & 37 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Mask parameters} \\ \hline
\textbf{Kp} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{Ki} & -11 & -10.389 & ... & 11 \\ \hline
\textbf{Kd} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{fc} & 0 & 13.889 & ... & 500 \\ \hline
\textbf{initHandling} & initialize integral & initialize integral & ... & initialize output \\ \hline
\textbf{ts\_fact} & 1 & 1 & ... & 1 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Controller parameters} \\ \hline
\textbf{b1d} & 0 & -824.183 & ... & 31415.927 \\ \hline
\textbf{a0d} & -1 & -0.991 & ... & -0.73 \\ \hline
\textbf{b0d} & 0 & 824.183 & ... & -31415.927 \\ \hline
\textbf{initHandling} & 0 & 0 & ... & 1 \\ \hline
\textbf{b0} & -0.001 & -0.001 & ... & 0.001 \\ \hline
\textbf{b1} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{Exp. b1d} & 0 & -824.183 & ... & 31415.927 \\ \hline
\textbf{Exp. a0d} & -1 & -0.991 & ... & -0.73 \\ \hline
\textbf{Exp. b0d} & 0 & 824.183 & ... & -31415.927 \\ \hline
\textbf{Exp. initHandling} & 0 & 0 & ... & 1 \\ \hline
\textbf{Exp. b0} & -0.001 & -0.001 & ... & 0.001 \\ \hline
\textbf{Exp. b1} & -10 & -9.444 & ... & 10 \\ \hline
\end{tblr}
\vspace{1ex}

\begin{XtoCtabular}{Test settings}
Tolerance b1d & $\pm$0,0000e+00 \\ \hline
Tolerance a0d & $\pm$1,0000e-15 \\ \hline
Tolerance b0d & $\pm$0,0000e+00 \\ \hline
Tolerance initHandling & $\pm$0,0000e+00 \\ \hline
Tolerance b0 & $\pm$0,0000e+00 \\ \hline
Tolerance b1 & $\pm$0,0000e+00 \\ \hline
\end{XtoCtabular}
\XtoCTestCase{Conversion-on-Target test}{1}
Conversion-on-Target test for Control block PID.

\vspace{1em}
\begin{tblr}{width=\textwidth, colspec={|c|c|c|X[c]|c|}}
\hline
\SetRow{lightgray} \SetCell[c=5]{l} \textbf{Test results} \\ \hline
\textbf{Time step} & 1 & 2 & ... & 37 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Mask parameters} \\ \hline
\textbf{Kp} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{Ki} & -11 & -10.389 & ... & 11 \\ \hline
\textbf{Kd} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{fc} & 0 & 13.889 & ... & 500 \\ \hline
\textbf{initHandling} & initialize integral & initialize integral & ... & initialize output \\ \hline
\textbf{ts\_fact} & 1 & 1 & ... & 1 \\ \hline
\SetRow{lightgray!50} \SetCell[c=5]{l} \textit{Controller parameters} \\ \hline
\textbf{b1d} & 0 & -824.183 & ... & 31415.928 \\ \hline
\textbf{a0d} & -1 & -0.991 & ... & -0.73 \\ \hline
\textbf{b0d} & 0 & 824.183 & ... & -31415.928 \\ \hline
\textbf{initHandling} & 0 & 0 & ... & 1 \\ \hline
\textbf{b0} & -0.001 & -0.001 & ... & 0.001 \\ \hline
\textbf{b1} & -10 & -9.444 & ... & 10 \\ \hline
\textbf{Exp. b1d} & 0 & -824.183 & ... & 31415.927 \\ \hline
\textbf{Exp. a0d} & -1 & -0.991 & ... & -0.73 \\ \hline
\textbf{Exp. b0d} & 0 & 824.183 & ... & -31415.927 \\ \hline
\textbf{Exp. initHandling} & 0 & 0 & ... & 1 \\ \hline
\textbf{Exp. b0} & -0.001 & -0.001 & ... & 0.001 \\ \hline
\textbf{Exp. b1} & -10 & -9.444 & ... & 10 \\ \hline
\end{tblr}
\vspace{1ex}

\begin{XtoCtabular}{Test settings}
Tolerance b1d & $\pm$3,0000e-03 \\ \hline
Tolerance a0d & $\pm$1,0000e-07 \\ \hline
Tolerance b0d & $\pm$3,0000e-03 \\ \hline
Tolerance initHandling & $\pm$0,0000e+00 \\ \hline
Tolerance b0 & $\pm$1,0000e-10 \\ \hline
Tolerance b1 & $\pm$1,0000e-06 \\ \hline
\end{XtoCtabular}

\begin{XtoCtabular}{Test statistics}
Min CPU cycles & 1488 \\ \hline
Max CPU cycles & 1562 \\ \hline
Avg CPU cycles & 1556 \\ \hline
\end{XtoCtabular}
