ZombieVerter Timing Diagrams: Difference between revisions
Jump to navigation
Jump to search
Purplemeanie (talk | contribs) |
Purplemeanie (talk | contribs) |
||
| Line 121: | Line 121: | ||
=== ZombieVerter successfully moving from RUN to OFF mode === | === 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 === | === ZombieVerter failing to Precharge === | ||
Revision as of 13:56, 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