KiCad PCB EDA Suite
|
#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 |
Definition at line 27 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
INHOMOGENEOUS | |
HOMOGENEOUS |
Definition at line 66 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
FUNCTIONAL | |
BASIC | |
REINFORCED |
Definition at line 59 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
MG_I | |
MG_II | |
MG_IIIa | |
MG_IIIb | |
NOT_INSULATING |
Definition at line 50 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
OV_I | |
OV_II | |
OV_III | |
OV_IV |
Definition at line 42 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
PD1 | |
PD2 | |
PD3 | |
PD4 |
Definition at line 34 of file iec60664.h.
|
strong |
Enumerator | |
---|---|
AC_50_OR_60HZ | |
IMPULSE_1_2_50 |
Definition at line 72 of file iec60664.h.
|
inline |
Definition at line 30 of file iec60664.h.
|
inline |
Definition at line 31 of file iec60664.h.
bool IEC60664::Compute | ( | ) |
Definition at line 1320 of file iec60664.cpp.
References ComputeClearanceDistance(), ComputeCreepageDistance(), GetMinGrooveWidth(), m_altitude, m_clearance, m_creepage, m_field, m_materialGroup, m_minGrooveWidth, and m_pollutionDegree.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
private |
Definition at line 1260 of file iec60664.cpp.
References GetClearanceAltitudeCorrectionFactor(), GetClearanceToWithstandPeaks(), GetClearanceToWithstandTransientVoltage(), m_insulationType, m_peakVoltage, m_transientVoltage, and REINFORCED.
Referenced by Compute().
|
private |
Definition at line 1295 of file iec60664.cpp.
References GetBasicCreepageDistance(), m_insulationType, m_RMSvoltage, and REINFORCED.
Referenced by Compute().
|
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().
|
private |
Definition at line 43 of file iec60664.cpp.
Referenced by ComputeClearanceDistance().
|
inline |
Definition at line 96 of file iec60664.h.
References m_clearance.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
private |
Definition at line 72 of file iec60664.cpp.
References HOMOGENEOUS, and INHOMOGENEOUS.
|
private |
Definition at line 447 of file iec60664.cpp.
References HOMOGENEOUS, and INHOMOGENEOUS.
Referenced by ComputeClearanceDistance().
|
private |
Definition at line 290 of file iec60664.cpp.
References HOMOGENEOUS, INHOMOGENEOUS, PD1, PD2, PD3, and PD4.
Referenced by ComputeClearanceDistance().
|
inline |
Definition at line 97 of file iec60664.h.
References m_creepage.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
private |
Definition at line 690 of file iec60664.cpp.
References MG_I, MG_II, MG_IIIa, MG_IIIb, and NOT_INSULATING.
|
inline |
Definition at line 95 of file iec60664.h.
References m_minGrooveWidth.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage(), and Compute().
|
private |
Definition at line 25 of file iec60664.cpp.
double IEC60664::GetRatedImpulseWithstandVoltage | ( | ) |
Definition at line 595 of file iec60664.cpp.
References m_overvoltageCat, m_ratedVoltage, OV_I, OV_II, OV_III, and OV_IV.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateTransientImpulse().
|
inline |
Definition at line 79 of file iec60664.h.
References m_altitude.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 86 of file iec60664.h.
References m_field.
|
inline |
Definition at line 83 of file iec60664.h.
References m_frequency.
|
inline |
Definition at line 84 of file iec60664.h.
References m_insulationType.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 82 of file iec60664.h.
References m_materialGroup.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 85 of file iec60664.h.
References m_overvoltageCat.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateTransientImpulse().
|
inline |
Definition at line 81 of file iec60664.h.
References m_pcbMaterial.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 89 of file iec60664.h.
References m_peakVoltage.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 80 of file iec60664.h.
References m_pollutionDegree.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 87 of file iec60664.h.
References m_ratedVoltage.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateTransientImpulse().
|
inline |
Definition at line 88 of file iec60664.h.
References m_RMSvoltage.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
inline |
Definition at line 90 of file iec60664.h.
References m_transientVoltage.
Referenced by PANEL_ELECTRICAL_SPACING_IEC60664::CalculateClearanceCreepage().
|
private |
Definition at line 110 of file iec60664.h.
Referenced by Compute(), and SetAltitude().
|
private |
Definition at line 111 of file iec60664.h.
Referenced by Compute(), and GetClearanceDistance().
|
private |
Definition at line 104 of file iec60664.h.
|
private |
Definition at line 112 of file iec60664.h.
Referenced by Compute(), and GetCreepageDistance().
|
private |
Definition at line 114 of file iec60664.h.
Referenced by Compute(), and SetField().
|
private |
Definition at line 103 of file iec60664.h.
Referenced by SetFrequency().
|
private |
Definition at line 118 of file iec60664.h.
Referenced by ComputeClearanceDistance(), ComputeCreepageDistance(), and SetInsulationType().
|
private |
Definition at line 116 of file iec60664.h.
Referenced by Compute(), and SetMaterialGroup().
|
private |
Definition at line 113 of file iec60664.h.
Referenced by Compute(), and GetMinGrooveWidth().
|
private |
Definition at line 115 of file iec60664.h.
Referenced by GetRatedImpulseWithstandVoltage(), and SetOvervoltageCategory().
|
private |
Definition at line 105 of file iec60664.h.
Referenced by GetBasicCreepageDistance(), and SetPCBMaterial().
|
private |
Definition at line 108 of file iec60664.h.
Referenced by ComputeClearanceDistance(), and SetPeakVoltage().
|
private |
Definition at line 117 of file iec60664.h.
Referenced by Compute(), and SetPollutionDegree().
|
private |
Definition at line 102 of file iec60664.h.
Referenced by GetRatedImpulseWithstandVoltage(), and SetRatedVoltage().
|
private |
Definition at line 107 of file iec60664.h.
Referenced by ComputeCreepageDistance(), and SetRMSVoltage().
|
private |
Definition at line 109 of file iec60664.h.
Referenced by ComputeClearanceDistance(), and SetTransientVoltage().