kicad/spice/copy/sub/ISO16750-2.lib

255 lines
9.4 KiB
Plaintext
Raw Permalink Normal View History

2022-04-08 21:49:19 -06:00
* Copyright (c) 2017 Linear Technology Corporation. All rights reserved.
* Author: Dan Eddleman
*
* Automotive Transient Models (ISO-16750-2)
***************************************************************
*.subckt 4-2_12V_DirectCurrentSupplyVoltageMinimum + -
*.param Usmin = 6
*V1 + - {Usmin}
*.ends 4-2_12V_DirectCurrentSupplyVoltageMinimum
*.subckt 4-2_24V_DirectCurrentSupplyVoltageMinimum + -
*.param Usmin = 10
*V1 + - {Usmin}
*.ends 4-2_24V_DirectCurrentSupplyVoltageMinimum
*.subckt 4-2_12V_DirectCurrentSupplyVoltageMaximum + -
*.param Usmin = 16
*V1 + - {Usmin}
*.ends 4-2_12V_DirectCurrentSupplyVoltageMaximum
*.subckt 4-2_24V_DirectCurrentSupplyVoltageMaximum + -
*.param Usmin = 32
*V1 + - {Usmin}
*.ends 4-2_24V_DirectCurrentSupplyVoltageMaximum
*.subckt 4-3_12V_Overvoltage + -
*.param Usmax = 24
*V1 + - {Usmax}
*.ends 4-3_12V_Overvoltage
*.subckt 4-3_24V_Overvoltage + -
*.param Usmax = 36
*V1 + - {Usmax}
*.ends 4-3_24V_Overvoltage
.subckt 4-4_12V_SuperimposedAlternatingVoltage + -
.param Umax = 16
.param Upp=4
.param Ri=50m
A1 N001 N004 0 0 0 0 N002 0 MODULATOR mark=25k space=0
V1 N005 - PWL(0 0 10u {Umax-(Upp/2)}) Rser=1m
B1 N001 0 V=2e-3*exp(v(t1)/9.654)
V2 N004 0 PWL(0 0 1u 0 +1u {Upp/2}) Rser=1m
R1 + N003 {Ri}
E1 N003 N005 N002 0 1
V3 t1 0 PWL(0 0 60 60 120 0 180 60 240 0 300 60 360 0 420 60 480 0 540 60 600 0) Rser=1m
.ends 4-4_12V_SuperimposedAlternatingVoltage
.subckt 4-4_24V_SuperimposedAlternatingVoltage + -
.param Umax = 32
.param Upp=10
.param Ri=50m
A1 N001 N004 0 0 0 0 N002 0 MODULATOR mark=25k space=0
V1 N005 - PWL(0 0 10u {Umax-(Upp/2)}) Rser=1m
B1 N001 0 V=2e-3*exp(v(t1)/9.654)
V2 N004 0 PWL(0 0 1u 0 +1u {Upp/2}) Rser=1m
R1 + N003 {Ri}
E1 N003 N005 N002 0 1
V3 t1 0 PWL(0 0 60 60 120 0 180 60 240 0 300 60 360 0 420 60 480 0 540 60 600 0) Rser=1m
.ends 4-4_24V_SuperimposedAlternatingVoltage
.subckt 4-5_12V_SlowDecreaseAndIncreaseOfSupplyVoltage + -
.param Usmin = 6
.param t0=1m
V1 + - PWL(0 0 {t0} 0 +1u {Usmin} {Usmin*60/0.5} 0 {2*Usmin*60/0.5} {Usmin})
.ends 4-5_12V_SlowDecreaseAndIncreaseOfSupplyVoltage
.subckt 4-5_24V_SlowDecreaseAndIncreaseOfSupplyVoltage + -
.param Usmin = 10
.param t0=1m
V1 + - PWL(0 0 {t0} 0 +1u {Usmin} {Usmin*60/0.5} 0 {2*Usmin*60/0.5} {Usmin})
.ends 4-5_24V_SlowDecreaseAndIncreaseOfSupplyVoltage
.subckt 4-6-1_12V_MomentaryDropInSupplyVoltage + -
.param Usmin = 6
V2 + - PWL(0 0 +1u {Usmin} 10 {Usmin} +1m 4.5 10.1 4.5 +1m {Usmin})
.ends 4-6-1_12V_MomentaryDropInSupplyVoltage
.subckt 4-6-1_24V_MomentaryDropInSupplyVoltage + -
.param Usmin = 10
V2 + - PWL(0 0 +1u {Usmin} 10 {Usmin} +1m 9 10.1 9 +1m {Usmin})
.ends 4-6-1_24V_MomentaryDropInSupplyVoltage
.subckt 4-6-2_12V_ResetBehaviourAtVoltageDrop + -
.param Usmin = 6
V1 + - PWL(0 0 +1u {Usmin} 20 {Usmin} +1m {Usmin*0.95} +5 {Usmin*0.95} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.90} +5 {Usmin*0.90} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.85} +5 {Usmin*0.85} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.8} +5 {Usmin*0.8} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.75} +5 {Usmin*0.75} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.7} +5 {Usmin*0.7} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.65} +5 {Usmin*0.65} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.6} +5 {Usmin*0.6} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.55} +5 {Usmin*0.55} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.5} +5 {Usmin*0.5} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.45} +5 {Usmin*0.45} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.4} +5 {Usmin*0.4} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.35} +5 {Usmin*0.35} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.3} +5 {Usmin*0.3} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.25} +5 {Usmin*0.25} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.2} +5 {Usmin*0.2} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.15} +5 {Usmin*0.15} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.1} +5 {Usmin*0.1} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.05} +5 {Usmin*0.05} +1m {Usmin} +10 {Usmin} +1m {Usmin*0} +5 {Usmin*0} +1m {Usmin} +40 {Usmin})
.ends 4-6-2_12V_ResetBehaviourAtVoltageDrop
.subckt 4-6-2_24V_ResetBehaviourAtVoltageDrop + -
.param Usmin = 10
V1 + - PWL(0 0 +1u {Usmin} 20 {Usmin} +1m {Usmin*0.95} +5 {Usmin*0.95} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.90} +5 {Usmin*0.90} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.85} +5 {Usmin*0.85} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.8} +5 {Usmin*0.8} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.75} +5 {Usmin*0.75} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.7} +5 {Usmin*0.7} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.65} +5 {Usmin*0.65} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.6} +5 {Usmin*0.6} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.55} +5 {Usmin*0.55} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.5} +5 {Usmin*0.5} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.45} +5 {Usmin*0.45} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.4} +5 {Usmin*0.4} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.35} +5 {Usmin*0.35} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.3} +5 {Usmin*0.3} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.25} +5 {Usmin*0.25} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.2} +5 {Usmin*0.2} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.15} +5 {Usmin*0.15} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.1} +5 {Usmin*0.1} +1m {Usmin} +10 {Usmin} +1m {Usmin*0.05} +5 {Usmin*0.05} +1m {Usmin} +10 {Usmin} +1m {Usmin*0} +5 {Usmin*0} +1m {Usmin} +40 {Usmin})
.ends 4-6-2_24V_ResetBehaviourAtVoltageDrop
.subckt 4-6-3_12V_StartingProfile + -
.param Ub = 13.5
.param Us6 = 6
.param Us = 6.5
.param tf = 5m
.param t6 = 15m
.param t7 = 50m
.param t8 = 10000m
.param tr = 100m
.param Ri = 10m
.param t0 = 1
R1 + - {Ri}
I3 - + PWL(0 0 +1u {Ub/Ri} {t0} {Ub/Ri} {t0+tf} {Us6/Ri} {t0+tf+t6} {Us6/Ri} {t0+tf+t6+t7} {(Us+1)/Ri} {t0+tf+t6+t7+t8} {(Us+1)/Ri} {t0+tf+t6+t7+t8+tr} {Ub/Ri})
I1 - + SINE(0 {1/Ri} 2 {t0+tf+t6+t7} 0 180 {t8*2})
.ends 4-6-3_12V_StartingProfile
.subckt 4-6-3_24V_StartingProfile + -
.param Ub = 27
.param Us6 = 6
.param Us = 10
.param tf = 10m
.param t6 = 50m
.param t7 = 50m
.param t8 = 1000m
.param tr = 40m
.param Ri = 10m
.param t0 = 1
R1 + - {Ri}
I3 - + PWL(0 0 +1u {Ub/Ri} {t0} {Ub/Ri} {t0+tf} {Us6/Ri} {t0+tf+t6} {Us6/Ri} {t0+tf+t6+t7} {(Us+1)/Ri} {t0+tf+t6+t7+t8} {(Us+1)/Ri} {t0+tf+t6+t7+t8+tr} {Ub/Ri})
I1 - + SINE(0 {1/Ri} 2 {t0+tf+t6+t7} 0 180 {t8*2})
.ends 4-6-3_24V_StartingProfile
.subckt 4-6-4_12V_LoadDumpWithoutSuppressionTestA + -
.param Ua=14
.param Us=101
.param UsClamp={Us}
.param Ri=0.5
.param t0=1
.param Creservoir=0.15 Rshunt=1.55
L1 N004 N005 2m
D1 N007 + Dideal
V2 N007 - PWL(0 0 1m {Ua})
R1 N005 - {Rshunt}
D2 N006 + Dideal
C1 N003 - {Creservoir}
R2 N003 N002 100
V3 N002 - PWL(0 0 1m {Us})
S1 N004 N003 N001 0 Sideal
V4 N001 0 PULSE(0 1 {t0} +1n +1n 1 60 10)
R3 N006 N005 {Ri}
D3 + N008 Dideal
V5 N008 - PWL(0 0 1m {Usclamp})
.model Sideal SW(Ron=1m Roff=100MEG Vt=0.5 Vh=-0.1)
.model Dideal D(Ron=1m Roff=1MEG Vfwd=1m epsilon=10m)
.ic V(n003)={Us}
.ends 4-6-4_12V_LoadDumpWithoutSuppressionTestA
.subckt 4-6-4_24V_LoadDumpWithoutSuppressionTestA + -
.param Ua=28
.param Us=202
.param UsClamp={Us}
.param Ri=1
.param t0=1
.param Creservoir=0.15 Rshunt=1.55
L1 N004 N005 2m
D1 N007 + Dideal
V2 N007 - PWL(0 0 1m {Ua})
R1 N005 - {Rshunt}
D2 N006 + Dideal
C1 N003 - {Creservoir}
R2 N003 N002 100
V3 N002 - PWL(0 0 1m {Us})
S1 N004 N003 N001 0 Sideal
V4 N001 0 PULSE(0 1 {t0} +1n +1n 1 60 10)
R3 N006 N005 {Ri}
D3 + N008 Dideal
V5 N008 - PWL(0 0 1m {Usclamp})
.model Sideal SW(Ron=1m Roff=100MEG Vt=0.5 Vh=-0.1)
.model Dideal D(Ron=1m Roff=1MEG Vfwd=1m epsilon=10m)
.ic V(n003)={Us}
.ends 4-6-4_24V_LoadDumpWithoutSuppressionTestA
.subckt 4-6-4_12V_LoadDumpWithSuppressionTestB + -
.param Ua=14
.param Us=101
.param UsClamp=35
.param Ri=0.5
.param t0=1
.param Creservoir=0.15 Rshunt=1.55
L1 N004 N005 2m
D1 N007 + Dideal
V2 N007 - PWL(0 0 1m {Ua})
R1 N005 - {Rshunt}
D2 N006 + Dideal
C1 N003 - {Creservoir}
R2 N003 N002 100
V3 N002 - PWL(0 0 1m {Us})
S1 N004 N003 N001 0 Sideal
V4 N001 0 PULSE(0 1 {t0} +1n +1n 1 60 10)
R3 N006 N005 {Ri}
D3 + N008 Dideal
V5 N008 - PWL(0 0 1m {Usclamp})
.model Sideal SW(Ron=1m Roff=100MEG Vt=0.5 Vh=-0.1)
.model Dideal D(Ron=1m Roff=1MEG Vfwd=1m epsilon=10m)
.ic V(n003)={Us}
.ends 4-6-4_12V_LoadDumpWithSuppressionTestB
.subckt 4-6-4_24V_LoadDumpWithSuppressionTestB + -
.param Ua=28
.param Us=202
.param UsClamp=58
.param Ri=1
.param t0=1
.param Creservoir=0.15 Rshunt=1.55
L1 N004 N005 2m
D1 N007 + Dideal
V2 N007 - PWL(0 0 1m {Ua})
R1 N005 - {Rshunt}
D2 N006 + Dideal
C1 N003 - {Creservoir}
R2 N003 N002 100
V3 N002 - PWL(0 0 1m {Us})
S1 N004 N003 N001 0 Sideal
V4 N001 0 PULSE(0 1 {t0} +1n +1n 1 60 10)
R3 N006 N005 {Ri}
D3 + N008 Dideal
V5 N008 - PWL(0 0 1m {Usclamp})
.model Sideal SW(Ron=1m Roff=100MEG Vt=0.5 Vh=-0.1)
.model Dideal D(Ron=1m Roff=1MEG Vfwd=1m epsilon=10m)
.ic V(n003)={Us}
.ends 4-6-4_24V_LoadDumpWithSuppressionTestB
.subckt 4-7_12V_ReversedVoltageCase2 + -
V1 + - PWL(0 0 1m {Ua} 100m {Ua} +1u {-1*Ua})
.param Ua=14
.ends 4-7_12V_ReversedVoltageCase2
.subckt 4-9-1_12V_SingleLineInterruption + -
V3 N002 0 PWL(0 -1 {t0} -1 +1u 1 +10 1 +1u -1)
.param Ua=14
.param t0=1
V2 N001 - PWL(0 0 1u {Ua})
S1 N001 + N002 0 SHORT
.model SHORT SW(Ron=1m Roff=10MEG Vt=0 Vh=-.5)
.ends 4-9-1_12V_SingleLineInterruption
.subckt 4-7_24V_ReversedVoltageCase2 + -
V1 + - PWL(0 0 1m {Ua} 100m {Ua} +1u {-1*Ua})
.param Ua=28
.ends 4-7_24V_ReversedVoltageCase2
.subckt 4-9-1_24V_SingleLineInterruption + -
.param Ua=28
.param t0=1
V2 N001 - PWL(0 0 1u {Ua})
S1 N001 + N002 0 SHORT
V3 N002 0 PWL(0 -1 {t0} -1 +1u 1 +10 1 +1u -1)
.model SHORT SW(Ron=1m Roff=10MEG Vt=0 Vh=-.5)
.ends 4-9-1_24V_SingleLineInterruption