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
Repository
Linear control systems with quadratic output in Julia
Basic Info
- Host: GitHub
- Owner: Jonas-Nicodemus
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://jonas-nicodemus.github.io/QuadraticOutputSystems.jl/
- Size: 248 KB
Statistics
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
QuadraticOutputSystems.jl
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
- Repositories: 1
- Profile: https://github.com/Jonas-Nicodemus
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
- Homepage: https://jonas-nicodemus.github.io/QuadraticOutputSystems.jl/
- Documentation: https://docs.juliahub.com/General/QuadraticOutputSystems/stable/
- License: MIT
-
Latest release: 1.0.1
published 9 months ago
Rankings
Dependencies
- 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
- JuliaRegistries/TagBot v1 composite