Hobbywing X9 Plus Motor strange behavior

hello every one

We are using X9 Plus Product for Agriculture Drones , Recently we see Strang Behavior from this type of Motors .

On the Air suddenly we hear the Collison sound from the blades and many times this action cause thrust lost on that specified Motor and Blade .After we check that motor we see the Effect of Collision of Blade and Blades Hub and some time this cause to break the Blades .

the collision is in the direction of increasing speed that shows the Motor speed up unmorally or something alien happenf .

Please check this for motor X9 Plus , I will attach some Photo about it and log .

it happened on 6 different X9 Plus Motor. we cannot explain this . is anyone have a experience like this ?!

we also check everything on wiring system , PDB , Signal wires and all works fine . as you can see in the log there is no high load on the motor and it was worked at 40% . it happened many time and every time we change that motor to a new motor it happened for another motor on other arms .

https://drive.google.com/drive/folders/17yVzV7Gb4aywG7oqkZwiMem7vfe1mKC2?usp=sharing

It looks like motor outputs are oscillating and it looks like Motor4 has a desync.
Only motors 1 and 2 seem to have normal outputs.

You can also see problems in attitude control around the same time as the apparent desync.

Vibrations are acceptable so I think we can rule that out as a cause for the oscillations.

Why MOT_THST_EXPO,0 ?
I would use MOT_THST_EXPO,0.8 and definitely retest the MOT_SPIN_ARM and MOT_SPIN_MIN
after also setting the battery related parameters correctly
What battery do you have?

I would reduce these

ATC_RAT_YAW_I,0.08
ATC_RAT_YAW_P,0.8

and set these ready for the next test flight (after more battery-related settings)

ARMING_CHECK,1
AUTOTUNE_AGGR,0.08
INS_HNTCH_ENABLE,1
INS_HNTCH_FREQ,25
INS_HNTCH_BW,10
INS_HNTCH_FM_RAT,0.7
INS_HNTCH_REF,0.26
INS_LOG_BAT_MASK,1
INS_LOG_BAT_OPT,4
LOG_BITMASK,180222
PSC_ACCZ_I,0.6
PSC_ACCZ_P,0.3

When you reply with your battery details there are some more things to set.

Then I would probably look at running the VTOL Quicktune script to sort out the oscillations.

Battery Details is :
Tatto V3.0 14c 28000mah Highvoltage (4.35)

Motor Trust EXPO is on 0 becuase of FOC ESC

Then put in these values

BATT_ARM_VOLT,51.70
BATT_CRT_VOLT,49.00
BATT_LOW_VOLT,50.40
MOT_BAT_VOLT_MAX,60.90
MOT_BAT_VOLT_MIN,46.20

and set the MOT_THST_EXPO,0.8 then retest MOT_SPIN_ARM and MOT_SPIN_MIN

In the technical details for those ESC/motor combinations the thrust is not linear.
If you think it’s near-linear you could try MOT_THST_EXPO,0.2 but I’ve always seen those Hobbying X series used with our normally calculated thrust expo.

Where in the specification mentioned that?
I have X6 and X8, we use ArduPilot recommended expo value, for X6 I even copy and paste into thrust scale to expo to better value nearby ArduPilot suggested value.

By the way, have you done a ESC calibration?

@xfacta
In initial parameters v1.9, it now uses new formula, is the thrust scaling spreadsheet still relevant?

It says FOC but I dont think that guarantees linear thrust

and further down they have a table, but the graph appears to be in amps and rpm, and has a linear thrust scale to one side - so I cant work out what that even means.
I just graphed it myself and thrust is not linear by RPM, it would be nicer if they supplied PWM instead of “percent” input.

This link may not be directly accessible without agreeing to terms, and only lists the 34inch props, not 36inch.

The trust scaling spreadsheet is the most relevant if you have valid data to enter. It will give the best thrust expo answer.
The Initial Parameters spreadsheet (and calc in MissionPlanner) give an estimate of what is typical for a given prop size. It does NOT take into account ESCs that try to linearise their output - see the years of debate about T-Motor Flame and Alpha ESCs.

1 Like

@AhmadAli_Malakooti , you should do that.

@xfacta , interestingly we see different spec.
He is using X9 plus right.
It also recommend setting the mot min and max pwm

Operating Pulse Width 1050-1950us(Fixed or cannot be Programmed)
X6, X8 are 1100 - 1940
I haven’t access user log to check on that.

Yes, typical for the Hobbywing X series, and those were correct in the log

MOT_PWM_MAX,1950
MOT_PWM_MIN,1050

Yet in the technical bit it says 1100-1940.
I’ve not seen any bad reports about the Hobbywing X series, but it makes you wonder when they have different specifications listed in two places.

1 Like

It is good to also set servo1,2,3,4,5,6 SERVO6_MAX to 1950, and servo 1,2,3,4,5,6 SERVO6_MIN to 1050.
I did that for my X6 motors.

There should be no need to set the Servo min and max, as the MOT_PWM values are used for all motor outputs.

would you check the :
RC_SPEED,
Servo_Rate,
SCHED_LOOP_RATE,

I decreased the RC_SPEED To 50Hz to using lower PWM Frequency due to Reduce Noise Effects , Because the Signal of Back motors Travels about 2 Meter from FC TO ESC .

also what about the
MOT_SLEW_UP_TIME
MOT_SLEW_DN_TIME

I would NOT change any of those from default values, especially SCHED_LOOP_RATE.

MOT_SLEW values we can look at but they are probably not critical - I’ve not seen where they are needed for the Hobbywing X series.

First you should apply all the values I’ve specified and do a short test flight in AltHold and Loiter then land. Dont do long flights or Auto missions.
Supply that log file.

I suspect you may need to add extra capacitors to the power wires very near to the ESCs since they are so far from batteries. This is an issue for all ESCs that are contained within the the motor-mount system or are mounted near the motors. It is better to have long motor wires and short power wires.
But let us see if we can contain the oscillations and bad behaviour first, then the ESCs may not do desyncs and wreck the props.

ok on it , as soon as test flight is done , I will upload the log .

test flight is done ,
I upload the :
MOT_THS_EXPO : 0.8
lunch the notch filter with details you said and flight in : althold → loiter ->seems fine → lunch quicktune -->land

here is the result :
left : before changes , right : after changes and qtune

as you can see the motor oscillation is gone and vibrations reduced . tank you i think my problem is solved .

and the final thing is about the notch filter the Ardupilot documentation is so simple and i cant figure it out exactly . can I use the notch filter parameters as you said for similiar copter or not ?! .

it is so much better if we have some tools in MP to calculate the Notch filter parameters .

here is the log contains the ALTHOLD,LOITER,QTUNE,LAND

Will this and this be helpful?

You need to do these:

ARMING_CHECK,1
ATC_THR_MIX_MAN,0.5
BATT_ARM_VOLT,51.70
BATT_CRT_VOLT,49.00
BATT_LOW_VOLT,50.40

Those are all very important.
You only disable an arming check if there is a temporary issue with some device, otherwise the issue should be fixed and all arming checks enabled.
The MIX_MAN will give nicer flight now that oscillations are gone, it’s not critical but is normal.
The battery settings are highly important! Even if you were working from capacity or flight time the voltage settings should be in place so the copter can save itself if the battery has a bad day or your capacity values where wrong. A pilot cannot monitor voltages and decide on an action if things get busy.
I see you use BATT3 with a CAN sensor - ensure exactly the same settings are in BATT3 and BATT. The values I supplied suit your battery packs.

Adjust the harmonic notch filter like this:

INS_HNTC2_ENABLE,0     definitely not needed
INS_HNTCH_FREQ,33
INS_HNTCH_BW,15
INS_HNTCH_REF,0.15

The harmonic notch filter takes some time to figure it out reading the documentation and experimenting.

You should be able to run Autotune now. Do each axis individually.

Arming check for range finder is disabled becuase of our sensor NRA24 on steady surface doesnt send Any data and FC think the Range finder is unhealthy so we have to disable it .

Batt 1 is set on analog voltage monitoring wich is Pilot access it and because of vlotage drop on analoge sensor we use Batt3 as BMS for low and Crt voltage to have more time of flight also we have a script that set the low and crt values for batt 1 and Do RTL immediately if Batt3 become unhealthy .

after Auto tune done i will upload the result for double check . Thank you again