|
Harmony
HARMONic stabilitY assessment of PE-penetrated power systems
|
Numerical-range, small-gain, and sampled DW-shell certificates. More...

Functions | |
| double | excessPassivity (const Eigen::MatrixXcd &A) |
| Hermitian / excess passivity ν = λ_min(Her A); shortage = max(0,-ν). | |
| double | shortagePassivity (const Eigen::MatrixXcd &A) |
| double | spectralNorm (const Eigen::MatrixXcd &A) |
| Operator (spectral) norm σ_max(A). | |
| std::vector< std::complex< double > > | numericalRangeBoundary (const Eigen::MatrixXcd &A, int n_theta) |
| Trace ∂W(A) via the support function: z(θ) = e^{iθ} λ_max(Her(e^{-iθ} A)). | |
| NumericalRangeCertificate | certifyNumericalRange (const Eigen::MatrixXcd &A, double phase_limit_deg, int n_theta) |
| Numerical-range small-phase certificate. | |
| DwShellCertificate | certifyDwShell (const Eigen::MatrixXcd &A, double phase_limit_deg, double gain_limit, double excess_eps, int n_theta, int n_sphere) |
| Sample DW(A) on a dense set of unit vectors (exact NR boundary + sphere grid). | |
| Eigen::MatrixXcd | loopShiftedSector (const Eigen::MatrixXcd &A, double alpha, double beta) |
| Classic loop-shifted (sector) matrix for SISO/MIMO sector [α, β]: T = (A - α I)(β I - A)^{-1} when invertible; empty matrix on failure. | |
| bool | certifySector (const Eigen::MatrixXcd &A, double alpha, double beta, double eps) |
| True if Her(T) ≻ eps for the loop-shifted sector map (when defined). | |
Numerical-range, small-gain, and sampled DW-shell certificates.
| DwShellCertificate certifyDwShell | ( | const Eigen::MatrixXcd & | A, |
| double | phase_limit_deg = 90.0, |
||
| double | gain_limit = 1.0, |
||
| double | excess_eps = 0.0, |
||
| int | n_theta = 180, |
||
| int | n_sphere = 24 |
||
| ) |
Sample DW(A) on a dense set of unit vectors (exact NR boundary + sphere grid).
| gain_limit | Require σ_max(A) ≤ gain_limit when used as small-gain gate. |
| excess_eps | Require λ_min(Her A) ≥ excess_eps. |
References certifyNumericalRange(), DwShellCertificate::excess_passivity, excessPassivity(), DwShellPoint::gain2, j, DwShellCertificate::max_singular, NumericalRangeCertificate::min_real, DwShellCertificate::nr, DwShellCertificate::pass_excess, DwShellCertificate::pass_small_gain, DwShellPoint::re, DwShellCertificate::samples, DwShellCertificate::shortage_passivity, shortagePassivity(), spectralNorm(), DwShellCertificate::xz_max_gain2, and DwShellCertificate::xz_min_re.
Referenced by plot_certificate_dw_shell().
| NumericalRangeCertificate certifyNumericalRange | ( | const Eigen::MatrixXcd & | A, |
| double | phase_limit_deg = 90.0, |
||
| int | n_theta = 180 |
||
| ) |
Numerical-range small-phase certificate.
| phase_limit_deg | Max allowed |arg| of W(A) (90° ≈ passivity for sectorial sets). |
References NumericalRangeCertificate::boundary, NumericalRangeCertificate::contains_zero, NumericalRangeCertificate::max_phase_deg, NumericalRangeCertificate::min_real, numericalRangeBoundary(), NumericalRangeCertificate::pass_phase, NumericalRangeCertificate::pass_zero_outside, and NumericalRangeCertificate::zero_margin.
Referenced by certifyDwShell(), plot_certificate_dw_slice(), and plot_certificate_numerical_range().
| bool certifySector | ( | const Eigen::MatrixXcd & | A, |
| double | alpha, | ||
| double | beta, | ||
| double | eps | ||
| ) |
True if Her(T) ≻ eps for the loop-shifted sector map (when defined).
References loopShiftedSector().
| double excessPassivity | ( | const Eigen::MatrixXcd & | A | ) |
Hermitian / excess passivity ν = λ_min(Her A); shortage = max(0,-ν).
Referenced by certifyDwShell().
| Eigen::MatrixXcd loopShiftedSector | ( | const Eigen::MatrixXcd & | A, |
| double | alpha, | ||
| double | beta | ||
| ) |
Classic loop-shifted (sector) matrix for SISO/MIMO sector [α, β]: T = (A - α I)(β I - A)^{-1} when invertible; empty matrix on failure.
Passivity of T is a sector certificate for A (when defined).
Referenced by certifySector().
| std::vector< std::complex< double > > numericalRangeBoundary | ( | const Eigen::MatrixXcd & | A, |
| int | n_theta | ||
| ) |
Trace ∂W(A) via the support function: z(θ) = e^{iθ} λ_max(Her(e^{-iθ} A)).
Referenced by certifyNumericalRange().
| double shortagePassivity | ( | const Eigen::MatrixXcd & | A | ) |
Referenced by certifyDwShell().
| double spectralNorm | ( | const Eigen::MatrixXcd & | A | ) |
Operator (spectral) norm σ_max(A).
Referenced by certifyDwShell(), and sweepReturnRatioCertificate().