You are here

rpm fail in FOC sensor mode

1 post / 0 new
mansi712
Offline
Last seen: 1 day 5 hours ago
VESC Free
Joined: 2024-08-08 11:50
Posts: 3
rpm fail in FOC sensor mode

Hello,

I am new to the topic of electric motors and controllers. For my project, I need to synchronize two propellers mounted on a rig both in terms of RPM and position. I am using the following components:
- Motors: 880KV T-Motors (AS2820 long shaft)
- Power Supplies: Separate power supplies for each motor, set at 12V and 20A
- VESC 6 electronic speed controllers

- I am only using the usb with laptop to run the motors.

I was able to run the motor in FOC sensorless mode and its giving proper rpm values.

But when I connected ABI encoder and changed the sensorless to sensor mode in FOC, the motor is shooting up to max rpm irrespective of the rpm I am giving from the main screen.

I also noticed that it is not reading real-time erpm, but it does read other data like current, voltages etc.

Any guidance or suggestions on how to properly set up and configure these components would be greatly appreciated.

Thank you!.

 

Here are the setting I have used in vesc tool:

<MCConfiguration>

<ConfigVersion>2</ConfigVersion>

<pwm_mode>1</pwm_mode>

<comm_mode>0</comm_mode>

<motor_type>2</motor_type>

<sensor_mode>0</sensor_mode>

<l_current_max>12</l_current_max>

<l_current_min>0</l_current_min>

<l_in_current_max>12</l_in_current_max>

<l_in_current_min>0</l_in_current_min>

<l_abs_current_max>40.77</l_abs_current_max>

<l_min_erpm>-40000</l_min_erpm>

<l_max_erpm>40000</l_max_erpm>

<l_erpm_start>0.8</l_erpm_start>

<l_max_erpm_fbrake>300</l_max_erpm_fbrake>

<l_max_erpm_fbrake_cc>1500</l_max_erpm_fbrake_cc>

<l_min_vin>11</l_min_vin>

<l_max_vin>15</l_max_vin>

<l_battery_cut_start>10.2</l_battery_cut_start>

<l_battery_cut_end>9</l_battery_cut_end>

<l_slow_abs_current>1</l_slow_abs_current>

<l_temp_fet_start>85</l_temp_fet_start>

<l_temp_fet_end>100</l_temp_fet_end>

<l_temp_motor_start>85</l_temp_motor_start>

<l_temp_motor_end>100</l_temp_motor_end>

<l_temp_accel_dec>0.15</l_temp_accel_dec>

<l_min_duty>0.005</l_min_duty>

<l_max_duty>0.95</l_max_duty>

<l_watt_max>1.5e+06</l_watt_max>

<l_watt_min>-1.5e+06</l_watt_min>

<l_current_max_scale>1</l_current_max_scale>

<l_current_min_scale>1</l_current_min_scale>

<l_duty_start>1</l_duty_start>

<sl_min_erpm>150</sl_min_erpm>

<sl_min_erpm_cycle_int_limit>1100</sl_min_erpm_cycle_int_limit>

<sl_max_fullbreak_current_dir_change>10</sl_max_fullbreak_current_dir_change>

<sl_cycle_int_limit>62</sl_cycle_int_limit>

<sl_phase_advance_at_br>0.8</sl_phase_advance_at_br>

<sl_cycle_int_rpm_br>80000</sl_cycle_int_rpm_br>

<sl_bemf_coupling_k>600</sl_bemf_coupling_k>

<hall_table__0>-1</hall_table__0>

<hall_table__1>1</hall_table__1>

<hall_table__2>3</hall_table__2>

<hall_table__3>2</hall_table__3>

<hall_table__4>5</hall_table__4>

<hall_table__5>6</hall_table__5>

<hall_table__6>4</hall_table__6>

<hall_table__7>-1</hall_table__7>

<hall_sl_erpm>2000</hall_sl_erpm>

<foc_current_kp>0.0126</foc_current_kp>

<foc_current_ki>45.12</foc_current_ki>

<foc_f_zv>30000</foc_f_zv>

<foc_dt_us>0.12</foc_dt_us>

<foc_encoder_inverted>0</foc_encoder_inverted>

<foc_encoder_offset>242.6</foc_encoder_offset>

<foc_encoder_ratio>7</foc_encoder_ratio>

<foc_sensor_mode>1</foc_sensor_mode>

<foc_pll_kp>2000</foc_pll_kp>

<foc_pll_ki>30000</foc_pll_ki>

<foc_motor_l>1.263e-05</foc_motor_l>

<foc_motor_ld_lq_diff>5.8e-07</foc_motor_ld_lq_diff>

<foc_motor_r>0.0451</foc_motor_r>

<foc_motor_flux_linkage>0.000953</foc_motor_flux_linkage>

<foc_observer_gain>1.10011e+09</foc_observer_gain>

<foc_observer_gain_slow>0.05</foc_observer_gain_slow>

<foc_observer_offset>-1</foc_observer_offset>

<foc_duty_dowmramp_kp>50</foc_duty_dowmramp_kp>

<foc_duty_dowmramp_ki>1000</foc_duty_dowmramp_ki>

<foc_start_curr_dec>1</foc_start_curr_dec>

<foc_start_curr_dec_rpm>2500</foc_start_curr_dec_rpm>

<foc_openloop_rpm>1400</foc_openloop_rpm>

<foc_openloop_rpm_low>0</foc_openloop_rpm_low>

<foc_d_gain_scale_start>0.9</foc_d_gain_scale_start>

<foc_d_gain_scale_max_mod>0.2</foc_d_gain_scale_max_mod>

<foc_sl_openloop_hyst>0.1</foc_sl_openloop_hyst>

<foc_sl_openloop_time_lock>0</foc_sl_openloop_time_lock>

<foc_sl_openloop_time_ramp>0.1</foc_sl_openloop_time_ramp>

<foc_sl_openloop_time>0.05</foc_sl_openloop_time>

<foc_sl_openloop_boost_q>0</foc_sl_openloop_boost_q>

<foc_sl_openloop_max_q>-1</foc_sl_openloop_max_q>

<foc_hall_table__0>255</foc_hall_table__0>

<foc_hall_table__1>255</foc_hall_table__1>

<foc_hall_table__2>255</foc_hall_table__2>

<foc_hall_table__3>255</foc_hall_table__3>

<foc_hall_table__4>255</foc_hall_table__4>

<foc_hall_table__5>255</foc_hall_table__5>

<foc_hall_table__6>255</foc_hall_table__6>

<foc_hall_table__7>255</foc_hall_table__7>

<foc_hall_interp_erpm>500</foc_hall_interp_erpm>

<foc_sl_erpm>4000</foc_sl_erpm>

<foc_sample_v0_v7>0</foc_sample_v0_v7>

<foc_sample_high_current>0</foc_sample_high_current>

<foc_sat_comp_mode>2</foc_sat_comp_mode>

<foc_sat_comp>0</foc_sat_comp>

<foc_temp_comp>0</foc_temp_comp>

<foc_temp_comp_base_temp>25</foc_temp_comp_base_temp>

<foc_current_filter_const>0.1</foc_current_filter_const>

<foc_cc_decoupling>0</foc_cc_decoupling>

<foc_observer_type>3</foc_observer_type>

<foc_hfi_voltage_start>20</foc_hfi_voltage_start>

<foc_hfi_voltage_run>4</foc_hfi_voltage_run>

<foc_hfi_voltage_max>6</foc_hfi_voltage_max>

<foc_hfi_gain>0.3</foc_hfi_gain>

<foc_hfi_hyst>0</foc_hfi_hyst>

<foc_sl_erpm_hfi>3000</foc_sl_erpm_hfi>

<foc_hfi_start_samples>5</foc_hfi_start_samples>

<foc_hfi_obs_ovr_sec>0.001</foc_hfi_obs_ovr_sec>

<foc_hfi_samples>1</foc_hfi_samples>

<foc_offsets_cal_on_boot>1</foc_offsets_cal_on_boot>

<foc_offsets_current__0>2051.78</foc_offsets_current__0>

<foc_offsets_current__1>2052.77</foc_offsets_current__1>

<foc_offsets_current__2>2053.26</foc_offsets_current__2>

<foc_offsets_voltage__0>0.0001</foc_offsets_voltage__0>

<foc_offsets_voltage__1>0.0001</foc_offsets_voltage__1>

<foc_offsets_voltage__2>-0.0003</foc_offsets_voltage__2>

<foc_offsets_voltage_undriven__0>0</foc_offsets_voltage_undriven__0>

<foc_offsets_voltage_undriven__1>0</foc_offsets_voltage_undriven__1>

<foc_offsets_voltage_undriven__2>0</foc_offsets_voltage_undriven__2>

<foc_phase_filter_enable>0</foc_phase_filter_enable>

<foc_phase_filter_disable_fault>1</foc_phase_filter_disable_fault>

<foc_phase_filter_max_erpm>4000</foc_phase_filter_max_erpm>

<foc_mtpa_mode>0</foc_mtpa_mode>

<foc_fw_current_max>0</foc_fw_current_max>

<foc_fw_duty_start>0.9</foc_fw_duty_start>

<foc_fw_q_current_factor>0.02</foc_fw_q_current_factor>

<foc_fw_ramp_time>0.2</foc_fw_ramp_time>

<foc_speed_soure>1</foc_speed_soure>

<gpd_buffer_notify_left>200</gpd_buffer_notify_left>

<gpd_buffer_interpol>0</gpd_buffer_interpol>

<gpd_current_filter_const>0.1</gpd_current_filter_const>

<gpd_current_kp>0.03</gpd_current_kp>

<gpd_current_ki>50</gpd_current_ki>

<sp_pid_loop_rate>5</sp_pid_loop_rate>

<s_pid_kp>0.004</s_pid_kp>

<s_pid_ki>0.004</s_pid_ki>

<s_pid_kd>0.0001</s_pid_kd>

<s_pid_kd_filter>0.2</s_pid_kd_filter>

<s_pid_min_erpm>900</s_pid_min_erpm>

<s_pid_allow_braking>1</s_pid_allow_braking>

<s_pid_ramp_erpms_s>25000</s_pid_ramp_erpms_s>

<p_pid_kp>0.025</p_pid_kp>

<p_pid_ki>0</p_pid_ki>

<p_pid_kd>0</p_pid_kd>

<p_pid_offset>0</p_pid_offset>

<p_pid_kd_proc>0.00035</p_pid_kd_proc>

<p_pid_kd_filter>0.18</p_pid_kd_filter>

<p_pid_ang_div>1</p_pid_ang_div>

<p_pid_gain_dec_angle>0</p_pid_gain_dec_angle>

<cc_startup_boost_duty>0.01</cc_startup_boost_duty>

<cc_min_current>0.05</cc_min_current>

<cc_gain>0.0046</cc_gain>

<cc_ramp_step_max>0.04</cc_ramp_step_max>

<m_fault_stop_time_ms>500</m_fault_stop_time_ms>

<m_duty_ramp_step>0.02</m_duty_ramp_step>

<m_current_backoff_gain>0.5</m_current_backoff_gain>

<m_encoder_counts>2000</m_encoder_counts>

<m_encoder_sin_amp>1</m_encoder_sin_amp>

<m_encoder_cos_amp>1</m_encoder_cos_amp>

<m_encoder_sin_offset>1.65</m_encoder_sin_offset>

<m_encoder_cos_offset>1.65</m_encoder_cos_offset>

<m_encoder_sincos_filter_constant>0.5</m_encoder_sincos_filter_constant>

<m_encoder_sincos_phase_correction>0</m_encoder_sincos_phase_correction>

<m_sensor_port_mode>1</m_sensor_port_mode>

<m_invert_direction>0</m_invert_direction>

<m_drv8301_oc_mode>0</m_drv8301_oc_mode>

<m_drv8301_oc_adj>18</m_drv8301_oc_adj>

<m_bldc_f_sw_min>3000</m_bldc_f_sw_min>

<m_bldc_f_sw_max>35000</m_bldc_f_sw_max>

<m_dc_f_sw>25000</m_dc_f_sw>

<m_ntc_motor_beta>3380</m_ntc_motor_beta>

<m_out_aux_mode>0</m_out_aux_mode>

<m_motor_temp_sens_type>0</m_motor_temp_sens_type>

<m_ptc_motor_coeff>0.61</m_ptc_motor_coeff>

<m_ntcx_ptcx_res>10000</m_ntcx_ptcx_res>

<m_ntcx_ptcx_temp_base>25</m_ntcx_ptcx_temp_base>

<m_hall_extra_samples>1</m_hall_extra_samples>

<m_batt_filter_const>45</m_batt_filter_const>

<si_motor_poles>14</si_motor_poles>

<si_gear_ratio>1</si_gear_ratio>

<si_wheel_diameter>0.083</si_wheel_diameter>

<si_battery_type>0</si_battery_type>

<si_battery_cells>3</si_battery_cells>

<si_battery_ah>3.5</si_battery_ah>

<si_motor_nl_current>1</si_motor_nl_current>

<motor_brand>Unnamed</motor_brand>

<motor_model>Not Specified</motor_model>

<motor_weight>0</motor_weight>

<motor_sensor_type>0</motor_sensor_type>

<motor_description><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Roboto'; font-size:12pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">A motor description can be edited here.</p></body></html></motor_description>

<motor_quality_bearings>0</motor_quality_bearings>

<motor_quality_magnets>0</motor_quality_magnets>

<motor_quality_construction>0</motor_quality_construction>

<motor_quality_description><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Roboto'; font-size:12pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Some comments about the motor quality. Images can be added as well.</p></body></html></motor_quality_description>

<bms.type>1</bms.type>

<bms.limit_mode>3</bms.limit_mode>

<bms.t_limit_start>45</bms.t_limit_start>

<bms.t_limit_end>65</bms.t_limit_end>

<bms.soc_limit_start>0.05</bms.soc_limit_start>

<bms.soc_limit_end>0</bms.soc_limit_end>

<bms.fwd_can_mode>0</bms.fwd_can_mode>

</MCConfiguration>