1#ifndef STABILITY_CERTIFICATE_H
2#define STABILITY_CERTIFICATE_H
9#include "../../Constants.h"
10#include "../Helper_Functions/Visualization.h"
89 bool ac_dq_block =
true);
102 bool ac_block =
true,
103 double phase_limit_deg = 90.0);
110 const std::string& converter_name,
111 const std::string& location,
116 const std::string& converter_name,
117 const std::string& location,
127 const std::vector<OperatingRegionSample>& samples,
128 const std::string& path);
134 const std::string& title =
"Passivity index");
138 const std::string& title =
"Device phase certificate");
142 const std::string& title =
"Device gate certificate");
145 const std::vector<OperatingRegionSample>& samples,
146 const std::string& title =
"Certified operating region (P,Q)");
151 const std::string& title =
"Local vs system certificate");
156 const std::string& title =
"Control tuning: passivity");
159 const Eigen::MatrixXcd& Y,
161 const std::string& title =
"DW-style Hermitian slice");
164 const Eigen::MatrixXcd& Y,
166 double phase_limit_deg = 90.0,
167 const std::string& title =
"Numerical range W(Y)");
170 const Eigen::MatrixXcd& Y,
173 const std::string& title =
"DW shell (xz projection)");
177 const std::string& title =
"Geometric certificates");
Shared thresholds and frequency-grid settings for device certificates.
Local geometric certificates on Y(jω): numerical range (small-phase), small-gain, excess/shortage pas...
void plot_certificate_numerical_range(const Eigen::MatrixXcd &Y, double freq_Hz, double phase_limit_deg=90.0, const std::string &title="Numerical range W(Y)")
Definition Stability_certificate.cpp:515
void plot_certificate_phase(const CertificateSweep &sweep, const std::string &title="Device phase certificate")
Definition Stability_certificate.cpp:331
double maxEigenPhaseDeg(const Eigen::MatrixXcd &Y)
Maximum |arg(λ)| over eigenvalues of Y, in degrees (heuristic).
Definition Stability_certificate.cpp:64
void writeCertificateSweepCsv(const CertificateSweep &sweep, const std::string &path)
Definition Stability_certificate.cpp:277
void plot_certificate_dw_slice(const Eigen::MatrixXcd &Y, double freq_Hz, const std::string &title="DW-style Hermitian slice")
Definition Stability_certificate.cpp:485
void finalizeCertificateSweep(CertificateSweep &sweep, const CertificateSpec &spec)
Aggregate pass/fail from a completed sweep + spec.
Definition Stability_certificate.cpp:94
void plot_certificate_local_vs_system(const CertificateSweep &local, const CertificateSweep &system_H, const std::string &title="Local vs system certificate")
Definition Stability_certificate.cpp:417
Eigen::MatrixXcd extractAcDqBlock(const Eigen::MatrixXcd &Y)
Extract AC dq 2×2 block from 2×2 or 3×3 Y.
Definition Stability_certificate.cpp:77
bool sweepPassesSpec(const CertificateSweep &sweep, const CertificateSpec &spec)
True if all enabled spec gates pass on a completed sweep.
Definition Stability_certificate.cpp:110
void plot_certificate_gate(const CertificateSweep &sweep, const std::string &title="Device gate certificate")
Definition Stability_certificate.cpp:351
CertificateSweep sweepReturnRatioCertificate(StabilityEstimate &stability, const std::string &converter_name, const std::string &location, const CertificateSpec &spec)
Sweep H = Y Z_eq and report Her(I+H) passivity-style margins.
Definition Stability_certificate.cpp:233
double dwHermitianMargin(const Eigen::MatrixXcd &Y)
Hermitian DW-slice margin (legacy): λ_min(Her Y).
Definition Stability_certificate.cpp:59
double shiftedPassivityIndex(const Eigen::MatrixXcd &Y, double delta)
Shifted passivity λ_min(Her(Y + δ I)).
Definition Stability_certificate.cpp:52
double passivityIndex(const Eigen::MatrixXcd &Y)
Hermitian passivity index λ_min((Y+Y*)/2).
Definition Stability_certificate.cpp:45
CertificateSweep sweepDeviceCertificate(Element &elem, const CertificateSpec &spec)
Sweep device Y and evaluate certificates per spec.
Definition Stability_certificate.cpp:198
void plot_certificate_passivity(const CertificateSweep &sweep, const std::string &title="Passivity index")
Definition Stability_certificate.cpp:309
void plot_certificate_tuning_compare(const CertificateSweep &before, const CertificateSweep &after, const std::string &title="Control tuning: passivity")
Definition Stability_certificate.cpp:458
void plot_certificate_geometric_sweep(const CertificateSweep &sweep, const std::string &title="Geometric certificates")
Definition Stability_certificate.cpp:588
Eigen::MatrixXcd elementAdmittance(Element &elem, double freq_Hz, bool ac_dq_block=true)
Numeric Y of an element at f (Hz), optionally AC dq block.
Definition Stability_certificate.cpp:86
void plot_certificate_operating_region(const std::vector< OperatingRegionSample > &samples, const std::string &title="Certified operating region (P,Q)")
Definition Stability_certificate.cpp:390
void writeOperatingRegionCsv(const std::vector< OperatingRegionSample > &samples, const std::string &path)
Definition Stability_certificate.cpp:295
void plot_certificate_dw_shell(const Eigen::MatrixXcd &Y, double freq_Hz, const CertificateSpec &spec={}, const std::string &title="DW shell (xz projection)")
Definition Stability_certificate.cpp:552
Base class for multi-phase network elements with Y-parameters and MNA stamping hooks.
Definition Element.h:29
Performs impedance-based stability assessment of network areas.
Definition Stability_estimate.h:30
Frequency-domain certificate evaluation settings.
Definition Certificate_spec.h:12
Frequency-domain certificate sweep for one device (or one H).
Definition Stability_certificate.h:22
double worst_nr_phase_deg
Definition Stability_certificate.h:44
std::vector< double > max_phase_deg
max |arg λ| (deg) — eigenphase heuristic
Definition Stability_certificate.h:26
bool pass_sector
Definition Stability_certificate.h:40
bool pass_dw
Definition Stability_certificate.h:39
std::vector< double > shortage_passivity
max(0, -ν)
Definition Stability_certificate.h:30
std::vector< double > freq_Hz
Definition Stability_certificate.h:23
std::vector< double > nr_phase_deg
numerical-range (small-phase) |arg W|
Definition Stability_certificate.h:27
std::vector< double > nr_zero_margin
>0 ⇒ 0 ∉ W(Y)
Definition Stability_certificate.h:28
double worst_phase_deg
Definition Stability_certificate.h:43
std::vector< double > passivity_index
λ_min(Her Y) or Her(I+H)
Definition Stability_certificate.h:24
bool pass_shifted
Definition Stability_certificate.h:35
bool pass_nr_zero
Definition Stability_certificate.h:37
std::vector< double > shifted_passivity
λ_min(Her(Y+δI))
Definition Stability_certificate.h:25
double worst_small_gain
Definition Stability_certificate.h:46
double gain_limit
Definition Stability_certificate.h:51
double shift_delta
Definition Stability_certificate.h:50
std::vector< double > dw_margin
NR zero-margin (DW-lite local screen)
Definition Stability_certificate.h:32
bool pass_passivity
Definition Stability_certificate.h:33
double phase_limit_deg
Definition Stability_certificate.h:49
std::vector< double > small_gain
σ_max(Y) or σ_max(H)
Definition Stability_certificate.h:29
std::vector< double > min_real_eig
min Re λ
Definition Stability_certificate.h:31
double worst_passivity
Definition Stability_certificate.h:41
double worst_nr_zero_margin
Definition Stability_certificate.h:45
double worst_dw
Definition Stability_certificate.h:48
bool pass_phase
Definition Stability_certificate.h:34
bool pass_nr_phase
Definition Stability_certificate.h:36
double worst_shortage
Definition Stability_certificate.h:47
double worst_shifted
Definition Stability_certificate.h:42
bool pass_small_gain
Definition Stability_certificate.h:38
One sample of a (P,Q) operating-region certificate.
Definition Stability_certificate.h:55
double phase_deg
Definition Stability_certificate.h:60
std::string note
Definition Stability_certificate.h:61
double P
Definition Stability_certificate.h:56
double Q
Definition Stability_certificate.h:57
bool certified
Definition Stability_certificate.h:58
double margin
Definition Stability_certificate.h:59