cancel
Showing results for 
Search instead for 
Did you mean: 

How to manually set current reference in mc api MC_SetCurrentReferenceMotor1?

CHuan.8
Associate II

Setting the current reference is describes as:

void MC_​SetCurrentReferenceMotor1(Curr_Components Iqdref);

What should I type to replace Curr_Components and Iqdref?

I want to manually set current reference to increase torque when the​ motor is in low rotation speed. Is it possible?

18 REPLIES 18
Zied b.
ST Employee

Hello @Community member​,

I have several ideas to try to make the profiler work:

1: do a test by trying to leave the Max speed field blank and let the profiler find the max speed.

2: do a test leaving also the max current field empty

3: do a test by setting a lower max current (5 or 3)

Finally use the detect pole pairs feature to check that the pole pairs entered are correct.

If no solution works, can I have some more information about your power supply so that I can try to reproduce the problem?

Thanks

If you agree with my answer, please accept it by clicking on "Accept as solution".

Hello @Zied b.​ ,

I have tested both 6.0 and 6.1 MC profiler and I can clearly see issues with 6.1.

About my review on the new profiler software:

I followed your instructions from previous message, and the motor stops moving after 25% profiling and makes a noise with increasing frequency (similar to the sound achieved when revving electric bike) until a over/under voltage error pops up. All this while the motor does not spin. Hence, I believe the new profiler needs more development.

I was able to profile both my motors (36V and 24V) using 6.0 and the same 24V controller (B-G431B-ESC1) and I achieved 600 RPM and 730 RPM respectively for both motors. (600 RPM only for 36V motor because I'm profiling it with 24V controller and supply).

I want to develop my application using the profiles I have with me at the moment. Can you please help me find the phase shift between my hall sensors (placement electrical angle)?

Please find the image of the hall sensor placement in my motor below:

0693W00000Y7SNIQA3.jpg

Hello @Community member​ ,

I did some tests to reproduce the problem you have with a motor that looks like yours.

I have encountered the same problems as you regarding the over and under voltage.

I solved the problem and made the motor run by first setting a low max current, then I increased it little by little until I made the motor run.

I did the same for the max speed I put a high max speed then I lowered little by little until I stabilized the motor.

The easiest way to find the "electrical angle placement" is to get the 6.1 profiler to work, as it has a feature to detect this.

If you agree with my answer, please accept it by clicking on "Accept as solution".

Hello @Zied b.​ ,

The method you suggested does not work and it fails.

Neverthless, I set a lower RPM (500RPM) and lower current (1A) and profiled it, after which, I'm able to do a Hall Sensor profiling. Can you please tell me what might be my mechanical displacement and phase difference values for the Hall Sensors in my motor, given the picture below? (when it says displacement, do they mean mechanical or electrical?)

0693W00000Y7gEAQAZ.pngGlad that it works but for somebody working with a new motor, they will definitely have issues profiling their new motor. Your previous versions of motor profiler are better. Please consider the feedback.

Hello @Community member​ ,

You can save the provide results from the profiler and import them on the Workbench, after that you can go on the Work bench, import your motor, go to motor section.0693W00000Y7hOLQAZ.png 

If you go down in the settings, you will find the fields to fill in with the results of you Hall profiling. you need to set "final result" on placement electrical angle field.

0693W00000Y7hKTQAZ.png 

Normally, all fields are pre-filled if you import the data recorded with the profiler.

This is the first version of the new profiler, it is not perfect but it will be improved and perfected to meet the needs of users.

Thank you for your feedback.

If you agree with my answer, please accept it by clicking on "Accept as solution".

So after doing all of the above, I should directly be able to use the following code with HALL sensors sequentially, isn't it?

MC_ProgramSpeedRamp(200/6, 3000); // 200RPM Speed

MC_StartMotor1();

HAL_Delay(30000);

MC_StopMotor1();

Hello PKVSK.2,

Have you tried to drive the motor with the motor pilot to see if it runs correctly as you want ?

If you agree with my answer, please accept it by clicking on "Accept as solution".

Hey @Zied b.​ ,

How can I use Motor Pilot without uploading any code to it?

Do you mean by loading a predefined GUI given with the SDK?

Regards

Hello,

To start you can save the motor profiler result of MCSDK 6.1, after that import this motor on the motor Work bench and generate a new project with your saved motor.

Then you can load and flash your projet with Stm32 Cube IDE or IAR if you have it and finally use the Motor Pilot to connect to the board and control your engine .

with these steps you can see if you have a good control of your motor.

If you agree with my answer, please accept it by clicking on "Accept as solution".