QuadraticOutputSystems

Linear control systems with quadratic output in Julia

https://github.com/jonas-nicodemus/quadraticoutputsystems.jl

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: ieee.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.6%) to scientific vocabulary

Keywords

control-systems control-theory
Last synced: 6 months ago · JSON representation ·

Repository

Linear control systems with quadratic output in Julia

Basic Info
Statistics
  • Stars: 2
  • Watchers: 0
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Topics
control-systems control-theory
Created 9 months ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

QuadraticOutputSystems.jl

Stable Dev Build Status codecov Code Style: Blue Aqua QA

A package for linear control systems with quadratic output in Julia.

The considered systems are of the form

math \Sigma\quad\left\{\quad\begin{aligned} \dot{x}(t) &= Ax(t) + Bu(t),\\ y(t) &= Cx(t) + \left[ \begin{array}{c} x(t)^\top M_1 x(t)\\ \vdots \\ x(t)^\top M_p x(t) \end{array} \right] \end{aligned}\right.. The output can be written as math y(t) = Cx(t) + M(x(t)\otimes x(t)), \quad \text{with} \quad M:= \left[\begin{array}{c} \mathrm{vec}(M_1)^\top\\ \vdots\\ \mathrm{vec}(M_p)^\top \end{array}\right] \in \mathbb{R}^{p \times n^2}.

This package is based and inspired by ControlSystems.jl and implements some of the results from the paper Gramians, Energy Functionals, and Balanced Truncation for Linear Dynamical Systems With Quadratic Outputs.

Installation

Install with the Julia package manager Pkg: julia pkg> add QuadraticOutputSystems # Press ']' to enter the Pkg REPL mode. or julia julia> using Pkg; Pkg.add("QuadraticOutputSystems")

Documentation

Some of the available commands are:

Constructing systems

qoss

Analysis

norm, h2norm, h2inner, gram

Time response

lsim

Example

```julia using QuadraticOutputSystems, ControlSystems

A = [-2 1; -1 -1] B = [6; 0] C = [6 0] M = 1//2*vec([1 0; 0 1])'

Σ = qoss(A, B, C, M)

This generates the system:

QuadraticOutputStateSpace{Rational{Int64}}

A =

-2//1 1//1

-1//1 -1//1

B =

6//1

0//1

C =

6//1 0//1

M =

1//2 0//1 0//1 1//2

Compute the Gramians of the system

gram(Σ, :c) gram(Σ, :o)

Compute the H2-norm of the system

h2norm(Σ) # 17.521415467935235

Given a second system Σr, we can compute the H2-inner product and the H2-error

Σr = qoss(A[1,1], B[1], C[1], M[1])

h2inner(Σ, Σr) # 318.2485207100592 h2norm(Σ - Σr)^2 # 14.75295857988162 h2norm(Σ)^2 + h2norm(Σr)^2 - 2*h2inner(Σ, Σr) # 14.75295857988162 ```

Owner

  • Name: Jonas Nicodemus
  • Login: Jonas-Nicodemus
  • Kind: user
  • Location: Germany, Stuttgart
  • Company: University of Stuttgart, SC SimTech

Citation (CITATION.bib)

@article{BGD22,
  title = {Gramians, {{Energy Functionals}}, and {{Balanced Truncation}} for {{Linear Dynamical Systems With Quadratic Outputs}}},
  author = {Benner, Peter and Goyal, Pawan and Duff, Igor Pontes},
  year = {2022},
  month = feb,
  journal = {IEEE Transactions on Automatic Control},
  volume = {67},
  number = {2},
  pages = {886--893},
  issn = {1558-2523},
  doi = {10.1109/TAC.2021.3086319},
  abstract = {In this article, we investigate a balancing-based model order reduction method for dynamical systems with a linear dynamical equation and a quadratic output function. With this aim, we propose a new algebraic observability Gramian for the system based on the Hilbert space adjoint theory. We then show that the proposed Gramian satisfies a particular type of generalized Lyapunov equation and we investigate its connection to energy functionals. It allows one to find states that are hard to control and hard to observe via an appropriate balancing transformation. Truncation of such states yields reduced-order models. Finally, based on \${\textbackslash}mathscr H\_2\$ energy considerations, we derive error bounds, depending on the neglected singular values. We demonstrate the efficiency of the proposed methodology using a numerical example.},
  keywords = {Balanced truncation (BT),Controllability,controllability and observability,dynamical systems,energy functionals,Gramians,Linear systems,Mathematical model,model order reduction,Observability,Read only memory,Standards,Symmetric matrices},
}

GitHub Events

Total
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 10
  • Fork event: 1
Last Year
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 2
  • Issue comment event: 2
  • Push event: 10
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
juliahub.com: QuadraticOutputSystems

Linear control systems with quadratic output in Julia

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 8.3%
Dependent packages count: 35.9%
Average: 41.1%
Forks count: 53.9%
Stargazers count: 66.3%
Last synced: 6 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite