## Per-Unit System

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

Quantity | Unit | Symbol |
---|---|---|

Voltage | volt | V |

Current | ampere | A |

Speed | radians per second revolutions per minute | rad/s rpm |

Torque | newton-meter | N.m |

Power | watt | W |

**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. Motor Control Blockset prefers rpm as the unit of rotational speed over rad/s. However, you can use either value based on your preference.

### 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:

$$\text{quantityexpressedinPU=}\frac{\text{quantityexpressedinSIunits}}{\text{basevalue}}$$

Generally, most systems select the nominal values of the system as the base values. Sometimes, a system may also select the maximum measurable value as the base value. After you establish the base values, 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 of the current is 10A, then the PU representation of a 2A current is expressed as (2/10) PU = 0.2 PU.

Similarly,

$$\text{quantityexpressedinSIunits=quantityexpressedinPU}\times \text{basevalue}$$

For 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.

Quantity | Representation | Convention |
---|---|---|

Base voltage | V_{base} | This is the maximum phase voltage supplied by the inverter. Generally, for Space Vector PWM, it is $$\text{PU\_System}\text{.V\_base=}\left(\frac{\text{inverter}\text{.V\_dc}}{\sqrt{\text{3}}}\right)$$. For Sinusoidal PWM, it is $$\text{PU\_System}\text{.V\_base=}\left(\frac{\text{inverter}\text{.V\_dc}}{\text{2}}\right)$$. For discrete PWM (DPWM), it is $$\text{PU\_System}\text{.V\_base=}\left(\frac{\text{inverter}\text{.V\_dc}}{\sqrt{\text{3}}}\right)$$. For more information about the PWM techniques, see PWM Reference Generator. |

Base current | I_{base} | This is the maximum current that can be measured by the current sensing circuit of the inverter. Generally,
but not necessarily, it is I $$\text{PU\_System}\text{.I\_base=inverter}\text{.ISenseMax}$$ |

Base speed | N_{base} | This 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 a field-weakening operation. |

Base torque | T_{base} | This torque is mathematically derived from the base current. Physically, the motor may or may not be able to produce this torque. Generally, it is $$\text{PU\_System}\text{.T\_base=}\frac{\text{3}}{\text{2}}\times \text{pmsm}\text{.p}\times \text{pmsm}\text{.FluxPM}\times \text{PU\_System}\text{.I\_base}$$. |

Base power | P_{base} | This is the power derived by the base voltage and base current. Generally, it is $$\text{PU\_System}\text{.P\_base=}\frac{\text{3}}{\text{2}}\times \text{PU\_System}\text{.V\_base}\times \text{PU\_System}\text{.I\_base}$$. |

where:

*V*is the DC voltage that you provide to the inverter._{dc}*I*is the maximum current measured by the ADCs connected to the current sensors of the inverter._{max}*p*is the number of pole pairs available in the PMSM.*FluxPM*is the permanent magnet flux linkage of the PMSM.*pmsm*is the MATLAB^{®}workspace parameter structure that saves the motor variables.*inverter*is the MATLAB workspace parameter structure that saves the inverter variables.*PU_System*is the MATLAB workspace parameter structure that saves the PU system variables.

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 $$\sqrt{2}$$, or the peak value measured between phase-neutral.

You can simplify your calculations by using the PU system. Motor Control Blockset uses these base value definitions for the PU-system-related
conversions performed by the algorithms used in the toolbox examples. The toolbox
stores the PU-system-related 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 code execution, and therefore is a preferred system for fixed-point targets.

Creates a scalable control algorithm that can be used across many systems.