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

where s is the complex frequency, r_n are the complex residues, a_n are the complex poles, d and h are real constants.

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

A rational representation of a transfer function makes it easier to find a state space canonical realization of a system and to perform convolutions. I imagine this can be useful for folks using ControlSystems.jl, for example.

I invite you to read the docs to see some examples.

Many of my peers in electrical engineering are still using MATLAB due to legacy code, one of which is the VFIT3. So, I decided to build this package to be very similar to VFIT3 without being just a cheap translation of it. So far it is just a implementation of the classical algorithm presented in [1-3], but I intend to build upon it and incorporate recent improvements to the algorithm, like in [4].

Unfortunately, Vector Fitting is an algorithm that relies heavily on user input, trial and error. An alternative seems to be RationalFunctionApproximation.jl, which is built with a completely different algorithm.

# 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.