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

#include <iec60664.h>

Public Types

enum class  POLLUTION_DEGREE { PD1 = 1 , PD2 , PD3 , PD4 }
 
enum class  OV_CATEGORY { OV_I = 1 , OV_II , OV_III , OV_IV }
 
enum class  MATERIAL_GROUP {
  MG_I = 1 , MG_II , MG_IIIa , MG_IIIb ,
  NOT_INSULATING
}
 
enum class  INSULATION_TYPE { FUNCTIONAL = 1 , BASIC , REINFORCED }
 
enum class  FIELD { INHOMOGENEOUS = 1 , HOMOGENEOUS }
 
enum class  WAVEFORM { AC_50_OR_60HZ = 1 , IMPULSE_1_2_50 }
 

Public Member Functions

 IEC60664 ()
 
 ~IEC60664 ()
 
void SetAltitude (const double aAltitude)
 
void SetPollutionDegree (const POLLUTION_DEGREE aPD)
 
void SetPCBMaterial (const bool aPCB)
 
void SetMaterialGroup (const MATERIAL_GROUP aMG)
 
void SetFrequency (const double aF)
 
void SetInsulationType (const INSULATION_TYPE aIns)
 
void SetOvervoltageCategory (const OV_CATEGORY aOV)
 
void SetField (const FIELD aField)
 
void SetRatedVoltage (const double aV)
 
void SetRMSVoltage (const double aV)
 
void SetPeakVoltage (const double aV)
 
void SetTransientVoltage (const double aV)
 
bool Compute ()
 
double GetMinGrooveWidth ()
 
double GetClearanceDistance ()
 
double GetCreepageDistance ()
 
double GetRatedImpulseWithstandVoltage ()
 

Private Member Functions

double GetMinGrooveWidth (const POLLUTION_DEGREE aPD, const double aDistIso=100)
 
double GetClearanceAltitudeCorrectionFactor (const double aAltitude)
 
double GetClearanceForRMSVoltage (const double aVRMS, const FIELD aField=FIELD::INHOMOGENEOUS)
 
MATERIAL_GROUP GetMaterialGroupFromCTI (const double aCTI)
 
double GetClearanceToWithstandTransientVoltage (const double aVoltage, const POLLUTION_DEGREE aPD, const FIELD aField)
 
double GetClearanceToWithstandPeaks (const double aVoltage, const FIELD aField)
 
double GetBasicCreepageDistance (const double aVoltage, const POLLUTION_DEGREE aPD, const MATERIAL_GROUP aMG)
 
double ComputeClearanceDistance (const POLLUTION_DEGREE aPD, const FIELD aField, const double aAltitude)
 
double ComputeCreepageDistance (const POLLUTION_DEGREE aPD, const MATERIAL_GROUP aMG)
 

Private Attributes

double m_ratedVoltage = 100e3
 
double m_frequency = 50
 
bool m_coated = false
 
bool m_pcbMaterial = false
 
double m_RMSvoltage = 100e3
 
double m_peakVoltage = 100e3
 
double m_transientVoltage = 100e3
 
double m_altitude = 100e3
 
double m_clearance = -1
 
double m_creepage = -1
 
double m_minGrooveWidth = -1
 
FIELD m_field = FIELD::INHOMOGENEOUS
 
OV_CATEGORY m_overvoltageCat = OV_CATEGORY::OV_IV
 
MATERIAL_GROUP m_materialGroup = MATERIAL_GROUP::NOT_INSULATING
 
POLLUTION_DEGREE m_pollutionDegree = POLLUTION_DEGREE::PD3
 
INSULATION_TYPE m_insulationType = INSULATION_TYPE::REINFORCED
 

Detailed Description

Definition at line 27 of file iec60664.h.

Member Enumeration Documentation

◆ FIELD

enum class IEC60664::FIELD
strong
Enumerator
INHOMOGENEOUS 
HOMOGENEOUS 

Definition at line 66 of file iec60664.h.

◆ INSULATION_TYPE

enum class IEC60664::INSULATION_TYPE
strong
Enumerator
FUNCTIONAL 
BASIC 
REINFORCED 

Definition at line 59 of file iec60664.h.

◆ MATERIAL_GROUP

enum class IEC60664::MATERIAL_GROUP
strong
Enumerator
MG_I 
MG_II 
MG_IIIa 
MG_IIIb 
NOT_INSULATING 

Definition at line 50 of file iec60664.h.

◆ OV_CATEGORY

enum class IEC60664::OV_CATEGORY
strong
Enumerator
OV_I 
OV_II 
OV_III 
OV_IV 

Definition at line 42 of file iec60664.h.

◆ POLLUTION_DEGREE

enum class IEC60664::POLLUTION_DEGREE
strong
Enumerator
PD1 
PD2 
PD3 
PD4 

Definition at line 34 of file iec60664.h.

◆ WAVEFORM

enum class IEC60664::WAVEFORM
strong
Enumerator
AC_50_OR_60HZ 
IMPULSE_1_2_50 

Definition at line 72 of file iec60664.h.

Constructor & Destructor Documentation

◆ IEC60664()

IEC60664::IEC60664 ( )
inline

Definition at line 30 of file iec60664.h.

◆ ~IEC60664()

IEC60664::~IEC60664 ( )
inline

Definition at line 31 of file iec60664.h.

Member Function Documentation

◆ Compute()

◆ ComputeClearanceDistance()

double IEC60664::ComputeClearanceDistance ( const POLLUTION_DEGREE  aPD,
const FIELD  aField,
const double  aAltitude 
)
private

◆ ComputeCreepageDistance()

double IEC60664::ComputeCreepageDistance ( const POLLUTION_DEGREE  aPD,
const MATERIAL_GROUP  aMG 
)
private

Definition at line 1295 of file iec60664.cpp.

References GetBasicCreepageDistance(), m_insulationType, m_RMSvoltage, and REINFORCED.

Referenced by Compute().

◆ GetBasicCreepageDistance()

double IEC60664::GetBasicCreepageDistance ( const double  aVoltage,
const POLLUTION_DEGREE  aPD,
const MATERIAL_GROUP  aMG 
)
private

Definition at line 704 of file iec60664.cpp.

References m_pcbMaterial, MG_I, MG_II, MG_IIIa, MG_IIIb, PD1, PD2, and PD3.

Referenced by ComputeCreepageDistance().

◆ GetClearanceAltitudeCorrectionFactor()

double IEC60664::GetClearanceAltitudeCorrectionFactor ( const double  aAltitude)
private

Definition at line 43 of file iec60664.cpp.

Referenced by ComputeClearanceDistance().

◆ GetClearanceDistance()

double IEC60664::GetClearanceDistance ( )
inline

Definition at line 96 of file iec60664.h.

References m_clearance.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ GetClearanceForRMSVoltage()

double IEC60664::GetClearanceForRMSVoltage ( const double  aVRMS,
const FIELD  aField = FIELD::INHOMOGENEOUS 
)
private

Definition at line 72 of file iec60664.cpp.

References HOMOGENEOUS, and INHOMOGENEOUS.

◆ GetClearanceToWithstandPeaks()

double IEC60664::GetClearanceToWithstandPeaks ( const double  aVoltage,
const FIELD  aField 
)
private

Definition at line 447 of file iec60664.cpp.

References HOMOGENEOUS, and INHOMOGENEOUS.

Referenced by ComputeClearanceDistance().

◆ GetClearanceToWithstandTransientVoltage()

double IEC60664::GetClearanceToWithstandTransientVoltage ( const double  aVoltage,
const POLLUTION_DEGREE  aPD,
const FIELD  aField 
)
private

Definition at line 290 of file iec60664.cpp.

References HOMOGENEOUS, INHOMOGENEOUS, PD1, PD2, PD3, and PD4.

Referenced by ComputeClearanceDistance().

◆ GetCreepageDistance()

double IEC60664::GetCreepageDistance ( )
inline

Definition at line 97 of file iec60664.h.

References m_creepage.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ GetMaterialGroupFromCTI()

IEC60664::MATERIAL_GROUP IEC60664::GetMaterialGroupFromCTI ( const double  aCTI)
private

Definition at line 690 of file iec60664.cpp.

References MG_I, MG_II, MG_IIIa, MG_IIIb, and NOT_INSULATING.

◆ GetMinGrooveWidth() [1/2]

double IEC60664::GetMinGrooveWidth ( )
inline

◆ GetMinGrooveWidth() [2/2]

double IEC60664::GetMinGrooveWidth ( const POLLUTION_DEGREE  aPD,
const double  aDistIso = 100 
)
private

Definition at line 25 of file iec60664.cpp.

References PD1, PD2, and PD3.

◆ GetRatedImpulseWithstandVoltage()

double IEC60664::GetRatedImpulseWithstandVoltage ( )

◆ SetAltitude()

void IEC60664::SetAltitude ( const double  aAltitude)
inline

Definition at line 79 of file iec60664.h.

References m_altitude.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ SetField()

void IEC60664::SetField ( const FIELD  aField)
inline

Definition at line 86 of file iec60664.h.

References m_field.

◆ SetFrequency()

void IEC60664::SetFrequency ( const double  aF)
inline

Definition at line 83 of file iec60664.h.

References m_frequency.

◆ SetInsulationType()

void IEC60664::SetInsulationType ( const INSULATION_TYPE  aIns)
inline

◆ SetMaterialGroup()

void IEC60664::SetMaterialGroup ( const MATERIAL_GROUP  aMG)
inline

Definition at line 82 of file iec60664.h.

References m_materialGroup.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ SetOvervoltageCategory()

void IEC60664::SetOvervoltageCategory ( const OV_CATEGORY  aOV)
inline

Definition at line 85 of file iec60664.h.

References m_overvoltageCat.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateTransientImpulse().

◆ SetPCBMaterial()

void IEC60664::SetPCBMaterial ( const bool  aPCB)
inline

Definition at line 81 of file iec60664.h.

References m_pcbMaterial.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ SetPeakVoltage()

void IEC60664::SetPeakVoltage ( const double  aV)
inline

Definition at line 89 of file iec60664.h.

References m_peakVoltage.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ SetPollutionDegree()

void IEC60664::SetPollutionDegree ( const POLLUTION_DEGREE  aPD)
inline

◆ SetRatedVoltage()

void IEC60664::SetRatedVoltage ( const double  aV)
inline

Definition at line 87 of file iec60664.h.

References m_ratedVoltage.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateTransientImpulse().

◆ SetRMSVoltage()

void IEC60664::SetRMSVoltage ( const double  aV)
inline

Definition at line 88 of file iec60664.h.

References m_RMSvoltage.

Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().

◆ SetTransientVoltage()

void IEC60664::SetTransientVoltage ( const double  aV)
inline

Member Data Documentation

◆ m_altitude

double IEC60664::m_altitude = 100e3
private

Definition at line 110 of file iec60664.h.

Referenced by Compute(), and SetAltitude().

◆ m_clearance

double IEC60664::m_clearance = -1
private

Definition at line 111 of file iec60664.h.

Referenced by Compute(), and GetClearanceDistance().

◆ m_coated

bool IEC60664::m_coated = false
private

Definition at line 104 of file iec60664.h.

◆ m_creepage

double IEC60664::m_creepage = -1
private

Definition at line 112 of file iec60664.h.

Referenced by Compute(), and GetCreepageDistance().

◆ m_field

FIELD IEC60664::m_field = FIELD::INHOMOGENEOUS
private

Definition at line 114 of file iec60664.h.

Referenced by Compute(), and SetField().

◆ m_frequency

double IEC60664::m_frequency = 50
private

Definition at line 103 of file iec60664.h.

Referenced by SetFrequency().

◆ m_insulationType

INSULATION_TYPE IEC60664::m_insulationType = INSULATION_TYPE::REINFORCED
private

◆ m_materialGroup

MATERIAL_GROUP IEC60664::m_materialGroup = MATERIAL_GROUP::NOT_INSULATING
private

Definition at line 116 of file iec60664.h.

Referenced by Compute(), and SetMaterialGroup().

◆ m_minGrooveWidth

double IEC60664::m_minGrooveWidth = -1
private

Definition at line 113 of file iec60664.h.

Referenced by Compute(), and GetMinGrooveWidth().

◆ m_overvoltageCat

OV_CATEGORY IEC60664::m_overvoltageCat = OV_CATEGORY::OV_IV
private

Definition at line 115 of file iec60664.h.

Referenced by GetRatedImpulseWithstandVoltage(), and SetOvervoltageCategory().

◆ m_pcbMaterial

bool IEC60664::m_pcbMaterial = false
private

Definition at line 105 of file iec60664.h.

Referenced by GetBasicCreepageDistance(), and SetPCBMaterial().

◆ m_peakVoltage

double IEC60664::m_peakVoltage = 100e3
private

Definition at line 108 of file iec60664.h.

Referenced by ComputeClearanceDistance(), and SetPeakVoltage().

◆ m_pollutionDegree

POLLUTION_DEGREE IEC60664::m_pollutionDegree = POLLUTION_DEGREE::PD3
private

Definition at line 117 of file iec60664.h.

Referenced by Compute(), and SetPollutionDegree().

◆ m_ratedVoltage

double IEC60664::m_ratedVoltage = 100e3
private

Definition at line 102 of file iec60664.h.

Referenced by GetRatedImpulseWithstandVoltage(), and SetRatedVoltage().

◆ m_RMSvoltage

double IEC60664::m_RMSvoltage = 100e3
private

Definition at line 107 of file iec60664.h.

Referenced by ComputeCreepageDistance(), and SetRMSVoltage().

◆ m_transientVoltage

double IEC60664::m_transientVoltage = 100e3
private

Definition at line 109 of file iec60664.h.

Referenced by ComputeClearanceDistance(), and SetTransientVoltage().


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