Motor speed control with Integral only loop
In the above schematic is a fan speed control I built for my 300 watt linear power supply. Thermistors mounted to the heatsinks for the 2N3055 transistors provided the feedback voltage to the op-amp.

Three major things.

1) I had to heavily dampen the op-amp feedback with 100uF capacitors or they would do a rapid pulsing which you could hear in the fan motor.

2) I had to put a 10,000uF capacitor across the fan motor itself, to turn 10 second pulses into a continuous running current.

3) I had to add a 2.075 offset to the op-amps so they were 'OFF' if the heatsinks were cool or cold. This placed a safe -6.2 volts on the MOSFET's, shutting them off until the voltage due to heat (at pin 3 of op-amp) rose above 2.075 volts, creating a steep non-linear gain. The gain trim pot for the op-amp had a very narrow window in which things worked as they should.

The thermistors and the 2.075 volt ref came from a stable 5 volt regulator, so it never changed its behavior. Turn on the power supply and bypass resistors kept the fans at a very low RPM. A 10 second turn-on pulse made all fans run fast for ten seconds just to loosen them up. A heavy load at high voltage and current would soon have the fans running full speed, screaming loud. Take away the load and over 10 to 15 minutes they slowed down to idle speed.

The key to making this work good was very heavy dampening of the op-amp and fan supply, and an offset voltage to create a 'comparator' effect such that the motors would stay at idle speed until the heatsinks became warm, then hot.

This could be modified such that voltage or current or RPM feedback drove the fan speed, but with bulky BLDC motors the integral is a long time constant, else the op-amp will pulse-feed the motors or oscillate, making the motors buzz.

The integral loop had to be slower than the mechanical response of the fan motors or the op-amp became unstable as it raced ahead of the motors reaction time, thus pulsing or oscillating.