RationalVectorFitting

Fast Relaxed Vector-Fitting algorithm in Julia

https://github.com/pedrohnv/rationalvectorfitting.jl

Science Score: 67.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
    Found 14 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Fast Relaxed Vector-Fitting algorithm in Julia

Basic Info
  • Host: GitHub
  • Owner: pedrohnv
  • License: gpl-3.0
  • Language: Julia
  • Default Branch: main
  • Homepage:
  • Size: 778 KB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 4
  • Releases: 5
Created about 7 years ago · Last pushed 10 months ago
Metadata Files
Readme Changelog License Code of conduct Citation

README.md

RationalVectorFitting

Fast Relaxed Vector Fitting implementation in Julia.

Given a transfer function $f(s) = y$, the Vector Fitting algorithm tries to find a rational approximation

$$f(s) \approx \sum{n=1}^N \frac{rn}{s - a_n} + d + s h$$

where $s$ is the complex frequency, $rn$ are the complex residues, $an$ are the complex poles, $d$ and $h$ are real constants.

The transfer function can be a vector $f(s) = [y1, \dots, ym]$ and the Vector Fitting algorithm will fit the response using the same set of poles $an$ for all $ym$.

A rational representation of a transfer function makes it easier to find a state space canonical realization of a system and to perform convolutions.

Example

Read the docs for more examples.

```julia using RationalVectorFitting using Plots

Ns = 101 freq = exp10.(range(0, 4, length = Ns)) s = 2im * pi * freq poles0 = [-5.0, -100 - 500im, -100 + 500im] residues0 = [2.0, 30 - 40im, 30 + 40im] d0 = 0.5 h0 = 0.0 f = rational(s, poles0, residues0, d0, h0) initpoles = -2pi * exp10.(range(0, 4, length = 3)) poles, residues, d, h, fitted, errornorm = vectorfitting(s, f, initpoles) begin p1 = plot(freq, abs.(f), label="f(s)", linecolor=:blue, xlabel="Frequency [Hz]", xaxis=:log, yaxis=:log, legend=:right) plot!(freq, abs.(fitted), label="fitted(s)", linecolor=:darkorange) plot!(freq, abs.(f - fitted), label="deviation", linecolor=:green) display(p1) end ```


Stable Documentation In development documentation Build Status Test workflow status Lint workflow Status Docs workflow Status

Coverage DOI Contributor Covenant All Contributors BestieTemplate

How to Cite

If you use RationalVectorFitting.jl in your work, please cite using the reference given in CITATION.cff.

Contributing

If you want to make contributions of any kind, please first that a look into our contributing guide directly on GitHub or the contributing page on the website.


Contributors

Bibliography

[1] B. Gustavsen and A. Semlyen, "Rational approximation of frequency domain responses by vector fitting," in IEEE Transactions on Power Delivery, vol. 14, no. 3, pp. 1052-1061, July 1999, doi: 10.1109/61.772353.

[2] B. Gustavsen, "Improving the pole relocating properties of vector fitting," in IEEE Transactions on Power Delivery, vol. 21, no. 3, pp. 1587-1592, July 2006, doi: 10.1109/TPWRD.2005.860281.

[3] D. Deschrijver, M. Mrozowski, T. Dhaene and D. De Zutter, "Macromodeling of Multiport Systems Using a Fast Implementation of the Vector Fitting Method," in IEEE Microwave and Wireless Components Letters, vol. 18, no. 6, pp. 383-385, June 2008, doi: 10.1109/LMWC.2008.922585.

[4] A. M. Smith, S. D'Arco, J. A. Suul and B. Gustavsen, "Improved Pole Placement and Compaction of MIMO Vector Fitting Applied to System Identification," in IEEE Transactions on Power Delivery, vol. 39, no. 2, pp. 1259-1270, April 2024, doi: 10.1109/TPWRD.2024.3364836.

Owner

  • Name: Pedro H. N. Vieira
  • Login: pedrohnv
  • Kind: user
  • Location: Brazil

PhD Student at UFRJ. Interested in computer-aided engineering. Currently doing research about electric field computation in power substations.

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: RationalVectorFitting.jl
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Pedro H. N. Vieira
    email: phnvieira@proton.me
identifiers:
  - type: doi
    value: 10.1109/61.772353
    description: >-
      Rational approximation of frequency domain responses
      by vector fitting
  - type: doi
    value: 10.1109/TPWRD.2005.860281
    description: >-
      Improving the pole relocating properties of vector
      fitting
  - type: doi
    value: 10.1109/LMWC.2008.922585
    description: >-
      Macromodeling of Multiport Systems Using a Fast
      Implementation of the Vector Fitting Method
repository-code: 'https://github.com/pedrohnv/VectorFitting.jl'
abstract: >-
  Fast Relaxed Vector Fitting implementation in Julia
  programming language
keywords:
  - vector fitting
license: GPL-3.0-or-later

GitHub Events

Total
  • Create event: 9
  • Commit comment event: 2
  • Issues event: 1
  • Release event: 1
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 3
  • Push event: 22
  • Pull request event: 14
Last Year
  • Create event: 9
  • Commit comment event: 2
  • Issues event: 1
  • Release event: 1
  • Watch event: 3
  • Delete event: 4
  • Issue comment event: 3
  • Push event: 22
  • Pull request event: 14

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 1
  • Total pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 9 hours
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 5
Past Year
  • Issues: 1
  • Pull requests: 5
  • Average time to close issues: N/A
  • Average time to close pull requests: about 9 hours
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • pedrohnv (1)
  • Fabi293 (1)
  • JuliaTagBot (1)
Pull Request Authors
  • pedrohnv (11)
  • github-actions[bot] (8)
  • dependabot[bot] (2)
  • abelsiqueira (1)
Top Labels
Issue Labels
Pull Request Labels
chore (8) dependencies (2)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 1 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 4
juliahub.com: RationalVectorFitting

Fast Relaxed Vector-Fitting algorithm in Julia

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1 Total
Rankings
Dependent repos count: 3.2%
Downloads: 4.4%
Average: 8.0%
Dependent packages count: 16.3%
Last synced: 10 months ago