summaryrefslogtreecommitdiff
path: root/ma
diff options
context:
space:
mode:
Diffstat (limited to 'ma')
-rw-r--r--ma/Makefile7
-rw-r--r--ma/resources/nbexport.tplx13
-rw-r--r--ma/safety_reset.tex17
3 files changed, 35 insertions, 2 deletions
diff --git a/ma/Makefile b/ma/Makefile
index f693b51..c3d61b7 100644
--- a/ma/Makefile
+++ b/ma/Makefile
@@ -1,4 +1,6 @@
+LAB_PATH ?= ../lab-windows
+
SHELL := bash
.ONESHELL:
.SHELLFLAGS := -eu -o pipefail -c
@@ -8,11 +10,16 @@ MAKEFLAGS += --no-builtin-rules
all: safety_reset.pdf
+safety_reset.pdf: resources/grid_freq_estimation.pdf
+
%.pdf: %.tex %.bib
pdflatex -shell-escape $<
biber $*
pdflatex -shell-escape $<
+resources/%.pdf: $(LAB_PATH)/%.ipynb
+ jupyter-nbconvert --to=pdf --output-dir=resources --output=$* --LatexExporter.template_file=resources/nbexport.tplx $^
+
.PHONY: clean
clean:
rm -f safety_reset.aux safety_reset.bbl safety_reset.bcf safety_reset.log safety_reset.blg
diff --git a/ma/resources/nbexport.tplx b/ma/resources/nbexport.tplx
new file mode 100644
index 0000000..6346c67
--- /dev/null
+++ b/ma/resources/nbexport.tplx
@@ -0,0 +1,13 @@
+
+((*- extends 'article.tplx' -*))
+
+((*- block header -*))
+
+ ((( super() )))
+
+ \pagenumbering{gobble}
+
+((*- endblock header -*))
+
+((* block maketitle *))((* endblock maketitle *))
+
diff --git a/ma/safety_reset.tex b/ma/safety_reset.tex
index 154fbda..868c6e3 100644
--- a/ma/safety_reset.tex
+++ b/ma/safety_reset.tex
@@ -47,6 +47,7 @@
\usetikzlibrary{calc}
%\usepackage[pdftex]{graphicx,color}
\usepackage{epstopdf}
+\usepackage{pdfpages}
% Needed for murks.tex
\usepackage{setspace}
\usepackage[draft=false,babel,tracking=true,kerning=true,spacing=true]{microtype} % optischer Randausgleich etc.
@@ -56,6 +57,10 @@
\newcommand{\degree}{\ensuremath{^\circ}}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
+\usepackage{fancyhdr}
+\fancyhf{}
+\fancyfoot[C]{\thepage}
+
\begin{document}
% Beispielhafte Nutzung der Vorlage für die Titelseite (bitte anpassen):
@@ -778,7 +783,7 @@ an \emph{arbitrary} signal this would highly limit our practical measurement acc
instead just amounts to an interpolation between output bins. Depending on the downstream analysis algorithm it may
still be sensible to use this property of the DFT for interpolation, but in general it will be computationally
expensive compared to other interpolation methods and in any case it will not yield any better frequency resolution
- aside from a hypothetical numerical advantage\cite{gasior01}.
+ aside from a hypothetical numerical advantage\cite{gasior02}.
}.
For this reason all approaches to mains frequency estimation are based on a model of the mains voltage waveform.
Nominally, this waveform would be a perfect sine at $f = 50 \text{Hz}$. In practice it is a sine at $f \approx 50
@@ -989,7 +994,8 @@ interface and its good tolerance of system resets due to unexpected power loss.
\subsection{Frequency sensor measurement results}
Captured raw waveform data is processed in the Jupyter Lab environment\cite{kluyver01} and grid frequency estimates are
-extracted as described in sec. \ref{frequency_estimation} using the \textcite{gasior01} technique.
+extracted as described in sec. \ref{frequency_estimation} using the \textcite{gasior01} technique. Appendix
+\ref{grid_freq_est_notebook} contains the Jupyter notebook we used for frequency measurement.
% FIXME comparison against reference measurements?
@@ -1088,6 +1094,13 @@ correctly configure than it is to simply use separate hardware and secure the in
\printbibliography
\newpage
+\chapter{Transcripts of Jupyter notebooks used in this thesis}
+
+\section{Grid frequency estimation}
+\label{grid_freq_est_notebook}
+\fancyhead[C]{Included Jupyter notebook: Grid frequency estimation}
+\includepdf[pages=-, pagecommand=\thispagestyle{fancy}]{resources/grid_freq_estimation.pdf}
+
\chapter{Demonstrator schematics and code}
\chapter{Economic viability of countermeasures}