From 16d41126f4823674838df538ab458bfd7ade30af Mon Sep 17 00:00:00 2001 From: Robin Clark Date: Fri, 23 Nov 2012 21:52:02 +0000 Subject: [PATCH] . --- submission_thesis/CH5_Examples/software.tex | 81 +++++++++++++++++---- 1 file changed, 68 insertions(+), 13 deletions(-) diff --git a/submission_thesis/CH5_Examples/software.tex b/submission_thesis/CH5_Examples/software.tex index 369a617..127a4c4 100644 --- a/submission_thesis/CH5_Examples/software.tex +++ b/submission_thesis/CH5_Examples/software.tex @@ -885,12 +885,12 @@ $$ fm (Read\_Pt100) = \{ VOLTAGE\_HIGH, VAL\_ERR, VOLTAGE\_LOW \}. $$ We can now move along in the afferent flow, and we come to the convert\_ADC\_to\_T function. -This will call Read\_ADC thrice, one for the high Pt100 value, again for the lower and once for to read a current sense. -This will then, calculate the resistance of the Pt100 element---using a -polynomial or a lookup table---and calculate the temperature. +This will call Read\_ADC thwice, one for the high Pt100 value, again for the lower. % and once for to read a current sense. +We then, calculate the resistance of the Pt100 element, and with this---using a +polynomial or a lookup table~\cite{eutothermtables}---and calculate the temperature. The pre-conditions for the function are that: \begin{itemize} - \item The current calculated is within pre-defined bounds i.e. Pt100\_current, +% \item The current calculated is within pre-defined bounds i.e. Pt100\_current, \item The lower Pt100 value is within an acceptable voltage range i.e. Pt100\_lower\_voltage, \item The higher Pt100 value is within an acceptable voltage range i.e. Pt100\_higher\_voltage, \item The Lower and higher values agree to within a given tolerance i.e. Pt100\_high\_low\_mismatch. @@ -899,7 +899,7 @@ Any violation of these pre-conditions is equivalent to a failure mode. Note that a temperature outside the pre-defined range will also cause these errors. The postcondition is that it returns a temperature within a given tolerance to the temperature at the sensor. A failure of this post-condition can be termed temp\_incorrect. - +\clearpage We now apply FMMD to the {\fg} formed by Read\_Pt100 and the function convert\_ADC\_to\_T. We can call the resulting {\dc} Get\_Temperature. @@ -934,11 +934,11 @@ We can call the resulting {\dc} Get\_Temperature. & reading, but should correlate & \\ \hline - FC4: $Pt100\_current$ & the current applied is & Pt100\_out\_of\_range \\ - & necessary to calculate resistance, & \\ - & but should be within given bounds & \\ \hline - - +% FC4: $Pt100\_current$ & the current applied is & Pt100\_out\_of\_range \\ +% & necessary to calculate resistance, & \\ +% & but should be within given bounds & \\ \hline +% +% FC4: $Pt100:VAL\_ERR$ & could cause an out of & temp\_incorrect\\ & range error, but may also & \\ @@ -954,11 +954,66 @@ We can call the resulting {\dc} Get\_Temperature. We now collect the failure symptoms for the {\dc} Get\_Temperature and can state: $$fm(Get\_Temperature) = \{ Pt100\_out\_of\_range, temp\_incorrect \}$$ +\clearpage + +Following the afferent flow further, we come to a function to determine the control error value. +The is simply the target temperature subtracted from the measured. +We thus form a {\fg} with our newly {\dc} Get\_Temperature +and the function determine\_set\_point\_error. + +The pre-condition for determine\_set\_point\_error is that the temperature read by it +is accurate, and its post condition is to return the correct control error value. +Most failure modes from a Pt100 are observable. +we can divide the post condition into two variants, a known incorrect error value, KnownIncorrectErrorValue +where we can detect the Pt100 value is suspect, and IncorrectErrorValue where we simply have +an incorrect error value. + + +{ +\tiny +\begin{table}[h+] +\caption{ GetError: Failure Mode Effects Analysis} % title of Table +\label{tbl:geterror} + +\begin{tabular}{|| l | c | l ||} \hline +% \textbf{Failure} & \textbf{failure} & \textbf{Symptom} \\ +% \textbf{Scenario} & \textbf{effect} & \textbf{RADC } \\ \hline + \hline + \textbf{Failure} & \textbf{Failure } & \textbf{Derived Component} \\ + \textbf{cause} & \textbf{Effect} & \textbf{Failure Mode} \\ + + + \hline + FC1: $ Pt100\_out\_of\_range $ & pre-condition violated & KnownIncorrectErrorValue \\ + & observable/detectable & \\ + & failure mode & \\ \hline + + FC2: $temp\_incorrect$ & pre-condition violated & IncorrectErrorValue \\ + & unobservable & \\ + & undetectable failure mode & \\ \hline + + + +\end{tabular} +\end{table} +} + + +We collect failure mode symptoms, and can create a new {\dc} GetError +where +$$fm(GetError) = \{ KnownIncorrectErrorValue, IncorrectErrorValue \}.$$ + + +We now follow the afferent path to the PID algorithm. +Here we assume that the PID constants are fixed (i.e. are not parameters) + + +OK STOP AT PID and follow the other data flows until we are ready to bring them to the top: i.e. + +the monitor program....... - - - +TLC tomorrow... %\clearpage