.
This commit is contained in:
parent
9bbbf42270
commit
16d41126f4
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user