Per-Unit System

Motor Control Blockset™ uses these International System of Units (SI):

QuantityUnitSymbol
Voltage

volt

V
Current

ampere

A
Speed

radians per second

revolutions per minute

rad/s

rpm

Torquenewton-meterN.m
PowerwattW

Note

The SI Unit for speed is rad/s. However, most manufacturers use rpm as the unit to specify the rotational speed of the motors. Therefore, Motor Control Blockset prefers rpm as the unit of rotational speed over rad/s. However, you can use either one based on your preference.

What is Per-Unit System

The Per-Unit (PU) system is commonly used in electrical engineering to express the values of quantities like voltage, current, power, and so on. It is used for transformers and AC machines for power system analysis. Embedded systems engineers also use this system for optimized code-generation and scalability, especially when working with fixed-point targets.

For a given quantity (such as voltage, current, power, speed, and torque), the PU system expresses a value in terms of a base quantity:

quantity expressed in PU = quantity expressed in SI unitsbase value

Generally, we select the nominal values of a system as the base values. Sometimes, we may also select the maximum measurable value as the base value. Thereafter, all signals are represented in PU, with respect to the selected base value.

For example, in a motor-control system, if the selected base value for current is 10A, then the PU representation of the 2A current is expressed as (2/10) PU = 0.2 PU.

Similarly,

quantity expressed in SI units = quantity expressed in PU × base value

For the preceding example, the SI unit representation of 0.2 PU = (0.2 x base value) = (0.2 x 10) A.

Per-Unit System and Motor Control Blockset

Motor Control Blockset uses these conventions to define the base values for voltage, current, speed, torque, and power.

QuantityRepresentationConvention
Base voltageVbase

This is the maximum phase voltage supplied by the inverter.

Generally, it is PU_System.V_base = (inverter.V_dc3) for Space Vector PWM and PU_System.I_base = inverter.I_max for Sinusoidal PWM.

Base currentIbase

This is the maximum current that can be measured by the ADC connected to the inverter.

Generally, but not necessarily, it is Imax of the inverter.

Base speedNbaseThis is the nominal (or rated) speed of the motor. This is also the maximum speed that the motor can achieve at the nominal voltage and nominal load without field-weakening operation.
Base torqueTbase

This is torque that is mathematically derived at the base current. Physically, the motor may or may not be able to produce this torque.

Generally, it is PU_System.T_base = 32×pmsm.p×pmsm.FluxPM×PU_System.I_base.

Base powerPbase

This is the power derived by the base voltage and base current.

Generally, it is PU_System.P_base = 32×PU_System.V_base×PU_System.I_base.

where:

  • Vdc is the DC voltage that you provide to the inverter.

  • Imax is the maximum current measured by the ADCs connected to the current sensors of the inverter.

  • p is the number of pole pairs available in the PMSM.

  • λpm is the permanent magnet flux linkage of the PMSM.

For the voltage and current values, you can generally consider the peak value of the nominal sinusoidal voltage (or current) as 1PU. Therefore, the base values used for voltage and current are the RMS values multiplied by 2, or the peak value measured between phase-neutral.

By using the PU system, the calculations are simplified. Motor Control Blockset uses these base value definitions for the PU system related conversions performed by the algorithms used in the examples. It stores the preceding variables in a structure called “PU_System” in the MATLAB® workspace.

Why Use Per-Unit System Instead of Standard SI Units

Per-unit representation of signals has many advantages over the SI units. This technique:

  • Improves the computational efficiency of the code-execution, and therefore, it is a preferred system to use for the fixed-point targets.

  • Creates a scalable control algorithm across many systems.