I've recently been experimenting with an old washing machine
motor of the 3-phase induction variety. Its nominally 195V but
I'm limited to 30V with current bench supply and inverter board
ATM (which makes things a lot safer of course).
The vector control technique for induction motors relies on
keeping separate control of the rotor flux vector's amplitude
and rate of rotation (slip speed).
This allows instant change of torque and operation as a servo
motor, since the slip speed and stator currents are controlled
in a coordinated fashion.
The basic circuit is a 3-phase inverter bridge (in my case 6 MOSFETs,
a FAN7388 3-phase driver chip and two hall-effect current sensors
to measure the stator current.
(And lots of cermaic decoupling capacitors of course).
The two tiny devices at top left and top right are little SPI ADC chips
capable of clocking to 20MHz and 1MSPS - these digitize the current
values from the ASC711's in a few microseconds, as the main control
loop has to be very fast.
The basic current control compares the three phase current values against
a reference set. The direction of the difference is determined from the
largest absolute value of the 3 phase errors, and this directly chooses
the next time-steps invert switching state. This loop runs at about 35kHz,
and direct port manipulation is key to getting this performance. Many
variables are only one byte to keep things lean and fast too.
Also the reference values are computed at each loop, using the
flux and torque input amplitudes combined with current rotor
position and slip-position. A cosine-lookup table is used to keep
this efficient and the entries are also 8 bit.
At the outer level a PID loop (currently only P and D terms) drives
the torque input and slip frequency (which is integrated by the inner
loop to get the slip phase). The outer loop also reads an absolute
magnetic encoder (AS5040) and runs at about 4kHz.
The end result is:
A fully functional servo motor, in theory scalable to 200V and 800W,
motor was £20 on ebay (had to fiddle a bit to stop the rotor rubbing
the stator, it had obviously been dropped).
The motor's tachogenerator was ripped out and an AS5040 magnetic encoder
fitting in its place, which has a 12 absolute angular resolution and update rate
of 96us.
You didn't mention anywhere..This is DTC and not FOC right? That's my guess. Please confirm. Also some more info would be nice. Like equations used. You said that there is a current control loop running at 35kHz that follows the reference currents. Please elaborate. I thought the Hysteresis control is applied to torque and flux and not the currents.
I'm just driving the current directly - I've got an encoder on the motor, so
no rotor estimation is needed I know where it is so all I do is set the
input torque / flux components and slip speed directly. The control loop
switches the bridge to keep the measured currents matching the desired ones.
The torque/flux phasors are basically rotated by a phasor that rotates at
actual speed + desired slip speed.
@MarkT Have you got any data on the electronics you designed? I'm currently investigating position control of linear induction motors and am looking into a proper 3 phase current driver to use.