Design of Input-Output Observers for a Population of Systems with Bounded Frequency-Domain Variation using DK-iteration
This repository contains the companion code for Design of Input-Output Observers for a Population of Systems with Bounded Frequency-Domain Variation using DK-iteration.
The DK-iteration is implemented using the python package
dkpy.
The tasks that generate the results of the paper are automated using the
pydoit task runner.
First, clone the repository using the command
$ git clone [email protected]:decargroup/input_output_observer_population.gitand enter the root directory using the command
$ cd input_output_observer_populationThe recommended method to use python and install the dependencies is through
virtual environments. Create a
virtual environment called venv using the command
$ virtualenv venvActivate the virtual environment using the command corresponding to your operating system
- Linux or Mac OS
$ source ./venv/bin/activate - Windows
$ .\venv\Scripts\activate
Install the dependencies using the command
(venv) $ pip install -r ./requirements.txtThe linear matrix inequality (LMI) solver used in this paper, MOSEK, requires a license to use. A personal academic license can be obtained by following the instructions in here.
Once the virtual environment contains all the dependencies, the results from the paper can be generated by running the command
(venv) $ doitwhile in the repository root directory. This command will run all the required code and
generate all the plots shown in the paper. The results are placed in the
build/ directory.
It is also possible to run individual tasks and their dependencies using the command
(venv) $ doit <TASK_NAME>where the task names can be displayed using the command
(venv) $ doit list --all