ZombieVerter Timing Diagrams: Difference between revisions
Jump to navigation
Jump to search
Purplemeanie (talk | contribs) Created page with "== Timing Diagrams == Shown below are some simple ZombieVerter scenarios as timing diagrams. === ZombieVerter successfully moving from OFF to RUN mode === 800x800px === ZombieVerter successfully moving from RUN to OFF mode === none|thumb|800x800px|Timing diagram showing ZombieVerter successfully moving from RUN to OFF mode. === ZombieVerter failing to Precharge === File:Zombie Timing PreC..." |
Purplemeanie (talk | contribs) |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
=== ZombieVerter failing to Precharge === | === ZombieVerter failing to Precharge === | ||
[[File:Zombie Timing PreChargeFail.svg|800x800px]] | [[File:Zombie Timing PreChargeFail.svg|800x800px]] | ||
== Diagram Source == | |||
=== ZombieVerter successfully moving from OFF to RUN mode === | |||
<pre> | |||
@startuml | |||
scale 100 as 200 pixels | |||
hide time-axis | |||
skinparam backgroundColor #FFFFFF | |||
<style> | |||
timingDiagram { | |||
backgroundColor #white | |||
constraintArrow { | |||
LineThickness 2 | |||
LineColor #lightgray | |||
} | |||
.analog { | |||
LineThickness 3 | |||
} | |||
.blue { | |||
LineColor blue | |||
LineThickness 5 | |||
} | |||
} | |||
</style> | |||
title "ZombieVerter Timing Diagram - RUN -> Start (not to scale)" | |||
footer 2026-03 | |||
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n" | |||
rectangle "OpMode" as OM | |||
concise "Torque Demand" as TQ | |||
binary "T15" as T15 | |||
binary "Throttle Position" as THROTTLE | |||
binary "Start" as START | |||
binary "Contactor Power" as CP | |||
binary "NegativeCON" as NEG | |||
binary "PositiveCON" as POS | |||
binary "PrechargeCON" as PCH | |||
binary "Inverter Power" as INV | |||
analog "UDC Voltage" as UDC <<analog>> | |||
OM is MOD_OFF #LightGray | |||
T15 is {low,high} | |||
START is low | |||
CP is high | |||
INV is low | |||
NEG is low | |||
POS is low | |||
PCH is low | |||
TQ is ZERO | |||
THROTTLE is {low,high} | |||
@50 as :precharge | |||
' Start | |||
@0 | |||
UDC is 0 | |||
'OM is MOD_OFF | |||
@10 | |||
T15 is high | |||
@:precharge-20 | |||
THROTTLE is low | |||
@:precharge-10 | |||
START is high | |||
START --[#gray]> OM@+10 | |||
T15 --[#gray]> OM@+10 | |||
@:precharge | |||
OM is MOD_PRECHARGE #LightBlue | |||
NEG is high | |||
PCH@50 <-[#blue]> @+250 : {250ms} | |||
@:precharge+10 | |||
START is low | |||
THROTTLE is {low,high} | |||
@300 | |||
PCH is high | |||
UDC is 0 | |||
PCH --[#gray]> UDC | |||
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time | |||
@395 | |||
UDC is 250 | |||
UDC --[#gray]> OM@+5 | |||
@400 | |||
OM is MOD_RUN #PaleGreen | |||
TQ is "~THROTTLE" | |||
INV@400 <-[#blue]> @+250 : {250ms} | |||
POS@400 <-[#blue]> @+250 : {250ms} | |||
@+250 | |||
INV is high | |||
POS is high | |||
@+100 | |||
INV is high | |||
THROTTLE is {low,high} | |||
@enduml | |||
</pre> | |||
=== ZombieVerter successfully moving from RUN to OFF mode === | |||
<pre> | |||
@startuml | |||
scale 100 as 200 pixels | |||
hide time-axis | |||
skinparam backgroundColor white | |||
<style> | |||
timingDiagram { | |||
constraintArrow { | |||
LineThickness 2 | |||
LineColor #lightgray | |||
} | |||
.analog { | |||
LineThickness 3 | |||
} | |||
.blue { | |||
LineColor blue | |||
LineThickness 5 | |||
} | |||
} | |||
</style> | |||
title "ZombieVerter Timing Diagram - RUN ->Stop (not to scale)" | |||
footer 2026-03 | |||
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal MOD_OFF state.\nThis example shows T15 going low, allowing the system to enter MOD_OFF successfully.\n" | |||
rectangle "OpMode" as OM | |||
concise "Torque Demand" as TQ | |||
binary "T15" as T15 | |||
binary "Throttle Position" as THROTTLE | |||
binary "Start" as START | |||
binary "Contactor Power" as CP | |||
binary "NegativeCON" as NEG | |||
binary "PositiveCON" as POS | |||
binary "PrechargeCON" as PCH | |||
binary "Inverter Power" as INV | |||
analog "UDC Voltage" as UDC <<analog>> | |||
' Defaults seem to need to go before any time variable definitions | |||
T15 is high | |||
INV is high | |||
NEG is high | |||
POS is high | |||
PCH is high | |||
CP is high | |||
START is low | |||
THROTTLE is {low,high} | |||
OM is MOD_RUN #PaleGreen | |||
TQ is "~THROTTLE" | |||
@145 as :t15_off | |||
@500 as :discharge_time | |||
@:discharge_time+250 as :contactor_timeout | |||
' End of Normal Operation | |||
@0 | |||
UDC is 250 | |||
@:t15_off | |||
T15 is low | |||
T15 --[#gray]> OM@+5 | |||
@:t15_off+5 | |||
OM is MOD_OFF | |||
INV is low | |||
TQ is ZERO | |||
NEG@150 <-[#blue]> @:contactor_timeout : {2500ms} | |||
UDC is 250 | |||
@:discharge_time | |||
UDC is 0 | |||
highlight 150 to :discharge_time #Lavender;line:DimGrey : Variable Discharge Time | |||
@:contactor_timeout | |||
NEG is low | |||
POS is low | |||
PCH is low | |||
THROTTLE is low | |||
note top of NEG : Contactor Timeout | |||
@+10 | |||
THROTTLE is {hidden} | |||
@enduml | |||
</pre> | |||
=== ZombieVerter failing to Precharge === | |||
<pre> | |||
@startuml | |||
scale 100 as 100 pixels | |||
hide time-axis | |||
skinparam backgroundColor white | |||
<style> | |||
timingDiagram { | |||
constraintArrow { | |||
LineThickness 2 | |||
LineColor #lightgray | |||
} | |||
.analog { | |||
LineThickness 3 | |||
} | |||
.blue { | |||
LineColor blue | |||
LineThickness 5 | |||
} | |||
} | |||
</style> | |||
title "ZombieVerter Timing Diagram - Precharge Fail (not to scale)" | |||
footer 2026-03 | |||
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to the precharge timeout ocurring and the system failing to start.\nThis example shows UDC rising but failing to reach UDCmin. The user deactivates T15.\nOther scenarios such as a contactor failing to close may also cause this flow.\n" | |||
rectangle "OpMode" as OM | |||
concise "Torque Demand" as TQ | |||
binary "T15" as T15 | |||
binary "Throttle Position" as THROTTLE | |||
binary "Start" as START | |||
binary "Contactor Power" as CP | |||
binary "NegativeCON" as NEG | |||
binary "PositiveCON" as POS | |||
binary "PrechargeCON" as PCH | |||
binary "Inverter Power" as INV | |||
binary "UDC Voltage" as UDC <<analog>> | |||
OM is MOD_OFF #LightGray | |||
T15 is {low,high} | |||
START is low | |||
THROTTLE is {low,high} | |||
CP is high | |||
INV is low | |||
NEG is low | |||
POS is low | |||
PCH is low | |||
TQ is ZERO | |||
@50 as :precharge | |||
@300 as :precharge_high | |||
@1000 as :precharge_fail | |||
' Start | |||
@0 | |||
UDC is 0 | |||
@10 | |||
T15 is high | |||
@:precharge-20 | |||
THROTTLE is low | |||
@:precharge-10 | |||
START is high | |||
START --[#gray]> OM@+10 | |||
T15 --[#gray]> OM@+10 | |||
@:precharge | |||
OM is MOD_PRECHARGE #LightBlue | |||
NEG is high | |||
PCH@50 <-[#blue]> @+250 : {250ms} | |||
@:precharge+10 | |||
START is low | |||
THROTTLE is {low,high} | |||
@:precharge_high | |||
PCH is high | |||
UDC is {low,high} | |||
PCH --[#gray]> UDC | |||
note bottom of UDC : UDC does not reach UDCmin within precharge timeout | |||
highlight :precharge_high to :precharge_fail #Lavender;line:DimGray : Precharge timeout (5 seconds) | |||
@:precharge_fail-5 | |||
@:precharge_fail | |||
OM is MOD_PCHFAIL #RED | |||
PCH is low | |||
@+200 | |||
UDC is 0 | |||
@+50 | |||
T15 is low | |||
OM is MOD_OFF | |||
INV is low | |||
POS is low | |||
NEG is low | |||
T15 --[#gray]> OM | |||
@+100 | |||
INV is low | |||
THROTTLE is {low,high} | |||
@enduml | |||
</pre> | |||
[[Category:ZombieVerter]] | |||
Latest revision as of 13:57, 26 March 2026
Timing Diagrams
Shown below are some simple ZombieVerter scenarios as timing diagrams.
ZombieVerter successfully moving from OFF to RUN mode
ZombieVerter successfully moving from RUN to OFF mode
ZombieVerter failing to Precharge
Diagram Source
ZombieVerter successfully moving from OFF to RUN mode
@startuml
scale 100 as 200 pixels
hide time-axis
skinparam backgroundColor #FFFFFF
<style>
timingDiagram {
backgroundColor #white
constraintArrow {
LineThickness 2
LineColor #lightgray
}
.analog {
LineThickness 3
}
.blue {
LineColor blue
LineThickness 5
}
}
</style>
title "ZombieVerter Timing Diagram - RUN -> Start (not to scale)"
footer 2026-03
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal start sequence.\nThis example shows UDC rising and reaching UDCmin within the precharge timeout period, allowing the system to enter MOD_RUN successfully.\n"
rectangle "OpMode" as OM
concise "Torque Demand" as TQ
binary "T15" as T15
binary "Throttle Position" as THROTTLE
binary "Start" as START
binary "Contactor Power" as CP
binary "NegativeCON" as NEG
binary "PositiveCON" as POS
binary "PrechargeCON" as PCH
binary "Inverter Power" as INV
analog "UDC Voltage" as UDC <<analog>>
OM is MOD_OFF #LightGray
T15 is {low,high}
START is low
CP is high
INV is low
NEG is low
POS is low
PCH is low
TQ is ZERO
THROTTLE is {low,high}
@50 as :precharge
' Start
@0
UDC is 0
'OM is MOD_OFF
@10
T15 is high
@:precharge-20
THROTTLE is low
@:precharge-10
START is high
START --[#gray]> OM@+10
T15 --[#gray]> OM@+10
@:precharge
OM is MOD_PRECHARGE #LightBlue
NEG is high
PCH@50 <-[#blue]> @+250 : {250ms}
@:precharge+10
START is low
THROTTLE is {low,high}
@300
PCH is high
UDC is 0
PCH --[#gray]> UDC
highlight 300 to 395 #Lavender;line:DimGrey : Variable Pre-Charge Time
@395
UDC is 250
UDC --[#gray]> OM@+5
@400
OM is MOD_RUN #PaleGreen
TQ is "~THROTTLE"
INV@400 <-[#blue]> @+250 : {250ms}
POS@400 <-[#blue]> @+250 : {250ms}
@+250
INV is high
POS is high
@+100
INV is high
THROTTLE is {low,high}
@enduml
ZombieVerter successfully moving from RUN to OFF mode
@startuml
scale 100 as 200 pixels
hide time-axis
skinparam backgroundColor white
<style>
timingDiagram {
constraintArrow {
LineThickness 2
LineColor #lightgray
}
.analog {
LineThickness 3
}
.blue {
LineColor blue
LineThickness 5
}
}
</style>
title "ZombieVerter Timing Diagram - RUN ->Stop (not to scale)"
footer 2026-03
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to a normal MOD_OFF state.\nThis example shows T15 going low, allowing the system to enter MOD_OFF successfully.\n"
rectangle "OpMode" as OM
concise "Torque Demand" as TQ
binary "T15" as T15
binary "Throttle Position" as THROTTLE
binary "Start" as START
binary "Contactor Power" as CP
binary "NegativeCON" as NEG
binary "PositiveCON" as POS
binary "PrechargeCON" as PCH
binary "Inverter Power" as INV
analog "UDC Voltage" as UDC <<analog>>
' Defaults seem to need to go before any time variable definitions
T15 is high
INV is high
NEG is high
POS is high
PCH is high
CP is high
START is low
THROTTLE is {low,high}
OM is MOD_RUN #PaleGreen
TQ is "~THROTTLE"
@145 as :t15_off
@500 as :discharge_time
@:discharge_time+250 as :contactor_timeout
' End of Normal Operation
@0
UDC is 250
@:t15_off
T15 is low
T15 --[#gray]> OM@+5
@:t15_off+5
OM is MOD_OFF
INV is low
TQ is ZERO
NEG@150 <-[#blue]> @:contactor_timeout : {2500ms}
UDC is 250
@:discharge_time
UDC is 0
highlight 150 to :discharge_time #Lavender;line:DimGrey : Variable Discharge Time
@:contactor_timeout
NEG is low
POS is low
PCH is low
THROTTLE is low
note top of NEG : Contactor Timeout
@+10
THROTTLE is {hidden}
@enduml
ZombieVerter failing to Precharge
@startuml
scale 100 as 100 pixels
hide time-axis
skinparam backgroundColor white
<style>
timingDiagram {
constraintArrow {
LineThickness 2
LineColor #lightgray
}
.analog {
LineThickness 3
}
.blue {
LineColor blue
LineThickness 5
}
}
</style>
title "ZombieVerter Timing Diagram - Precharge Fail (not to scale)"
footer 2026-03
caption "\nThis diagram illustrates the timing of ZombieVerter input and output signals leading to the precharge timeout ocurring and the system failing to start.\nThis example shows UDC rising but failing to reach UDCmin. The user deactivates T15.\nOther scenarios such as a contactor failing to close may also cause this flow.\n"
rectangle "OpMode" as OM
concise "Torque Demand" as TQ
binary "T15" as T15
binary "Throttle Position" as THROTTLE
binary "Start" as START
binary "Contactor Power" as CP
binary "NegativeCON" as NEG
binary "PositiveCON" as POS
binary "PrechargeCON" as PCH
binary "Inverter Power" as INV
binary "UDC Voltage" as UDC <<analog>>
OM is MOD_OFF #LightGray
T15 is {low,high}
START is low
THROTTLE is {low,high}
CP is high
INV is low
NEG is low
POS is low
PCH is low
TQ is ZERO
@50 as :precharge
@300 as :precharge_high
@1000 as :precharge_fail
' Start
@0
UDC is 0
@10
T15 is high
@:precharge-20
THROTTLE is low
@:precharge-10
START is high
START --[#gray]> OM@+10
T15 --[#gray]> OM@+10
@:precharge
OM is MOD_PRECHARGE #LightBlue
NEG is high
PCH@50 <-[#blue]> @+250 : {250ms}
@:precharge+10
START is low
THROTTLE is {low,high}
@:precharge_high
PCH is high
UDC is {low,high}
PCH --[#gray]> UDC
note bottom of UDC : UDC does not reach UDCmin within precharge timeout
highlight :precharge_high to :precharge_fail #Lavender;line:DimGray : Precharge timeout (5 seconds)
@:precharge_fail-5
@:precharge_fail
OM is MOD_PCHFAIL #RED
PCH is low
@+200
UDC is 0
@+50
T15 is low
OM is MOD_OFF
INV is low
POS is low
NEG is low
T15 --[#gray]> OM
@+100
INV is low
THROTTLE is {low,high}
@enduml