Guide#

  • UltraZohm is a powerful real-time computation unit

  • The UltraZohm is used to control power electronics and electrical drives

  • The UltraZohm is work in progress

  • Funded by BMBF-Project KI-Power

../_images/front_lowres.png

Fig. 16 Front of the UltraZohm.#

Requirements of the UltraZohm#

Development goals#

Computational power

The use of more complex control algorithms based on model predictive control and/or artificial intelligence, as well as the increased use of wide-band gap power electronics, require a real-time computing unit with sufficient processing power. The necessary processing power is provided by the UltraZohm. A heterogenous SoC is used due to the diverse requirements of different applications and control algorithms. The UltraZohm project uses the Xilinx Zynq UltraScale+ MPSoC on a SoM by Trenz Electronics.

Hard real-time

Fast calculations are not sufficient for the control of power electronics which require hard real-time, i.e. the system must meet the real-time at all times. Missing the real-time results in malfunction, undefined behavior or failure of the system. The UltraZohm is designed to meet these hard real-time requirements. Control algorithms for power electronics and electrical drives typically require a control time of \(5 \mu s\) to \(100 \mu s\).

Modularity

The UltraZohm is modular in terms of software and hardware. The system can be used with different devices within the UltraScale MPSoC family. Adapter cards are used as a flexible interface for analoge and digital signals such as ADC’s and gate signals for power electronics. Software modularity is achieved by using encapsulated design patterns combined with IP-Cores on the FPGA.

Usability

We aim to create a system with a high usability. The UltraZohm is novice friendly since there are a lot of different tutorials, existing IP-Cores and adapter cards that are used by the community. Therefore, a new user does not have to start from scratch. The UltraZohm is expert friendly since there are no black boxes in the system. Due to project being open source, every user can investigate every line of code, every IP-Core and the complete signal chain in the schematics. Furthermore, everybody is encouraged to contribute to the UltraZohm and improve the system!

Requirements#

The following requirements are derived from the development goals of the UltraZohm.

Table 1 table#

Category

Name

Requirement

Documentation

Real-time

MPC-Control

FCS-MPC with N=3 calculation time below 5us

Real-time

FOC control of PMSM

State of the art FOC

Real-time

MPC-Control in lab

FCS-MPC with N=3 is evaluated with a demonstrator

Adapter card

Slow ADC (up to 125 kSPS)

Up to 100 parallel measurements

Adapter card

Fast ADC (up to 5 MPSP)

Up to 24 parallel measurements

Analog LTC2311-16 3v01

Adapter card

Digital interface for control signals of inverter

3V3/5V/15V

Digital Voltage 3U 2v01

Adapter card

Optical interface card

18 channels

Digital Optical

Adapter card

Encoder Card

Common encoder interfaces (Resolver Incremental)

Digital Incremental Encoder

AI

Neural network on FPGA

Common neural networks in reinforcement learning can be computed on the FPGA with calculation time below 10us

AI

Control of PMSM by reinforcement learning controller

Usage of DQN to control PMSM

Usability

C-Code generation toolchain and documentation

Easy usage of Embedded-Coder for targeting R5

Usability

HDL-Code generation toolchain and documentation

Easy usage of HDL-Coder for targeting R5

Safety

Safe platform

Provide hardware to allow certification

Safety

Basic safety functions for safe operation of the system

Safety

Functions to protect the system from damage

Community

Training of young researchers and students

Community

Building a research community around the UltraZohm

Overview of the project#

The UltraZohm project is hosted on a bitbucket repository. The repository is structured in the following way, with some important files highlighted. The source of this documentation is located in ultrazohm_sw/docs/source/. The online version (docs.ultrazohm.com) is always the documentation of the current state of the main branch.

ultrazohm_sw/
├── docs/
|   ├── source/
|   ├── requirements.txt
|   └── Makefile
├── ip_core/
├── javascope/
├── tcl_scripts/
|   ├── vivado_export_xsa.tcl
│   ├── vitis_generate_UltraZohm_workspace.tcl
│   └── vitis_update_platform.tcl
├── vitis/
|   ├── software/
│   └── vivado_exported_xsa
|      └── zusys_wrapper.xsa
└── vivado/
    └── project/
        └── ultrazohm.xpr

Simple block diagram of UltraZohm#

image/svg+xml SoM FPGA MIO A1..A3 D1..D5 CPLD CAN SPI GPIO SD-Card Ethernet I2C Power-Supply

Components of UltraZohm#

        graph TD
UltraZohm --> Cabinet
UltraZohm --> Carrier-Board
UltraZohm --> Adapter
UltraZohm --> SoM
    

Interfaces of Carrier-Board#

        graph TD
Carrier-Board --> Power("Power Supply")
Power --> p_in("Power Input")
Power --> p_out("Power Output")
Carrier-Board --> SoM("SoM")
Carrier-Board --> analog("Analog (A1..A3)")
Carrier-Board --> dig("Digital (D1..D5)")
Carrier-Board --> JTAG
JTAG --> CPLD
JTAG --> MPSoC
Carrier-Board --> SD-Card
Carrier-Board --> PS_GPIO("PS GPIO")
Carrier-Board --> Communication
Communication --> SPI
Communication --> Serial
Communication --> Ethernet
Communication --> CAN
    

Interfaces of Cabinet#

        graph TD
Cabinet --> Rack
Cabinet --> Power-Supply
Power-Supply --> Line-Voltage-Plug
Cabinet --> Front-Plane
Front-Plane --> Communication
Front-Plane --> Power-ON
Front-Plane --> Button
Front-Plane --> LED
LED --> LED1
LED --> LED2
LED --> LED3
LED --> LED4
Button --> SW1
Button --> SW2
Button --> SW3
Button --> External-Stop
Communication --> Ethernet
Communication --> CAN
Communication --> JTAG