README

FIDES reliability library for Go

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Arrhenius

func Arrhenius(ea, t1, t0 float64) float64

    Arrhenius law

    func Arrhenius25

    func Arrhenius25(ea, temp float64) float64

      Arrhenius25 (in ºC, reference 25ºC)

      func CSensibility

      func CSensibility(class, typ string) float64

      func CapacitorAluFIT

      func CapacitorAluFIT(comp *Component, mission *Mission, dry bool) float64

      func CapacitorCeramicFIT

      func CapacitorCeramicFIT(comp *Component, mission *Mission, flex bool, class int) float64

      func CapacitorFIT

      func CapacitorFIT(comp *Component, mission *Mission) float64

        CapacitorFIT

        Attributes that need to be known for capacitors: basic type: ceramic, aluminium, tantalum ceramic: if flex or not ceramic: working voltage, temperature coefficient aluminium: dry/wet tantalum: dry/wet, glass/elastomer seal, tantalum/silver case, radial/smd/axial

        Codification of attributes in Component (1) Detection of dielectric (EIA codes): LnL (2) TANT / TAN, ELE / ELEC (3) FLEX (4) Default for tantalum: smd dry.

        func CapacitorTantFIT

        func CapacitorTantFIT(comp *Component, mission *Mission, typ string) float64

        func ConnectorFIT

        func ConnectorFIT(comp *Component, mission *Mission) float64

        func FIT

        func FIT(comp *Component, mission *Mission) float64

        func IcFIT

        func IcFIT(comp *Component, mission *Mission) float64

        func InductorFIT

        func InductorFIT(comp *Component, mission *Mission) float64

          InductorFIT

          func Lbase_Pcb

          func Lbase_Pcb(nLayers, nConn, class int, tech float64) float64

          func Lbase_capAlu

          func Lbase_capAlu(solid bool) (float64, float64, float64, float64, float64, float64)

          func Lbase_capCer

          func Lbase_capCer(polymer_terminations bool, class int, value, vmax float64) (float64, float64, float64, float64, float64, float64)

          func Lbase_capTant

          func Lbase_capTant(typ string) (float64, float64, float64, float64, float64, float64)

          func Lbase_case

          func Lbase_case(pkg string, n int) (float64, float64, float64, float64)

            give package and pins, return: l0rh, l0tc_case, l0tc_solder, l0mech

            func Lbase_ic_th

            func Lbase_ic_th(typ string) float64

            func Lbase_inductor

            func Lbase_inductor(typ string) (float64, float64, float64, float64, float64, float64, float64)

              Returns l0, ea, lth, ltc, lmech, tdelta, Cs

              func Lbase_resistor

              func Lbase_resistor(typ string, n int, v float64) (float64, float64, float64, float64, float64, float64)

                returning lbase, A, lth, ltc, lmech, lrh

                func Lcase_semi

                func Lcase_semi(pkg string) (float64, float64, float64, float64)

                func Lchip

                func Lchip(c *Component) float64

                func NorrisLandzberg

                func NorrisLandzberg(tdeltaRef, tdeltaUse, tmaxRef, tmaxUse, fRef, fUse float64, a, b, c float64) float64

                  Norris-Landberg, general form

                  For SAC305 lead-free solder: a=2.3, b=0.3, c=4562 See "Norris–Landzberg Acceleration Factors and Goldmann Constants for SAC305 Lead-Free Electronics" (Journal of Electronic Packaging · September 2012)

                  func OptoFIT

                  func OptoFIT(comp *Component, mission *Mission) float64

                  func PcbFIT

                  func PcbFIT(mission *Mission, nLayers, nConn int) float64

                  func PiApplication

                  func PiApplication(on bool) float64

                    Mess

                    func PiInduced

                    func PiInduced(on, analog, itf, power bool, csensibility float64) float64

                      contribution of induced factors (overstresses): Electrical overstress, mechanical overstress, thermal overstress

                      func PiMech

                      func PiMech(grms float64) float64

                        Basquin's law

                        func PiPM

                        func PiPM() float64

                          quality and technical control over manufacturing of the item

                          func PiPlacement

                          func PiPlacement(analog bool, itf bool, power bool) float64

                            PiPlacement represents the influence of the item placement in the system (particularly whether or not it is interfaced).

                            func PiProcess

                            func PiProcess() float64

                              quality and technical control over the development, manufacturing and usage process for the product containing the item

                              func PiRH

                              func PiRH(rh, temp float64) float64

                                Peck’s model

                                func PiRH2

                                func PiRH2(rh, temp float64, on bool) float64

                                  Same as PiRH, but return 0 in off mode

                                  func PiRHea

                                  func PiRHea(rh, temp, ea float64) float64

                                  func PiRuggedising

                                  func PiRuggedising() float64

                                    PiRuggedising represents the influence of the policy for taking account of overstresses in the product development.

                                    Return max value (very controlled process)

                                    func PiTCCase

                                    func PiTCCase(nc int, time, tdelta, tmax float64) float64

                                      Temperature cycling, case, Norris-Landzberg model (semiconductor cases)

                                      func PiTCSolder

                                      func PiTCSolder(nc int, time, phi, tdelta, tmax float64) float64

                                        Temperature cycling,solder joints, Norris-Landzberg model

                                        func PiTV

                                        func PiTV(tamb float64) float64

                                        func PiThermal_cap

                                        func PiThermal_cap(ea, tamb, sref, ratio float64) float64

                                        func PiThermal_connector

                                        func PiThermal_connector(on bool, temp float64) float64

                                        func PiThermal_ic

                                        func PiThermal_ic(temp float64, on bool) float64

                                          PiThermal for ICs is 0 in non-operating mode

                                          func PiThermal_resistor

                                          func PiThermal_resistor(ea, temp float64) float64

                                            Arrhenius law, 20ºC

                                            func PiThermal_semiconductor

                                            func PiThermal_semiconductor(ratio, temp float64) float64

                                            func ResistorFIT

                                            func ResistorFIT(comp *Component, mission *Mission) float64

                                            func Rthja

                                            func Rthja(pkg string, k bool) float64

                                              Rthermal returns the Rja (thermal resistance from junction to ambient) for known semiconductor packages, according to tables in FIDES 2009. The package name implies/contains the number of pins.

                                              K is a constant that depends on the substrate's thermal conductivity: k==false: K = 1.15 (low conductivity (FR4?) ) k==true: K = 0.94 (high conductivity)

                                              func Rthja_semi

                                              func Rthja_semi(pkg string, k bool) (int, float64, float64)

                                              func SemiconductorFIT

                                              func SemiconductorFIT(comp *Component, mission *Mission) float64

                                              Types

                                              type Component

                                              type Component struct {
                                              	Name             string
                                              	Code             string
                                              	Class            string
                                              	Type             string
                                              	Description      string
                                              	Package          string
                                              	N                int
                                              	Rth              float64
                                              	IsAnalog         bool
                                              	IsPower          bool
                                              	IsInterface      bool
                                              	Value            float64
                                              	Vp, V, P, I      float64
                                              	Vmax, Pmax, Imax float64
                                              	T, Tmax          float64
                                              	// Temperature coefficient. Set to NaN for undefined!
                                              	TC  float64
                                              	FIT float64
                                              }

                                              type Mission

                                              type Mission struct {
                                              	Phases []Phase
                                              }

                                              func NewMission

                                              func NewMission() *Mission

                                              func (*Mission) AddPhase

                                              func (mission *Mission) AddPhase(ph Phase)

                                              type Package

                                              type Package struct {
                                              	// contains filtered or unexported fields
                                              }

                                              type Phase

                                              type Phase struct {
                                              	Name          string
                                              	NCycles       int
                                              	CycleDuration float64
                                              
                                              	// hours in a year in this phase
                                              	Time   float64
                                              	On     bool
                                              	Tamb   float64
                                              	Tdelta float64
                                              	Tmax   float64
                                              	RH     float64
                                              	Grms   float64
                                              
                                              	// 1 = weak, 3 = strong
                                              	SalinePollution float64
                                              
                                              	// 1 = weak, 2 = moderate, 3 = strong
                                              	AmbientPollution float64
                                              
                                              	// 1 = weak, 2 = moderate, 3 = strong
                                              	ApplicationPollution float64
                                              
                                              	// Ingress protection (false = not hermetic, true = hermetic)
                                              	IP bool
                                              }