Improved 'field-weakening' algorithm, so that motor responds better to changes in load