From 481031aa4b2ae670d8fb4185e3f401c06f645561 Mon Sep 17 00:00:00 2001 From: Robin Clark Date: Mon, 26 Nov 2012 19:47:40 +0000 Subject: [PATCH] Up to PID now..... Tidy other parts of call tree --- submission_thesis/CH5_Examples/software.tex | 52 +++++++++++++++++++-- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/submission_thesis/CH5_Examples/software.tex b/submission_thesis/CH5_Examples/software.tex index aaae1b6..8ee23df 100644 --- a/submission_thesis/CH5_Examples/software.tex +++ b/submission_thesis/CH5_Examples/software.tex @@ -1031,12 +1031,58 @@ $$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) +Here we assume that the PID constants are fixed (i.e. are not parameters). +We use the $GetError$ {\dc} and the PID function to form a {\fg}. +The pre-condition for the PID function is that % are that it is called +%iat the correct frequency and that +it receives the correct error value. +The post-condition is that it outputs correct control values. +% RESP FOR TIMEING IS ON CALLING FUNCTION AND IS A SEPARATE ERROR- TGHINK ABOUT JITTER..... +% and controll values..... Jitter might not matter, wrong int times would +% controlling function provdes context of use. +Those familiar with the PID algorithm may here notice raise the point of calling frequency. +were this function to be called at an incorrect rate its output +would be wrong (the differential and integral parameters would effectively have been changed). +However this problem is a failure mode for the function calling it. +The calling function sets the context for the PID algorithm (i.e. what it is used for). +If this PID were to be used, say as some form of low pass filter, we could consider jitter +for instance. In a control environment with PID jitter would not be a significant factor. +{ +\tiny +\begin{table}[h+] +\caption{ PID: Failure Mode Effects Analysis} % title of Table +\label{tbl:pidfunction} -OK STOP AT PID and follow the other data flows until we are ready to bring them to the top: i.e. +\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: $ KnownIncorrectErrorValue $ & pre-condition violated & KnownControlValueErrorV \\ + & observable/detectable & \\ + & failure mode & \\ \hline + + FC2: $, IncorrectErrorValue $ & pre-condition violated & IncorrectControlErrorV \\ + & unobservable & \\ + & undetectable failure mode & \\ \hline + + + +\end{tabular} +\end{table} +} -the monitor program....... +We now create a PID {\dc}, with the following failure modes: + +$$ fm(PID) = \{ KnownControlValueErrorV, IncorrectControlErrorV \} .$$ +%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.......