Code Monkey home page Code Monkey logo

functionobservers's Introduction

Function Observers

This is a MATLAB toolbox for code pertaining to function observers. The prototypical example of a functional observer is the kernel observer and controller paradigm. The primary goal of these methods is the modeling and control of spatiotemporally varying processes (i.e. stochastic phenomena that vary over space AND time). Practical applications of these types of methods include ocean temperature modeling and monitoring, control of diffusive processes in power plants, optimal decision-making in contested areas with a patrolling enemy, disease propagation in urban population centers, and so on. In all of these scenarios, there are some commonalities:

  1. Modeling: building a predictive model of the process in play. The following image shows an example of inferring mean ocean surface temperature from AVVHR satellite data, at a given day: the full algorithm would build a model of how these temperatures will change over time.

  1. Monitoring: estimating the latent state of the process from a set of measurements, gathered from sensors. The image below demonstrates the tracking of an abstract process using a series of measurements from fixed sensor locations.

  1. Control/Exploitation: either affecting the future state of the process directly, or using the current state of the process to make a decision. The image below shows an example of driving a system with an initial temperature distribution diffusing according to the heat equation to a final, fixed temperature distribution.

The geostatistics community has done a great deal of work in the modeling aspects of this area. Our contributions lie in utilizing ideas from reproducing kernel Hilbert space theory to make modeling easier and more efficient, and utilizing ideas from systems theory to minimize the number of sensors, and the control effort required for actuation. This toolbox will allow researchers to utilize and explore these ideas in their own work.

Goals

The goal behind this toolbox is to make a self-contained version of the code we used to write our papers, to ensure usability and reproducibility. We code all of our methods in MATLAB as opposed to Python since we imagine that the majority of people interested in such time-series analysis have access to MATLAB in an academic setting. The popularity of methods such as deep neural networks has also given Python a shot in the arm however, and that language is now heavily used in both academia and industry. Therefore, we will also release a Python version of this code in the near future.

Requirements and Setup Instructions

Users require

  • MATLAB R2013a and above.
  • Statistics toolbox for the kernel observer algorithm.
  • Control toolbox for the kernel controller algorithm.

Future work

Future work will incorporate more general learning architectures for the modeling portion, including more general Bayesian methods, and deep neural networks.

References

Early versions of this work appeared as

functionobservers's People

Contributors

hkingravi avatar

Watchers

James Cloos avatar W. Jacob Wagner avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.