# Designing an automotive alternator's voltage regulator - how to avoid magnetic saturation in the rotor?

NB: See final edit. The question is based on a false premise

Friends are making a test-bench for automotive ("Lundell") type alternators. They were supplied with an example alternator plus a voltage regulator module (the alternator requires external excitation current control). But they were not able to use that regulator, because it absolutely requires having a battery in the system, which they don't, as it's a test bench (the regulator also tries to be "smart", detect battery type, apply charging algorithms, etc).

So I gave the idea to design a very simple regulator to meet their spec, as it is almost a textbook control theory problem:

• you have a setpoint: the alternator should produce 13.5 volts
• the process variable is the actual output on the alternator power terminals
• the control variable is the excitation current

The wiring is as follows:

simulate this circuit – Schematic created using CircuitLab

V1 and V2 are AC/DC power supplies (V1 is hefty, capable of many amperes), and replace the battery in the typical automotive application. PL1 is a programmable DC load, and includes some hefty capacitance in front of it.

# Operation

When it works, the alternator is being driven by an external motor, which rotates it at a constant speed, say 1500 RPM. The MCU adjusts the duty cycle to Q1 (PWM is at 1kHz), so that the alternator's output voltage (as measured by VM1, and independently by the MCU via Vsense) is about 13.5V. E.g. at 1500 RPM and 50A load (as measured by AM2), the excitation current is ~2.7A (through AM1). If they increase the load to 60A, the voltage (VM1) dips briefly some 100-200mV before the MCU counteracts: it increases the excitation to e.g. 2.8A, and the voltage is back at 13.5V

# Saturation problem

Our initial tests were with voltage setpoint 14.4V, at 1500RPM and up to 80A load. The regulation worked all OK up to 75A. At 80A the following happened: the voltage (@VM1) started dropping, the MCU tried to compensate by increasing excitation current, but to no avail: even at 100% duty cycle (~7.5A through AM1), the voltage was far below the setpoint, ~6-7 volts. It seems the rotor saturated. It was fine up to ~3.5A, but saturated above that.

We repeated the test with a lower setpoint, 13.5V. This time the saturation happens around 130A load. This is still below what's expected by the alternator (it is heavy-duty model, intended for truck or bus usage, rated 6000 RPM/450A. By linear interpolation, you'd expect 112.5A at 1500RPM, however in reality the relation is sublinear, as the efficiency is much better at lower RPM, hence we expect more than 130A at 1500RPM).

It may be possible to produce more current if the PI controller is tuned further. What puzzles me is that near the max nonsaturated excitation current point, the regulator seems to be in a particularly unstable area: decrease the excitation current just a bit, and the output voltage falls. Increase the excitation current a bit, you get into saturation and the voltage falls. I.e. the regulator needs to "dance on the tip of the needle", which seems like an awkward position to be in.

# Question

How do real automotive voltage regulators avoid this "dancing on the tip of the needle" problem and ensure they don't saturate the excitation coils? Do they do a characterization beforehand? Or smart algorithms? Or something completely different?

# EDIT 1:

Number of comments here correctly point out that the rotation speed of the alternator is too low for a typical automotive alternator, which may be or may not be relevant (it is a bus/truck alternator for lower speeds). We'll further test larger speeds and currents, but my primary concern is how to avoid the "dancing on the tip of the needle" problem, which would be present on any RPM.

# EDIT 2:

The power input in the alternator at the setup mentioned above is 14 Nm @ 1500 RPM, so it gets ~2.2kW input mechanical power. I know it would require more RPM for more power.

However, let's assume I've placed a 0.1 ohm power resistor across the output terminals of the alternator. The shaft is driven at 1500 RPM and I slowly increase the excitation current, from 0 to 7.5A (the max possible).

I'm assuming (correct me if I'm wrong!) that the alternator output voltage will then have a roughly sawtooth response to the excitation current ramp. It would start at close to 0V at zero excitation, then rise as the excitation increases, reaching a maximum (e.g. 13.3 volts around 3.5A excitation), then drop sharply as the rotor gets into saturation.

It is this maximum point I'm interested in. If my regulator is there, running at 3.5A excitation, it would be measuring that the output voltage is below the target, then try increasing the excitation. This will lead to the voltage dropping sharply, but since it is a dumb PI controller, it would simply apply more excitation, driving the rotor even harder into saturation. What kind of approach can avoid that behaviour, and for the example given, stay at the 3.5A point where it gets the most power out of the alternator? It is somewhat akin to maximum power point tracking. As I understand from the existing comments, the actual regulators on alternators don't do this, they are of the dumb-but-reliable type, that just won't stand being overloaded (and also the battery is there to cope with brief power surges).

# EDIT 3:

As it looks, the whole question is somewhat moot, as it is based on a false premise: that the rotor saturates, and typical automotive applications need to deal with this scenario. I believe they don't. After further experimentation, my friends found several odd things about the max excitation current at different temperatures, and concluded that the alternator is defective. They swapped it for a different one, and the saturation issue is gone. With a constant load (e.g. load resistor), increasing the excitation increases the output voltage, it's a non-linear relationship, but it's monotonic, not sawtooth-like as I presumed in EDIT 2. At no point does the output voltage drop when you increase the excitation current. Indeed, the output voltage is at the maximum when you apply 100% duty cycle.

Mods, feel free to close the question if you see fit.

• 1500rpm is a very low speed for a car alternator. They usually have about a 2:1 step up from the engine. The alternator usually runs up to about 12,500 rpm maximum. Full current may not be achieved until close to that speed. Aug 27, 2021 at 0:44
• Exactly which model of alternator are you testing? Aug 27, 2021 at 1:15
• The alternator is a heavy-duty model, intended for truck or bus usage, rated 6000 RPM/450A. By linear interpolation, you'd expect 112.5A at 1500RPM, however in reality the relation is sublinear, as the efficiency is much better at lower RPM. Aug 27, 2021 at 12:35
• rpm makes volts not amps. Aug 28, 2021 at 2:51
• @Jasen, I know, but since it's regulated to be constant-voltage source, it's the amps that change, albeit not very linearly. I saw a report from this model from laboratory testing, it starts producing 14V at 1050+ RPM and the max amps increase quickly up to 3000 RPM, then taper off up to 6000 RPM. Aug 28, 2021 at 8:41

In automotive claw pole alternators, voltage regulation is achieved through on-off switching of field current between 2 set points (e.g. 13.8 & 14.2 V for a 12V system).

The voltage regulator assembly supplies field current, switched by a transistor, via integral carbon brushes to the rotor slip rings.

However, testing the alternator at the lower end of its working zone could be the root cause of your problem.

Here's the performance curve of an alternator which is a close match to your test specimen.

And its 'engine-idling' data.

In my opinion, you would need to carry out your tests at 2000 RPM or higher, for consistent results.

• This is a simpler regulating scheme, however I think it would also suffer from the saturation problem. E.g. if it gets into saturation, the output voltage would fall below 13.8V, and IIRC regulator will keep the transistor on, keeping the rotor hard into saturation. Where's the catch? Aug 27, 2021 at 23:35
• Thank you, @anrieff, I have edited my answer. Aug 28, 2021 at 12:38

The PI controller works perfectly (as any other in the same class) in linear system. By default the closed loop control engineering is a branch that deals with linear systems. There are other types of controllers for non-linear systems.

Your system is linear until a certain point, or we can also say that any real life system is non-linear, but looking from from a macroscopic point of view they are linear. In you case there is a notably knee point, where this linearity is such that is obvious.

A PI controller shall have an anti-windup of the integral part, so when you reach 100% it can't go further.

I.e. the regulator needs to "dance on the tip of the needle", which seems like an awkward position to be in.

This is called as unstable operation. You could adapt the PI parameters or make an adaptive controller. In automotive alternator, in my opinion, there is just a simple P-controller and that's all.

As also comments suggest there is an equilibrium of electrical power and mechanical power $$\T\cdot \omega = V_a\cdot I_a\$$ , by increasing the current you do increase the torque T until a certain level (saturation) $$\I_{exc}\cdot I_a \cdot k_T \cdot \omega = V_a\cdot I_a\$$ , but to produce power you need also the speed.

• Sorry, I just cannot imagine how a simple P-controller avoids the saturation problem as well. Do they simply assume that the load will never become that high? Aug 27, 2021 at 23:38
• @anrieff It doesn't avoid it, there is no method to avoid it. It just matters the response when recovering from it. The P-controller is simple, made from few transistors, it's stable. However the voltage output won't be accurate on high loads, but this really doesn't matter. Aug 28, 2021 at 9:08

The alternator is under performing because the rotation speed is too low. try 6000 rpm on the alternator shaft, this corresponds to an engine speed of about 3000 rpm. thar will give you more voltage headroom and allow higher current draws.

3.5A seems like a very high rotor current, alternators usually give a current of better than 100:1. to avoid rotor saturation reduce the voltage produced by V1

• Sorry, it was probably misleading to state results at 1500 RPM. That speed is not too low, see the edit. Aug 27, 2021 at 23:37