ZombieVerter Timing Diagrams: Difference between revisions

From openinverter.org wiki
Jump to navigation Jump to search
 
Line 212: Line 212:
=== ZombieVerter failing to Precharge ===
=== 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]]
[[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

Timing diagram showing 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