can you try increasing Vqd.Component2 instead, and leaving Vqd.Component1=0 ? If the motor then turns, then there is probably something very wrong with the encoder alignment.
Yes, the motor is already running.
What can this mean?
I think that the encoder alignment does not work as expected. There seems to be an (electrical) phase shift of around 90 degrees between what it does and what it should do.
If it would be working correctly, then the FOC algorithm would make sure that the magnetic field created by the stator windings is (electrically, magnetically) always exactly 90 degrees away from the magnetic field vector of the rotor's permanent magnets. This makes sure that the attraction/rejection forces within the motor are radial, which maximizes motor torque.
In your case, there seems to be a 90° error in phase. If that is the case, then the forces are axial instead, and the stator poles just axially "pull out" the permanent magnets, resulting in no movement.
I just validated the sensorless algorithm a few weeks ago because I wasn't sure how well that is working. You can do the same with the encoder algorihm, allowing you to debug it:
- place small permanent magnet onto motor shaft/gear
- place Hall sensor in some orientation, such that it triggers once per mechanical rev, connect to scope channel, use it as trigger
- connect oscilloscope between two motor phases
- turn motor by hand and determine voltage zero crossing on scope --> this is your zero phase reference; you can now move the hall sensor such that its trigger point is right at the zero crossing; alternatively you can determine the phase between the two
- now attach the driver, setup a certain motor speed, and load the motor
- measure Ia value via DAC via scope and determine phase between hall sensor triggering (zero crossing) and current
At this point you are able to measure the phase between motor current and the motor's rotor orientation. I am a bit lost here to suggest the correct phase (I did it differently by measuring real phase current with a probe instead), but there is an easy way for you to determine that: make the measurement once with sensorless feedback, I am confident that you can trust it. Then you know the phase that you should see when switching to encoder feedback.