Skip to content

aalanwar/Distributed-Set-Based-Observers-Using-Diffusion-Strategies

Repository files navigation

Distributed-Set-Based-Observers-Using-Diffusion-Strategy

This repo is the code and data used to evaulate our paper
Amr Alanwar, Jagat Jyoti Rath, Hazem Said, Karl Henrik Johansson, and Matthias Althoff "Distributed-Set-Based-Observers-Using-Diffusion-Strategy"


It ultimately generates the following set-based estimation video. video


We propose two distributed set-based observers using
1- Set-membership approach
2- Interval-based approach
for a linear discrete-time dynamical system with bounded modeling and measurement uncertainties.


The Set-membership approach consists of three steps
a- Measurement update: It consists of overapproximating the intersection between a strips and zonotope which is represented using the following

Subject Pronouns

The main function to intersect strips and a zonotope is "intersectZonoStrip1.m" under the "utilities" folder.

b- Diffusion update: It consists of overapproximating the intersection between a multiple zonotopes by a zonotope which is represented using the following

Subject Pronouns


The main function to intersect zonotopes is "andAveraging1.m" under the "utilities" folder
c- Time update



To run the distribted set-based observer on the rotatingTarget.csv file, do the following 1- Download [CORA 2018](https://tumcps.github.io/CORA/) and [MPT](https://www.mpt3.org) toolboxs.
.
2- Add CORA nad MPT folder and subfolders to the Matlab path.

3- cd to the repo folder.

4- Open the main file "run_rotatingTarget"

5- choose which algorithm to be executed at line ~150 algorithm = 'set-membership' or algorithm = 'interval-based'

6- To save the movie, set
SAVEMOVIE = true; at to save the generated movie under the video folder.

7- This generates mat file (temp by default) under the cache folder.

8- run "plot_rotatingTarget_state.m" which choosing loading the cache temp at the beggining load('cache/temp'). This plots a figure close to the following figures

Subject Pronouns


Subject Pronouns



9- To change network connectivity edit the network list ~line 120 in NetworkManager_R.m
%2 neig
network= { [8 1 2],[1 2 3],[2 3 4],[3 4 5],[4 5 6],[5 6 7],[6 7 8],[7 8 1]};
10- To enable/disable the diffusion step set the following to 1/0.
diffEnable =1;

11- To regenerate the measurement file, edit and run measGenerator.m. rename new_rotatingTarget to rotatingTarget if you are sure about using the new file.