353 lines
14 KiB
TeX
353 lines
14 KiB
TeX
%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\%$ på $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}
|