# Software Theory of Operation

## Sine Modulation

The core task of the control software is to generate 6 PWM signals, 2 for each bridge. The PWM has a fixed frequency in the kilohertz region, lets assume 8.8khz. On top of that a variable frequency, variable amplitude sine wave is modulated. The actual PWM generation is done by hardware, software just needs to tell the hardware which dutycycle to output.

The sinewave itself is stored in a lookup table, as small MCUs can't compute the sine function efficiently. It is output to all three phases but with a 120° phase shift.

## Clipping

The PWM principle has a practical limit when dutycycles become very large (>99%) or very small (<1%). The IGBTs have a limited switching speed. Therefor, if they're switched on and right off again (or vice versa) they effectively don't change state. Therefor, these extreme dutycycles are mapped to "always on" or "always off" respectively. This logic kicks in 1/3 of the time when a full amplitude sine wave is modulated. Therefore it saves switching losses.

## Motor Current Control

The torque of any motor is proportional to the current through its windings. As those windings represent an inductance, their impedance increases proportional to the frequency. So to create a current flow of 100A at 100Hz takes 10 times the voltage compared to creating a current flow of 100A at 10Hz. Therefor the inverter has to modify the amplitude of the sine wave proportional to its frequency. At some (configurable) point the amplitude reaches its maximum and the current flow decreases with the frequency. This "algorithm" is often called V/Hz.

## Slip Frequency Control

In the academic world an induction machine is seen as a transformer that has a rotating secondary winding (=rotor) that is short circuit. Therefor, if the magnetic field caused by the primary winding (=stator) rotates at 100Hz and the motor shaft rotates at 100Hz, the secondary winding doesn't see any magnetic field, no current flows and therefor the motor doesn't generate any torque. If the stator rotates at 100Hz and the rotor at 99Hz, the secondary winding sees a 1Hz (the slip frequency) field. This creates a current flow in the rotor which in turn creates a magnetic field that is directed in the opposite direction than the primary field. Now, rotor and stator are coupled by magnetic force. The rotor is forced to follow the spinning magnetic field of the stator. The motor generates torque. The greater the slip frequency, the stronger the magnetic coupling and the more torque can be achieved. On the other hand the effiency degrades almost proportional with the slip.

For every motor there are two important slip frequency values: **optimal** and **breakdown**. At optimal slip the motor operates with its peak effiency. At breakdown slip the motor operates with its peak torque. The commanded slip should always be between these 2 values.

The slip control algorithm tracks the motor shafts current angle, adds the slip angle and outputs the sine wave at the new angle to the inverter bridges. Thats it.

To vary the generated torque, the amplitude of the sine wave is modified. At 100% torque it is the value from the V/Hz algorithm, if less than 100% torque is commanded then the V/Hz value is scaled accordingly. Additionally the slip frequency is scaled between optimal and breakdown (or whatever the user sets as maximum).