You are here

Sometimes startup problems in FOC-Mode

7 posts / 0 new
Last post
Michael Schäfer
Offline
Last seen: 6 months 3 weeks ago
VESC Original
Joined: 2017-05-24 12:14
Posts: 4
Sometimes startup problems in FOC-Mode

Hi there,

I use a relatively special Motor: 42 Poles , 36 Slots.

The problem I have: When I try to start the motor slowly from zero the motor sometimes starts turning in slowmotion consuming a lot of Amps but not spinning up.

What can be the cause for this behavior and what should I try first to fix my problem? Switch to BLDC-Mode?

The recognition tool works well - here is my actual configuration - Thanks for any hints!

 

 

Michael

 

<?xml version="1.0" encoding="UTF-8"?>
<MCConfiguration>
    <sl_cycle_int_limit>62</sl_cycle_int_limit>
    <motor_quality_magnets>0</motor_quality_magnets>
    <l_temp_motor_end>100</l_temp_motor_end>
    <p_pid_kd>0.0004</p_pid_kd>
    <foc_sensor_mode>0</foc_sensor_mode>
    <l_battery_cut_end>37.2</l_battery_cut_end>
    <sl_min_erpm>150</sl_min_erpm>
    <l_abs_current_max>60</l_abs_current_max>
    <motor_model>BE-8108</motor_model>
    <m_current_backoff_gain>0.5</m_current_backoff_gain>
    <m_encoder_counts>8192</m_encoder_counts>
    <p_pid_ang_div>1</p_pid_ang_div>
    <foc_motor_r>0.0668</foc_motor_r>
    <sl_phase_advance_at_br>0.8</sl_phase_advance_at_br>
    <motor_poles>42</motor_poles>
    <s_pid_kd>0.0001</s_pid_kd>
    <motor_quality_construction>0</motor_quality_construction>
    <foc_hall_table_2>255</foc_hall_table_2>
    <l_in_current_min>-15</l_in_current_min>
    <s_pid_min_erpm>900</s_pid_min_erpm>
    <foc_pll_kp>2000</foc_pll_kp>
    <hall_sl_erpm>2000</hall_sl_erpm>
    <l_watt_max>15000</l_watt_max>
    <l_max_erpm_fbrake_cc>1500</l_max_erpm_fbrake_cc>
    <s_pid_allow_braking>1</s_pid_allow_braking>
    <motor_brand>DYS</motor_brand>
    <motor_loss_torque>0.03</motor_loss_torque>
    <hall_table_3>2</hall_table_3>
    <foc_observer_gain_slow>0.3</foc_observer_gain_slow>
    <l_battery_cut_start>40.8</l_battery_cut_start>
    <foc_current_kp>0.0313</foc_current_kp>
    <l_max_erpm_fbrake>300</l_max_erpm_fbrake>
    <foc_openloop_rpm>400</foc_openloop_rpm>
    <l_current_min>-30</l_current_min>
    <foc_f_sw>20000</foc_f_sw>
    <hall_table_1>1</hall_table_1>
    <foc_motor_flux_linkage>0.002558</foc_motor_flux_linkage>
    <l_max_erpm>100000</l_max_erpm>
    <foc_duty_dowmramp_kp>10</foc_duty_dowmramp_kp>
    <l_min_erpm>-100000</l_min_erpm>
    <motor_type>2</motor_type>
    <cc_ramp_step_max>0.04</cc_ramp_step_max>
    <hall_table_7>-1</hall_table_7>
    <foc_hall_table_5>255</foc_hall_table_5>
    <s_pid_kp>0.004</s_pid_kp>
    <foc_hall_table_3>255</foc_hall_table_3>
    <hall_table_2>3</hall_table_2>
    <l_slow_abs_current>1</l_slow_abs_current>
    <l_current_max>30</l_current_max>
    <foc_sl_openloop_time>0.1</foc_sl_openloop_time>
    <m_invert_direction>1</m_invert_direction>
    <foc_motor_l>3.125e-5</foc_motor_l>
    <foc_temp_comp_base_temp>25</foc_temp_comp_base_temp>
    <p_pid_ki>0</p_pid_ki>
    <l_min_duty>0.005</l_min_duty>
    <foc_sl_openloop_hyst>0.1</foc_sl_openloop_hyst>
    <sl_max_fullbreak_current_dir_change>10</sl_max_fullbreak_current_dir_change>
    <hall_table_0>-1</hall_table_0>
    <cc_startup_boost_duty>0.01</cc_startup_boost_duty>
    <l_max_duty>0.95</l_max_duty>
    <comm_mode>0</comm_mode>
    <l_min_vin>8</l_min_vin>
    <s_pid_ki>0.004</s_pid_ki>
    <m_drv8301_oc_adj>16</m_drv8301_oc_adj>
    <motor_quality_description>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Some comments about the motor quality. Images can be added as well.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</motor_quality_description>
    <hall_table_4>5</hall_table_4>
    <foc_encoder_offset>180</foc_encoder_offset>
    <l_temp_fet_start>80</l_temp_fet_start>
    <foc_duty_dowmramp_ki>200</foc_duty_dowmramp_ki>
    <m_fault_stop_time_ms>1000</m_fault_stop_time_ms>
    <sl_bemf_coupling_k>600</sl_bemf_coupling_k>
    <foc_hall_table_7>255</foc_hall_table_7>
    <foc_sat_comp>0</foc_sat_comp>
    <foc_sl_d_current_duty>0</foc_sl_d_current_duty>
    <foc_dt_us>0.08</foc_dt_us>
    <l_in_current_max>15</l_in_current_max>
    <foc_observer_gain>1.5283e+8</foc_observer_gain>
    <m_bldc_f_sw_max>40000</m_bldc_f_sw_max>
    <l_max_vin>57</l_max_vin>
    <motor_sensor_type>0</motor_sensor_type>
    <foc_temp_comp>0</foc_temp_comp>
    <hall_table_5>6</hall_table_5>
    <sl_min_erpm_cycle_int_limit>1100</sl_min_erpm_cycle_int_limit>
    <l_watt_min>-15000</l_watt_min>
    <cc_min_current>0.1</cc_min_current>
    <foc_sl_erpm>2500</foc_sl_erpm>
    <motor_description>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;A motor description can be edited here.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</motor_description>
    <motor_weight>0</motor_weight>
    <foc_sl_d_current_factor>0</foc_sl_d_current_factor>
    <foc_encoder_inverted>0</foc_encoder_inverted>
    <l_erpm_start>0.8</l_erpm_start>
    <m_sensor_port_mode>0</m_sensor_port_mode>
    <foc_hall_table_1>255</foc_hall_table_1>
    <sensor_mode>0</sensor_mode>
    <foc_sample_v0_v7>1</foc_sample_v0_v7>
    <foc_hall_table_0>255</foc_hall_table_0>
    <m_duty_ramp_step>0.02</m_duty_ramp_step>
    <hall_table_6>4</hall_table_6>
    <pwm_mode>1</pwm_mode>
    <foc_hall_table_6>255</foc_hall_table_6>
    <sl_cycle_int_rpm_br>80000</sl_cycle_int_rpm_br>
    <l_temp_motor_start>80</l_temp_motor_start>
    <m_drv8301_oc_mode>0</m_drv8301_oc_mode>
    <foc_pll_ki>40000</foc_pll_ki>
    <foc_hall_table_4>255</foc_hall_table_4>
    <motor_quality_bearings>0</motor_quality_bearings>
    <l_temp_fet_end>100</l_temp_fet_end>
    <cc_gain>0.0046</cc_gain>
    <foc_encoder_ratio>7</foc_encoder_ratio>
    <p_pid_kp>0.03</p_pid_kp>
    <m_bldc_f_sw_min>3000</m_bldc_f_sw_min>
    <foc_current_ki>66.84</foc_current_ki>
    <m_dc_f_sw>35000</m_dc_f_sw>
</MCConfiguration>
 

benjamin
Offline
Last seen: 22 hours 18 min ago
Joined: 2016-12-26 15:20
Posts: 369
You can try to increase the sensorless erpm value and/or measure the resistance again. Does this happen to be worse when the motor is warm?
Roger Wolff
Offline
Last seen: 3 months 1 week ago
VESC FreeVESC Original
Joined: 2017-05-24 12:27
Posts: 202

Just another datapoint...

 

My bike USED to have this problem too. At one point in time I measured the motor currents and decided to adjust the scaling factors so that the indicated current would match what I measured. The problem disappeared when I put the scaling factors back to the values they were supposed to be. 

 

So.... slighly off FOC parameters could be a cause for this. 

Pimousse
Offline
Last seen: 1 day 6 hours ago
VESC Original
Joined: 2017-05-24 12:15
Posts: 94

Hi,

I'm experiencing the same problem.
It turns in "slow motion" at start up as described by Michael Schäfer.

When it has started to spin normally, you can stop the motor and run it directly flawlessly.

But if you wait few seconds, the stuttering comes back with the next start up.

This is in sensorless mode. I acts perfectly in sensored mode.

Here's a video where you can see the behaviour (using the up arrow of the keyboard) :

 

Configuration :

FOC through wizard (had to increased up to 5400 rpm to got it passed the second step)

Power supply 15VDC

Motor 6374 Overion 3550W 130 KV : http://www.overion.fr/produit/moteur-brushless-overion-6374-130-kv-senso...

 

benjamin
Offline
Last seen: 22 hours 18 min ago
Joined: 2016-12-26 15:20
Posts: 369

That behaviour is normal. The reason is that I have noticed that startup under load works best if the minimum ERPM is mapped to the commanded current in relation to the highest current. Without load and a low commanded current such as the 3A default value in VESC Tool this gives a very low mapping for the minimum ERPM and sometimes the motor does not start. If you command more current it should correctly go to open loop first and then start properly. Have you given it a try from standstill with load without sensors?

Pimousse
Offline
Last seen: 1 day 6 hours ago
VESC Original
Joined: 2017-05-24 12:15
Posts: 94

Ok, I got it. Thanks for the quick reply.

Unfortunately, I'm still waiting for parts to finish this build.

tobby
Offline
Last seen: 1 year 6 months ago
Joined: 2017-12-23 18:44
Posts: 1

That behaviour is normal. The reason is that I have noticed that startup under load works best if the minimum ERPM is mapped to the commanded current in relation to the highest current. Without load and a low commanded current such as the 3A default value in VESC Tool this gives a very low mapping for the minimum ERPM and sometimes the motor does not start. If you command more current it should correctly go to open loop first and then start properly. Have you given it a try from standstill with load without sensors?

 

Hi, I think you just told me the solution to a similar problem I have(startup issues in FOC), but I do not fully understand it.

Could you please dumb it down for me/tell me how to do it to get it properly calibrated/tuned?