Model Based Development&Testing Matlab PDF
Model Based Development&Testing Matlab PDF
O I
O
=
-
-
O
}
1
-
I
O
O
Make a Simulink Block
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
166
Discretization
Tustin approximation
(Bilinear)
Tustin with
Prewarping
Better (freq. resp.
matches) ill-defined at and
close to z = -1
Ensures frequency
response matches at
critical freq
Transfer the S Domain to Z Domain
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
167
First Order Filter
The first order filter is represented by the following
transfer function
Nz and Dz are computed using the Tustin Transform
The term z-1 denotes the previous value
.
) 2 ( ) 1 (
) 2 ( ) 1 (
1
1
+
+
=
z Dz Dz
z Nz Nz
I
O
.
1
) 1 ( ) / 2 (
+
+
=
z
z T
s
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
168
Matlab Commands
sys = tf(1,[0.1 1]), Tc = 0.1
Transfer function:
1
---------
0.1 s + 1
ltiview
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
169
Bode Plot
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
170
Time Response
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
171
Discretization
sysd = c2d(sys,0.01,'tustin')
Transfer function:
0.04762 z + 0.04762
-------------------
z - 0.9048
Sampling time: 0.01
[nz,dz]=tfdata(sysd,'v')
nz = 4.761904761904762e-002 4.761904761904762e-002
dz = 1.000000000000000e+000 -9.047619047619048e-001
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
172
Bode Plot
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
173
Time Response
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
174
First Order Filter
If init > 0
Set the previous values of output and input, to input
Set output equal to input
Else
Compute using the following equation
out=Nz(1)*inp+Nz(2)*pri-Dz(2)*pro;
End
DTF -I-1S 1
Num Coeff A 0 = Nz (1)
Num Coeff A 1 = Nz (2)
Den Coeff B 1 = Dz (2)
Sample Time = DT
Discrete Transfer Function
I order 1 State
Out
Input
Init
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
175
Importance of Initialization
Initial transients are avoided
A constant input will give a constant output. The filter
acts as gain
The system comes up very fast and this is very important
in a safety critical system
Demonstration of Initialization
Make a Simulink Block
Make Matlab Code
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
176
Second Order Filter
The Second order filter is represented by the following
transfer function
Nz and Dz are computed using the Tustin Transform
The term z-1 denotes the previous value and z-2 denotes
previous to the previous value
.
) 3 ( ) 2 ( ) 1 (
) 3 ( ) 2 ( ) 1 (
2 1
2 1
+ +
+ +
=
z Dz z Dz Dz
z Nz z Nz Nz
I
O
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
177
Second Order Filter
If init > 0
Set the all previous values of output and input to input
Set output equal to input
Else
Compute using the following equation
out=Nz(1)*inp+Nz(2)*pri+Nz(3)*ppri
-Dz(2)*pro-Dz(3)*ppro;
End
Demonstration of second order filter
DTFB-II-2S1
Num Coeff A 0 =a1
Num Coeff A 1 =a2
Num Coeff A 2 =a3
Den Coeff B 1 =b2
Den Coeff B 2 =b3
Sample Time =DT
Discrete Transfer Function
Bilinear II Order 2 State
Out
Input
Init
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
178
Use of Filters in Control Systems
Normally used to reduce noise
Filter out high frequency components of a system so that
it behaves in a slower manner. i.e. It does not respond
very fast to the changing input
To modify the response of the output to transients
It could be a lead/lag filter or a washout filter
Second order filters are normally used as notch filters to
cut out unwanted frequencies.
The second order filters introduce additional phase lag in the
system and can cause erosion of margins. They have to be used
with care
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
179
Latches
These are primarily flip flops used in the digital circuits
In software latches come in basically two flavors Set
Priority and Reset Priority
Latches are used to latch a failure in system. It retains
its set value and can only be reset by sending a 1 to the
reset input
In set priority the set signal is processed first and if it is a
1 the latch is set. In reset priority the reset input is
processed first.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
180
Latches
Inputs : S,R
Output =Q
If (S==1)
Q =1
Else if (R==1)
Q =0
Else
Q = prev Q
Set Priority
Out
Set *
Reset
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
181
Saturation
These blocks are the most important of the blocks in a
safety critical control system
They limit the inputs and outputs signals of the system.
This ensures that the system does not get large values
when a sensor fails due to any reason.
Limits can be variable based on flight conditions. A
designer would like to prevent large movements very
close to the ground but when the aircraft is high above in
the skies one has the freedom to move more.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
182
Saturation
if max < min then swap max and min
if input > max
output = max
elseif input < min
output = min
else
output = input
end
DAL1
Sample Time =DT
Dynamic Amplitude Limiter
Limited Out
Input
UL
LL
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
183
Rate Limiter
All physical systems have a rate limit. A car can go at
100 kmph when the accelerator is pressed fully down.
That is the velocity or rate limit.
In aerospace the aircraft surfaces can move at a finite
rate for a specific command. This is the system limit
which cannot be crossed.
It is dangerous to hit the surface rate limits. In case the
rate limits are hit the surface does not respond as
required by the control system and the aircraft can (and
has) crashed.
Rate limiter blocks are introduced in control systems to
avoid the commands causing a rate limit of surfaces.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
184
Rate Limiter
During First frame: y = IC
During Normal Operation:
PosDelta =previous output +PosRate*T
NegDelta =previous output +NegRate*T
If (x>PosDelta) where x is input
y =posDelta
Else if (x<NegDelta)
y =negDelta
Else
y=x
Here NegRate (say -10 in/s) is the negative slew or rate
limit and PosRate is the positive rate limit (say 12 in/s)
RATEL
Rate Limiter
Sample Time =DT
Rate limited
Input
Rising Limit
Falling Limit
Init
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
185
1-D Interpolation
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
186
1-D Interpolation
Given a table of X and Y values and a value of x for
which y is required
Find the two values of X between which x lies
This give index i and index i+1
Find the slope s=Y(i+1)-Y(i)/((X(i+1)-X(i))
y = (x-X(i))*s + Y(i)
Normally extrapolation is not used in the safety critical
control systems. One can always extrapolate offline and
use them as additional values in the table
1-D Table
Y Axis Data =YT
1-D Look Up
Inter
Index
Fraction
Size
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
187
Uses of 1-D Interpolation
Normally 1-D Interpolation is called table lookup and is
used to modify the input/output relation
A linear actuator moves forward and backward measured in
inches. This is connected to the aircraft surface which move in
degrees. But there is a non linear relation from inches to degrees
then we use a 1-D lookup
A control gain has to change on how fast the vehicle is moving
then we will use a 1-D lookup
The pilot should move the surface very fast when he is close to
zero but he should move it slowly when he is greater than 10
degrees. Use 1-D to modify pilot command
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
188
2-D Interpolation
Altitude
1 Km 2 km 5 km 10 km
200 kmph 1.42 1.56 1.8 1.92
400 kmph 2.45 2.56 2.79 3.1
800 kmph 3.67 3.81 3.91 4.12
1000 kmph 4.78 4.90 5.2 5.2
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
189
2-D Interpolation
Given a table of X and Y values, a matrix Z of values.
Given a value of x and y compute z from the table
lookup.
Find the two values of X between which x lies
This gives index i and index i+1
Find the two values of Y between which y lies
This gives index j and index j+1
Compute y1 at x by using Y(i,j) and Y(i+1,j)
Compute y2 at x by using Y(i,j+1) and Y(i+1,j+1)
Compute z by using y1 and y2
Use 1-D interpolations for the computation
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
190
2-D Interpolation
Y(j)
Y(j+1)
X(i) X(i+1)
x
y1
y2
y z
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
191
2-D Demonstration
This is a demonstration of the 2-D Simulink and its
comparison with interp2 Matlab function
Subsystem
Table =A
Sampling Time =DT
2-D Table Ext Index
Inter
Index_X
DX
SizeX
Index_Y
DY
SizeY
Safe
PreLookup2
Sampling Time =DT
Look Up Table =YT
Pre-lookup Index Search
Index
Fraction
Size
Input
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
192
Integrators
Integrators are used in PID controllers
They are used a accumulators. If the pilot wants to fine
tune aircraft nose up or down command he uses a trim
button. The output of this button is integrated to generate
a up/down command. The more time the button is
pressed the higher the integrator output.
They are used to keep count of time. If a flag is set for
some time the integrator ramps up and if the value is
greater than some threshold one can latch a failure.
Integrators are used to make filters in the way an analog
filter is designed
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
193
Anti windup Integrators
Integrators can run away if a constant input is given. It
is possible for the output variable to have very large
values. This is called windup
This is not a very safe situation and integrator have a
limit on the state. This is called anti windup.
All integrators in a safety critical system have anti windup
INTEG 1
Sample Time = DT
Integrator
Out
Initial OP
Init
Input
UL
LL
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
194
Integrator - Euler
Inputs: x, IC
Output : y
During first frame : y=IC
During normal operation :
y(i) =y(i-1) +T*x(i),
where T =sample time.
Anti windup
If y(i) >poslim
y(i) =poslim
Elseif y(i) <neglim
y(i) =neglim
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
195
Integrator - Tustin
Inputs: x, IC
Output : y
During first frame : y=IC
During normal operation :
y(i) =y(i-1) +T/2*(x(i-1)+x(i))
where T =sample time.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
196
Persistence
In safety critical systems it is very important to trap wire
cuts, sensor failures etc.
Persistence blocks check for such failures over a finite
period of time. If the failure exists for say 2 seconds the
output of the block is set to TRUE.
Normally a failure which persists for a long duration
causes a latched failure. A latched failure requires a
reset to clear
Some of the failures will cause a reset inhibited latch.
Such failures aircraft cannot be cleared when the aircraft
is in air. Only after the aircraft lands and the pilot gives
an on ground reset is the failure cleared.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
197
Persistence
Inputs: IC, Input, DTOn , DTOff
Output: Out
If Init True: y =IC
During normal operation (Init =False):
if (input is TRUE and has remained TRUE for
DT ON frames)
Out =TRUE
elseif (input is FALSE and has remained
FALSE for DT OFF frames)
Out =FALSE
Else
Out =Previous frame value of Out
Subsystem
Out
Input
Init
Ic
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
198
WindowOn/Off
WindowOn/Off is a special type of persistence block
Instead of looking for a continuous failure (on or off state)
this block looks for a set of failures in a finite window size
E.g. if a failure occurs 4 times in a window of 20 frames a
failure is set.
These blocks form a part of the module called
redundancy manager. This is a must in all safety critical
systems where multiple sensors are continuously
monitored and failures and bad sensors are voted out
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
199
WindowOn
Initially output is False
Open a window (assign a array) of say 20 frames
(previous example)
This array represents a moving window
Input 1/0
Sum
1 0 0 1 0
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
200
WindowOn
Every frame the data in each cell is shifted right. The 1
st
cell has the fresh input data
The sum of all cells in window is computed
If the sum is greater than threshold (4 in previous
example) then the output is set to True
Note: 1 indicates On in WindowOn block and a Off in a
WindowOff block
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
201
Transient Free Switches
Every control system has a Transient free switch
somewhere. It is also called as fader logic.
These are used to fade from one signal to another over
time. In aircrafts the lowering of the landing gears cause
a change in the system behavior (change in
aerodynamics). This causes a change in the control
system and the commands to the surface. The smooth
transition between the two phases is brought by using
the TFS.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
202
Transient Free Switch
If Event is True output = Sn for 1
If Event is False output = Sn for 0
If the Event changes state (T-> F or F->
T)
Compute difference between the output and
the switched signal
Compute the delta change per frame by
dividing this difference by the fade time in
frames
Add this delta difference every frame to the
output till it reaches the input signal
This works well for constants but has
problems with continuous signals
TFS
Sample Time =DT
Transient Free
Switch
Out
FadeTime
Trig
Sn for 1
Sn for 0
Event
Init
Safe
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
203
Transient Free Switch
If Event is True output = Sn for 1
If Event is False output = Sn for 0
If the Event changes state (T-> F or F-> T)
Fade a variable A from 1.0 to 0.0 over the fade time
If the fade is from True to False. Multiply the True Signal with A
and False signal by (1-A).
This causes the True signal to fade out and the False signal to
fade in
Add these two signals to get the output
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Model Based Testing
What is the cause of most aviation
accidents:
Usually it is because someone
does too much too soon, followed
very quickly by too little too late.
Steve Wilson,
204
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Model Based Test
An executable requirement of the control system is
available as a model
The C/Ada code for this requirement has been
developed and runs on a target platform
The idea of model based tests in a nutshell is to generate
a set of test cases which will generate a set of input
signals time histories. These inputs are injected into the
Model and simulated to get the outputs.
The same input signals are injected into the
corresponding compiled code inputs and the expected
outputs tapped out.
205
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Model Based Test
If both Model and Code outputs match then we infer that
the code is as per the requirements.
The assumption for a complete test is that we have
generated the test cases which cover the Model
functionality 100%
The same set of test cases give 100% code coverage on
the target on an instrumented code build
The instrumented code output and non instrumented
code output match very well with the Model output.
Very well is defined beforehand based on the target
data, the input output quantization, etc
206
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Schematic
Flight
Code
Model
Test
Cases
A frame based testing
Comparator
207
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Testing Example
A small example is shown here. This was a missile
implementation which failed. The input is limited between
+20 and -20, filtered through a digital filter and the output
limited on the positive side.
Saturation Saturation
nz(z)
dz(z)
Discrete Filter
Limit Input to
20.0
10/(s+10)
Limit Output to +
9.5
208
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Static Test
A set of constants are used to test the code
implementation against the model
Input Model Flight
0.0 0.0 0.0
-3.0 -3.0 -3.0
-25.0 -20.0 -20.0
3.0 3.0 3.0
25.0 9.5 9.5
The Flight code
and the Model
outputs match
exactly. Can we
pass a safety
critical system
with these tests?
209
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Dynamic Test
A 10 Hz signal was injected into the system. The Flight
code and the Model match very well.
The Flight code
and the Model
outputs match
exactly. Can we
pass a safety
critical system
with these tests?
0 5 10 15 20 25 30 35 40
-20
-15
-10
-5
0
5
10
15
20
Time (sec)
M
a
g
n
i
t
u
d
e
Input
Flight
MODEL
10 Hz
Signal
210
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Dynamic Test
A 0.1 Hz signal was injected into the system.
211
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Dynamic Test
There is an error between the Flight code and the Model.
This is a significant error.
A high frequency test has
not excited all the blocks
completely as the filter is
reducing the higher
frequency signal. The
output limiter is not
exercised. Taking credit of
the static test does not
help.
212
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
Dynamic Test
nz = [5.882e-2 5.882e-2]; dz = [1.0 -8.823e-1];
Initialisation
O=inp , pinp=inp
Loop
o=nz(1)*inp+nz(2)*pinp-dz(2)*o
if o > 9.5
o = 9.5;
end if
End Loop
The state is limited and
used in the
computation. This is
because the code uses
the same variable name
o for the filter output
and the limiter output.
213
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
214
Control System Block Tests
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
215
Logical Blocks
IEEE Standard Graphic Symbols for Logic Functions
AND =TRUE if all inputs are TRUE
OR =TRUE if at least one input is TRUE
NAND =TRUE if at least one input is FALSE
NOR =TRUE when no inputs are TRUE
XOR =TRUE if an odd number of inputs are TRUE
NOT =TRUE if the input is FALSE
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
216
Logical Blocks
For a Safety Critical Application All Logical Blocks have
to be tested to ensure Modified Condition / Decision
Coverage (MC/DC)
The effect of the input signal on the block has to be
shown at a output which corresponds to a observable
variable in the code (a global variable)
The logical blocks are normally connected to a switch
and both TRUE and FALSE operations of the switch
have to demonstrated on the output.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
217
MC/DC Example
A
B
C
D
A B C D
F F F F
F F T F
F T F F
F T T F 1
T F F F
T F T F 2
T T F F 3
T T T T 4
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
218
Exercise
Define the MC/DC Test cases for this Combination Logic
A
A
B
C
O
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
219
Answer
A B C A xor B NOT(A xor B) C' O
0 0 0 0 1 1 1
0 0 1 0 1 0 0
0 1 0 1 0 1 0 2
0 1 1 1 0 0 0
1 0 0 1 0 1 0 3
1 0 1 1 0 0 0
1 1 0 0 1 1 1 1
1 1 1 0 1 0 0 4
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
220
Beware of MC/DC
A B AND NOT(XOR)
0 0 0 1
0 1 0 0
1 0 0 0
1 1 1 1
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
221
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
222
Switch Blocks
A Switch Block mimics an IF statement in code
The Trigger or Event input in the centre causes the
output equal to one of the outputs
Trigger
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
223
Testing Switches
In a model based approach it is usually seen that the
path till the switch inputs is normally executed. This is not
so in the case of C Code. The programmer will normally
put a set of instructions inside the if-then-else logic.
As a result intermediate states may have different
values.
Solution: Use an If-Then-Else block OR code like the
model!
Take care while selecting inputs. It is possible that both
the inputs to the switch may be equal due to computation
in the path above. This will make the test confirmation
difficult.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
224
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
225
Filters
Filters are dynamic elements of a control system. They
have a state and the output changes with time. They are
very important to a stability of a system.
The correct implementation in Code has to be
ascertained and demonstrated for Certification.
Type of filters used in the control system are typically
First order
Second order
Notch Filters
Washout
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
226
First Order Filters
First order are the simplest of the filters used to cut off
noise
In model based testing they can be easily tested by
giving a step change at the input of the filter
The first order filters are characterized by a time constant
and for a unit step input the value of the output is
approximately 0.632 at a time equal to the time constant.
This can be used to prove the correctness of the
response!
Normally the filter output and the filter states are
initialized to the input. This ensures that the filter output
is constant for a constant input!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
227
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Syst em: sys
Ti me (sec): 0.1
Ampl it ude: 0.632
St ep Response
Ti me (sec)
A
m
p
l
i
t
u
d
e
Filter Response
1
0.1 S +1
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
228
Discussion
Do we require to test Models in this fashion always,
looking for a characteristic ? What is the use of Model
then !?
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
229
Second Order Filters
A standard Second Order
Filter defined in the S
domain will have a constant
in the numerator and a
second order term in the
denominator
The Second order filter is
characterized by Rise Time,
Peak Amplitude, Time at
Peak Amplitude and the
Settling Time to 2% of its
Steady State value
|
|
.
|
\
|
|
|
.
|
\
|
2
1
2
1
tan
1
1
n
Tr
2 2
2
2
n n
n
s X
Y
+ +
=
n
Ts
9 . 3
=
2
1
=
n
Tp
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
230
Step Response
Step Response
Time (sec)
A
m
p
l
i
t
u
d
e
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System: sys
Peak amplitude: 1.37
Overshoot (%): 36.8
At time (sec): 0.314
System: sys
Rise Time (sec): 0.135
System: sys
Settling Time (sec): 1.12
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
231
Testing 2
nd
Order Filters
They are tested the same way as the first order filters
with a step response
The various parameters that characterize the filter are
confirmed
Second order filters are sensitive to initialization and the
first 3-4 frame values are very important. They can tell if
the filter has been implemented correctly
Normally states are all initialized to the input signal. This
in turn ensures that the filter output is constant for a
constant initial input
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
232
Discussion
The requirements document mentions that the filter shall
be implemented such that the output derivates are zero
for constant input. Why do they specify this?
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
233
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
234
Notch Filters
They are special 2
nd
Order
Filters characterized by a
different value of
numerator and
denominator damping
ratio
They have to be
prewarped for ensuring
correct frequency domain
characteristics
2
2
2
2
1
2
2
2
n n
n n
s
s
X
Y
+ +
+ +
=
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
235
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
236
Washout and Others
Washout filters are differentiating filters
The first frame output is normally initialized to 0.0. Why?
Lead Lag Filters, Complimentary Filters and others are
various implementation of first order filters
It is difficult to specify the exact value of the response to
verify the results
Ideally if the first order filter Model works for a first
order lag it will work very well for any other filter
also. This is the charm of Model Based Testing!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
237
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
238
Scheduled Filters
These are first or second order filters which have time
varying coefficients
It is simpler to specify the filter coefficients in the S
Domain for these filters. A first order filter will have the
time constants varying with time
Testing these filters is easy in a Model Based Approach
First the filter is tested with constant coefficients. This
checks the algorithm
Then the filter is checked with time varying coefficients
Sine Sweep signals and sinusoidal waveforms can be
used to verify the filter performance
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
239
Functional Coverage
A large input at the filter input will completely cover the
algorithm
Add a few test cases to check the Initial Conditions. Both
True and False conditions of the Initial conditions should
be checked.
It is a good practice to have a non zero value at the filter
input in the first frame. This will ensure that in case
proper initialization is not happening then the response
will not match.
Avoid random excitations and very high frequency
signals. They may miss out certain aspects of the filter.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
240
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
241
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
242
Integrators
These blocks form a major component of a control
system
Some digital filters are implemented using integrators
Integrators are used to minimize the errors in a PID
control system
They are used to indicate the amount of time a particular
button has been pressed. They can also indicate an up
and down direction of button press
Integrators have anti-windup limiters. Care should be
taken to see that this is implemented properly in code or
in Model.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
243
Discussions
Are these two implementations same?
Signal Builder
Signal 1
Scope
Saturation
Discrete-Time
Integrator1
K Ts
z-1
Discrete-Time
Integrator
K Ts
z-1
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
244
Matlab Demonstration
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
245
Integrator Tests
Give constant inputs and hold them till saturation occurs
Hold the input for some more duration and reverse sign
(if possible)
This will test the algorithm and the limits
Check the other functionalities like Integrator Reset and
Initialization
A large amplitude low frequency sinusoidal waveform
also checks the functionality
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
246
Functional Coverage
The normal algorithm is tested with a constant input. The
integrator functionality is covered if from a zero value of
the output the + and saturation limits are hit.
It is important to test the integrator behavior when it
comes out of saturation.
There are instances where the integrator limits are
dynamically varying. In these cases the integrator should
be checked for at least 2 different values of the limits on
both sides.
The initial conditions and reset will be checked by giving
a reset for at least two different values of the output
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
247
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
248
Non Linear 1D Lookup
One Dimensional Lookup Table
These blocks are used to modify/shape the input in a particular manner.
They can be used as variable saturation limits
1D tables are characterized by an X-Y relation. The X-Y relation
could be continuous or with specified breakpoints
In control systems a linear interpolation is used to find the values in
between breakpoints.
There are instance when the breakpoints values change based on
certain conditions. A switch and two separate tables can be used in
such a situation.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
249
1-D Lookup Example
X Y
-50 -25
-10 -25
-5 -10
-2 -5
3 6
6 8
15 10
20 12
50 12
-50 0 50
-25
-20
-15
-10
-5
0
5
10
15
X Values
Y
V
a
l
u
e
s
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
250
Testing 1-D Lookup
A very low frequency sinusoidal waveform with amplitude
varying beyond the X values can excite the table
completely
Another alternative is to use a slowly varying ramp signal
The complete functional coverage can be ensured if
there are input signal points
Beyond the X extreme values (e.g. -60, 60)
At least two points between each breakpoint
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
251
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
252
Non Linear 2D Lookup
Two Dimensional Lookup Table
These are normally used for gain tables in aircraft
controllers
They can be filter coefficients data also
The data is provided as a table with Row and Column
vectors
A Linear interpolation is used to find the in between
points
Higher dimension lookup tables are used in simulators
and air data systems in aerospace
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
253
2-D Lookup Example
Altitude
1 Km 2 km 5 km 10 km
200 kmph 1.42 1.56 1.8 1.92
400 kmph 2.45 2.56 2.79 3.1
800 kmph 3.67 3.81 3.91 4.12
1000 kmph 4.78 4.90 5.2 5.2
S
p
e
e
d
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
254
Testing 2-D Lookup
The coverage criteria is similar to the 1-D Lookup i.e. two
points between break points. In this case both X-Y have
to be considered
One of the axis either X or Y is kept constant and the
other input varied as a ramp or sinusoidal signal to scan
the values
Two sinusoidal signals with different frequencies or a
step waveform and a sinusoidal waveform can be
considered to obtain coverage
Certain tools like the V&V toolbox of Matlab can provide
coverage metrics automatically
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
255
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
256
Rate Limiters
Rate limiters limit the rate of the output
A step input results in a ramp output
There are variations in the rate limiter implementation
Symmetric Rate Limiters
Asymmetric Rate Limiters
Dynamic Rate Limiters
The limits are called Max and Min but they are not
exactly that One should specify the Positive Slew
Rate and Negative Slew Rate
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
257
Matlab Demonstration
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
258
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
259
Saturation
This is a simple amplitude limiter
There can be problems in an implementation of the
saturation also
Is it protected for a Safety Critical Application?
a=2;ul=5;ll=10;
if a >= ul
a=ul;
elseif a <= ll
a = ll;
end
What happens if the
Maximum Value, specified
or dynamically arrived at,
is Lower than the Lower
Limit?
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
260
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
261
Persistence
These blocks are used to check for failures and to
observe them over a period of time to see if they
persist. If they do then a failure is declared
There are various type of these blocks
Delay On/ Off
Delay OnOff (Together)
In Window On/Off/OnOff
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
262
Matlab Demonstration
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
263
Window On Off
This is a special type of persistence block
Can be used to detect loose contacts
A window is opened say for 10 frames whenever a failure
occurs
Every frame the input is checked and a counter
incremented for every failure observed in the window of
10 frames
If the number of failures exceeds limit (say 5) then the
output is set True
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
264
Testing Persistence
The normal operation is checked by setting the required
conditions as demonstrated
There should be sufficient cases to ensure that the input
toggles before the persistence time and after it also
Different combination of input toggling have to be used to
verify the functionality
This is a good candidate for Random Testing!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
265
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
266
Latches
Latches are used to set a particular failure flag so that it
can be cleared only based on the reset
They would normally be used after the DelayOn/Off
blocks to set a failure
There are two type of latches
Set and Reset Priority based on what happens when the Set
Signal and the Reset Signal both are 1
Set Priority Latch_IC
SET *
RESET
IC
Q
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
267
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
268
Transient Free Switches
These switches (also called faders) fade from one input
to the other input linearly when the event toggles
Different system houses have a different logic to
implement this
Normally a special block would be made using the
Simulink library primitives to implement this block
TFS
TRIG
TR
T
F
DT
OUT
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
269
Transient Free Response
0 2 4 6 8 10
5
5.5
6
6.5
7
7.5
8
8.5
9
9.5
10
Ti m e (s e c )
M
a
g
Tr an s i e n t Fr e e Sw i t c h e s
Tr i g g e r
Ou t
Tr u e
Fal s e
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
270
Test Methods
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
271
Manual Tests
We require to prove a safety critical system to be correct
manually!
The low level test process calls for a tester to design test
case by injecting inputs at the system input point and
show its effect at each and every block output
This output has to be shown to be correct by hand
calculation or excel computations
The test artifacts, test cases, test procedures and results
are reviewed against a checklist. These have to kept
under Configuration Control to be produced for
Certification
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
272
Manual Test
The expected results are also generated using the
Simulink Blocks and stored in an Excel Sheet for review
The Code is injected with these signals using Code test
tools. These tools also produce the instrumented output
and coverage metrics
All the tools, models have to be qualified according to the
standards. The standards demand that the tool
determinism be proved and documented
This means lots and lots of work!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
273
Automated Tests
A collection of Manual Test cases can be executed on
target in a batch mode
In such cases the pass/fail criteria have to be defined
beforehand
Normally test cases are executed on a simulator on the
PC and later cleared for execution on the board in an
automated manner
V&V groups have developed methods to automate the
execution which are proprietary to the company
However, all automated test case results have to be
reviewed or should be reviewable for Certification
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
274
Generating Automated Tests
Several tools are available or have been developed in
house by the V&V groups to generate test cases
automatically
This saves a lot of effort, but it is very important that if
the test cases and results (outputs) are not verifiable
(manually) then the tool has to be qualified
A lot of effort and money is spent in these automated
tools. Companies feel that it makes a business sense to
qualify the tool and use it than to make manual test
cases.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
275
Random Test Cases
One of the methods used by the tools is to generate test
case randomly
The code/block coverage metrics are monitored for each
test case
A selection is done at the end of a set of test cases to
optimally select a subset of tests which give maximum
coverage
This has been successfully utilized to test the Mode
Transition Logic (MTL) for the Indian SARAS aircraft. A
set of 100 test cases generated randomly could cover
the complete MTL
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
276
Techniques for Random Tests
Control Systems cannot be checked by injecting random
signals as the filters consider these as noise and reject
them. One method is to inject sinusoidal waveforms with
their parameters Frequency, Amplitude, Bias and
Phase selected randomly.
Another method that can be used is to select these
parameters with a probability. 90% of the time the aircraft
does maneuvers in the frequency band 1-3 Hz. 10% of
the time it can do some high frequency large amplitude
maneuvers. We can select the input parameters to mimic
these realistic situations
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
277
Coverage Metrics
Random Tests rely on coverage metrics for selection
Block coverage has been discussed earlier. Simulink
gives the coverage metrics automatically. It is possible to
define coverage metrics for specialized blocks and
monitor them during test case generation.
It is very important to take in the code coverage metrics
also when generating test case
Test cases should give 100% coverage for functionality
and code. If not, these have to be justified as
unreachable and documented
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
278
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
279
Orthogonal Arrays
It is always possible to look at the test cases as
parameters to a process and the various amplitude as
levels.
Instead of looking at changing one parameter and
keeping the other constant, it is possible to look at pair
wise combinations
Orthogonal Arrays can be used successfully to reduce
test cases
A freeware software called allpairs has been used to
reduce test cases in the SARAS and LCA programs
while maintaining the rigor of testing
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
280
An L8 Array
An L8 array can be
used to test 7 input
parameters with two
levels each
The Two levels could
be True or False and
the 7 inputs to a logic
circuit
Any two rows show all
combinations of (1,1),
(1,2), (2,1) and (2,2)
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
281
Orthogonal Cases for SARAS
In the Indian SARAS program system tests were carried
out for Altitude, Speed, Autopilot Up/Down, Autopilot Soft
Ride On/Off cases
4 Altitude and 4 Speed cases had to be tested
Allpairs software was used to generate 13 test cases
for each autopilot mode
The Flight Envelope coverage was checked in a dynamic
situation and found to be adequate
The complete set of test cases was automated and
executed on the system test rig
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
282
Error Seeding
A technique of Error Seeding was used successfully to
design test cases for the LCA controller
The Model for the controller was seeded with errors for
the block under test
Only 1 error was introduced in a Delta Model
The efficacy of the test case to bring out this error was
determined by ensuring that the output error was very
much above the pass/fail threshold
A set of 400 odd cases were generated to test each and
every block in the Model by verifying on the Delta Model
LCA flies today without any safety critical CLAW errors!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
283
Pass/Fail Threshold - Discussion
What should be the pass/fail threshold for an automated
test?
Altitude varies from 0 Km to 15 Km, and Mach Number
varies from 0 to 2. Can they have the same threshold for
pass/fail?
What is the best way to solve this issue?
Does the precision of my hardware effect this threshold?
Can I catch all errors if I keep a very low threshold? Will I
get spurious failures?
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
284
LCA Example
We have found that a good threshold is to use the
formula
If the |Output| signal is >1.0 then divide the error by the signal
If it is <=1.0 then take the computed error itself
We used a threshold of 0.0002 for the pass/fail and
found it to be adequate for our processor and precision
used
This has been reported in open literature so feel free to
use it!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
285
Experiments with Models
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
286
Taguchi Design of Experiments
The Design of Experiments has been successfully used
to generate test cases
It is possible to generate optimal test cases using DOE
for Control Systems
We have taken a case study of an Airdata System and
successfully used DOE and Genetic Algorithm to
generate test cases
DOE was able to generate a single test case after 38
experiments
Genetic Algorithm did something similar bit it had to
execute 600 runs but who cares!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
287
Some Tools To Experiment With
Matlab has a Verification and Validation Toolbox and a
Design verifier which can generate the test cases
automatically. It is a worthwhile exercise to get a demo
license from Mathworks and try out some experiments
Reactis is another tool that is worth exploring. A demo
license is available for evaluation
Simdiff is a useful tool that can point out the changes
made between the models. This can tell you what
component need be tested for recursion
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
288
Best Practices
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
289
To Err is Human
Initialization errors ALWAYS
Copy Paste Errors ALWAYS
Limited state bug discovered in 1995 in Nag missile
again in LCA (We always make the same mistakes)
Model also incorrectly implemented - what do we do!
Manual segments incorrectly implemented new
features (always)
Corrections asked after errors found incorrectly applied
Gain table data entry error
Index exceeding bounds during interpolation
Tustin Euler Confusion
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
290
Testing Tantras
Automate the complete process from DAY 1 test
generation, test execution, download, analysis, reporting
Analyze every case in the first build Painful but
essential. This gives you an insight into the working
Analyze failed cases and as you have the code, do a
debug to some level do not send error reports (test
case could be wrong!) [Pssst We face it regularly]
Have a configuration control mechanism for test cases,
reports, open/closed PRs
Develop a front end for the test activity eases the whole
process
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
291
Testing Mantras
Eyeball the Requirements and the Model. If allowed look
at the Model and Code (Make the tests based on the
Model). This first step will bring out lot of errors
Errors, like the bugs, are found at the same place
(behind the sink!). Try to search there first. You will get a
lead on the development guys. Smart Testing!
It is very useful if you have a systems guy close by. Lot
of issues get solved across the partition
Have tap out points in the model and code. They are
extremely useful in debugging especially in system level
tests
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
292
Last Words
Children are born true scientists. They spontaneously
experiment and experience and experience again. They
select, combine and test, seeking to find order in their
experiences: Which is the mostest? Which is the
leastest? They smell, taste, bite and touch-test for
hardness, softness, springiness, roughness,
smoothness, coldness, warmness: they heft, shake,
punch, squeeze, push, crush, rub and try to pull things
apart. R. Buckminster Fuller
Let us experiment with Model Based Testing there is
so much to experience here!
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
293
Contact Us
Yogananda J eppu
jyogananda@moog.com
Chethan C U
cchethan@moog.com
MOOG
Plot 1, 2 & 3, Electronic City
Hosur Road
Bangalore, India 560 100
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
294
References
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
295
References
RTCA, 1992, "Software Considerations in Airborne Systems and
Equipment", DO-178B, Requirements and Technical Concepts for
Aviation, Inc.
International Electrotechnical Commission, IEC 61508, Functional
Safety of Electrical/Electronic/Programmable Electronic Safety-
Related Systems, draft 61508-2 Ed 1.0, 1998
UK Ministry of Defense. Defense Standard 00-55: Requirements for
Safety Related Software in Defense Equipment, Issue 2, 1997
UK Ministry of Defense. Defense Standard 00-56: Safety
Management Requirements for Defense Systems, Issue 2, 1996
FAA System Safety Handbook, Appendix C: Related Readings in
Aviation System Safety, December 30, 2000
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
296
References
YV J eppu, CH Harichoudary, Wg Cdr BB Misra, Testing of Real Time Control
System: A Cost Effective Approach SAAT 2000, Advances in Aerospace
Technologies, Hyderabad, India
Y V J eppu, Dr K Karunakar, P S Subramanyam , A New Test Methodology to
Validate and Verify the Control Law on the Digital Flight Control Computer 3rd
Annual International Software Testing Conference 2001, Bangalore, India
YV J eppu, K Karunakar, PS Subramanyam, Flight Clearance of Safety Critical
Software using Non Real Time Testing, American Institute of Aeronautics and
Astronautics, ATIO, 2002, AIAA-2002-5821
YV. J eppu, K Karunakar and P.S. Subramanyam, "Testing Safety Critical Ada Code
Using Non Real Time Testing", Reliable Software Technologies ADA-Europe 2003,
edited by J ean-Pierre Rosen and A Strohmeier, Lecture Notes in Computer Science,
2655, pp 382-393.
S.K. Giri, Atit Mishra, YV J eppu, K Karunakar, A Randomized Test Approach to
Testing Safety Critical Code presented as a poster session at the International
Seminar on "100 Years Since 1st Powered Flight and Advances in Aerospace
Sciences", Dec 2003.
Sukant K. Giri, Atit Mishra, Yogananda V. J eppu and Kundapur Karunakar, "A
Randomized Test Approach to Testing Safety Critical Ada Code", Reliable Software
Technologies, Ada-Europe-2004, edited by Albert Liamosi and Alfred Strohmeier,
Lecture Notes in Computer Science, 3063, pp 190-199.
Yogananda Jeppu, Chethan CU Workshop at MIT Manipal Jan 2013
297
References
Rajalakshmi K, J eppu Y V, Karunakar K, Ensuring software quality -experiences of
testing Tejas airdata software. Defence Science J ournal 2006, 56(1), pp13-19.
Yogananda V. J eppu, K. Karunakar, Prakash R Apte Optimized Test Case
Generation Using Taguchi Design of Experiments, 7th AIAA Aviation Technology,
Integration and Operations Conference (ATIO), September 2007 (accepted for
publication)
Rohit J ain, Srikanth Gampa, Yogananda J eppu, Automatic Flight Control System For
The Saras Aircraft HTSL Technical Symposium, Bangalore, India, December 2008
Yogananda J eppu, Automatic Testing of Simulink Blocks using Orthogonal Arrays
2009 Engineering Conference, Moog Inc, 26 May 2009
YV J eppu, The Tantras and Mantras of Testing, Software Test and Performance
Magazine, Sep 2005, pp 39-43
Yogananda J eppu, Thou Shalt Experiment With Thy Software, Software Test and
Performance Magazine, J une 2007
Sukant K. Giri, Atit Mishra, Yogananda V. J eppu and Kundapur Karunakar Stress
Testing Control Law Code using Randomised NRT Testing 43rd American Institute of
Aeronautics and Astronautics, Aerospace Sciences Meeting and Exhibit, 10 - 13 J an
2005 - Reno, Nevada, AIAA 2005-1253
Yogananda J eppu and Ambalal Patel, Let Not Your Project Become a Tragedy of
Errors, Software Test & Performance magazine, J anuary 2008