KiCad PCB EDA Suite
Loading...
Searching...
No Matches
TWISTEDPAIR Class Reference

#include <twistedpair.h>

Inheritance diagram for TWISTEDPAIR:
TRANSLINE

Public Member Functions

 TWISTEDPAIR ()
 
void setProperty (enum PRMS_ID aPrmId, double aValue)
 
double getProperty (enum PRMS_ID aPrmId)
 
void getProperties ()
 @function getProperties More...
 
void checkProperties ()
 @function checkProperties More...
 
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 More...
 
double skin_depth ()
 @function skin_depth calculate skin depth More...
 
void ellipke (double, double &, double &)
 
double ellipk (double)
 
void setErrorLevel (PRMS_ID, char)
 @function setErrorLevel More...
 

Protected Attributes

double m_parameters [EXTRA_PRMS_COUNT]
 

Private Member Functions

void calcAnalyze () override
 $ \theta = \arctan\left( T \cdot \pi \cdot D_{out} \right) $ More...
 
void calcSynthesize () override
 Computation for synthesis. More...
 
void showAnalyze () override
 Shows synthesis results and checks for errors / warnings. More...
 
void showSynthesize () override
 Shows analysis results and checks for errors / warnings. More...
 
void show_results () override
 Shows results. More...
 

Detailed Description

Definition at line 29 of file twistedpair.h.

Constructor & Destructor Documentation

◆ TWISTEDPAIR()

TWISTEDPAIR::TWISTEDPAIR ( )

Definition at line 33 of file twistedpair.cpp.

References TRANSLINE::Init(), and TRANSLINE::m_Name.

Member Function Documentation

◆ analyze()

◆ calc()

virtual void TRANSLINE::calc ( )
inlinevirtualinherited

Definition at line 97 of file transline.h.

◆ calcAnalyze()

void TWISTEDPAIR::calcAnalyze ( )
overrideprivatevirtual

$ \theta = \arctan\left( T \cdot \pi \cdot D_{out} \right) $

Where :

  • $ \theta $ : pitch angle
  • $ T $ : Number of twists per unit length
  • $ D_{out} $ : Wire diameter with insulation

    $ e_{eff} = e_{env} \cdot \left( 0.25 + 0.0007 \cdot \theta^2 \right)\cdot\left(e_r-e_{env}\right) $

Where :

  • $ e_{env} $ : relative dielectric constant of air ( or some other surronding material ),
  • $ e_r $ : relative dielectric constant of the film insulation,
  • $ e_{eff} $ : effective relative dielectric constant

    $ Z_0 = \frac{Z_\mathrm{VACUUM}}{\pi \cdot \sqrt{e_{eff}}}\cosh^{-1}\left(\frac{D_{out}}{D_{in}}\right) $

  • $ Z_0 $ : line impedance
  • $ Z_\mathrm{VACUUM} $ : vacuum impedance
  • $ D_{in} $ : Wire diameter without insulation

Reference for above equations :

[1] : P. Lefferson, `‘Twisted Magnet Wire Transmission Line,’' IEEE Transactions on Parts, Hybrids, and Packaging, vol. PHP-7, no. 4, pp. 148-154, Dec. 1971.

The following URL can be used as reference : http://qucs.sourceforge.net/tech/node93.html

Reimplemented from TRANSLINE.

Definition at line 68 of file twistedpair.cpp.

References acosh(), ANG_L_PRM, C0, EPSILON_EFF_PRM, EPSILONR_PRM, FREQUENCY_PRM, LOSS_CONDUCTOR_PRM, LOSS_DIELECTRIC_PRM, TRANSLINE::m_parameters, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, SIGMA_PRM, SKIN_DEPTH_PRM, TAND_PRM, TWISTEDPAIR_EPSILONR_ENV_PRM, TWISTEDPAIR_TWIST_PRM, Z0_PRM, and ZF0.

◆ calcSynthesize()

void TWISTEDPAIR::calcSynthesize ( )
overrideprivatevirtual

Computation for synthesis.

Reimplemented from TRANSLINE.

Definition at line 190 of file twistedpair.cpp.

References TRANSLINE::isSelected(), TRANSLINE::m_parameters, TRANSLINE::minimizeZ0Error1D(), PHYS_DIAM_IN_PRM, and PHYS_DIAM_OUT_PRM.

◆ checkProperties()

void TRANSLINE::checkProperties ( )
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().

◆ ellipk()

double TRANSLINE::ellipk ( double  k)
protectedinherited

Definition at line 321 of file transline.cpp.

References TRANSLINE::ellipke().

Referenced by COPLANAR::calcAnalyze().

◆ ellipke()

void TRANSLINE::ellipke ( double  arg,
double &  k,
double &  e 
)
protectedinherited

Definition at line 256 of file transline.cpp.

References INFINITY, M_PI_2, and NR_EPSI.

Referenced by TRANSLINE::ellipk().

◆ getProperties()

void TRANSLINE::getProperties ( )
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().

◆ getProperty()

◆ Init()

◆ isSelected()

◆ minimizeZ0Error1D()

bool TRANSLINE::minimizeZ0Error1D ( double *  aVar)
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.

Parameters
avarParameter to synthesize
Returns
'true' if error < MAX_ERROR, else 'false'

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(), MICROSTRIP::calcSynthesize(), STRIPLINE::calcSynthesize(), and calcSynthesize().

◆ setErrorLevel()

◆ setProperty()

◆ setResult() [1/2]

void TRANSLINE::setResult ( int  line,
const char *  text 
)
inherited

Definition at line 124 of file transline.cpp.

References SetResultInDialog(), and text.

◆ setResult() [2/2]

void TRANSLINE::setResult ( int  line,
double  value,
const char *  text 
)
inherited

◆ show_results()

void TWISTEDPAIR::show_results ( )
overrideprivatevirtual

◆ showAnalyze()

void TWISTEDPAIR::showAnalyze ( )
overrideprivatevirtual

Shows synthesis results and checks for errors / warnings.

Reimplemented from TRANSLINE.

Definition at line 108 of file twistedpair.cpp.

References ANG_L_PRM, TRANSLINE::m_parameters, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.

◆ showSynthesize()

void TWISTEDPAIR::showSynthesize ( )
overrideprivatevirtual

Shows analysis results and checks for errors / warnings.

Reimplemented from TRANSLINE.

Definition at line 140 of file twistedpair.cpp.

References ANG_L_PRM, TRANSLINE::isSelected(), TRANSLINE::m_parameters, PHYS_DIAM_IN_PRM, PHYS_DIAM_OUT_PRM, PHYS_LEN_PRM, TRANSLINE::setErrorLevel(), TRANSLINE::setProperty(), TRANSLINE_ERROR, TRANSLINE_WARNING, and Z0_PRM.

◆ skin_depth()

double TRANSLINE::skin_depth ( )
protectedinherited

◆ synthesize()

Member Data Documentation

◆ errCol

KIGFX::COLOR4D TRANSLINE::errCol = KIGFX::COLOR4D( 1, 0.63, 0.63, 1 )
inherited

Definition at line 126 of file transline.h.

Referenced by TRANSLINE::setErrorLevel().

◆ m_Name

◆ m_parameters

double TRANSLINE::m_parameters[EXTRA_PRMS_COUNT]
protectedinherited

Definition at line 131 of file transline.h.

Referenced by RECTWAVEGUIDE::alphac(), COAX::alphac_coax(), RECTWAVEGUIDE::alphad(), COAX::alphad_coax(), C_MICROSTRIP::attenuation(), MICROSTRIP::attenuation(), COAX::calcAnalyze(), COPLANAR::calcAnalyze(), RECTWAVEGUIDE::calcAnalyze(), STRIPLINE::calcAnalyze(), calcAnalyze(), C_MICROSTRIP::calcSynthesize(), COAX::calcSynthesize(), COPLANAR::calcSynthesize(), MICROSTRIP::calcSynthesize(), RECTWAVEGUIDE::calcSynthesize(), STRIPLINE::calcSynthesize(), calcSynthesize(), TRANSLINE::checkProperties(), C_MICROSTRIP::compute_single_line(), C_MICROSTRIP::conductor_losses(), MICROSTRIP::conductor_losses(), C_MICROSTRIP::delta_u_thickness(), C_MICROSTRIP::dielectric_losses(), MICROSTRIP::dielectric_losses(), MICROSTRIP::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(), MICROSTRIP::line_angle(), STRIPLINE::lineImpedance(), MICROSTRIP::microstrip_Z0(), TRANSLINE::minimizeZ0Error1D(), MICROSTRIP::mur_eff_ms(), C_MICROSTRIP::show_results(), COAX::show_results(), COPLANAR::show_results(), MICROSTRIP::show_results(), RECTWAVEGUIDE::show_results(), STRIPLINE::show_results(), show_results(), C_MICROSTRIP::showAnalyze(), COAX::showAnalyze(), COPLANAR::showAnalyze(), MICROSTRIP::showAnalyze(), RECTWAVEGUIDE::showAnalyze(), STRIPLINE::showAnalyze(), showAnalyze(), C_MICROSTRIP::showSynthesize(), COAX::showSynthesize(), COPLANAR::showSynthesize(), MICROSTRIP::showSynthesize(), RECTWAVEGUIDE::showSynthesize(), STRIPLINE::showSynthesize(), showSynthesize(), TRANSLINE::skin_depth(), C_MICROSTRIP::syn_fun(), C_MICROSTRIP::synth_width(), MICROSTRIP::synth_width(), TRANSLINE::TRANSLINE(), C_MICROSTRIP::Z0_dispersion(), and C_MICROSTRIP::Z0_even_odd().

◆ okCol

KIGFX::COLOR4D TRANSLINE::okCol = KIGFX::COLOR4D( 1, 1, 1, 1 )
inherited

Definition at line 128 of file transline.h.

Referenced by TRANSLINE::Init(), and TRANSLINE::setErrorLevel().

◆ warnCol

KIGFX::COLOR4D TRANSLINE::warnCol = KIGFX::COLOR4D( 1, 1, 0.57, 1 )
inherited

Definition at line 127 of file transline.h.

Referenced by TRANSLINE::setErrorLevel().


The documentation for this class was generated from the following files: