This commit is contained in:
Robin Clark 2012-11-23 21:52:02 +00:00
parent 9bbbf42270
commit 16d41126f4

View File

@ -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. 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 call Read\_ADC thwice, 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 We then, calculate the resistance of the Pt100 element, and with this---using a
polynomial or a lookup table---and calculate the temperature. polynomial or a lookup table~\cite{eutothermtables}---and calculate the temperature.
The pre-conditions for the function are that: The pre-conditions for the function are that:
\begin{itemize} \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 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 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. \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. 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. 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. 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 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. 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 & reading, but should correlate & \\ \hline
FC4: $Pt100\_current$ & the current applied is & Pt100\_out\_of\_range \\ % FC4: $Pt100\_current$ & the current applied is & Pt100\_out\_of\_range \\
& necessary to calculate resistance, & \\ % & necessary to calculate resistance, & \\
& but should be within given bounds & \\ \hline % & but should be within given bounds & \\ \hline
%
%
FC4: $Pt100:VAL\_ERR$ & could cause an out of & temp\_incorrect\\ FC4: $Pt100:VAL\_ERR$ & could cause an out of & temp\_incorrect\\
& range error, but may also & \\ & 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: We now collect the failure symptoms for the {\dc} Get\_Temperature and can state:
$$fm(Get\_Temperature) = \{ Pt100\_out\_of\_range, temp\_incorrect \}$$ $$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 %\clearpage