PortHamiltonianSystems
Port-Hamiltonian systems in Julia
https://github.com/jonas-nicodemus/porthamiltoniansystems.jl
Science Score: 44.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
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.8%) to scientific vocabulary
Keywords
Repository
Port-Hamiltonian systems in Julia
Basic Info
- Host: GitHub
- Owner: Jonas-Nicodemus
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://jonas-nicodemus.github.io/PortHamiltonianSystems.jl/
- Size: 259 KB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
PortHamiltonianSystems.jl
A package for port-Hamiltonian systems in Julia.
The considered systems are of the form
math
\Sigma\quad\left\{\quad\begin{aligned}
\dot{x}(t) &= (J - R)Qx(t) + (G - P)u(t), \\
y(t) &= (G + P)^\top Qx(t) + (S - N)u(t)
\end{aligned}\right.,
where $J=-J^\top\in \mathbb{R}^{n\times n}$ is skew-symmetric, $R\in \mathbb{R}^{n\times n}$ is positive semi-definite, $Q\in \mathbb{R}^{n\times n}$ is positive definite, $G\in \mathbb{R}^{n\times m}$, $P\in \mathbb{R}^{n\times m}$, $S\in \mathbb{R}^{m\times m}$ and $N\in \mathbb{R}^{m\times m}$.
Installation
Install with the Julia package manager Pkg:
julia
pkg> add PortHamiltonianSystems # Press ']' to enter the Pkg REPL mode.
or
julia
julia> using Pkg; Pkg.add("PortHamiltonianSystems")
Documentation
Some available commands are:
Constructing systems
phss
Analysis
norm, ispassive, sampopov
Gramians
grampd, gram, prgrampd, prgram
Minimal realization
phminreal
Frequency response
popov
Example
```julia using LinearAlgebra, ControlSystemsBase using PortHamiltonianSystems
J = [0 -1; 1 0] R = [1 -1; -1 2] Q = I(2) G = [1; 0;;]
Σph = phss(J, R, Q, G)
This generates the system:
PortHamiltonianStateSpace{Float64}
J =
0.0 -1.0
1.0 0.0
R =
1.0 -1.0
-1.0 2.0
Q =
1.0 0.0
0.0 1.0
G =
1.0
0.0
P =
0.0
0.0
S =
0.0
N =
0.0
Compute the observability Gramian
gram(Σph, :o)
2×2 Matrix{Float64}:
0.5 0.0
0.0 0.0
Compute a numerically minimal realization
Σphr = phminreal(Σph)
Compute H2 and Hinf errors
norm(Σph - Σphr) # 9.56908750203461e-17 norm(Σph - Σphr, Inf) # 1.8182097724708874e-16
Computes unstructured state-space realization
Σ = ss(Σph)
Checking passivity
ispassive(Σ) # true
Computes pH realization for a given posdef X satisfying the KYP inequality
X = kyp(Σ) Σph2 = phss(Σ, X)
norm(Σph - Σph2) # 1.3470909371896273e-16 ```
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{BMS22,
title = {Error Bounds for Port-{{Hamiltonian}} Model and Controller Reduction Based on System Balancing},
author = {Breiten, Tobias and Morandin, Riccardo and Schulze, Philipp},
year = {2022},
journal = {Computers \& Mathematics with Applications},
series = {New Trends in {{Computational Methods}} for {{PDEs}}},
volume = {116},
pages = {100--115},
doi = {10.1016/j.camwa.2021.07.022}
}
GitHub Events
Total
- Create event: 6
- Commit comment event: 4
- Release event: 1
- Issues event: 2
- Watch event: 1
- Issue comment event: 1
- Push event: 13
- Pull request event: 1
Last Year
- Create event: 6
- Commit comment event: 4
- Release event: 1
- Issues event: 2
- Watch event: 1
- Issue comment event: 1
- Push event: 13
- Pull request event: 1
Packages
- Total packages: 1
-
Total downloads:
- julia 1 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
juliahub.com: PortHamiltonianSystems
Port-Hamiltonian systems in Julia
- Homepage: https://jonas-nicodemus.github.io/PortHamiltonianSystems.jl/
- Documentation: https://docs.juliahub.com/General/PortHamiltonianSystems/stable/
- License: MIT
-
Latest release: 1.0.0
published 8 months ago
Rankings
Dependencies
- actions/checkout v4 composite
- codecov/codecov-action v5 composite
- julia-actions/cache v2 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 v2 composite
- JuliaRegistries/TagBot v1 composite