now including codeblocks (TM)

This commit is contained in:
Tom Selier 2024-02-03 16:33:20 +01:00
parent f71bb93d94
commit 4d9e35d0c9

View File

@ -7,11 +7,39 @@
\usepackage{caption} \usepackage{caption}
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{enumitem} \usepackage{enumitem}
\usepackage{listings}
\usepackage{xcolor}
\newenvironment{Figure} \newenvironment{Figure}
{\par\medskip\noindent\minipage{\linewidth}} {\par\medskip\noindent\minipage{\linewidth}}
{\endminipage\par\medskip} {\endminipage\par\medskip}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.97,0.97,0.95}
\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{magenta},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codepurple},
basicstyle=\ttfamily\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
\lstset{style=mystyle}
\graphicspath{{images/}} \graphicspath{{images/}}
\title{B00st converter} \title{B00st converter}
@ -97,19 +125,44 @@
mean over the period of 1 millisecond. Thus, the highest measured value can be mean over the period of 1 millisecond. Thus, the highest measured value can be
subtracted from the lowest measured value. subtracted from the lowest measured value.
\begin{lstlisting}[language=Python, caption={Peak to peak function}]
def PK_PK(all_data, ch):
output_pk = []
for data in all_data:
maximum = max(data[ch + 1])
minimum = min(data[ch + 1])
pk_pk = maximum-minimum
output_pk.append(pk_pk)
return output_pk
\end{lstlisting}
\subsubsection{Standard Deviation}\label{section:standard_devation} \subsubsection{Standard Deviation}\label{section:standard_devation}
The second metric used to measure noise was the standard deviation. The second metric used to measure noise was the standard deviation (SD).
Unlike, peak to peak it givesa better impression of the noise over a longer Unlike peak to peak, it gives a better impression of the average noise over
signal. SD can be calculated using equation \ref{eq:sd}. a longer period. SD can be calculated using equation \ref{eq:sd}.
\begin{equation} \begin{equation}
\label{eq:sd} \label{eq:sd}
\sigma = \sqrt{\frac{1}{N}\sum^{N-1}_{i=0}(x[i] - \mu)^2} \sigma = \sqrt{\frac{1}{N}\sum^{N-1}_{i=0}(x[i] - \mu)^2}
\end{equation} \end{equation}
Where $x[i]$ is each voltage measurement, $\mu$ is the mean of the signal and \noindent Where $x[i]$ is each voltage measurement, $\mu$ is the mean of the
$N$ is the total amount of samples. signal and $N$ is the total amount of samples.
\begin{lstlisting}[language=Python, caption={SD function}]
def SD(all_data, ch):
output_SD = []
for data in all_data:
N = len(data[ch + 1])
MU = sum(data[ch + 1])/N
x = 0
for val in data[ch + 1]:
x += (val-MU)**2
SD = sqrt((1/N) * x)
output_SD.append(SD)
return [output_load, output_SD]
\end{lstlisting}
\subsection{Ripple characteristics} \label{section:ripple} \subsection{Ripple characteristics} \label{section:ripple}
@ -142,6 +195,50 @@
sample in the signal can be multiplied by the corresponding value in the window, sample in the signal can be multiplied by the corresponding value in the window,
preparing the signal for the FFT. preparing the signal for the FFT.
\begin{lstlisting}[language=python, caption={Hamming function}]
def window(y):
N = len(y)
hamming = []
for n in range(N):
hamming.append(
0.54 - 0.46 * cos(2*np.pi*(n/N)))
y = [hamming[i]*x for i, x in enumerate(y)]
return y
\end{lstlisting}
\begin{lstlisting}[language=python, caption={FFT function}]
def Freq(all_data, ch):
output_freq = []
for data in all_data:
# FFT
# using realfft,
# because the signal only has real parts
y = np.fft.rfft(data[ch + 1])
# Window
y = window(y)
# Calculate the bins
dt = data[1][1] - data[1][0]
x = np.fft.rfftfreq(len(data[ch+1]), dt)
# find maximum, max() and np.argmax()
# are not playing nice with
# imaginary numbers
maximum = 0
max_idx = 0
offset = 1 # Skip the first bin, DC offset
for idx, val in enumerate(y[offset:]):
mag = sqrt(val.real**2 + val.imag**2)
if mag > maximum:
maximum = mag
max_idx = idx + offset
# get the frequency of the maximum
output_freq.append(x[max_idx])
return [output_load, output_freq]
\end{lstlisting}
\subsection{Start up} \label{section:start_up} \subsection{Start up} \label{section:start_up}
The last characteristics is the start up, specifically the different rise times The last characteristics is the start up, specifically the different rise times
@ -156,6 +253,18 @@
filtered using a low pass filter, reducing the high frequencies from the filtered using a low pass filter, reducing the high frequencies from the
measurement. measurement.
\begin{lstlisting}[language=python, caption={LPF snippet}]
initial = data[3][0]
dt = data[1][1] - data[1][0]
x_filter = [initial]
for i in range(1, len(data[3])):
x_dot_filter = \
(data[3][i] - x_filter[i-1])/0.0002
x_filter.append(
x_filter[i-1] + x_dot_filter*dt)
\end{lstlisting}
\section{Results} \section{Results}
In this section the results from section \ref{section:methodology} will be In this section the results from section \ref{section:methodology} will be
@ -230,7 +339,7 @@
Using the values from figure \ref{fig:schematic_full}, the resonating frequency Using the values from figure \ref{fig:schematic_full}, the resonating frequency
of the circuit should be around $27KHz$. Thus, this cannot be the cause of of the circuit should be around $27KHz$. Thus, this cannot be the cause of
the high frequency. As the frequency of the ripple is magnitudes higher the high frequency. As the frequency of the ripple is magnitudes higher
than the LC-circuit's resosonant frequency, what is seen is most likely the than the LC-circuit's resonant frequency, what is seen is most likely the
Self Resonating Frequency (SRF) of the inductor. Typically the SRF is Self Resonating Frequency (SRF) of the inductor. Typically the SRF is
$>10 MHz$, so that could be a probable source of the high frequencies. $>10 MHz$, so that could be a probable source of the high frequencies.