Skip to content

Latest commit

 

History

History
53 lines (31 loc) · 2.74 KB

README.md

File metadata and controls

53 lines (31 loc) · 2.74 KB

Note: This project is currently on hold until I get to take my school's classes on linear systems theory, optimization theory, random processes, or any other relevant topics. My hope is that taking those classes will give me a better foundation to build off of for this project.

DynamiCal

Build Status

DynamiCal is a (WIP) header-only framework for the control and estimation of dynamical systems.

It aims to be both educational and applicable, with a focus on learning about control system design / analysis through simulation, while simultaneously setting up a framework for potential real-world use.

Motivation

This project was born out of a desire to further explore some ideas taught in an introductory class on systems (EECS16B @Berkeley). Concepts like stability and feedback piqued my interest in particular. While 16B covered these from a mostly theoretical perspective, I wanted to see what the theory would translate to in software for real applications.

Although initial software design decisions were made with people coming from a 16B background in mind, the project has since evolved beyond the scope of 16B. I started using the Astrom and Murray Feedback Systems text and other resources to self-study, and I plan to continually add concepts from relevant classes I take in the future.

Current status

As of now, all functionality is for linear time-invariant systems.

Finished / mostly finished:

  • Controllability and observability
  • Stability and feedback
  • Discretization (by diagonalization and by numerical integration)
  • Plant simulation with Gaussian noise generation

Under development / implemented but untested:

  • Minimum energy trajectory generation
  • Observer and linear Kalman filter in discrete-time
  • Fully-synthesized state feedback controller simulation in discrete-time

Later down the road:

  • ROS integration
  • Optimization-based control?
  • Nonlinear systems?

Specific examples and formal documentation have not been created yet, but the tests might give a basic idea of general usage.

An in-depth design document can be found here.

Dependencies

References