diff --git a/submission_thesis/CH5_Examples/Makefile b/submission_thesis/CH5_Examples/Makefile index 9670a12..c038fd2 100644 --- a/submission_thesis/CH5_Examples/Makefile +++ b/submission_thesis/CH5_Examples/Makefile @@ -7,7 +7,8 @@ PNG_DIA = blockdiagramcircuit2.png bubba_oscillator_block_diagram.png circuit1 tree_abstraction_levels.png vrange.png sigma_delta_block.png ftcontext.png ct1.png hd.png \ sigdel1.png sdadc.png bubba_euler_1.png bubba_euler_2.png eulersd.png eulersdfinal.png \ eulerfivepole.png eulerswhw.png context_diagram_PID.png context_diagram2_PID.png context_software.png \ - context_calltree.png euler_afferent_PID.png euler_heater_output.png euler_led_output.png + context_calltree.png euler_afferent_PID.png euler_heater_output.png euler_led_output.png \ + euler_temp_controller.png diff --git a/submission_thesis/CH5_Examples/euler_temp_controller.dia b/submission_thesis/CH5_Examples/euler_temp_controller.dia new file mode 100644 index 0000000..10481ce Binary files /dev/null and b/submission_thesis/CH5_Examples/euler_temp_controller.dia differ diff --git a/submission_thesis/CH5_Examples/software.tex b/submission_thesis/CH5_Examples/software.tex index 131a484..f22f307 100644 --- a/submission_thesis/CH5_Examples/software.tex +++ b/submission_thesis/CH5_Examples/software.tex @@ -1331,7 +1331,7 @@ The post condition for the monitor function is that it implements the PID contro { \tiny \begin{table}[h+] -\caption{ PID standalone controller: Failure Mode Effects Analysis} % title of Table +\caption{ standalone temperature controller: Failure Mode Effects Analysis} % title of Table \label{tbl:pid} \begin{tabular}{|| l | c | l ||} \hline @@ -1343,31 +1343,76 @@ The post condition for the monitor function is that it implements the PID contro \hline - FC1: $ Temp LED fails $ & LED will not light & FailureIndicated \\ - & & \\ \hline + FC1: PID KnownControlValueError & As error is detectable/ & ControlFailureIndicated \\ + & observable error can be indicated & \\ \hline - FC2: $ Processor LED fails $ & LED will not light & FailureIndicated \\ - & & \\ \hline + FC2: PID IncorrectControlerrorV & undetectable/iunobservable & ControlFailure \\ + & failure PID will not control properly & \\ \hline - FC3: $ PWM LED fails $ & LED will not light & FailureIndicated \\ - & & \\ \hline + FC3: HeaterOutput & Heater will constantly & ControlFailureIndicated \\ + HeaterOnFULL & apply maximum power & \\ \hline - FC4: GPIO stuck HIGH & LED permanently OFF & FailureIndicated \\ \hline - + FC4: HeaterOutput & heater will supply & ControlFailureIndicated \\ \hline + HeaterOFF & no power & \\ - FC5: GPIO stuck Low & LED permanently ON & FailureIndicated \\ \hline + FC5: HeaterOutput & with incorrect hower applied & ControlFailure \\ \hline + HeaterOutputIncorrect & control will not be effective & \\ - - FC6: Software SetLEDs & Incorrect Indication & IndicationError \\ - fails to set outputs correctly & Post condition failure & \\ \hline - + FC6: LEDOutput & failure of LED system & KnownIndicationError \\ + FailureIndicated & where failure is observable & \\ \hline + + FC7: LEDOutput & failure of LED system & UnknownIndicationError \\ + IndicationError & where failure is unobservable & \\ \hline + + + %% PROM\_FAULT, RAM\_FAULT, CPU\_FAULT, ALU\_FAULT, CLOCK\_STOPPED + + + FC8: micro-controller & un-defined behaviour & ControlFailure \\ + PROM\_FAULT & & \\ \hline + + FC9: micro-controller & un-defined behaviour & ControlFailure \\ + RAM\_FAULT & & \\ \hline + + FC10: micro-controller & un-defined behaviour & ControlFailure \\ + CPU\_FAULT & & \\ \hline + + FC11: micro-controller & incorrect arithmetic & ControlFailure \\ + ALU\_FAULT & performed in processing & \\ \hline + + FC12: micro-controller & processor will not run & ControlFailureIndicated \\ + CLOCK\_STOPPED & indicator leds will not flash & \\ \hline + + FC13: monitor: & postcondition fails & ControlFailure \\ + software fails & & \\ \hline + + + \hline \end{tabular} \end{table} } +We can now create a {\dc} for the standalone temperature controller, and give it the name TempController. +It will have the following failure modes: + +$$fm ( TempController ) = \{ ControlFailureIndicated, ControlFailure, KnownIndicationError, UnknownIndicationError \}$$ + + +We can now represent this failure mode analysis as an Euler diagram, see figure~\ref{fig:euler_temp_controller}. + + +\begin{figure}[h] + \centering + \includegraphics[width=300pt]{./CH5_Examples/euler_temp_controller.png} + % euler_temp_controller.png: 714x251 pixel, 72dpi, 25.19x8.85 cm, bb=0 0 714 251 + \caption{euler diagram of the temperature controller final anaysis stage, showing the hybrid software/hardware {\dcs} and the function at the head of the call tree `monitor'.} + \label{fig:euler_temp_controller} +\end{figure} + +