.
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.
|
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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user