12.04.2013 Views

Diagnosis and FTC by Prof. Blanke [pdf] - NTNU

Diagnosis and FTC by Prof. Blanke [pdf] - NTNU

Diagnosis and FTC by Prof. Blanke [pdf] - NTNU

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

1<br />

2<br />

Fault-tolerant Control<br />

Lecturer<br />

Mogens <strong>Blanke</strong><br />

<strong>Prof</strong>essor II at CeSOS –<br />

<strong>NTNU</strong><br />

<strong>Prof</strong>essor of Automatic<br />

Control at Ørsted rsted-DTU DTU<br />

Research interests:<br />

•Autonomous Control Systems<br />

•Fault-tolerant <strong>and</strong> Dependable Control<br />

•Satellite Attitude Control<br />

•Marine Control Systems<br />

•System Modelling <strong>and</strong> Identification<br />

•Diesel Engine Control<br />

Reference for todays lecture:<br />

M.<strong>Blanke</strong>, M. Kinnaert, J. Lunze <strong>and</strong> M.<br />

Staroswiecki<br />

<strong>Diagnosis</strong> <strong>and</strong> Fault-Tolerant Control<br />

Springer, June 2003<br />

• Chr. Rovsing/European Space<br />

Agency 1974-75: Systems<br />

Analyst<br />

• DTU 76-84: Ass + Assoc <strong>Prof</strong>.<br />

• Søren T. Lyngsø 85-90,<br />

Head of Marine Division<br />

• Aalborg University<br />

1990-2000 <strong>Prof</strong>essor of<br />

Automatic Control<br />

• DTU 2000 <strong>Prof</strong>essor of<br />

Automatic Control<br />

• <strong>NTNU</strong> 2005 <strong>Prof</strong>essor II<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

1


3<br />

4<br />

Scope of lecture – Fault-tolerant Control<br />

• Fault-tolerant Control in Context<br />

• Analysis based on System Structure<br />

• Fault <strong>Diagnosis</strong> – detection <strong>and</strong> isolation<br />

• Fault-tolerant control:<br />

– Sensor fault, Actuator fault<br />

• An application<br />

Fault-tolerant design<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Fault-tolerant systems (<strong>and</strong> control)<br />

Created <strong>by</strong> the need for safety, reliability <strong>and</strong> availability.<br />

Touches on fundamental properties of controlled systems <strong>and</strong><br />

the control architectures.<br />

Draws on results from many areas in automatic control<br />

<strong>Diagnosis</strong><br />

The essential means to determine whether faults have<br />

occurred<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

2


5<br />

6<br />

Structure of Plant + Controller<br />

The st<strong>and</strong>ard<br />

control problem<br />

A system with control is a hybrid entity. The system can be<br />

changed <strong>by</strong> events, some of which are faults. We may change<br />

the controller <strong>and</strong>/or the system <strong>by</strong> action of a supervisor.<br />

A Hybrid System<br />

A bathtub is a hybrid system.<br />

Dynamic relation between<br />

input flow q, height h <strong>and</strong> area A( h)<br />

are<br />

1<br />

ht ()<br />

= qt ()<br />

Ah ( )<br />

Holds only until<br />

the edge is reached:<br />

ht (<br />

) = 0 for h= hedge<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

q(t)<br />

h(t)<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

3


7<br />

8<br />

A Hybrid System<br />

Dynamic relation between<br />

input flow q, height h <strong>and</strong> area A( h)<br />

are<br />

1<br />

ht (<br />

) = qt ( ) for 0 ≤ h< hedge<br />

Ah ( )<br />

ht (<br />

) = 0 for h≥ h<br />

edge<br />

Relation to Robust <strong>and</strong><br />

Adaptive Control<br />

q(t)<br />

h(t)<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

4


9<br />

10<br />

Fault-tolerant Control<br />

Fault-tolerance:<br />

Ability to maintain control<br />

objectives, despite the<br />

occurrence of a fault.<br />

A degradation of control<br />

performance may be<br />

accepted.<br />

Obtained through fault<br />

accommodation or system<br />

reconfiguration.<br />

St<strong>and</strong>ard control problem - example<br />

Objective:<br />

Obtain b<strong>and</strong>width > 0.2 rad/s, loop damping > 0.7<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

1<br />

kkb p t 2<br />

ψ () s = s ψ ref () s<br />

kb t + h kkb<br />

1 p t<br />

1+<br />

+ 2<br />

s s<br />

ψ () s =<br />

kkb<br />

ψ () s<br />

p t<br />

2<br />

s + ( kb t + h1) s+ kpkb t<br />

Compare with st<strong>and</strong>ard form<br />

ψ () s =<br />

s<br />

ω<br />

s<br />

ψ ref () s<br />

2<br />

b<br />

2 2<br />

+ 2ςωb<br />

+ ωb<br />

ref<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

5


11<br />

12<br />

Fault-accommodation or reconfiguration<br />

Change in controller<br />

parameters or<br />

structure to avoid the<br />

consequences of a<br />

fault.<br />

Accommodation:<br />

Input-output between<br />

controller <strong>and</strong> plant is<br />

unchanged.<br />

Reconfiguration:<br />

Input-output between<br />

controller <strong>and</strong> plant is<br />

changed.<br />

H<strong>and</strong>ling of sensor fault -accommodation<br />

• Fault h<strong>and</strong>ling: a sensor fault (gain is 0.1) accommodated <strong>by</strong><br />

differentiating term in position feedback.<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

6


13<br />

14<br />

H<strong>and</strong>ling of fault - reconfiguration<br />

• Fault reconfiguration: a sensor failure in inner loop.<br />

• Switch to differentiating control when fault is diagnosed<br />

H<strong>and</strong>ling of sensor fault <strong>by</strong> output<br />

estimation<br />

icom<br />

power<br />

drive<br />

+<br />

Speed control<br />

im<br />

kt<br />

kqη<br />

+<br />

Ql<br />

1<br />

Itot<br />

Fault:<br />

[0.0 1.0]<br />

kobs<br />

∫<br />

-<br />

ˆn<br />

n<br />

1<br />

N ∫<br />

+<br />

+<br />

nm<br />

-<br />

Position control<br />

θm X<br />

+<br />

1<br />

N ∫<br />

gear<br />

kp<br />

ˆ<br />

θ<br />

-<br />

θ<br />

+<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

θref<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

7


15<br />

16<br />

H<strong>and</strong>ling of sensor faults <strong>by</strong> reconfiguration<br />

Reconfiguration: Failed sensor<br />

measurement is replaced <strong>by</strong> an<br />

estimate, which is used in the<br />

feedback loop<br />

y = − + ˆ<br />

k (1 S( fk)) yk S( fk) y( fk)<br />

S is a diagonal matrix S ij=0(<br />

i ≠ j)<br />

Skk<br />

= 1 f ,0 otherwise<br />

k<br />

Condition for observer k to exist<br />

( A,[ c1,.., ck− 1, ck+ 1,..,<br />

cm]<br />

) is observable<br />

where c i is a column of C<br />

If not fully observable, the unobservable<br />

subsystem must at least be stable<br />

Model-matching state-feedback<br />

O H A B<br />

O H A B<br />

<br />

K<br />

+ J H A H 2 = J<br />

E = ? I A @ F I O I J A <br />

<br />

4 A @ A I EC A @<br />

+ J H A H<br />

E = ? I A @ F I O I J A <br />

<br />

K<br />

. = K J O<br />

2 = J<br />

O<br />

O<br />

u<br />

u<br />

u<br />

u<br />

Plant<br />

estimator 1<br />

est(y) | y , y , ...<br />

2 3<br />

estimator 2<br />

est(y) | y 1 , y 3 , ...<br />

estimator 3<br />

est(y) | y 1 , y 2 , ...<br />

y m =[y 1 ,y 2 ,y 3 ]<br />

y est<br />

y est<br />

y est<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

The nominal (no fault) system<br />

in closed state feedback loop:<br />

xt ()<br />

= ( A- BK) xt ()<br />

yt () = Cxt ()<br />

after the fault occurs,<br />

xt ()<br />

= Axt f ()- But f ()<br />

yt () = Cfxt ()<br />

with new state feeedback controller:<br />

xt ()<br />

= ( Af - BK f f ) xt ()<br />

yt () = C x(<br />

t)<br />

f<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

8


17<br />

18<br />

Model-matching state-feedback (2)<br />

Ideal if we could obtain A- BK = A f - B fK f<br />

This is only rarely possible (requires redundant actuators).<br />

Consider the relaxed condition:<br />

∃K f ⊂{ Kstab} :min( A- BK) − ( A f - B fK f ) ?<br />

If the pseudo-inverse of B exists<br />

f<br />

T<br />

−1<br />

T<br />

BK f f = A f −( A - BK) ⇒ K f = ( B fBf ) B f ( A f − A + BK)<br />

Example on h<strong>and</strong>ling of faults<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• Simple means needed to h<strong>and</strong>le simple control loop<br />

faults<br />

• Applied common sense thus far, applied systematic<br />

common sense, however.<br />

•More challenge to come, though<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

9


19<br />

20<br />

The real thing<br />

By courtesy from C. Thybo<br />

A stop using the emergency brake subjects the<br />

structure to large stresses. An x-ray<br />

certification is required after each emergency<br />

stop. Graceful degradation pays off - a potential<br />

application for fault-tolerant control.<br />

H<strong>and</strong>ling of faults – Induction Motor<br />

• Accommodation: high<br />

performance controller that<br />

needs several sensor inputs<br />

is replaced (at run time) with<br />

one that can run with<br />

remaining sensors but with<br />

reduced performance<br />

Stator<br />

current<br />

i s<br />

θ<br />

i sa<br />

i sb<br />

ε<br />

i sq<br />

i sd<br />

ρ<br />

Rotor<br />

flux<br />

ω mr<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Rotor<br />

angle<br />

em = z ω ω p m<br />

Stator axis<br />

• Flux vector control - high<br />

performance, measurement needed<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

10


21<br />

22<br />

H<strong>and</strong>ling of faults - 2<br />

• Accommodation: high<br />

performance controller that<br />

needs several sensor inputs<br />

is replaced (at run time) with<br />

one that can run with<br />

remaining sensors but with<br />

reduced performance<br />

ω set<br />

+<br />

Load<br />

-<br />

K<br />

ωactual<br />

• Scalar control - low<br />

performance, no sensors<br />

Induction Motor Fault-tolerant Control<br />

• Implementation of fault-tolerant control - time to<br />

reconfigure is crucial.<br />

• Alternative motor control algorithms are not globally<br />

stable - large field angle deviations are not allowed.<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• The likelihood of successful reconfiguration is crucial -<br />

the concept of coverage - reliability issues<br />

• Coverage = Prob.(System recovers|Fault occurs)<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

11


23<br />

24<br />

Fault-tolerant steering <strong>by</strong> wire<br />

Steering<br />

input<br />

system<br />

Power<br />

supply<br />

Computer<br />

Sensor<br />

system<br />

Drive<br />

system<br />

Induction<br />

motor<br />

• Requirements to electrical<br />

steering system:<br />

• Must be able to steer until<br />

vehical is stopped despite<br />

any single fault<br />

Wheel<br />

Fault-tolerant steering <strong>by</strong> wire<br />

Steering<br />

input<br />

system<br />

Power<br />

supply<br />

Computer<br />

Sensor<br />

system<br />

Drive<br />

system<br />

Induction<br />

motor<br />

Wheel<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• Function blocks <strong>and</strong><br />

electrical details:<br />

• AC motor is driven <strong>by</strong><br />

inverter (3-phase switching)<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

12


25<br />

26<br />

Properties of possible architectures<br />

A behaviour is the relation between variables<br />

(input <strong>and</strong> output) of a function block:<br />

c 1: g1( u, y)<br />

= 0<br />

3<br />

example 1: y( t) − 2 u( t) u( t)<br />

= 0<br />

⎧dx()<br />

t<br />

⎪ =− 2 xt ( ) + 4 ut ( ); x(0) = xo<br />

example 2: ⎨ dt<br />

⎩<br />

⎪ yt () = xt () −0.01()<br />

ut<br />

The<br />

service offered<br />

<strong>by</strong> a function block is to<br />

provide a behaviour<br />

between input <strong>and</strong> output.<br />

S : g( u , y ) = 0<br />

1 1 1 1<br />

Properties of possible architectures<br />

The behaviour of a system with an<br />

architecture A is SA<br />

With the two examples:<br />

( upper )<br />

S = S ∩S ∩S<br />

A<br />

1 2 3<br />

All components must provide the service<br />

to give the required service from u to y<br />

( )<br />

1 3<br />

( lower ) ( ft )<br />

( d )<br />

SA= S1 ∩ S2 ∪S2 ∩S3<br />

We obtain fault-tolerant behaviour if<br />

( d )<br />

S3<br />

is fail-operational (can work despite any<br />

( ft )<br />

single fault) <strong>and</strong> S1<br />

is fault-tolerant: we obtain<br />

*<br />

g(u,y) 1 1 ≈ g(u1,y 1)<br />

but perhabs degraded<br />

(lower performance)<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

13


27<br />

28<br />

A fault-tolerant architecture (patented)<br />

• Redundant hardware is<br />

necessary but here is a<br />

cheap version: split<br />

power stage in two,<br />

wind AC motor with<br />

dual winding.<br />

The FDI - <strong>FTC</strong> chain<br />

• What FDI provides<br />

• Fault detection<br />

• Fault isolation<br />

• Evaluation to get confirmed<br />

hypothesis<br />

• Fault estimation<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• What <strong>FTC</strong> shall do<br />

• Assess estimated structure<br />

• Is diagnosis unambiguous,<br />

– determine faultaccommodation<br />

action<br />

• If not,<br />

– react according to highest<br />

severity<br />

– accommodate both/all<br />

possible scenarios<br />

• Reconfigure in time<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

14


29<br />

30<br />

<strong>Diagnosis</strong> <strong>and</strong> Fault-tolerant Control<br />

Chapter 1, pp 1-23<br />

• Faults <strong>and</strong> fault-tolerance:<br />

• A fault is a deviation of the system structure or system<br />

parameters from the nominal situation (actuator blocks, loss of<br />

sensor, disconnection of system component)<br />

• A failure is an event that prevents a system to perform a<br />

required function.<br />

• Parameters are alowed to vary within their specified range<br />

System behaviour<br />

• System behaviour is a subset of all possible combinations of<br />

input <strong>and</strong> output signals.<br />

Let a static system be<br />

yt () = kut s ()<br />

The behaviour is the set of all I/O pairs is given <strong>by</strong><br />

B<br />

= { ( uy , )| y= ku s }<br />

If the system is dynamic, B⊂ U× Y<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

15


31<br />

32<br />

System behaviour: normal<br />

• System behaviour is in<br />

the green area.<br />

• Point A represents an<br />

observation that may<br />

occur for the given<br />

system.<br />

• Point C represents a pair<br />

that is not consistent<br />

with system dynamics.<br />

System behaviour: norman or with a fault<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• A specific fault change<br />

the behaviour from the<br />

green to the yellow<br />

area.<br />

• If a common input is<br />

applied to the system,<br />

the normal <strong>and</strong> faulty<br />

cases would respond<br />

differently:<br />

e.g. points A <strong>and</strong> C.<br />

The normal <strong>and</strong> the faulty system can be distinguished unless the<br />

observation is in the intersection (point B) between the behaviours.<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

16


33<br />

34<br />

Safety versus fault-tolerance<br />

Safety versus fault-tolerance<br />

Green region:<br />

required<br />

performance<br />

Yellow region:<br />

degraded<br />

performance<br />

Orange region:<br />

unacceptable<br />

performance<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Green region:<br />

required<br />

performance<br />

Yellow region:<br />

degraded<br />

performance<br />

Orange region:<br />

unacceptable<br />

performance<br />

Red region:<br />

danger<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

17


35<br />

36<br />

Models of dynamical systems<br />

• Notation for nonlinear system with faults<br />

The general, nonlinear case reads:<br />

dx() t<br />

= gx ( ( t), u( t), d( t), f( t)),<br />

x(0) = x0<br />

dt<br />

y() t = h( x(), t u(), t d(),()) t f t<br />

where x is state vector, u is input vector,<br />

d is disturbance vector <strong>and</strong> f(t)<br />

a fault vector.<br />

Models of dynamical systems<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

We obtain a linar model in a point of operation<br />

xudf , , , <strong>by</strong> Taylor expansion around x = x- x<br />

dx dx dx ∂g∂ ∂ ∂<br />

= + = + <br />

g<br />

+ <br />

g<br />

+ g<br />

gxudf ( , , , ) x u d+ f,<br />

dt dt dt ∂x∂u∂d∂f x(0) = x0...<br />

∂h ∂h ∂h ∂<br />

= + = ( , , , ) + + + h<br />

y y y h x u d f x u d + f<br />

∂x ∂u ∂d ∂f<br />

or<br />

x = Ax + Bu + E + <br />

xd Fxf y = Cx + Du + E + <br />

yd Fyf In the sequel, we ommit the x notation <strong>and</strong> just write x<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

18


37<br />

38<br />

Models of dynamical systems<br />

Linearized system without faults<br />

The general, linear case reads, for A, BCD , , ... time invariant:<br />

dx() t<br />

= Ax() t + Bu() t + Exd(), t x(0) = x0<br />

dt<br />

y() t = Cx() t + Du() t + E d()<br />

t<br />

Linearized system with additive faults<br />

y<br />

dx() t<br />

= Ax() t + Bu() t + Fxf() t + Exd(), t x(0) = x<br />

dt<br />

y() t = Cx() t + Du() t + F f() t + E d()<br />

t<br />

y y<br />

Ship - running example<br />

δ<br />

rudder<br />

angle<br />

b<br />

+<br />

+<br />

∫<br />

ω3<br />

δ<br />

steering<br />

characteristic<br />

wave<br />

disturbance<br />

ω3<br />

f ω<br />

ωw<br />

ω3m<br />

rate<br />

measurement<br />

∫<br />

f ψ<br />

0<br />

ψ<br />

ψm<br />

heading<br />

measurement<br />

Ship steering. Input is rudder angle. Output is ship’s<br />

heading. Measured variables are turn rate <strong>and</strong><br />

heading angle.<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

19


39<br />

40<br />

Model of normal behavior of ship<br />

3 ( )<br />

c1: ω3 = b h1ω3+ h3ω3 + bδ<br />

c2:<br />

ψ= ω3+ ω3w<br />

c3<br />

: ψm= ψ<br />

c4:<br />

ω3m ω3+ ω3w<br />

c5<br />

:<br />

d1<br />

:<br />

δm= ψ<br />

=<br />

δ<br />

dψ<br />

dt<br />

δ<br />

d2<br />

ω3<br />

=<br />

dω3<br />

dt<br />

rudder<br />

angle<br />

b<br />

+<br />

+<br />

∫<br />

ω3<br />

δ<br />

steering<br />

characteristic<br />

wave<br />

disturbance<br />

Linearized model with sensor faults<br />

δ<br />

rudder<br />

angle<br />

ω3 = b( δ + h1ω3)<br />

ψ= ω3+ ω3w<br />

ψm= ψ + fψ<br />

linearized at ω3=0<br />

ω3m = ω3+ ω3w<br />

+ fω<br />

δ = δ<br />

m<br />

b<br />

+<br />

+<br />

∫<br />

ω3<br />

δ<br />

steering<br />

characteristic<br />

ω3<br />

ω3<br />

wave<br />

disturbance<br />

+<br />

+<br />

f ω<br />

ωw<br />

+<br />

ωw<br />

+<br />

+<br />

+<br />

ω3m<br />

rate<br />

measurement<br />

∫<br />

f ψ<br />

ψ<br />

ψm<br />

heading<br />

measurement<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

∫<br />

+<br />

fω +<br />

ω3m<br />

fψ rate<br />

measurement<br />

+<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

+<br />

ψ<br />

+<br />

ψm<br />

heading<br />

measurement<br />

+<br />

20


41<br />

42<br />

Example on requirements to diagnosis<br />

• Requirements for motion control<br />

• f rate (t) t det < 1deg<br />

• f angle (t) t det < 5 deg*s<br />

• Obtained in theory <strong>and</strong> practice<br />

• Accommodation of sensor faults on the fly is possible<br />

Analysis based on structure<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

21


43<br />

44<br />

Aim <strong>and</strong> scope<br />

This is fun<br />

Design<br />

Sequence<br />

Overview<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• We need a tool to cope with complexity of systems<br />

• Desire: Determine principal properties from the<br />

structure of a system - without detailed control theory<br />

calculations<br />

• Principal questions we have:<br />

• Can we diagnose a fault ?<br />

• Can a system recover from a fault?<br />

• Can we monitor the system?<br />

• Method: graph based analysis of system structure<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

22


45<br />

46<br />

Digraph for linear system<br />

Example 5. 2<br />

d<br />

c1: x1 = x1<br />

dt<br />

c2 : x1 = ax2<br />

d<br />

c3 : x2 = x2<br />

dt<br />

c : x = bx + cx + du<br />

4 2 1 2<br />

Bipartite graph<br />

Graph represented as<br />

incidence matrix:<br />

u x1 x2 x1 x2<br />

c1<br />

0 1 0 1 0<br />

c2<br />

0 0 1 1 0<br />

c3<br />

0 0 1 0 1<br />

c 1 1 1 0 1<br />

4<br />

Graph represented as the<br />

incidence matrix:<br />

u x1 x2 x1 x2<br />

c1<br />

0 1 0 1 0<br />

c2<br />

0 0 1 1 0<br />

c3<br />

0 0 1 0 1<br />

c 1 1 1 0 1<br />

4<br />

Or drawn as a bipartite graph:<br />

N N N<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

N K<br />

? ? ? ! ? "<br />

"A simple graph is one with no parallel edges <strong>and</strong> loops.<br />

A bipartite graph is a simple graph in which the set of<br />

vertices can be partitioned into two sets such that every<br />

edge is between a vertex in C <strong>and</strong> a vertex in Z: G= ( C, Z, E)<br />

."<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

23


47<br />

48<br />

Structure Graph<br />

Structural analysis<br />

A graph-based technique where<br />

principal relations between variables<br />

express the system’s properties.<br />

Measured <strong>and</strong> controlled quantities<br />

in the system are related to variables<br />

through functional relations, which<br />

need not be explicitly stated. The<br />

user specifies a list of these relations<br />

that together describe the<br />

functionality of the system<br />

considered. A list of such variables<br />

<strong>and</strong> functional relations constitute the<br />

system’s structure graph.<br />

Control input<br />

Unknown<br />

Constraints<br />

Measured<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Paradigm: A Fault is violation of a Constraint<br />

Faults<br />

Normal operation means all<br />

functional relations are intact for<br />

the system. Should faults occur,<br />

one or more functional relations<br />

cease to be valid. In the structure<br />

graph, one or more nodes of the<br />

graph will disappear when a fault<br />

occurs.<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

24


49<br />

50<br />

Example 5.3: tank system<br />

F = H= A JA H H<br />

D<br />

K J<br />

+ JH <br />

= C HEJD <br />

O J<br />

A L A I A I H<br />

D<br />

6 = <br />

G E J<br />

Single tank system example 5.3<br />

Tank c 1: h(t) = q i(<br />

t) − qo( t)<br />

Input valve c 2 : q() i t = αu()<br />

t<br />

Output pipe c 3 : q o(<br />

t) = k h( t)<br />

Level sensor c 4 : yt ( ) = ht ( )<br />

Control algorithm c 5 : ut ( ) =<br />

⎧1<br />

if y( t) < h0<br />

⎨<br />

⎩0<br />

otherwise<br />

dh() t<br />

differential constraint: c6: h( t)<br />

=<br />

dt<br />

F = H= A JA H H<br />

D<br />

K J<br />

+ JH <br />

= C HEJD <br />

O J<br />

A L A I A I H<br />

G J<br />

D<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

6 = <br />

G E J<br />

G J<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

25


51<br />

52<br />

Single tank system example 5.3<br />

c 1 : ht ()<br />

= qi() t −qo()<br />

t<br />

c 2 : qi( t) = αu(<br />

t)<br />

c 3 : qo() t = k h() t<br />

c 4 : yt () = ht ()<br />

c 5 :<br />

⎧1<br />

if y( t) < h0<br />

ut ( ) = ⎨<br />

⎩0<br />

otherwise<br />

c6: dh() t<br />

h( t)<br />

=<br />

dt<br />

c<br />

c<br />

c<br />

c<br />

c<br />

c<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

u y h h qi q<br />

0 0 0 1 1 1<br />

1 0 0 0 1 0<br />

0 0 1 0 0 1<br />

0 1 1 0 0 0<br />

0 0 1 1 0 0<br />

Ex. 5.3: structure graph of tank system<br />

c<br />

c<br />

c<br />

c<br />

c<br />

c<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

u y h h qi q<br />

0 0 0 1 1 1<br />

1 0 0 0 1 0<br />

0 0 1 0 0 1<br />

0 1 1 0 0 0<br />

0 0 1 1 0 0<br />

0<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Every column in the incidence matrix corresponds to a circle vertex.<br />

Every row corresponds to a bar vertex in the bipartite graph.<br />

0<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

26


53<br />

54<br />

Example 5.3: controlled tank<br />

?<br />

?<br />

K<br />

G E<br />

D<br />

? $<br />

G<br />

D<br />

O<br />

Structure graph with controller added: c5<br />

Example 5.3: reduction of graph<br />

? !<br />

? "<br />

<br />

D<br />

H<br />

? #<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Seperate variables Z into known (K)<br />

<strong>and</strong> unknown (X) variables<br />

Z = K ∪ X.<br />

Separate C into C = Ck ∪Cx.<br />

Delete rows with constraints between known variables<br />

Delete columns with known variables ⇒<br />

Decompose graph (C, Z,E) into<br />

(C ,Q(C )) <strong>and</strong> (C ,Z)<br />

k k x<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

27


55<br />

56<br />

Matching<br />

Definition 5.1: ( Matching)<br />

∀e1, e2∈M : e1 ≠e2 ⇒ pC( e1) ≠ pC( e2) ∧ pZ( e1) ≠ pZ( e2)<br />

Any two edges in M have no common node - neither in Z nor in C.<br />

Matching on the single tank<br />

c4→h c6→h c3 → q0<br />

c2→qi c → zero<br />

1<br />

c4→h c6→h c3 → q0<br />

c1→qi c → zero<br />

2<br />

c<br />

c<br />

c<br />

c<br />

c<br />

c<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

u y h h qi q<br />

0 0 0 1 1 1<br />

1 0 0 0 1 0<br />

0 0 1 0 0 1<br />

0 1 1 0 0 0<br />

0 0 1 1 0 0<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

0<br />

28


57<br />

58<br />

Non invertible constraints<br />

=<br />

N N<br />

?<br />

N<br />

N N<br />

?<br />

> ?<br />

N ? N<br />

N N<br />

Matching – the ranking algorithm<br />

Given: incidence matrix or structure<br />

graph<br />

1. Mark all known variables, i = 0.<br />

2. Find all constraints with exactly one unmarked variable.<br />

Associate rank i with these constraints.<br />

Mark these constraints<br />

<strong>and</strong> the associated variable.<br />

3. If there are unmarked constraints whose variables are<br />

all marked, mark them <strong>and</strong> connect them with the pseudovariable<br />

zero.<br />

4. set i = i+1<br />

5. if there are unmarked variables or constraints, continue<br />

with step 2.<br />

Result: Ranking of the constraints.<br />

?<br />

N<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

29


59<br />

60<br />

Purpose <strong>and</strong> scope of part 2<br />

• Matching – a graph method to find the nonlinear<br />

parity relations that can later be used in diagnosis.<br />

• Define maximal <strong>and</strong> complete matching<br />

• Investigate matching on an oriented graph<br />

• Discuss causality<br />

• Dealing with algebraic constraints<br />

• Dealing with loops in graphs<br />

Complete matching<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

A matching M is a subset of edges such that<br />

no edge have common node (neither in C nor in X).<br />

Let M be number of edges<br />

in M, then M ≤<br />

min<br />

C X<br />

A matching is complete in<br />

X if M = X.<br />

It is complete in C if M = C .<br />

Figure: One incomplete <strong>and</strong><br />

two complete matchings in X<br />

for the tank example.<br />

( , )<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

30


61<br />

62<br />

Differential <strong>and</strong> integral constraints<br />

(repeat)<br />

Differential constraint<br />

dh<br />

c6: h=<br />

dt<br />

Integral constraint<br />

c : h( t) = h( τ) dτ + h(0)<br />

6<br />

t<br />

∫<br />

0<br />

Obvious assumptions<br />

(5.2) All constraints in C are compatible<br />

The constraints provide a solution to the<br />

behaviour of a physical system.<br />

(5.3) All constraints in C are independent<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

31


63<br />

64<br />

Design of Parity Equations (5.6.3)<br />

Analytic redundancy relation (or parity equations) are<br />

subgraphs of the structure graph.<br />

They are formed from unmatched constraints using the<br />

complete matchings of the unknown variables we make<br />

on the reduced structure graph of a system.<br />

SaTool - constraint editor<br />

input<br />

Measured<br />

Unknown<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Create<br />

constraints<br />

Constraints<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

32


65<br />

66<br />

SaTool – A tool for Structural Analysis<br />

Features<br />

• Matlab ® based (version 7.0 or later)<br />

• Graphical representation of structure as a graph<br />

• Easy point <strong>and</strong> click manipulation of system structure<br />

• Matching <strong>by</strong> ranking<br />

• Backtracing<br />

– Recursive algorithm<br />

Matlab ® is a trademark of the Math Works Inc. USA.<br />

Results<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• Detectability<br />

– Which faults can be detected with the found parity relations<br />

• Isolability<br />

– Which faults can be isolated with the found parity relations<br />

• Parity relations<br />

– Which relations exists<br />

• Controllability<br />

– Can I reach the unknown variables from the input variables<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

33


67<br />

68<br />

Investigate the effect of a structural fault<br />

• Faults can be modeled <strong>by</strong> disabling nodes<br />

– Right click on a node to disable it<br />

– Perform a new analysis<br />

– Or analyze consequences of all possible violation of<br />

constraints<br />

• The result shows if the<br />

– system can be reconfigured in case of faults<br />

– Shows which further faults can be diagnosed for the faulty<br />

system<br />

– Showh witch secondary faults can be isolated for the faulty<br />

system<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• Salient<br />

feature:<br />

• Run<br />

analysis<br />

on system<br />

with fault<br />

• Investigate<br />

the new<br />

result<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

34


69<br />

70<br />

SaTool – A tool for Structural Analysis<br />

Features<br />

• Matlab ® based (version 6.5 or later)<br />

• Graphical representation of structure as a graph<br />

• Easy point <strong>and</strong> click manipulation of system structure<br />

• Matching <strong>by</strong> ranking<br />

• Backtracing<br />

– Recursive algorithm<br />

Matlab ® is a trademark of the Math Works Inc. USA.<br />

SaTool<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• SaTool – a rapid prototyping tool now being tested <strong>by</strong><br />

colleagues <strong>and</strong> industry.<br />

• A beta version is available (GNU open source), please<br />

contact mb@oersted.dtu.dk<br />

• Uploaded to participants<br />

• Work is in progress in the area of autonomous robotics<br />

• Also a good subject for your MSc thesis !<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

35


71<br />

72<br />

Case: ship station-keeping control<br />

• Position control is required within a specified circle to<br />

enable investigation of an unknown object<br />

• Ship has two shafts <strong>and</strong> a<br />

bow thruster for control<br />

Constraints – forces from actuators<br />

( )<br />

( )<br />

( )<br />

a1: θ1<br />

= gpu1 pitch <strong>and</strong> shaft speed on starboard shaft<br />

a2 : θ2<br />

= gpu2 pitch <strong>and</strong> shaft speed on port shaft<br />

a3 : n3 = gbu3 angular velocity on bow thruster<br />

b1:<br />

y1 = θ1<br />

measurement of SB pitch <strong>and</strong> rpm<br />

b2<br />

: y2 = θ2<br />

measurement of port pitch <strong>and</strong> rpm<br />

b : y = n<br />

measurement of BT rpm<br />

3 3 3<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

36


73<br />

74<br />

Constraints – forces from actuators<br />

c<br />

N =− l c ( θ ) + l c ( θ ) + l c ( n ) torque from actuators<br />

<strong>and</strong> wind<br />

c : T c ( n ) g ( ) total sway force<br />

c : T c ( ) c ( ) g ( ) total surge force<br />

1 :<br />

z y T 1 y T<br />

N<br />

+ gw<br />

( vw)<br />

2 x b 3<br />

2 y = b 3 +<br />

Y<br />

w vw<br />

3 x = T θ1 + T θ2 +<br />

X<br />

w vw<br />

Constraints – dynamics <strong>and</strong> kinematics<br />

c4: −1⎡Tx⎤ −1<br />

v= M ⎢ ⎥−A<br />

( ψ ) vc<br />

⎣Ty⎦ linear acc. of body<br />

c5<br />

: p= A( ψ ) v+ vc<br />

geographical position<br />

c6: −1<br />

ψ = I N angular acc. of body<br />

d1<br />

:<br />

d<br />

v= v<br />

dt<br />

differential<br />

d2<br />

:<br />

d<br />

p= p<br />

dt<br />

differential<br />

d3<br />

:<br />

d d<br />

ψ = ( ψ)<br />

dt dt<br />

double differention<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

37


75<br />

76<br />

Constraints - measurements<br />

Variables<br />

m1<br />

: vm= v velocity - inertial system<br />

m2 : h1<br />

= ψ heading - gyro 1<br />

m3 : h2<br />

= ψ heading - gyro 2<br />

m4<br />

: p1 = p position - GPS 1<br />

m5<br />

: p2 = p position - GPS 2<br />

m6<br />

: cm = vc<br />

sea current - log&imu<br />

m : w = v wind - anomometer<br />

7<br />

m w<br />

Seperate variables into known K<strong>and</strong> unknown X.<br />

Seperate known vars. further into input <strong>and</strong> measured:<br />

K = Ki ∪ Km<br />

Unknown : X =<br />

⎧θ1, θ2,<br />

n3,<br />

⎫<br />

⎨ ⎬<br />

⎩Nz, Ty, Tx,<br />

ψ , vpv , , c, vw⎭<br />

Input : Ki = { u1, u2, u3}<br />

Measured : Km<br />

=<br />

⎧y1, y2,<br />

y3,<br />

⎫<br />

⎨ ⎬<br />

⎩h1, h2,<br />

vm, p1, p2, cm, wm⎭<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

38


77<br />

78<br />

The Constraint Editor in SaTool<br />

input<br />

Measured<br />

Unknown<br />

Structure Graph<br />

A graph constists of an<br />

ordered set of nodes <strong>and</strong><br />

vertices<br />

Let variables <strong>and</strong><br />

constraints be nodes<br />

Let vertices show which<br />

variables are used <strong>by</strong><br />

constraints<br />

The structure graph is bipartioned:<br />

a variable is<br />

always connected to<br />

constraint(s), a constraint<br />

always to variable(s)<br />

Create<br />

constraints<br />

Constraints<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

39


79<br />

80<br />

Matching of a structure graph<br />

Matching of a structure graph means to relate<br />

unknown variables to known ones through<br />

constraints (solve for the unknown variables)<br />

A matching is complete if all unknown variables are<br />

matched<br />

Constraints that are not used <strong>by</strong> a complete matching<br />

(unmatched constraints) areusedto test the<br />

correctness of the solution<br />

These are parity relations of the problem <strong>and</strong> are<br />

used for diagnosis<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Unmatched constraints are parity relations<br />

• Unmatched<br />

constraints<br />

constitute parity<br />

relations<br />

• Select one (shown<br />

<strong>by</strong> white color)<br />

• Trace the matching<br />

backwards (yellow)<br />

to get an analytic<br />

expression for the<br />

parity relation<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

40


81<br />

82<br />

Parity relations (normal operation)<br />

Autogenerated<br />

parity<br />

relations<br />

r1<br />

= a1( u1, b1( y1))<br />

r2<br />

= a2( u2, b2( y2))<br />

r3 = a3( u3, b3( y3))<br />

r4<br />

=<br />

c4( c2( b3( y3), m7( wm<br />

)), c3( b1( y1), b2( y2),...<br />

m7( wm)), d1( m1( vm)), m3( h2), m6(<br />

cm))<br />

r5 = c5( m3( h2), m6( cm), d2( m5( p2)), m1( vm))<br />

r6<br />

=<br />

c6( c1( b1( y1), b2( y2), b3( y3), m7(<br />

wm<br />

)) ,...<br />

d3( m3( h2)))<br />

r7 = m2( h1, m3( h2))<br />

r = m ( p , m ( p ))<br />

8 4 1 5 2<br />

Auto-generated parity relations<br />

Autogenerated<br />

parity<br />

relations in<br />

”clear”<br />

equation<br />

language<br />

8 2 1<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

r1 = gp( u1)<br />

− y1<br />

r2 = gp( u2)<br />

−y2<br />

r3 = gp( u3) − y3<br />

r4 =<br />

X<br />

−1⎡c ( 1) ( 2)<br />

( ) ⎤<br />

T y + cT y + gw wm<br />

−1<br />

M ⎢ ⎥−A<br />

( h2)<br />

c Y<br />

⎣ cb( y3) + gw(<br />

wm)<br />

⎦<br />

d<br />

− v<br />

dt<br />

r5 =<br />

d<br />

A( h2)<br />

vm + cm − p2<br />

dt<br />

r6= ⎛− lc( 2<br />

1 1) + ( 2)...<br />

⎞<br />

− y Ty lc y Ty<br />

dh2<br />

I ⎜ ⎟−<br />

⎜ N<br />

2<br />

+ ( 3)<br />

+ ( ) ⎟<br />

⎝ lc x <strong>by</strong> gwwm<br />

⎠ dt<br />

r7 = h2 −h1<br />

r = p −p<br />

m m<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

41


83<br />

84<br />

Properties of nominal system<br />

a1<br />

i<br />

a2<br />

i<br />

a3<br />

i<br />

b1<br />

i<br />

b2<br />

i<br />

b3<br />

i<br />

c1<br />

i<br />

c2<br />

d<br />

f1<br />

c3<br />

d<br />

In nominal mode, which faults are detectable, which are isolable ?<br />

When is it safe to continue operation ?<br />

Given: One or more faults/failures are present<br />

Determine:<br />

Is it safe to continue operation with this/these fault(s)<br />

present ?<br />

Are there any critical faults that can not be detected ?<br />

m<br />

1<br />

d<br />

m<br />

2<br />

i<br />

m<br />

3<br />

Could further faults be accommodated ?<br />

Solution: analysis of the structure graph<br />

i<br />

m<br />

4<br />

i<br />

m<br />

5<br />

i<br />

m<br />

6<br />

d<br />

m<br />

7<br />

i<br />

8<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

42


85<br />

86<br />

Fault means violation of a constraint<br />

• A fault/failure is a violation of a<br />

constraint<br />

m1<br />

: vm= v velocity - inertial system<br />

m2 : h1<br />

= ψ heading - gyro 1<br />

m3 : h2<br />

= ψ heading - gyro 2<br />

m4<br />

: p1 = p position - GPS 1<br />

m5<br />

: p2 = p position - GPS 2<br />

m6<br />

: cm = vc<br />

sea current<br />

- log&imu<br />

m : w ≠ v wind - anomometer fault<br />

7<br />

m w<br />

Analysis of multiple faults<br />

• SaTool offers the possibility to disable constraints<br />

(assume a failure in the constraint) <strong>and</strong> analyze the<br />

structure graph of the remaining system<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

43


87<br />

88<br />

Properties of the faulty system<br />

A salient feature of SaToo is the ability to analyze the faulty<br />

system with several simultaneous faults present.<br />

When f1 <strong>and</strong> f2 have happened, what if f3 is a fault in a1, a2, a3, ..<br />

f1<br />

a3<br />

f2<br />

m5<br />

m6<br />

m7<br />

a<br />

1<br />

i<br />

i<br />

i<br />

a<br />

2<br />

i<br />

i<br />

i<br />

a<br />

3<br />

-<br />

-<br />

-<br />

b<br />

1<br />

i<br />

0<br />

i<br />

b<br />

2<br />

i<br />

0<br />

i<br />

b<br />

3<br />

d<br />

d<br />

d<br />

Essentials from the structure graph<br />

c<br />

1<br />

d<br />

i<br />

d<br />

Auto-generated parity relations for diagnosis !<br />

Controlability (structural): are unknown variables<br />

reachable from input variables ?<br />

Monitorability: are constraints reachable from<br />

measured variables ?<br />

c<br />

2<br />

d<br />

d<br />

d<br />

f3<br />

c<br />

3<br />

d<br />

d<br />

d<br />

m<br />

1<br />

d<br />

0<br />

d<br />

m<br />

2<br />

i<br />

i<br />

i<br />

m<br />

3<br />

i<br />

0<br />

i<br />

m<br />

4<br />

i<br />

i<br />

i<br />

m<br />

5<br />

-<br />

0<br />

0<br />

m<br />

6<br />

d<br />

-<br />

d<br />

m<br />

7<br />

0<br />

d<br />

-<br />

#<br />

6<br />

6<br />

6<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Detectability: does the constraint enter into any of the<br />

parity relations ?<br />

Isolability: is there a unique signature in the set of<br />

parity relations <strong>by</strong> a particular fault (violation of<br />

particular constraint) ?<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

44


89<br />

90<br />

Maritime uses - Naval <strong>and</strong> Offshore<br />

Examples from the Danish SF300 class<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

Hovering with different shaft configurations<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

45


91<br />

92<br />

Manual Control<br />

Summary<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

• Fault-tolerant control: detect <strong>and</strong> isolate a fault <strong>and</strong><br />

h<strong>and</strong>le it <strong>by</strong> reconfiguring the controller (or the plant)<br />

• Parity relations are as residual generators used for<br />

fault detection <strong>and</strong> isolation<br />

• Parity relations can be generated through an analysis<br />

of system structure (structural analysis)<br />

• Other methods exist to get residual generators<br />

• Controller redesign is done on-line or off-line<br />

Mogens <strong>Blanke</strong> – Spring 2006<br />

46

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!