master
Øyvind Skaaden 2020-10-04 23:39:07 +02:00
parent ab0c8a3429
commit 4f04062d7d
24 changed files with 17945 additions and 0 deletions

View File

@ -0,0 +1,338 @@
%Dokumentinnstillinger:---------------------------------
%Ved å google flitting kan du finne ut hva de forskjellige tingene her betyr, og hvordan du kan gjøre eventuelle endringer.
\documentclass[11pt,norsk]{article}
\usepackage[utf8]{inputenc}
\usepackage{a4wide}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\setlength{\parindent}{0pt}
\setlength{\parskip}{2ex}
\usepackage{amsmath}
\usepackage[pdftex, pdfborderstyle={/S/U/W 0}]{hyperref}
\usepackage{graphicx}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage{tabularx}
\usepackage{multirow}
\input{clangTex}
% Electronic drawing
\usepackage[european, american currents, american voltages,siunitx]{circuitikz}
\newcommand{\figref}[1]{Figur \ref{#1}}
\begin{document}
%Headingdel:---------------------------------------------
\begin{minipage}[c]{0.15\textwidth}
\includegraphics[width=2.0cm]{elsys_pos_staaende_ntnu}
\end{minipage}
\begin{minipage}[c]{0.85\textwidth}
\renewcommand{\arraystretch}{1.7}
\large
\begin{tabularx}{\textwidth}{|X|X|}
\hline
\multicolumn{2}{|l|}{} \\
\multicolumn{2}{|l|}{\huge \textbf{Designnotat}} \\
\multicolumn{2}{|l|}{} \\
\hline
\multicolumn{2}{|l|}{Tittel:
%Skriv inn tittel her:------------------------------------------
Turtallsindikator
} \\
\hline
\multicolumn{2}{|l|}{Forfattere:
%Skriv inn forfattere her:--------------------------------------
Øyvind Skaaden
} \\
\hline
%Skriv inn versjon og dato her her:-----------------------------
Versjon: 2.0 & Dato: \today
\\
\hline
\end{tabularx}
\end{minipage}
\normalsize
%Automatisk generert innholdsfortegnelse:------------------
\setlength{\parskip}{0ex}
\renewcommand{\baselinestretch}{0.1}\normalsize
\tableofcontents
\renewcommand{\baselinestretch}{1.00}\normalsize
\setlength{\parskip}{2ex}
\rule{\textwidth}{1pt}
%Selve rapporten:------------------------------------------
\section{Problembeskrivelse}
\label{sec:innledning}
Overvåking og styring av fabrikker og prosessanlegg er et viktig anvendelsesområde for elektronisksystemdesign.
I slike installasjoner finnes ofte motorer og andre roterende innretninger, og det kan være viktig å sørge for at disse operere med riktig turtall.
I dette notatet skal det beskrives en løsning på en turtallsindikator som gir et varsel når turtallet for en innretning er for lavt.
Vi skal ta for oss design av systemet som vist i \figref{fig:blokkskjema}.
\begin{figure}
\centering
\includegraphics[width=0.7\textwidth]{pics/blokk.png}
\caption{Blokkskjema for kretsen.}
\label{fig:blokkskjema}
\end{figure}
Kretsen skal
\begin{itemize}
\item Ta inn et pulstog med driftssyklus $50\%$$v_1$
\item Ha en lysdiode på utgangen, som begynner å lyse dersom omdreiningshastigheten er lavere enn en oppgitt $\omega$
\end{itemize}
\section{Prinsipiell løsning}
\label{sec:prinsipielllosning}
Det er to hovedmåter å designe en krets som skal måle turtallet.
Den ene baserer seg på en analog krets med elementer som bruker en viss tid på å lade seg opp.
Den andre baserer seg på en digital krets, f.eks. en mikrokontroller, som måler omdreiningshastigheten.
Dette notatet vil ta for seg den analoge måten å gjøre det på, men det blir lagt ved en smakebit på den digitale måten i vedlegg \ref{app:digital}.
Vi ønsker en krets som bruker litt tid på å lade opp et element.
Vi kan da ta utgangspunkt i en kondensator.
Med den kan vi styre hvor lang oppladningstid og utladningstid vi ønsker.
Dersom vi ønsker at kondensatoren skal lade seg raskt opp, kan vi ha en diode, pekende inn mot kondensatoren, i parallell med motstanden i en RC-krets.
Dersom vi ønsker rask utladning, kan vi snu dioden.
Se skjema for kretsen i \figref{circ:utgangspunkt}.
\begin{figure}[ht]
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,*-] ++(1,0)
to [R, l=$R_1$, *-*] ++(3,0)
to [short,-*] ++(4,0)
++(-3,0) to [C, l=$C_1$, *-*] ++(0,-3)
++(3,0) to [short, *-*] (0,0)
(8,3) to [open, v=$v_2$] (8,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\end{circuitikz}
\caption{Foreslått krets for omdreiningsteller}
\label{circ:utgangspunkt}
\end{figure}
Denne kretsen kan ta inn et pulstog med variabel driftssyklus inn på $v_1 $, og det kommer ut et nærmest ``sagtann''-signal ut på $v_2 $, se \figref{graph:pulsetrain}.
Det er fordi kondensatoren lades normalt opp med tidskonstanten tau, $\tau = R\cdot C$, men lades spontant ut ned til ca $0.7$V, som er terskelspenning for dioden. Kondensatoren vil deretter lades normalt ut igen.
Dersom vi deretter kombinerer dette med en transistor, slik at vi kan styre større strømmer vi kretsen se ut som i \figref{circ:analogKrets}.
\begin{figure}
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,o-] ++(1,0)
to [R, l=$R_1$, *-*] ++(3,0)
to [short,-o] ++(4,0)
++(-3,0) to [C, l=$C_1$, *-*] ++(0,-3)
++(3,0) to [short, o-o] (0,0)
(8,3) to [open, v=$v_2$] (8,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\draw
(9,3) node[nmos](nmosA){}
(9,8) node[right]{$V_S$} to [short, o-] ++(0,-0.5)
to [R, l=$R_2$] ++(0,-2)
to [led, *-*] (nmosA.D)
(nmosA.S) to [short, -*] (9,0)
node[ground](){}
(9,0) to [short, -o] (8,0)
(nmosA.G) to [short, o-o] (8,3);
\draw
(9,5.5) node[right] {$D+$}
(9,3.75) node[right] {$D-$};
\end{circuitikz}
\caption{Skjema for omdreinigsmåler med transistor}
\label{circ:analogKrets}
\end{figure}
Dersom omdreiningshastigheten er større enn grenseverdien vil ikke spenningen over $C_1 $, $v_2 $, bli tilstrekkelig for å ``åpne'' transistoren. Når frekvensen er lavere enn grensen, vil kondensatoren kunne lade seg opp til terskelspenningen, $V_T$, til transistoren, og transistoren vil ``åpne'' seg.
Motstanden $R_2 $ har som oppgave å begrense strømmen til led-en. Den trenger ikke å være der om det trengs en større strøm ut fra transistoren.
For å regne ut verdier til $R_1 $ og $C_1 $ må vi først finne ut hvilken tidskonstant vi trenger.
Vi vet at vi trenger en spenning på $v_2$ lik terskelspenningen til transistoren, $v_2 = V_T$, for at transistoren skal åpne seg.
Vi kan bruke dette til å finne en tau, $\tau$, gitt en frekvens, med periode $T$.
Vi kan anta at pulstoget har holdt på en stund, slik at systemet får balansert seg. Dersom vi da tar utgangspunkt i at vi har en diode med en diodespenning $V_D$. Startspenningen for stigningen av spenningen vil være sluttspenningen til utladningen over dioden, sett i \figref{graph:pulsetrain}.
Etter hver høye del av pulstoget vil spenningen $v_2$ raskt bevege seg mot $V_D$.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/EksempelPy.png}
\caption{Eksempel på hvordan spenniger endrer seg i kretsen i \figref{circ:analogKrets}.}
\label{graph:pulsetrain}
\end{figure}
Spenningen $v_2 $ når pulstoget er lavt, og endrer til høy, vil ha en likning som i (\ref{eq:spenningDiode}).
\begin{align}
v_D = V_D\cdot e^{-\frac{T}{2\tau}}
\label{eq:spenningDiode}
\end{align}
Siden vi vet at $v_1 $ varierer fra $v_D$ til en spenning $V_0 $ i et pulstog med periode $T$, med driftssyklus på 50\%, er pulsen $V_0 $ i $\tfrac{1}{2}T$. Vi vet da at spenningen $v_2 $ må nå $V_T$ etter $\tfrac{1}{2}T$ for at transistoren skal åpne seg.
Dersom vi setter dette sammen med hvordan spenningen utvikler seg gjennom perioden av pulstoget som er høyt vil vi få som i (\ref{eq:tauStart}).
Vi bruker formelen for spenning over en kondensator og løser for tidskonstanten $\tau$.
\begin{align}
v_2 = V_T &= V_0\cdot \left(v_D - V_0\right) e^{-\frac{T}{2\tau}} \label{eq:tauStart}\\
V_T &= V_0\cdot \left(V_D\cdot e^{-\frac{T}{2\tau}} - V_0\right) e^{-\frac{T}{2\tau}} \\
0 &= V_D\cdot e^{-\frac{T}{\tau}} - V_0 \cdot e^{-\frac{T}{2\tau}} + (V_0 - V_T) \\
e^{-\frac{T}{2\tau}} &= \frac{V_0 \pm \sqrt{(V_0)^2 - 4 \cdot V_D \cdot (V_0 - V_T)}}{2 \cdot V_D}\\
\tau &= -\frac{T}{2\cdot \ln\left(\frac{V_0 \pm \sqrt{(V_0)^2 - 4 \cdot V_D \cdot (V_0 - V_T)}}{2 \cdot V_D}\right)}
\label{eq:tau}
\end{align}
\textbf{Merk: }\textit{Det må velges den verdien for $\tau$ som gir mening. Vi ser også at $V_0 > V_T$ for at likningen skal gi mening.}
Når vi har funnet en tidskonstant ved (\ref{eq:tau}), velger vi bare en tilstrekkelig liten kondensator for $C_1$ og bruker likning (\ref{eq:RC}) for tidskonstanten $\tau$
\begin{align}
\tau = R_1 \cdot C_1
\label{eq:RC}
\end{align}
for å finne verdien for motstanden $R_1$.
\section{Realisering og test}
\label{sec:realisering}
Grenseverdien for omdreiningshastigheten er gitt ved $f=40000\text{rpm} \approx 666.67$Hz. Vi finner periodetiden ved (\ref{eq:period}).
\begin{align}
T = \frac{1}{f}\Rightarrow T = 1.5\ \text{ms} \label{eq:period}
\end{align}
Pulstoget har en spenning $V_0 = 5$V. Det ble brukt en BS170 transistor. Den har en terskelspenning $V_T \approx 2$V, og dioden som ble brukt har en diodespenning på $V_D \approx 0.7$V.
Vi finner $\tau$ ved hjelp av (\ref{eq:tau}).
\begin{align}
\tau &= -\frac{1.5\ \text{ms}}{2\cdot \ln\left(\frac{5\text{V} \pm \sqrt{(5\text{V})^2 - 4 \cdot 0.7\text{V} \cdot (3\text{V})}}{2 \cdot 0.7\text{V}}\right)} \label{eq:calculateTau}\\
\tau &= \begin{cases}
-0.40128946\ \text{ms}\\
1.81296116\ \text{ms}
\end{cases}
\intertext{Velger den verdien som gir mening}
\tau &= 1.81296116\ \text{ms}
\end{align}
For å koble opp kretsen i \figref{circ:analogKrets} trenger vi kun å regne ut verdiene for $R_1 $ og $C_1 $.
Velger motstand $R_1 = 1\text{M}\Omega$. Bruker (\ref{eq:tau}) for å finne $C_1 \approx 1.8$nF.
Simulering av spenningene med disse forhåndsvalgte verdiene kan sees i \figref{graph:pulsetrainReal}. Kode for simuleringen kan sees i Vedlegg \ref{app:codeSim}.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/SimuleringPy.png}
\caption{Simulering av kretsen.}
\label{graph:pulsetrainReal}
\end{figure}
Etter testing og observasjoner ser vi at spenningen $v_2$ har en topp på rudnt $2$V. Men det er ikke nok til å få dioden til å lyse. Dersom vi ønsker en mer lyssterk diode, kan vi bare endre terskelspenningen i (\ref{eq:calculateTau}) til noe høyere. Finner ut at for at lysdioden vi bruker skal ``lyse'', må vi ha en kondensator på $1$nF.
Den fungerende kretsen har følgende skjema, se \figref{circ:finalAnalog}. Ferdig oppkoblet krets kan sees i \figref{pic:oppkobling}
Dioden vil da begynne å lyse ved terskelfrekvensen og bli sterkere jo lavere frekvensen på pulstoget blir, se \figref{graph:pulsetrainRealLower}, og forsvinner ved frekvenser høyere enn terskelfrekvensen, se \figref{graph:pulsetrainRealHigher}.
\begin{figure}
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,o-] ++(1,0)
to [R, l=1<\mega\ohm>, *-*] ++(3,0)
to [short,-o] ++(4,0)
++(-3,0) to [C, l=1<\nano\farad>, *-*] ++(0,-3)
++(3,0) to [short, o-o] (0,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\draw
(9,3) node[nmos](nmosA){}
(9,8) node[right]{5V} to [short, o-] ++(0,-0.5)
to [R, l=220<\ohm>] ++(0,-2)
to [led] (nmosA.D)
(nmosA.S) to [short, -*] (9,0)
node[ground](){}
(9,0) to [short, -o] (8,0)
(nmosA.G) to [short, o-o] (8,3);
\end{circuitikz}
\caption{Skjema for omdreinigsmåler med transistor, med verdier}
\label{circ:finalAnalog}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{pics/krets2.JPG}
\caption{Fysisk oppkobling av krets}
\label{pic:oppkobling}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/SimuleringPyLower.png}
\caption{Simulering av kretsen ved frekvens lavere enn terskelfrekvens.}
\label{graph:pulsetrainRealLower}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/SimuleringPyHigher.png}
\caption{Simulering av kretsen ved frekvens høyere enn terskelfrekvens.}
\label{graph:pulsetrainRealHigher}
\end{figure}
\clearpage
\section{Konklusjon}
\label{sec:konklusjon}
Kretsen fungerte innenfor kravene som ble gitt. Dioden begynner å lyse ved gitt omdreiningshastighet på 40000 rpm.
\section{Takk}
Takk til Ulrik Bredland og Magnus Oddstøl for bra samarbeid. Stor takk til lærere på elsys som har tatt seg tiden til å gi en tilbakemelding på dette designnotatet.
% %Bibliografi: Legg til flere elementer ved å legge til flere \bibitem:--------
% \phantomsection
% \addcontentsline{toc}{section}{Referanser}
\clearpage
\appendix
%Tillegg. Flere tillegg legges til ved å lage flere sections:-----------------
\section{Digital måte å måle omdreiningshastighet}
\label{app:digital}
Det er mulig å lage en krets med arduino for å måle frekvensen til et pulstog.
Ta for dere koden under. Pulstoget leses på pinne 8 på arduinoen, og en transistor kan styres på pinnen som heter ``out'' i koden. Frekvensen velges ved å endre variabelen ``rpm''.
\lstinputlisting[style=CStyle]{MeasureFreq/MeasureFreq.ino}
\clearpage
\section{Kode for simulering av didoe-kondensator-krets}
\label{app:codeSim}
\lstinputlisting[style=PyStyle]{Grafer/CapDiode.py}
\end{document}

BIN
D2/D2_ØyvindSkaaden.pdf Normal file

Binary file not shown.

352
D2/D2_ØyvindSkaaden.tex Normal file
View File

@ -0,0 +1,352 @@
%Dokumentinnstillinger:---------------------------------
%Ved å google flitting kan du finne ut hva de forskjellige tingene her betyr, og hvordan du kan gjøre eventuelle endringer.
\documentclass[11pt,norsk]{elsys-design}
% \usepackage[utf8]{inputenc}
% \usepackage{a4wide}
% \usepackage{lmodern}
% \usepackage[T1]{fontenc}
% \usepackage{babel}
% \setlength{\parindent}{0pt}
% \setlength{\parskip}{2ex}
% \usepackage{amsmath}
% \usepackage[pdftex, pdfborderstyle={/S/U/W 0}]{hyperref}
% \usepackage{graphicx}
% \usepackage[font=small,labelfont=bf]{caption}
% \usepackage{tabularx}
% \usepackage{multirow}
\input{clangTex}
% %Headingdel:---------------------------------------------
% \begin{minipage}[c]{0.15\textwidth}
% \includegraphics[width=2.0cm]{elsys_pos_staaende_ntnu}
% \end{minipage}
% \begin{minipage}[c]{0.85\textwidth}
% \renewcommand{\arraystretch}{1.7}
% \large
% \begin{tabularx}{\textwidth}{|X|X|}
% \hline
% \multicolumn{2}{|l|}{} \\
% \multicolumn{2}{|l|}{\huge \textbf{Designnotat}} \\
% \multicolumn{2}{|l|}{} \\
% \hline
% \multicolumn{2}{|l|}{Tittel:
% %Skriv inn tittel her:------------------------------------------
% Turtallsindikator
% } \\
% \hline
% \multicolumn{2}{|l|}{Forfattere:
% %Skriv inn forfattere her:--------------------------------------
% Øyvind Skaaden
% } \\
% \hline
% %Skriv inn versjon og dato her her:-----------------------------
% Versjon: 2.0 & Dato: \today
% \\
% \hline
% \end{tabularx}
% \end{minipage}
% \normalsize
% %Automatisk generert innholdsfortegnelse:------------------
% \setlength{\parskip}{0ex}
% \renewcommand{\baselinestretch}{0.1}\normalsize
% \tableofcontents
% \renewcommand{\baselinestretch}{1.00}\normalsize
% \setlength{\parskip}{2ex}
% \rule{\textwidth}{1pt}
\heading{Designnotat}
\title{Turtallsindikator}
\author{Øyvind Skaaden}
\version{2.0}
\date{\today}
\begin{document}
\maketitle
%Automatisk generert innholdsfortegnelse:------------------
\toc
%Selve rapporten:------------------------------------------
\section{Problembeskrivelse}
\label{sec:innledning}
Overvåking og styring av fabrikker og prosessanlegg er et viktig anvendelsesområde for elektronisksystemdesign.
I slike installasjoner finnes ofte motorer og andre roterende innretninger, og det kan være viktig å sørge for at disse operere med riktig turtall.
I dette notatet skal det beskrives en løsning på en turtallsindikator som gir et varsel når turtallet for en innretning er for lavt.
Vi skal ta for oss design av systemet som vist i \figref{fig:blokkskjema}.
\begin{figure}
\centering
\includegraphics[width=0.7\textwidth]{pics/blokk.png}
\caption{Blokkskjema for kretsen.}
\label{fig:blokkskjema}
\end{figure}
Kretsen skal
\begin{itemize}
\item Ta inn et pulstog med driftssyklus $50\%$$v_1$
\item Ha en lysdiode på utgangen, som begynner å lyse dersom omdreiningshastigheten er lavere enn en oppgitt $\omega$
\end{itemize}
\section{Prinsipiell løsning}
\label{sec:prinsipielllosning}
Det er to hovedmåter å designe en krets som skal måle turtallet.
Den ene baserer seg på en analog krets med elementer som bruker en viss tid på å lade seg opp.
Den andre baserer seg på en digital krets, f.eks. en mikrokontroller, som måler omdreiningshastigheten.
Dette notatet vil ta for seg den analoge måten å gjøre det på, men det blir lagt ved en smakebit på den digitale måten i vedlegg \ref{app:digital}.
Vi ønsker en krets som bruker litt tid på å lade opp et element.
Vi kan da ta utgangspunkt i en kondensator.
Med den kan vi styre hvor lang oppladningstid og utladningstid vi ønsker.
Dersom vi ønsker at kondensatoren skal lade seg raskt opp, kan vi ha en diode, pekende inn mot kondensatoren, i parallell med motstanden i en RC-krets.
Dersom vi ønsker rask utladning, kan vi snu dioden.
Se skjema for kretsen i \figref{circ:utgangspunkt}.
\begin{figure}[ht]
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,*-] ++(1,0)
to [R, l=$R_1$, *-*] ++(3,0)
to [short,-*] ++(4,0)
++(-3,0) to [C, l=$C_1$, *-*] ++(0,-3)
++(3,0) to [short, *-*] (0,0)
(8,3) to [open, v=$v_2$] (8,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\end{circuitikz}
\caption{Foreslått krets for omdreiningsteller}
\label{circ:utgangspunkt}
\end{figure}
Denne kretsen kan ta inn et pulstog med variabel driftssyklus inn på $v_1 $, og det kommer ut et nærmest ``sagtann''-signal ut på $v_2 $, se \figref{graph:pulsetrain}.
Det er fordi kondensatoren lades normalt opp med tidskonstanten tau, $\tau = R\cdot C$, men lades spontant ut ned til ca $0.7$V, som er terskelspenning for dioden. Kondensatoren vil deretter lades normalt ut igen.
Dersom vi deretter kombinerer dette med en transistor, slik at vi kan styre større strømmer vi kretsen se ut som i \figref{circ:analogKrets}.
\begin{figure}
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,o-] ++(1,0)
to [R, l=$R_1$, *-*] ++(3,0)
to [short,-o] ++(4,0)
++(-3,0) to [C, l=$C_1$, *-*] ++(0,-3)
++(3,0) to [short, o-o] (0,0)
(8,3) to [open, v=$v_2$] (8,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\draw
(9,3) node[nmos](nmosA){}
(9,8) node[right]{$V_S$} to [short, o-] ++(0,-0.5)
to [R, l=$R_2$] ++(0,-2)
to [led, *-*] (nmosA.D)
(nmosA.S) to [short, -*] (9,0)
node[ground](){}
(9,0) to [short, -o] (8,0)
(nmosA.G) to [short, o-o] (8,3);
\draw
(9,5.5) node[right] {$D+$}
(9,3.75) node[right] {$D-$};
\end{circuitikz}
\caption{Skjema for omdreinigsmåler med transistor}
\label{circ:analogKrets}
\end{figure}
Dersom omdreiningshastigheten er større enn grenseverdien vil ikke spenningen over $C_1 $, $v_2 $, bli tilstrekkelig for å ``åpne'' transistoren. Når frekvensen er lavere enn grensen, vil kondensatoren kunne lade seg opp til terskelspenningen, $V_T$, til transistoren, og transistoren vil ``åpne'' seg.
Motstanden $R_2 $ har som oppgave å begrense strømmen til led-en. Den trenger ikke å være der om det trengs en større strøm ut fra transistoren.
For å regne ut verdier til $R_1 $ og $C_1 $ må vi først finne ut hvilken tidskonstant vi trenger.
Vi vet at vi trenger en spenning på $v_2$ lik terskelspenningen til transistoren, $v_2 = V_T$, for at transistoren skal åpne seg.
Vi kan bruke dette til å finne en tau, $\tau$, gitt en frekvens, med periode $T$.
Vi kan anta at pulstoget har holdt på en stund, slik at systemet får balansert seg. Dersom vi da tar utgangspunkt i at vi har en diode med en diodespenning $V_D$. Startspenningen for stigningen av spenningen vil være sluttspenningen til utladningen over dioden, sett i \figref{graph:pulsetrain}.
Etter hver høye del av pulstoget vil spenningen $v_2$ raskt bevege seg mot $V_D$.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/EksempelPy.png}
\caption{Eksempel på hvordan spenniger endrer seg i kretsen i \figref{circ:analogKrets}.}
\label{graph:pulsetrain}
\end{figure}
Spenningen $v_2 $ når pulstoget er lavt, og endrer til høy, vil ha en likning som i (\ref{eq:spenningDiode}).
\begin{align}
v_D = V_D\cdot e^{-\frac{T}{2\tau}}
\label{eq:spenningDiode}
\end{align}
Siden vi vet at $v_1 $ varierer fra $v_D$ til en spenning $V_0 $ i et pulstog med periode $T$, med driftssyklus på 50\%, er pulsen $V_0 $ i $\tfrac{1}{2}T$. Vi vet da at spenningen $v_2 $ må nå $V_T$ etter $\tfrac{1}{2}T$ for at transistoren skal åpne seg.
Dersom vi setter dette sammen med hvordan spenningen utvikler seg gjennom perioden av pulstoget som er høyt vil vi få som i (\ref{eq:tauStart}).
Vi bruker formelen for spenning over en kondensator og løser for tidskonstanten $\tau$.
\begin{align}
v_2 = V_T &= V_0\cdot \left(v_D - V_0\right) e^{-\frac{T}{2\tau}} \label{eq:tauStart}\\
V_T &= V_0\cdot \left(V_D\cdot e^{-\frac{T}{2\tau}} - V_0\right) e^{-\frac{T}{2\tau}} \\
0 &= V_D\cdot e^{-\frac{T}{\tau}} - V_0 \cdot e^{-\frac{T}{2\tau}} + (V_0 - V_T) \\
e^{-\frac{T}{2\tau}} &= \frac{V_0 \pm \sqrt{(V_0)^2 - 4 \cdot V_D \cdot (V_0 - V_T)}}{2 \cdot V_D}\\
\tau &= -\frac{T}{2\cdot \ln\left(\frac{V_0 \pm \sqrt{(V_0)^2 - 4 \cdot V_D \cdot (V_0 - V_T)}}{2 \cdot V_D}\right)}
\label{eq:tau}
\end{align}
\textbf{Merk: }\textit{Det må velges den verdien for $\tau$ som gir mening. Vi ser også at $V_0 > V_T$ for at likningen skal gi mening.}
Når vi har funnet en tidskonstant ved (\ref{eq:tau}), velger vi bare en tilstrekkelig liten kondensator for $C_1$ og bruker likning (\ref{eq:RC}) for tidskonstanten $\tau$
\begin{align}
\tau = R_1 \cdot C_1
\label{eq:RC}
\end{align}
for å finne verdien for motstanden $R_1$.
\section{Realisering og test}
\label{sec:realisering}
Grenseverdien for omdreiningshastigheten er gitt ved $f=40000\text{rpm} \approx 666.67$Hz. Vi finner periodetiden ved (\ref{eq:period}).
\begin{align}
T = \frac{1}{f}\Rightarrow T = 1.5\ \text{ms} \label{eq:period}
\end{align}
Pulstoget har en spenning $V_0 = 5$V. Det ble brukt en BS170 transistor. Den har en terskelspenning $V_T \approx 2$V, og dioden som ble brukt har en diodespenning på $V_D \approx 0.7$V.
Vi finner $\tau$ ved hjelp av (\ref{eq:tau}).
\begin{align}
\tau &= -\frac{1.5\ \text{ms}}{2\cdot \ln\left(\frac{5\text{V} \pm \sqrt{(5\text{V})^2 - 4 \cdot 0.7\text{V} \cdot (3\text{V})}}{2 \cdot 0.7\text{V}}\right)} \label{eq:calculateTau}\\
\tau &= \begin{cases}
-0.40128946\ \text{ms}\\
1.81296116\ \text{ms}
\end{cases}
\intertext{Velger den verdien som gir mening}
\tau &= 1.81296116\ \text{ms}
\end{align}
For å koble opp kretsen i \figref{circ:analogKrets} trenger vi kun å regne ut verdiene for $R_1 $ og $C_1 $.
Velger motstand $R_1 = 1\text{M}\Omega$. Bruker (\ref{eq:tau}) for å finne $C_1 \approx 1.8$nF.
Simulering av spenningene med disse forhåndsvalgte verdiene kan sees i \figref{graph:pulsetrainReal}. Kode for simuleringen kan sees i Vedlegg \ref{app:codeSim}.
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/SimuleringPy.png}
\caption{Simulering av kretsen.}
\label{graph:pulsetrainReal}
\end{figure}
Etter testing og observasjoner ser vi at spenningen $v_2$ har en topp på rudnt $2$V. Men det er ikke nok til å få dioden til å lyse. Dersom vi ønsker en mer lyssterk diode, kan vi bare endre terskelspenningen i (\ref{eq:calculateTau}) til noe høyere. Finner ut at for at lysdioden vi bruker skal ``lyse'', må vi ha en kondensator på $1$nF.
Den fungerende kretsen har følgende skjema, se \figref{circ:finalAnalog}. Ferdig oppkoblet krets kan sees i \figref{pic:oppkobling}
Dioden vil da begynne å lyse ved terskelfrekvensen og bli sterkere jo lavere frekvensen på pulstoget blir, og forsvinner ved frekvenser høyere enn terskelfrekvensen, se \figref{graph:pulsetrainRealSim} for se sammenhengen mellom frekvens og hvordan $v_2$ oppfører seg rundt terskelspenningen $V_T$.
\begin{figure}
\centering
\begin{circuitikz}
\draw
(0,3) to [open, v=$v_1$] (0,0)
(0,3) to [short,o-] ++(1,0)
to [R, l=$1\text{M}\Omega$, *-*] ++(3,0)
to [short,-o] ++(4,0)
++(-3,0) to [C, l=$1$nF, *-*] ++(0,-3)
++(3,0) to [short, o-o] (0,0)
(4,3) -- ++(0,1.5)
to [D] ++(-3,0) -- ++(0,-1.5);
\draw
(9,3) node[nmos](nmosA){}
(9,8) node[right]{5V} to [short, o-] ++(0,-0.5)
to [R, l=$220\Omega$] ++(0,-2)
to [led] (nmosA.D)
(nmosA.S) to [short, -*] (9,0)
node[ground](){}
(9,0) to [short, -o] (8,0)
(nmosA.G) to [short, o-o] (8,3);
\end{circuitikz}
\caption{Skjema for omdreinigsmåler med transistor, med verdier}
\label{circ:finalAnalog}
\end{figure}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{pics/krets2.JPG}
\caption{Fysisk oppkobling av krets}
\label{pic:oppkobling}
\end{figure}
% \begin{figure}
% \centering
% \includegraphics[width=\textwidth]{Grafer/SimuleringPyLower.png}
% \caption{Simulering av kretsen ved frekvens lavere enn terskelfrekvens.}
% \label{graph:pulsetrainRealLower}
% \end{figure}
% \begin{figure}
% \centering
% \includegraphics[width=\textwidth]{Grafer/SimuleringPyHigher.png}
% \caption{Simulering av kretsen ved frekvens høyere enn terskelfrekvens.}
% \label{graph:pulsetrainRealHigher}
% \end{figure}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{Grafer/SimuleringPyLower.png}
\includegraphics[width=\textwidth]{Grafer/SimuleringPyHigher.png}
\caption{Simulering av kretsen ved frekvens lavere (øverst) og høyere (nederst) enn terskelfrekvensen. Kode i vedlegg \ref{app:codeSim}.}
\label{graph:pulsetrainRealSim}
\end{figure}
\clearpage
\section{Konklusjon}
\label{sec:konklusjon}
Kretsen fungerte innenfor kravene som ble gitt. Dioden begynner å lyse ved gitt omdreiningshastighet på 40000 rpm.
\section{Takk}
Takk til Ulrik Bredland og Magnus Oddstøl for bra samarbeid. Stor takk til lærere på elsys som har tatt seg tiden til å gi en tilbakemelding på dette designnotatet.
% %Bibliografi: Legg til flere elementer ved å legge til flere \bibitem:--------
% \phantomsection
% \addcontentsline{toc}{section}{Referanser}
\clearpage
\appendix
%Tillegg. Flere tillegg legges til ved å lage flere sections:-----------------
\section{Digital måte å måle omdreiningshastighet}
\label{app:digital}
Det er mulig å lage en krets med arduino for å måle frekvensen til et pulstog.
Ta for dere koden under. Pulstoget leses på pinne 8 på arduinoen, og en transistor kan styres på pinnen som heter ``out'' i koden. Frekvensen velges ved å endre variabelen ``rpm''.
\lstinputlisting[style=CStyle]{MeasureFreq/MeasureFreq.ino}
\clearpage
\section{Kode for simulering av didoe-kondensator-krets}
\label{app:codeSim}
\lstinputlisting[style=PyStyle]{Grafer/CapDiode.py}
\end{document}

BIN
D2/Grafer/4b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

125
D2/Grafer/CapDiode.py Normal file
View File

@ -0,0 +1,125 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Apr 26 00:50:35 2019
@author: oyvind
"""
import math
import numpy as np
import matplotlib.pyplot as plt
# Name for the saved graph
filename = "SimuleringPy"
#RPM to simulate
RPM = 40000
#RPM to calculate tau
tauRPM = 40000
# Forward voltage of the diode
forwardVoltage = 0.7
# Threshold voltage of the transistor
thresholdVoltage = 2
# Upper voltage of the pulsetrain
upperVoltage = 5
# How many cycles you want it to run
cycles = 5
# The resolution of each cycle
resolution = 2000
# Converting from RPM to Hz and period in seconds and milliseconds
def RPMtoPeriod(rpm):
Hz = rpm / 60.0
period = 1 / Hz
periodmS = period * 10**3
return periodmS
periodmS = RPMtoPeriod(RPM)
print("Period in ms: " + str(periodmS))
# Calculates the tau based on the period, and the different voltages
def CalculateTau():
# Calculate the roots of the tau-equation
roots = np.roots([forwardVoltage, -upperVoltage, upperVoltage - thresholdVoltage])
# Calculate the possible taus
taus = -(RPMtoPeriod(tauRPM)) / (2 * np.log(roots))
print(taus)
# Discard the non-real tau
if taus[0] > taus[1] and taus[0] > 0:
return taus[0]
return taus[1]
# Just creates a pulsetrain with some voltage and duty-cycle
def GeneratePulsetrain(voltage = 5, dutyCycle = 0.5):
pulseTrain = []
for i in range(cycles):
for i in range(round(resolution * 2 * dutyCycle)):
pulseTrain.append(voltage)
for i in range(round(resolution * 2 * (1 - dutyCycle))):
pulseTrain.append(0)
return pulseTrain
# Generate the time-signatures from the number of cycles, the resolution and
# the periodtime. result in milliseconds
def GenerateTime():
times = []
for t in range(cycles * resolution * 2):
times.append(periodmS * t / (resolution * 2))
return times
def OutVoltage(wave, times):
cP = wave[0] # Start voltage-supply
v0 = 0 # Start voltage
cT = 0 #Start time
volt = []
for p in range(len(wave)):
# If the voltage-supply changes, recalculate startvalues
if wave[p] != cP:
v0 = volt[-1] # New start voltage, uses the last voltage calculated
if wave[p] == 0:
v0 = forwardVoltage
cP = wave[p] # Variable so the array is not accessed.
cT = times[p] # Offset time for each period
# Calculate the outgoing voltage over the CAPACITOR with the start values
volt.append(cP + (v0 - cP) * math.exp(-(times[p] - cT) / tau ))
return volt
def GenerateThreshLine(times):
thresh = []
for i in times:
thresh.append(thresholdVoltage)
return thresh
# Calculate Tau
tau = CalculateTau()
print("Tau in ms: " + str(tau))
# Generate all the lists of pulsetrain and time-signatures
time = GenerateTime()
pulse = GeneratePulsetrain(upperVoltage)
threshLine = GenerateThreshLine(time)
# Simulate the outgoing voltage
voltage = OutVoltage(pulse, time)
plt.figure(figsize=(12,5))
plt.plot(time, pulse)
plt.plot(time, voltage)
plt.plot(time, threshLine, 'k--')
plt.title("Spenningsutvikling ved " + str(RPM) + " RPM. Grensefrekvens er " +
str(tauRPM) + " RPM.")
plt.xlabel("Tid [ms]")
plt.ylabel("Spenning [V]")
plt.legend(["Pulstog, " + r'$v_1$', "Utgående spenning, " + r'$v_2$', "Terskelspenning, " + r'$V_T$'], loc="upper right")
plt.savefig(filename + ".png", dpi = 300)
plt.show()

BIN
D2/Grafer/EksempelPy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

94
D2/Grafer/Graftegning.py Normal file
View File

@ -0,0 +1,94 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Jan 18 22:30:00 2019
@author: oyvind
"""
import math
import matplotlib.pyplot as plt
# Name for the saved graph
filename = "4b"
# RPM
RPM = 40000
Hz = RPM / 60
# Tau in microseconds
tau = 1/(2 * Hz) * 10**6
# Square wave freq in kHz
sqWFreq = 5
# How many taus you want
periods = 3
# The resolution of each tau
resolution = 1000
# Forwardvoltage of diode
diodeVoltage = 0.7
# Calculates the length of each squarewave in taus
sqTime = (1/sqWFreq) * 10**3
sqTau = sqTime / tau
# Creats the square wave
# Default values are in the argument list
def CreateSquareWave(amp=2.5, offset=2.5, symetry=0.5):
squareWave = []
# Only generates as many datapoints we need
while len(squareWave) < periods * resolution:
# First generate the first half
for r in range(int(resolution*sqTau * symetry)):
squareWave.append(amp + offset)
# Then the second
for r in range(int(resolution*sqTau * (1 - symetry))):
squareWave.append(offset - amp)
squareWave = squareWave[:(resolution*periods)]
return squareWave
# Generate all the time-ticks
def GenerateTime():
times = []
for t in range(periods * resolution):
times.append(t/resolution)
print(len(times))
return(times)
def CapVoltage(wave, times):
cP = wave[0] # Start voltage-supply
v0 = 0 # Start voltage
cT = 0 #Start time
volt = []
for p in range(len(wave)):
# If the voltage-supply changes, recalculate startvalues
if wave[p] != cP:
v0 = volt[-1] # New start voltage, uses the last voltage calculated
if wave[p] == 0:
v0 = diodeVoltage
cP = wave[p] # Variable so the array is not accessed.
cT = times[p] # Offset time for each period
# Calculate the voltage over the CAPACITOR with the start values
volt.append(cP + (v0 - cP) * math.exp(-(times[p] - cT)))
return(volt)
SquareWave = CreateSquareWave()
time = GenerateTime()
CapWave = CapVoltage(SquareWave, time)
plt.figure(figsize=(15,5))
plt.plot(time, SquareWave, time, CapWave)
plt.xlabel("Time [τ]")
plt.ylabel("Voltage [V]")
plt.legend(["Supply voltage", "Capacitor voltage"], loc="lower right")
plt.savefig(filename + ".png", dpi = 300)
plt.show()

BIN
D2/Grafer/SimuleringPy.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 KiB

BIN
D2/Grafer/Test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

5
D2/Howto.txt Normal file
View File

@ -0,0 +1,5 @@
-Opprett bruker på sharelatex.com (Bruk stud. mail)
-Opprett et tomt dokument og kopier over innholdet i designnotat.tex filen.
(designnotat.tex kan åpnes i TextEdit/Notepad eller lignende)
-Last opp figurene og kompilér

View File

@ -0,0 +1,39 @@
/* Program to measure the frequenncy of a input, on digital pin 8
* Made by Oyvind Skaaden
*/
#include <FreqMeasure.h> // Library for measure
#define out 4 // The pin the transistor is controlled by
float rpm = 40000; // The limit for when to open the transistor
bool ledUnderRPM = true; // Change this to light the LED should light when the rpm are over rpm
float freq = rpm / 60;
void setup() {
Serial.begin(57600);
FreqMeasure.begin();
}
double sum=0;
int count=0;
void loop() {
if (FreqMeasure.available()) {
// average several reading together
sum = sum + FreqMeasure.read();
count = count + 1;
if (count > 30) {
float frequency = FreqMeasure.countToFrequency(sum / count);
Serial.print(frequency);
if (frequency < freq) { // If the measured frequency is below the RPM do this
digitalWrite(out, ledUnderRPM);
Serial.println(" ON");
}
else{
digitalWrite(out, !ledUnderRPM);
Serial.println(" OFF");
}
sum = 0;
count = 0;
}
}
}

View File

@ -0,0 +1,253 @@
:100000000C9458000C9480000C9480000C94800098
:100010000C9480000C9480000C9480000C94800060
:100020000C9480000C9480000C9491020C9480003D
:100030000C9480000C940B030C9480000C948000B2
:100040000C94EF010C9480000C945F020C94390224
:100050000C9480000C9480000C9480000C94800020
:100060000C9480000C948000000000002500280003
:100070002B00040404040404040402020202020229
:10008000030303030303010204081020408001025C
:1000900004081020010204081020000000080002DB
:1000A000010000030407000000000000000022031C
:1000B00011241FBECFEFD8E0DEBFCDBF11E0A0E01E
:1000C000B1E0EEE8FFE002C005900D92AA32B10760
:1000D000D9F722E0AAE2B1E001C01D92A231B20735
:1000E000E1F710E0C8E5D0E004C02197FE010E94CE
:1000F000BA07C735D107C9F70E945B030C94C5073F
:100100000C940000EEE9F0E09491EAE8F0E024912C
:10011000E6E7F0E0E491EE2309F43CC0992339F1DD
:10012000933091F038F49130A9F0923001F594B504
:100130009F7D12C0973091F09830A1F09430B9F4BF
:10014000909180009F7D03C0909180009F77909355
:1001500080000DC094B59F7794BD09C09091B00008
:100160009F7703C09091B0009F7D9093B000F0E026
:10017000EE0FFF1FE859FF4FA591B4919FB7F89478
:10018000811104C08C912095282302C0EC912E2B64
:100190002C939FBF0895CF92DF92EF92FF920F931F
:1001A0001F93CF93DF936C017A018B01C0E0D0E005
:1001B000CE15DF0581F0D8016D918D01D601ED914D
:1001C000FC910190F081E02DC6010995892B11F079
:1001D0002196EECF7E01C701DF91CF911F910F9144
:1001E000FF90EF90DF90CF900895089580E090E029
:1001F0000895FC01538D448D252F30E0842F90E02D
:10020000821B930B541710F0CF9608950197089511
:10021000FC01918D828D981761F0828DDF01A80F0E
:10022000B11D5D968C91928D9F5F9F73928F90E030
:1002300008958FEF9FEF0895FC01918D828D98179F
:1002400031F0828DE80FF11D858D90E008958FEFDC
:100250009FEF0895FC01918D228D892F90E0805CA5
:100260009F4F821B91098F739927089581E791E031
:100270000E942A0121E0892B09F420E0822F0895B1
:10028000FC01848DDF01A80FB11DA35ABF4F2C9133
:10029000848D90E001968F739927848FA689B78902
:1002A0002C93A089B1898C91837080648C93938DF9
:1002B000848D981306C00288F389E02D80818F7D9C
:1002C00080830895EF92FF920F931F93CF93DF9354
:1002D000EC0181E0888F9B8D8C8D981305C0E88997
:1002E000F989808185FD26C0F62E0B8D10E00F5F09
:1002F0001F4F0F731127E02E8C8DE8120CC00FB624
:1003000007FCFACFE889F989808185FFF5CFCE0116
:100310000E944001F1CF8B8DFE01E80FF11DE35AE1
:10032000FF4FF0829FB7F8940B8FEA89FB89808199
:1003300080620AC09FB7F894EE89FF896083E889DC
:10034000F98980818370806480839FBF81E090E021
:10035000DF91CF911F910F91FF90EF900895CF9370
:10036000DF93EC01888D8823C9F0EA89FB898081BD
:1003700085FD05C0A889B9898C9186FD0FC00FB68F
:1003800007FCF5CF808185FFF2CFA889B9898C91D0
:1003900085FFEDCFCE010E944001E7CFDF91CF91E5
:1003A000089580E090E0892B29F00E9436018111A8
:1003B0000C9400000895009769F0FC010190002062
:1003C000E9F73197AF01481B590BBC0181E791E078
:1003D0000C94CB0080E090E008950E94C0071F922B
:1003E0000F920FB60F9211242F933F938F939F93E9
:1003F000AF93BF9380916D0190916E01A0916F01B9
:10040000B091700130916C0123E0230F2D3720F45F
:100410000196A11DB11D05C026E8230F0296A11D5E
:10042000B11D20936C0180936D0190936E01A09398
:100430006F01B09370018091680190916901A09162
:100440006A01B0916B010196A11DB11D80936801F5
:1004500090936901A0936A01B0936B01BF91AF9132
:100460009F918F913F912F910F900FBE0F901F90F2
:1004700018951F920F920FB60F9211242F933F934E
:100480004F935F936F937F938F939F93AF93BF939C
:10049000EF93FF9381E791E00E944001FF91EF917C
:1004A000BF91AF919F918F917F916F915F914F918C
:1004B0003F912F910F900FBE0F901F9018951F9294
:1004C0000F920FB60F9211242F938F939F93EF9358
:1004D000FF93E0918101F09182018081E091870199
:1004E000F091880182FD12C0908180918A018F5F16
:1004F0008F7320918B01821751F0E0918A01F0E017
:10050000EF58FE4F958F80938A0101C08081FF9143
:10051000EF919F918F912F910F900FBE0F901F9091
:1005200018951F920F920FB60F9211240F931F93DD
:100530002F933F934F935F936F937F938F939F93EB
:10054000AF93BF93EF93FF93409186005091870044
:10055000B09B04C041150FEF5007F0F180912E01C0
:1005600090912F01A0E0B0E0DC019927882760E09E
:1005700070E0842B952BA62BB72B40912A0150912C
:100580002B0160912C0170912D018C019D01041BA8
:10059000150B260B370BB901A80180932A01909304
:1005A0002B01A0932C01B0932D01809161018F5FED
:1005B0008C3008F080E0909160018917C9F014E058
:1005C000819FF0011124E05DFE4F408351836283DF
:1005D0007383809361010CC081E086BB80912E0102
:1005E00090912F01019690932F0180932E01B6CF09
:1005F000FF91EF91BF91AF919F918F917F916F91FB
:100600005F914F913F912F911F910F910F900FBECE
:100610000F901F9018951F920F920FB60F921124F2
:100620008F939F9380912E0190912F01019690932B
:100630002F0180932E019F918F910F900FBE0F90ED
:100640001F901895E1E7F1E01382128288EE93E0A3
:10065000A0E0B0E084839583A683B78384E091E033
:100660009183808385EC90E09587848784EC90E08B
:100670009787868780EC90E0918B808B81EC90E06F
:10068000938B828B82EC90E0958B848B86EC90E050
:10069000978B868B118E128E138E148E8BEA9AEAAC
:1006A000A6E2B4E480930E0290930F02A09310028E
:1006B000B09311020895CF93DF93CDB7DEB7A39720
:1006C0000FB6F894DEBF0FBECDBF789484B58260BC
:1006D00084BD84B5816084BD85B5826085BD85B5E6
:1006E000816085BD80916E00816080936E00109264
:1006F00081008091810082608093810080918100DF
:10070000816080938100809180008160809380006F
:100710008091B10084608093B1008091B0008160CD
:100720008093B00080917A00846080937A008091F9
:100730007A00826080937A0080917A008160809351
:100740007A0080917A00806880937A001092C100CC
:10075000E0918101F091820182E08083E09181014A
:10076000F09182011082E0917D01F0917E01108272
:10077000E0917F01F091800180E1808310928901F6
:10078000E0918501F091860186E08083E09183010C
:10079000F0918401808180618083E0918301F091F8
:1007A0008401808188608083E0918301F0918401DD
:1007B000808180688083E0918301F0918401808151
:1007C0008F7D8083809180008091810010928100D4
:1007D00010928000109285001092840081E286BB06
:1007E00080936F0010922F0110922E0110922A0117
:1007F00010922B0110922C0110922D011092610188
:100800001092600181EC8093810080916101909150
:100810006001891708F4845F891B09F44AC190912B
:100820006101809160019817A1F08F5F8C3008F012
:1008300080E094E0899FF0011124E05DFE4F40814B
:1008400051816281738180936001342F252FCB0108
:1008500004C03FEF2FEF8FEF9FEF632F722F0E94A7
:100860006F062091640130916501409166015091BD
:1008700067010E945D056B017C01609364017093C8
:1008800065018093660190936701609162017091A8
:1008900063016F5F7F4F70936301609362016F31FB
:1008A00071050CF406C1072E000C880B990B0E94F1
:1008B00071069B01AC01C701B6010E94CE050E94E2
:1008C00040060E946F069B01AC0160E074E284E781
:1008D0009BE40E94CE056B017C019B01AC010E9450
:1008E0009307882319F082E191E01AC0460157016D
:1008F000E894B7F82FEF3FEF4FE75FE7C501B4018A
:100900000E94930781110FC02FEF3FEF4FE75FE782
:10091000C501B4010E94C90518162CF486E191E0C6
:100920000E94DB019BC02FEF3FEF4FE75FE4C70161
:10093000B6010E94210718161CF48AE191E0F0CF5D
:100940002FEF3FEF4FE75FECC701B6010E94C905EB
:1009500087FDF3CF20E030E0A901C701B6010E9476
:10096000C90587FF09C06DE281E791E00E9462013D
:10097000C701B601905802C0C701B6012AE037EDA1
:1009800043EA5BE30E945D052B013C010E944006A7
:100990004B015C010E946F069B01AC01C301B201D7
:1009A0000E945C052B013C0119A28E010F5D1F4FB7
:1009B0000AA31BA3C501B4012AE030E040E050E0E7
:1009C0000E94980749015A01605DF80162938F0106
:1009D000232B242B252B71F7CF010E94DB016EE224
:1009E00081E791E00E94620113E01150B9F120E02B
:1009F00030E040E251E4C301B2010E9426074B01FE
:100A00005C010E9440069B0140E050E019A22AA030
:100A10003BA03B01042F552ECA01B9012AE030E06A
:100A200040E050E00E949807605DF10162931F0171
:100A3000211531054105510579F7CF010E94DB01F0
:100A4000B301802F952D0E946F069B01AC01C5015B
:100A5000B4010E945C052B013C01C7CFA7019601A0
:100A600060910E0270910F0280911002909111021C
:100A70000E942107181634F481E00E9482008EE162
:100A800091E005C080E00E94820085E291E00E9432
:100A9000DB0182E291E00E94DB011092640110927E
:100AA0006501109266011092670110926301109225
:100AB00062010E94D101A9CE5058BB27AA270E94EB
:100AC00074050C94E7060E94D90638F00E94E006EF
:100AD00020F039F49F3F19F426F40C94D6060EF456
:100AE000E095E7FB0C94D006E92F0E94F80658F336
:100AF000BA17620773078407950720F079F4A6F503
:100B00000C941A070EF4E0950B2EBA2FA02D0B01B2
:100B1000B90190010C01CA01A0011124FF27591B42
:100B200099F0593F50F4503E68F11A16F040A22F48
:100B3000232F342F4427585FF3CF469537952795B9
:100B4000A795F0405395C9F77EF41F16BA0B620BB8
:100B5000730B840BBAF09150A1F0FF0FBB1F661FFF
:100B6000771F881FC2F70EC0BA0F621F731F841F42
:100B700048F4879577956795B795F7959E3F08F068
:100B8000B0CF9395880F08F09927EE0F979587952A
:100B900008950E94AC0608F481E008950E94E205E1
:100BA0000C94E7060E94E00658F00E94D90640F037
:100BB00029F45F3F29F00C94D00651110C941B07C7
:100BC0000C94D6060E94F80668F39923B1F35523D6
:100BD00091F3951B550BBB27AA2762177307840750
:100BE00038F09F5F5F4F220F331F441FAA1FA9F3E6
:100BF00035D00E2E3AF0E0E832D091505040E695D4
:100C0000001CCAF72BD0FE2F29D0660F771F881F34
:100C1000BB1F261737074807AB07B0E809F0BB0B27
:100C2000802DBF01FF2793585F4F3AF09E3F51053B
:100C300078F00C94D0060C941B075F3FE4F3983EC9
:100C4000D4F3869577956795B795F7959F5FC9F724
:100C5000880F911D9695879597F90895E1E0660FA5
:100C6000771F881FBB1F621773078407BA0720F01E
:100C7000621B730B840BBA0BEE1F88F7E095089587
:100C80000E94000788F09F5798F0B92F9927B75115
:100C9000B0F0E1F0660F771F881F991F1AF0BA9520
:100CA000C9F714C0B13091F00E941A07B1E008955D
:100CB0000C941A07672F782F8827B85F39F0B93F4F
:100CC000CCF3869577956795B395D9F73EF49095D3
:100CD0008095709561957F4F8F4F9F4F0895E89451
:100CE00009C097FB3EF490958095709561957F4F74
:100CF0008F4F9F4F9923A9F0F92F96E9BB27939522
:100D0000F695879577956795B795F111F8CFFAF431
:100D1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F62
:100D200016C0882311F096E911C0772321F09EE8C0
:100D3000872F762F05C0662371F096E8862F70E026
:100D400060E02AF09A95660F771F881FDAF7880F00
:100D50009695879597F90895990F0008550FAA0B56
:100D6000E0E8FEEF16161706E807F907C0F01216BE
:100D70001306E407F50798F0621B730B840B950BC1
:100D800039F40A2661F0232B242B252B21F4089516
:100D90000A2609F4A140A6958FEF811D811D0895B3
:100DA00097F99F6780E870E060E008959FEF80EC1E
:100DB000089500240A9416161706180609060895C1
:100DC00000240A9412161306140605060895092E27
:100DD0000394000C11F4882352F0BB0F40F4BF2B96
:100DE00011F460FF04C06F5F7F4F8F4F9F4F0895D6
:100DF00057FD9058440F551F59F05F3F71F04795CC
:100E0000880F97FB991F61F09F3F79F087950895B0
:100E1000121613061406551FF2CF4695F1DF08C0CF
:100E2000161617061806991FF1CF869571056105EC
:100E300008940895E894BB2766277727CB0197F994
:100E400008950E94AC0608F48FEF08950E943907B8
:100E50000C94E7060E94D90638F00E94E00620F0C4
:100E6000952311F00C94D0060C94D60611240C9402
:100E70001B070E94F80670F3959FC1F3950F50E091
:100E8000551F629FF001729FBB27F00DB11D639F3C
:100E9000AA27F00DB11DAA1F649F6627B00DA11DE2
:100EA000661F829F2227B00DA11D621F739FB00D88
:100EB000A11D621F839FA00D611D221F749F3327F8
:100EC000A00D611D231F849F600D211D822F762F91
:100ED0006A2F11249F5750409AF0F1F088234AF06E
:100EE000EE0FFF1FBB1F661F771F881F91505040DA
:100EF000A9F79E3F510580F00C94D0060C941B0777
:100F00005F3FE4F3983ED4F3869577956795B79560
:100F1000F795E7959F5FC1F7FE2B880F911D96957A
:100F2000879597F908950E94AC06880B990B089550
:100F3000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FDD
:100F4000EE1FFF1FA217B307E407F50720F0A21B4F
:100F5000B30BE40BF50B661F771F881F991F1A94BC
:100F600069F760957095809590959B01AC01BD01E6
:100F7000CF010895EE0FFF1F0590F491E02D099425
:0E0F800081E090E0F8940C94C507F894FFCF40
:100F8E00000000006201CB00F900AF012A01080148
:100F9E001C016E616E00696E66006F766600204FF2
:0A0FAE004E000D0A00204F464600D9
:00000001FF

View File

@ -0,0 +1,287 @@
:100000000C9458000C9480000C9480000C94800098
:100010000C9480000C9480000C9480000C94800060
:100020000C9480000C9480000C9491020C9480003D
:100030000C9480000C940B030C9480000C948000B2
:100040000C94EF010C9480000C945F020C94390224
:100050000C9480000C9480000C9480000C94800020
:100060000C9480000C948000000000002500280003
:100070002B00040404040404040402020202020229
:10008000030303030303010204081020408001025C
:1000900004081020010204081020000000080002DB
:1000A000010000030407000000000000000022031C
:1000B00011241FBECFEFD8E0DEBFCDBF11E0A0E01E
:1000C000B1E0EEE8FFE002C005900D92AA32B10760
:1000D000D9F722E0AAE2B1E001C01D92A231B20735
:1000E000E1F710E0C8E5D0E004C02197FE010E94CE
:1000F000BA07C735D107C9F70E945B030C94C5073F
:100100000C940000EEE9F0E09491EAE8F0E024912C
:10011000E6E7F0E0E491EE2309F43CC0992339F1DD
:10012000933091F038F49130A9F0923001F594B504
:100130009F7D12C0973091F09830A1F09430B9F4BF
:10014000909180009F7D03C0909180009F77909355
:1001500080000DC094B59F7794BD09C09091B00008
:100160009F7703C09091B0009F7D9093B000F0E026
:10017000EE0FFF1FE859FF4FA591B4919FB7F89478
:10018000811104C08C912095282302C0EC912E2B64
:100190002C939FBF0895CF92DF92EF92FF920F931F
:1001A0001F93CF93DF936C017A018B01C0E0D0E005
:1001B000CE15DF0581F0D8016D918D01D601ED914D
:1001C000FC910190F081E02DC6010995892B11F079
:1001D0002196EECF7E01C701DF91CF911F910F9144
:1001E000FF90EF90DF90CF900895089580E090E029
:1001F0000895FC01538D448D252F30E0842F90E02D
:10020000821B930B541710F0CF9608950197089511
:10021000FC01918D828D981761F0828DDF01A80F0E
:10022000B11D5D968C91928D9F5F9F73928F90E030
:1002300008958FEF9FEF0895FC01918D828D98179F
:1002400031F0828DE80FF11D858D90E008958FEFDC
:100250009FEF0895FC01918D228D892F90E0805CA5
:100260009F4F821B91098F739927089581E791E031
:100270000E942A0121E0892B09F420E0822F0895B1
:10028000FC01848DDF01A80FB11DA35ABF4F2C9133
:10029000848D90E001968F739927848FA689B78902
:1002A0002C93A089B1898C91837080648C93938DF9
:1002B000848D981306C00288F389E02D80818F7D9C
:1002C00080830895EF92FF920F931F93CF93DF9354
:1002D000EC0181E0888F9B8D8C8D981305C0E88997
:1002E000F989808185FD26C0F62E0B8D10E00F5F09
:1002F0001F4F0F731127E02E8C8DE8120CC00FB624
:1003000007FCFACFE889F989808185FFF5CFCE0116
:100310000E944001F1CF8B8DFE01E80FF11DE35AE1
:10032000FF4FF0829FB7F8940B8FEA89FB89808199
:1003300080620AC09FB7F894EE89FF896083E889DC
:10034000F98980818370806480839FBF81E090E021
:10035000DF91CF911F910F91FF90EF900895CF9370
:10036000DF93EC01888D8823C9F0EA89FB898081BD
:1003700085FD05C0A889B9898C9186FD0FC00FB68F
:1003800007FCF5CF808185FFF2CFA889B9898C91D0
:1003900085FFEDCFCE010E944001E7CFDF91CF91E5
:1003A000089580E090E0892B29F00E9436018111A8
:1003B0000C9400000895009769F0FC010190002062
:1003C000E9F73197AF01481B590BBC0181E791E078
:1003D0000C94CB0080E090E008950E94C0071F922B
:1003E0000F920FB60F9211242F933F938F939F93E9
:1003F000AF93BF9380916D0190916E01A0916F01B9
:10040000B091700130916C0123E0230F2D3720F45F
:100410000196A11DB11D05C026E8230F0296A11D5E
:10042000B11D20936C0180936D0190936E01A09398
:100430006F01B09370018091680190916901A09162
:100440006A01B0916B010196A11DB11D80936801F5
:1004500090936901A0936A01B0936B01BF91AF9132
:100460009F918F913F912F910F900FBE0F901F90F2
:1004700018951F920F920FB60F9211242F933F934E
:100480004F935F936F937F938F939F93AF93BF939C
:10049000EF93FF9381E791E00E944001FF91EF917C
:1004A000BF91AF919F918F917F916F915F914F918C
:1004B0003F912F910F900FBE0F901F9018951F9294
:1004C0000F920FB60F9211242F938F939F93EF9358
:1004D000FF93E0918101F09182018081E091870199
:1004E000F091880182FD12C0908180918A018F5F16
:1004F0008F7320918B01821751F0E0918A01F0E017
:10050000EF58FE4F958F80938A0101C08081FF9143
:10051000EF919F918F912F910F900FBE0F901F9091
:1005200018951F920F920FB60F9211240F931F93DD
:100530002F933F934F935F936F937F938F939F93EB
:10054000AF93BF93EF93FF93409186005091870044
:10055000B09B04C041150FEF5007F0F180912E01C0
:1005600090912F01A0E0B0E0DC019927882760E09E
:1005700070E0842B952BA62BB72B40912A0150912C
:100580002B0160912C0170912D018C019D01041BA8
:10059000150B260B370BB901A80180932A01909304
:1005A0002B01A0932C01B0932D01809161018F5FED
:1005B0008C3008F080E0909160018917C9F014E058
:1005C000819FF0011124E05DFE4F408351836283DF
:1005D0007383809361010CC081E086BB80912E0102
:1005E00090912F01019690932F0180932E01B6CF09
:1005F000FF91EF91BF91AF919F918F917F916F91FB
:100600005F914F913F912F911F910F910F900FBECE
:100610000F901F9018951F920F920FB60F921124F2
:100620008F939F9380912E0190912F01019690932B
:100630002F0180932E019F918F910F900FBE0F90ED
:100640001F901895E1E7F1E01382128288EE93E0A3
:10065000A0E0B0E084839583A683B78384E091E033
:100660009183808385EC90E09587848784EC90E08B
:100670009787868780EC90E0918B808B81EC90E06F
:10068000938B828B82EC90E0958B848B86EC90E050
:10069000978B868B118E128E138E148E8BEA9AEAAC
:1006A000A6E2B4E480930E0290930F02A09310028E
:1006B000B09311020895CF93DF93CDB7DEB7A39720
:1006C0000FB6F894DEBF0FBECDBF789484B58260BC
:1006D00084BD84B5816084BD85B5826085BD85B5E6
:1006E000816085BD80916E00816080936E00109264
:1006F00081008091810082608093810080918100DF
:10070000816080938100809180008160809380006F
:100710008091B10084608093B1008091B0008160CD
:100720008093B00080917A00846080937A008091F9
:100730007A00826080937A0080917A008160809351
:100740007A0080917A00806880937A001092C100CC
:10075000E0918101F091820182E08083E09181014A
:10076000F09182011082E0917D01F0917E01108272
:10077000E0917F01F091800180E1808310928901F6
:10078000E0918501F091860186E08083E09183010C
:10079000F0918401808180618083E0918301F091F8
:1007A0008401808188608083E0918301F0918401DD
:1007B000808180688083E0918301F0918401808151
:1007C0008F7D8083809180008091810010928100D4
:1007D00010928000109285001092840081E286BB06
:1007E00080936F0010922F0110922E0110922A0117
:1007F00010922B0110922C0110922D011092610188
:100800001092600181EC8093810080916101909150
:100810006001891708F4845F891B09F44AC190912B
:100820006101809160019817A1F08F5F8C3008F012
:1008300080E094E0899FF0011124E05DFE4F40814B
:1008400051816281738180936001342F252FCB0108
:1008500004C03FEF2FEF8FEF9FEF632F722F0E94A7
:100860006F062091640130916501409166015091BD
:1008700067010E945D056B017C01609364017093C8
:1008800065018093660190936701609162017091A8
:1008900063016F5F7F4F70936301609362016F31FB
:1008A00071050CF406C1072E000C880B990B0E94F1
:1008B00071069B01AC01C701B6010E94CE050E94E2
:1008C00040060E946F069B01AC0160E074E284E781
:1008D0009BE40E94CE056B017C019B01AC010E9450
:1008E0009307882319F082E191E01AC0460157016D
:1008F000E894B7F82FEF3FEF4FE75FE7C501B4018A
:100900000E94930781110FC02FEF3FEF4FE75FE782
:10091000C501B4010E94C90518162CF486E191E0C6
:100920000E94DB019BC02FEF3FEF4FE75FE4C70161
:10093000B6010E94210718161CF48AE191E0F0CF5D
:100940002FEF3FEF4FE75FECC701B6010E94C905EB
:1009500087FDF3CF20E030E0A901C701B6010E9476
:10096000C90587FF09C06DE281E791E00E9462013D
:10097000C701B601905802C0C701B6012AE037EDA1
:1009800043EA5BE30E945D052B013C010E944006A7
:100990004B015C010E946F069B01AC01C301B201D7
:1009A0000E945C052B013C0119A28E010F5D1F4FB7
:1009B0000AA31BA3C501B4012AE030E040E050E0E7
:1009C0000E94980749015A01605DF80162938F0106
:1009D000232B242B252B71F7CF010E94DB016EE224
:1009E00081E791E00E94620113E01150B9F120E02B
:1009F00030E040E251E4C301B2010E9426074B01FE
:100A00005C010E9440069B0140E050E019A22AA030
:100A10003BA03B01042F552ECA01B9012AE030E06A
:100A200040E050E00E949807605DF10162931F0171
:100A3000211531054105510579F7CF010E94DB01F0
:100A4000B301802F952D0E946F069B01AC01C5015B
:100A5000B4010E945C052B013C01C7CFA7019601A0
:100A600060910E0270910F0280911002909111021C
:100A70000E942107181634F481E00E9482008EE162
:100A800091E005C080E00E94820085E291E00E9432
:100A9000DB0182E291E00E94DB011092640110927E
:100AA0006501109266011092670110926301109225
:100AB00062010E94D101A9CE5058BB27AA270E94EB
:100AC00074050C94E7060E94D90638F00E94E006EF
:100AD00020F039F49F3F19F426F40C94D6060EF456
:100AE000E095E7FB0C94D006E92F0E94F80658F336
:100AF000BA17620773078407950720F079F4A6F503
:100B00000C941A070EF4E0950B2EBA2FA02D0B01B2
:100B1000B90190010C01CA01A0011124FF27591B42
:100B200099F0593F50F4503E68F11A16F040A22F48
:100B3000232F342F4427585FF3CF469537952795B9
:100B4000A795F0405395C9F77EF41F16BA0B620BB8
:100B5000730B840BBAF09150A1F0FF0FBB1F661FFF
:100B6000771F881FC2F70EC0BA0F621F731F841F42
:100B700048F4879577956795B795F7959E3F08F068
:100B8000B0CF9395880F08F09927EE0F979587952A
:100B900008950E94AC0608F481E008950E94E205E1
:100BA0000C94E7060E94E00658F00E94D90640F037
:100BB00029F45F3F29F00C94D00651110C941B07C7
:100BC0000C94D6060E94F80668F39923B1F35523D6
:100BD00091F3951B550BBB27AA2762177307840750
:100BE00038F09F5F5F4F220F331F441FAA1FA9F3E6
:100BF00035D00E2E3AF0E0E832D091505040E695D4
:100C0000001CCAF72BD0FE2F29D0660F771F881F34
:100C1000BB1F261737074807AB07B0E809F0BB0B27
:100C2000802DBF01FF2793585F4F3AF09E3F51053B
:100C300078F00C94D0060C941B075F3FE4F3983EC9
:100C4000D4F3869577956795B795F7959F5FC9F724
:100C5000880F911D9695879597F90895E1E0660FA5
:100C6000771F881FBB1F621773078407BA0720F01E
:100C7000621B730B840BBA0BEE1F88F7E095089587
:100C80000E94000788F09F5798F0B92F9927B75115
:100C9000B0F0E1F0660F771F881F991F1AF0BA9520
:100CA000C9F714C0B13091F00E941A07B1E008955D
:100CB0000C941A07672F782F8827B85F39F0B93F4F
:100CC000CCF3869577956795B395D9F73EF49095D3
:100CD0008095709561957F4F8F4F9F4F0895E89451
:100CE00009C097FB3EF490958095709561957F4F74
:100CF0008F4F9F4F9923A9F0F92F96E9BB27939522
:100D0000F695879577956795B795F111F8CFFAF431
:100D1000BB0F11F460FF1BC06F5F7F4F8F4F9F4F62
:100D200016C0882311F096E911C0772321F09EE8C0
:100D3000872F762F05C0662371F096E8862F70E026
:100D400060E02AF09A95660F771F881FDAF7880F00
:100D50009695879597F90895990F0008550FAA0B56
:100D6000E0E8FEEF16161706E807F907C0F01216BE
:100D70001306E407F50798F0621B730B840B950BC1
:100D800039F40A2661F0232B242B252B21F4089516
:100D90000A2609F4A140A6958FEF811D811D0895B3
:100DA00097F99F6780E870E060E008959FEF80EC1E
:100DB000089500240A9416161706180609060895C1
:100DC00000240A9412161306140605060895092E27
:100DD0000394000C11F4882352F0BB0F40F4BF2B96
:100DE00011F460FF04C06F5F7F4F8F4F9F4F0895D6
:100DF00057FD9058440F551F59F05F3F71F04795CC
:100E0000880F97FB991F61F09F3F79F087950895B0
:100E1000121613061406551FF2CF4695F1DF08C0CF
:100E2000161617061806991FF1CF869571056105EC
:100E300008940895E894BB2766277727CB0197F994
:100E400008950E94AC0608F48FEF08950E943907B8
:100E50000C94E7060E94D90638F00E94E00620F0C4
:100E6000952311F00C94D0060C94D60611240C9402
:100E70001B070E94F80670F3959FC1F3950F50E091
:100E8000551F629FF001729FBB27F00DB11D639F3C
:100E9000AA27F00DB11DAA1F649F6627B00DA11DE2
:100EA000661F829F2227B00DA11D621F739FB00D88
:100EB000A11D621F839FA00D611D221F749F3327F8
:100EC000A00D611D231F849F600D211D822F762F91
:100ED0006A2F11249F5750409AF0F1F088234AF06E
:100EE000EE0FFF1FBB1F661F771F881F91505040DA
:100EF000A9F79E3F510580F00C94D0060C941B0777
:100F00005F3FE4F3983ED4F3869577956795B79560
:100F1000F795E7959F5FC1F7FE2B880F911D96957A
:100F2000879597F908950E94AC06880B990B089550
:100F3000A1E21A2EAA1BBB1BFD010DC0AA1FBB1FDD
:100F4000EE1FFF1FA217B307E407F50720F0A21B4F
:100F5000B30BE40BF50B661F771F881F991F1A94BC
:100F600069F760957095809590959B01AC01BD01E6
:100F7000CF010895EE0FFF1F0590F491E02D099425
:0E0F800081E090E0F8940C94C507F894FFCF40
:100F8E00000000006201CB00F900AF012A01080148
:100F9E001C016E616E00696E66006F766600204FF2
:0A0FAE004E000D0A00204F464600D9
:107E0000112484B714BE81FFF0D085E080938100F7
:107E100082E08093C00088E18093C10086E0809377
:107E2000C20080E18093C4008EE0C9D0259A86E02C
:107E300020E33CEF91E0309385002093840096BBD3
:107E4000B09BFECF1D9AA8958150A9F7CC24DD24C4
:107E500088248394B5E0AB2EA1E19A2EF3E0BF2EE7
:107E6000A2D0813461F49FD0082FAFD0023811F036
:107E7000013811F484E001C083E08DD089C08234E0
:107E800011F484E103C0853419F485E0A6D080C0E4
:107E9000853579F488D0E82EFF2485D0082F10E0AE
:107EA000102F00270E291F29000F111F8ED06801E7
:107EB0006FC0863521F484E090D080E0DECF843638
:107EC00009F040C070D06FD0082F6DD080E0C81688
:107ED00080E7D80618F4F601B7BEE895C0E0D1E017
:107EE00062D089930C17E1F7F0E0CF16F0E7DF06D8
:107EF00018F0F601B7BEE89568D007B600FCFDCFD4
:107F0000A601A0E0B1E02C9130E011968C91119780
:107F100090E0982F8827822B932B1296FA010C0160
:107F200087BEE89511244E5F5F4FF1E0A038BF0790
:107F300051F7F601A7BEE89507B600FCFDCF97BE46
:107F4000E89526C08437B1F42ED02DD0F82E2BD052
:107F50003CD0F601EF2C8F010F5F1F4F84911BD097
:107F6000EA94F801C1F70894C11CD11CFA94CF0C13
:107F7000D11C0EC0853739F428D08EE10CD085E9AC
:107F80000AD08FE07ACF813511F488E018D01DD067
:107F900080E101D065CF982F8091C00085FFFCCF94
:107FA0009093C60008958091C00087FFFCCF809118
:107FB000C00084FD01C0A8958091C6000895E0E648
:107FC000F0E098E1908380830895EDDF803219F02E
:107FD00088E0F5DFFFCF84E1DECF1F93182FE3DFCA
:107FE0001150E9F7F2DF1F91089580E0E8DFEE27F6
:047FF000FF270994CA
:027FFE00040479
:0400000300007E007B
:00000001FF

66
D2/clangTex.tex Normal file
View File

@ -0,0 +1,66 @@
\usepackage{xcolor}
\usepackage{listings}
\usepackage{listingsutf8}
\definecolor{mGreen}{rgb}{0,0.6,0}
\definecolor{mGray}{rgb}{0.5,0.5,0.5}
\definecolor{mPurple}{rgb}{0.58,0,0.82}
\definecolor{backgroundColour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{CStyle}{
commentstyle=\color{mGreen},
keywordstyle=\color{magenta},
stringstyle=\color{mPurple},
basicstyle=\footnotesize,
frame=single,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
language=C
}
\lstdefinestyle{PyStyle}{
commentstyle=\color{mGreen},
keywordstyle=\color{magenta},
stringstyle=\color{mPurple},
basicstyle=\footnotesize,
frame=single,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2,
language=Python
}
\lstset{literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{Ã}{{\~A}}1 {ã}{{\~a}}1 {Õ}{{\~O}}1 {õ}{{\~o}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
}
%numberstyle=\tiny\color{mGray},
%numbers=left,
%backgroundcolor=\color{backgroundColour},

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

8193
D2/filer/1000HzCSV.csv Normal file

File diff suppressed because it is too large Load Diff

8193
D2/filer/500hzCSV.csv Normal file

File diff suppressed because it is too large Load Diff

BIN
D2/pics/blokk.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
D2/pics/krets.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

BIN
D2/pics/krets2.JPG Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 958 KiB

BIN
D2/pics/krets2.xcf Normal file

Binary file not shown.

BIN
D2/skop.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB