KiCad PCB EDA Suite
|
#include <microstrip.h>
Public Member Functions | |
MICROSTRIP () | |
void | setProperty (enum PRMS_ID aPrmId, double aValue) |
double | getProperty (enum PRMS_ID aPrmId) |
void | getProperties () |
@function getProperties | |
void | checkProperties () |
@function checkProperties | |
void | setResult (int, double, const char *) |
void | setResult (int, const char *) |
bool | isSelected (enum PRMS_ID aPrmId) |
void | Init () |
virtual void | synthesize () |
virtual void | calc () |
void | analyze () |
Public Attributes | |
const char * | m_Name |
KIGFX::COLOR4D | errCol = KIGFX::COLOR4D( 1, 0.63, 0.63, 1 ) |
KIGFX::COLOR4D | warnCol = KIGFX::COLOR4D( 1, 1, 0.57, 1 ) |
KIGFX::COLOR4D | okCol = KIGFX::COLOR4D( 1, 1, 1, 1 ) |
Protected Member Functions | |
bool | minimizeZ0Error1D (double *) |
@function minimizeZ0Error1D | |
double | skin_depth () |
@function skin_depth calculate skin depth | |
void | ellipke (double, double &, double &) |
double | ellipk (double) |
void | setErrorLevel (PRMS_ID, char) |
@function setErrorLevel | |
Protected Attributes | |
double | m_parameters [EXTRA_PRMS_COUNT] |
Private Member Functions | |
double | er_eff_freq () |
double | alpha_c () |
double | alpha_c_roughness () |
double | alpha_dielectric () |
double | char_impedance_ht () |
double | synth_width () |
double | ereff_dispersion () |
double | Z0_dispersion () |
double | Z0_homogeneous (double) |
double | delta_Z0_cover (double, double) |
double | filling_factor (double, double) |
double | delta_q_cover (double) |
double | delta_q_thickness (double, double) |
double | e_r_effective (double, double) |
double | delta_u_thickness (double, double, double) |
double | e_r_dispersion (double, double, double) |
double | Z0_dispersion (double, double, double, double, double) |
double | conductor_losses () |
double | dielectric_losses () |
void | microstrip_Z0 () |
void | dispersion () |
void | attenuation () |
void | mur_eff_ms () |
void | line_angle () |
void | show_results () override |
Shows results. | |
void | showSynthesize () override |
Shows analysis results and checks for errors / warnings. | |
void | showAnalyze () override |
Shows synthesis results and checks for errors / warnings. | |
void | calcAnalyze () override |
Computation for analysis. | |
void | calcSynthesize () override |
Computation for synthesis. | |
Private Attributes | |
double | h |
double | ht |
double | t |
double | rough |
double | mur |
double | w |
double | l |
double | Z0_0 |
double | Z0 |
double | er_eff_0 |
double | mur_eff |
double | w_eff |
double | atten_dielectric |
double | atten_cond |
double | Z0_h_1 |
Friends | |
class | C_MICROSTRIP |
Definition at line 30 of file microstrip.h.
MICROSTRIP::MICROSTRIP | ( | ) |
Definition at line 43 of file microstrip.cpp.
References TRANSLINE::Init(), and TRANSLINE::m_Name.
|
private |
Referenced by conductor_losses().
|
private |
|
private |
|
inherited |
Definition at line 208 of file transline.cpp.
References TRANSLINE::calcAnalyze(), TRANSLINE::checkProperties(), TRANSLINE::getProperties(), TRANSLINE::show_results(), and TRANSLINE::showAnalyze().
Referenced by PANEL_TRANSLINE::OnTranslineAnalyse().
|
private |
Definition at line 374 of file microstrip.cpp.
References atten_cond, atten_dielectric, conductor_losses(), dielectric_losses(), TRANSLINE::m_parameters, PHYS_LEN_PRM, TRANSLINE::skin_depth(), and SKIN_DEPTH_PRM.
Referenced by calcAnalyze().
|
inlinevirtualinherited |
Definition at line 97 of file transline.h.
|
overrideprivatevirtual |
Computation for analysis.
Reimplemented from TRANSLINE.
Definition at line 447 of file microstrip.cpp.
References attenuation(), dispersion(), line_angle(), microstrip_Z0(), and mur_eff_ms().
Referenced by calcSynthesize().
|
overrideprivatevirtual |
Computation for synthesis.
Reimplemented from TRANSLINE.
Definition at line 518 of file microstrip.cpp.
References ANG_L_PRM, C0, calcAnalyze(), EPSILON_EFF_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, TRANSLINE::minimizeZ0Error1D(), mur_eff, PHYS_LEN_PRM, PHYS_WIDTH_PRM, synth_width(), and Z0_PRM.
|
private |
|
inherited |
@function checkProperties
Checks the input parameters (ie: negative length). Does not check for incompatibility between values as this depends on the line shape.
Definition at line 166 of file transline.cpp.
References EPSILONR_PRM, FREQUENCY_PRM, H_PRM, H_T_PRM, TRANSLINE::m_parameters, MUR_PRM, MURC_PRM, RHO_PRM, TRANSLINE::setErrorLevel(), STRIPLINE_A_PRM, TAND_PRM, TRANSLINE_WARNING, TWISTEDPAIR_EPSILONR_ENV_PRM, and TWISTEDPAIR_TWIST_PRM.
Referenced by TRANSLINE::analyze(), and TRANSLINE::synthesize().
|
private |
Definition at line 317 of file microstrip.cpp.
References alpha_c(), C0, delta, er_eff_0, FREQUENCY_PRM, TRANSLINE::m_parameters, PHYS_WIDTH_PRM, ROUGH_PRM, SIGMA_PRM, SKIN_DEPTH_PRM, Z0_h_1, and ZF0.
Referenced by attenuation().
|
private |
Definition at line 117 of file microstrip.cpp.
Referenced by microstrip_Z0().
|
private |
Definition at line 129 of file microstrip.cpp.
Referenced by C_MICROSTRIP::er_eff_static(), and microstrip_Z0().
|
private |
Definition at line 154 of file microstrip.cpp.
Referenced by microstrip_Z0().
|
private |
Definition at line 83 of file microstrip.cpp.
References atanh().
|
private |
Definition at line 355 of file microstrip.cpp.
References C0, EPSILONR_PRM, er_eff_0, FREQUENCY_PRM, TRANSLINE::m_parameters, and TAND_PRM.
Referenced by attenuation().
|
private |
Definition at line 289 of file microstrip.cpp.
References D, e_r_dispersion(), EPSILON_EFF_PRM, EPSILONR_PRM, er_eff_0, FREQUENCY_PRM, H_PRM, TRANSLINE::m_parameters, PHYS_WIDTH_PRM, Z0_0, Z0_dispersion(), and Z0_PRM.
Referenced by calcAnalyze(), and C_MICROSTRIP::compute_single_line().
|
private |
Definition at line 228 of file microstrip.cpp.
Referenced by dispersion().
|
private |
Definition at line 142 of file microstrip.cpp.
Referenced by microstrip_Z0().
|
protectedinherited |
Definition at line 321 of file transline.cpp.
References TRANSLINE::ellipke().
Referenced by COPLANAR::calcAnalyze().
|
protectedinherited |
Definition at line 256 of file transline.cpp.
References INFINITY, M_PI_2, and NR_EPSI.
Referenced by TRANSLINE::ellipk().
|
private |
|
private |
|
private |
Definition at line 99 of file microstrip.cpp.
Referenced by microstrip_Z0().
|
inherited |
@function getProperties
Get all properties from the UI. Computes some extra ones.
Definition at line 147 of file transline.cpp.
References DUMMY_PRM, EPSILON_EFF_PRM, TRANSLINE::getProperty(), TRANSLINE::m_parameters, RHO_PRM, TRANSLINE::setErrorLevel(), SIGMA_PRM, TRANSLINE::skin_depth(), SKIN_DEPTH_PRM, and TRANSLINE_OK.
Referenced by TRANSLINE::analyze(), and TRANSLINE::synthesize().
|
inherited |
Definition at line 137 of file transline.cpp.
References GetPropertyInDialog().
Referenced by RECTWAVEGUIDE::get_rectwaveguide_comp(), RECTWAVEGUIDE::get_rectwaveguide_elec(), RECTWAVEGUIDE::get_rectwaveguide_phys(), RECTWAVEGUIDE::get_rectwaveguide_sub(), and TRANSLINE::getProperties().
|
inherited |
Definition at line 87 of file transline.cpp.
References KIGFX::COLOR4D::b, EXTRA_PRMS_COUNT, KIGFX::COLOR4D::g, TRANSLINE::m_parameters, TRANSLINE::okCol, and KIGFX::COLOR4D::r.
Referenced by C_MICROSTRIP::C_MICROSTRIP(), COAX::COAX(), COPLANAR::COPLANAR(), MICROSTRIP(), RECTWAVEGUIDE::RECTWAVEGUIDE(), STRIPLINE::STRIPLINE(), TRANSLINE::TRANSLINE(), and TWISTEDPAIR::TWISTEDPAIR().
|
inherited |
Definition at line 116 of file transline.cpp.
References IsSelectedInDialog().
Referenced by COAX::calcSynthesize(), COPLANAR::calcSynthesize(), TWISTEDPAIR::calcSynthesize(), COAX::showSynthesize(), COPLANAR::showSynthesize(), RECTWAVEGUIDE::showSynthesize(), and TWISTEDPAIR::showSynthesize().
|
private |
Definition at line 431 of file microstrip.cpp.
References ANG_L_PRM, C0, EPSILON_EFF_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, mur_eff, and PHYS_LEN_PRM.
Referenced by calcAnalyze().
|
private |
Definition at line 177 of file microstrip.cpp.
References delta_q_cover(), delta_q_thickness(), delta_u_thickness(), e_r_effective(), EPSILONR_PRM, er_eff_0, filling_factor(), H_PRM, H_T_PRM, TRANSLINE::m_parameters, PHYS_WIDTH_PRM, T_PRM, w_eff, Z0_0, Z0_h_1, Z0_homogeneous(), and Z0_PRM.
Referenced by calcAnalyze(), and C_MICROSTRIP::compute_single_line().
|
protectedinherited |
@function minimizeZ0Error1D
Tries to find a parameter that minimizes the error ( on Z0 ). This function only works with a single parameter. Calls calcAnalyze several times until the error is acceptable. While the error is unnacceptable, changes slightly the parameter.
This function does not change Z0 / Angl_L.
avar | Parameter to synthesize |
Definition at line 346 of file transline.cpp.
References ANG_L_PRM, C0, TRANSLINE::calcAnalyze(), EPSILON_EFF_PRM, FREQUENCY_PRM, TRANSLINE::m_parameters, MAX_ERROR, PHYS_LEN_PRM, and Z0_PRM.
Referenced by COPLANAR::calcSynthesize(), calcSynthesize(), STRIPLINE::calcSynthesize(), and TWISTEDPAIR::calcSynthesize().
|
private |
Definition at line 386 of file microstrip.cpp.
References h, H_PRM, TRANSLINE::m_parameters, mur, mur_eff, MUR_PRM, PHYS_WIDTH_PRM, and w.
Referenced by calcAnalyze().
|
protectedinherited |
@function setErrorLevel
set an error / warning level for a given parameter.
aP | parameter |
aErrorLevel | Error level |
Definition at line 432 of file transline.cpp.
References TRANSLINE::errCol, TRANSLINE::okCol, SetPropertyBgColorInDialog(), TRANSLINE_ERROR, TRANSLINE_WARNING, and TRANSLINE::warnCol.
Referenced by TRANSLINE::checkProperties(), TRANSLINE::getProperties(), C_MICROSTRIP::showAnalyze(), COAX::showAnalyze(), COPLANAR::showAnalyze(), showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), TWISTEDPAIR::showAnalyze(), C_MICROSTRIP::showSynthesize(), COAX::showSynthesize(), COPLANAR::showSynthesize(), showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), and TWISTEDPAIR::showSynthesize().
|
inherited |
Definition at line 106 of file transline.cpp.
References SetPropertyInDialog().
Referenced by show_results(), C_MICROSTRIP::showAnalyze(), COAX::showAnalyze(), COPLANAR::showAnalyze(), showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), TWISTEDPAIR::showAnalyze(), C_MICROSTRIP::showSynthesize(), COAX::showSynthesize(), COPLANAR::showSynthesize(), showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), and TWISTEDPAIR::showSynthesize().
|
inherited |
Definition at line 124 of file transline.cpp.
References SetResultInDialog(), and text.
|
inherited |
Definition at line 130 of file transline.cpp.
References SetResultInDialog(), and text.
Referenced by C_MICROSTRIP::show_results(), COAX::show_results(), COPLANAR::show_results(), show_results(), RECTWAVEGUIDE::show_results(), STRIPLINE::show_results(), and TWISTEDPAIR::show_results().
|
overrideprivatevirtual |
Shows results.
Reimplemented from TRANSLINE.
Definition at line 462 of file microstrip.cpp.
References ANG_L_PRM, atten_cond, atten_dielectric, EPSILON_EFF_PRM, TRANSLINE::m_parameters, TRANSLINE::setProperty(), TRANSLINE::setResult(), SKIN_DEPTH_PRM, UNIT_MICRON, and Z0_PRM.
|
overrideprivatevirtual |
Shows synthesis results and checks for errors / warnings.
Reimplemented from TRANSLINE.
Definition at line 495 of file microstrip.cpp.
References ANG_L_PRM, TRANSLINE::m_parameters, PHYS_LEN_PRM, PHYS_WIDTH_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.
|
overrideprivatevirtual |
Shows analysis results and checks for errors / warnings.
Reimplemented from TRANSLINE.
Definition at line 475 of file microstrip.cpp.
References ANG_L_PRM, TRANSLINE::m_parameters, PHYS_LEN_PRM, PHYS_WIDTH_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.
|
protectedinherited |
@function skin_depth calculate skin depth
Definition at line 234 of file transline.cpp.
References FREQUENCY_PRM, TRANSLINE::m_parameters, MU0, MURC_PRM, and SIGMA_PRM.
Referenced by C_MICROSTRIP::attenuation(), attenuation(), COPLANAR::calcAnalyze(), STRIPLINE::calcAnalyze(), and TRANSLINE::getProperties().
|
private |
Definition at line 397 of file microstrip.cpp.
References EPSILONR_PRM, H_PRM, TRANSLINE::m_parameters, Z0_PRM, and ZF0.
Referenced by calcSynthesize().
|
virtualinherited |
Definition at line 217 of file transline.cpp.
References TRANSLINE::calcSynthesize(), TRANSLINE::checkProperties(), TRANSLINE::getProperties(), TRANSLINE::show_results(), and TRANSLINE::showSynthesize().
Referenced by PANEL_TRANSLINE::OnTranslineSynthetize().
|
private |
Referenced by dispersion().
|
private |
Definition at line 248 of file microstrip.cpp.
References D.
|
private |
|
friend |
Definition at line 35 of file microstrip.h.
|
private |
Definition at line 51 of file microstrip.h.
Referenced by attenuation(), and show_results().
|
private |
Definition at line 50 of file microstrip.h.
Referenced by attenuation(), and show_results().
|
private |
Definition at line 47 of file microstrip.h.
Referenced by conductor_losses(), dielectric_losses(), dispersion(), C_MICROSTRIP::er_eff_static(), microstrip_Z0(), C_MICROSTRIP::Z0_dispersion(), and C_MICROSTRIP::Z0_even_odd().
|
inherited |
Definition at line 126 of file transline.h.
Referenced by TRANSLINE::setErrorLevel().
|
private |
Definition at line 38 of file microstrip.h.
Referenced by mur_eff_ms().
|
private |
Definition at line 39 of file microstrip.h.
|
private |
Definition at line 44 of file microstrip.h.
|
inherited |
Definition at line 84 of file transline.h.
Referenced by C_MICROSTRIP::C_MICROSTRIP(), COAX::COAX(), COPLANAR::COPLANAR(), GROUNDEDCOPLANAR::GROUNDEDCOPLANAR(), MICROSTRIP(), TRANSLINE_IDENT::ReadConfig(), RECTWAVEGUIDE::RECTWAVEGUIDE(), STRIPLINE::STRIPLINE(), TRANSLINE::TRANSLINE(), TWISTEDPAIR::TWISTEDPAIR(), and TRANSLINE_IDENT::WriteConfig().
|
protectedinherited |
Definition at line 131 of file transline.h.
Referenced by RECTWAVEGUIDE::alphac(), COAX::alphac_coax(), RECTWAVEGUIDE::alphad(), COAX::alphad_coax(), C_MICROSTRIP::attenuation(), attenuation(), COAX::calcAnalyze(), COPLANAR::calcAnalyze(), RECTWAVEGUIDE::calcAnalyze(), STRIPLINE::calcAnalyze(), TWISTEDPAIR::calcAnalyze(), C_MICROSTRIP::calcSynthesize(), COAX::calcSynthesize(), COPLANAR::calcSynthesize(), calcSynthesize(), RECTWAVEGUIDE::calcSynthesize(), STRIPLINE::calcSynthesize(), TWISTEDPAIR::calcSynthesize(), TRANSLINE::checkProperties(), C_MICROSTRIP::compute_single_line(), C_MICROSTRIP::conductor_losses(), conductor_losses(), C_MICROSTRIP::delta_u_thickness(), C_MICROSTRIP::dielectric_losses(), dielectric_losses(), dispersion(), C_MICROSTRIP::er_eff_freq(), C_MICROSTRIP::er_eff_static(), RECTWAVEGUIDE::fc(), RECTWAVEGUIDE::get_rectwaveguide_comp(), RECTWAVEGUIDE::get_rectwaveguide_elec(), RECTWAVEGUIDE::get_rectwaveguide_phys(), RECTWAVEGUIDE::get_rectwaveguide_sub(), TRANSLINE::getProperties(), TRANSLINE::Init(), RECTWAVEGUIDE::kc_square(), RECTWAVEGUIDE::kval_square(), C_MICROSTRIP::line_angle(), line_angle(), STRIPLINE::lineImpedance(), microstrip_Z0(), TRANSLINE::minimizeZ0Error1D(), mur_eff_ms(), C_MICROSTRIP::show_results(), COAX::show_results(), COPLANAR::show_results(), show_results(), RECTWAVEGUIDE::show_results(), STRIPLINE::show_results(), TWISTEDPAIR::show_results(), C_MICROSTRIP::showAnalyze(), COAX::showAnalyze(), COPLANAR::showAnalyze(), showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), TWISTEDPAIR::showAnalyze(), C_MICROSTRIP::showSynthesize(), COAX::showSynthesize(), COPLANAR::showSynthesize(), showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), TWISTEDPAIR::showSynthesize(), TRANSLINE::skin_depth(), C_MICROSTRIP::syn_fun(), C_MICROSTRIP::synth_width(), synth_width(), TRANSLINE::TRANSLINE(), C_MICROSTRIP::Z0_dispersion(), and C_MICROSTRIP::Z0_even_odd().
|
private |
Definition at line 42 of file microstrip.h.
Referenced by mur_eff_ms().
|
private |
Definition at line 48 of file microstrip.h.
Referenced by calcSynthesize(), line_angle(), and mur_eff_ms().
|
inherited |
Definition at line 128 of file transline.h.
Referenced by TRANSLINE::Init(), and TRANSLINE::setErrorLevel().
|
private |
Definition at line 41 of file microstrip.h.
|
private |
Definition at line 40 of file microstrip.h.
|
private |
Definition at line 43 of file microstrip.h.
Referenced by mur_eff_ms().
|
private |
Definition at line 49 of file microstrip.h.
Referenced by microstrip_Z0().
|
inherited |
Definition at line 127 of file transline.h.
Referenced by TRANSLINE::setErrorLevel().
|
private |
Definition at line 46 of file microstrip.h.
|
private |
Definition at line 45 of file microstrip.h.
Referenced by dispersion(), microstrip_Z0(), and C_MICROSTRIP::Z0_even_odd().
|
private |
Definition at line 54 of file microstrip.h.
Referenced by conductor_losses(), and microstrip_Z0().