Page 1 of 1

Zombieverter Nissan Leaf 160kW

Posted: Sat Jan 06, 2024 7:34 pm
by ted.walsh
code help required for wringing the most out of the 160kw inverter...



// Requested torque (signed 12-bit value + always 0x0 in low nibble)
if(final_torque_request >= -2048 && final_torque_request <= 2047)

this is a snippet from the Zombieverter repository that is compiled into the current live version for the VCU, it appears to limit the maximum torque request to a value below 2047 and be a hangover from the V1 hardware days as the same value is used there. notwithstanding V2.x doesn't have specific support for the 110 and 160 inverters yet, has anyone tried monkeying with the value? Ive looked at the Dala code for his middleware solution and it doesn't seem to do anything other that multiply the final value by 1.47 (up to 1.6!) on the 160 and 1.32 on the 110.

Any thoughts or better still real world experience by anybody?

Re: Zombieverter Nissan Leaf 160kW

Posted: Sat Jan 06, 2024 7:49 pm
by tom91
Do you have a setup with a Gen 3 drivetrain that runs to test on? I will dig a bit in the DBCs to see what limits are listed there.

You are looking at the wrong point buddy. It is a 12bit value thus 4095 dec max and then half that because its signed gives you the value limits listed in the code.

Re: Zombieverter Nissan Leaf 160kW

Posted: Sat Jan 06, 2024 8:15 pm
by tom91
Here is a a log from a 62kwh car
image.png
The way the torque gets requested is a bit strange.

So it scales from 0-100 as torque percentage then multiplies by 2047. Given the motor torque is scaled at 0.25 bit/Nm and its a 12bit value.

This would mean 2047*0.25 = 511.75Nm which sounds like quite alot.

Code: Select all

void LeafINV::SetTorque(float torquePercent)
{
   final_torque_request = (torquePercent * 2047) / 100.0f;

   Param::SetInt(Param::torque,final_torque_request);//post processed final torque value sent to inv to web interface
}

Re: Zombieverter Nissan Leaf 160kW

Posted: Sat Jan 06, 2024 8:52 pm
by tom91
Probally want to update the 0x1DC limits to the ones form a gen 3 log like below.
image.png
These values are currently hardcoded in the Zombie code
image.png

Re: Zombieverter Nissan Leaf 160kW

Posted: Sat Jan 06, 2024 9:33 pm
by tom91
If anyone one could please provide a CAN log of a Zombie controlling a Nissan Leaf inverter, I would like to see a log with the throttle flat requesting 100%. Please provide the Zombie settings with the log.

Re: Zombieverter Nissan Leaf 160kW

Posted: Mon Jan 08, 2024 12:01 pm
by Aragorn
I'm sure dala ran some tests where if you request more torque than the inverter allows, the inverter will just follow the programmed curve. Perhaps Zombie really is requesting 500nm? That must give weird throttle control though, as it will reach max torque at 50-60% pedal?

Re: Zombieverter Nissan Leaf 160kW

Posted: Mon Jan 08, 2024 12:44 pm
by tom91
Aragorn wrote: Mon Jan 08, 2024 12:01 pm I'm sure dala ran some tests where if you request more torque than the inverter allows, the inverter will just follow the programmed curve. Perhaps Zombie really is requesting 500nm? That must give weird throttle control though, as it will reach max torque at 50-60% pedal?
Exactly why I am asking for logs, so I can review the request and the response from the inverter.

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Jan 09, 2024 10:46 am
by ted.walsh
thanks for the help, Ill get a can logger and run a scan on the bus...

Re: Zombieverter Nissan Leaf 160kW

Posted: Wed May 08, 2024 9:23 am
by ted.walsh
tom91 wrote: Sat Jan 06, 2024 8:52 pm Probally want to update the 0x1DC limits to the ones form a gen 3 log like below.

image.png

These values are currently hardcoded in the Zombie code

image.png
Im Hoping to get some logs this weekend but in the mean time im going to change 0x1dc as suggested- is it just byte [1] I need to change or [1] & [2]? I cannot quite figure out the cryptic message in the .cpp comments

Re: Zombieverter Nissan Leaf 160kW

Posted: Wed May 08, 2024 9:53 am
by tom91
ted.walsh wrote: Wed May 08, 2024 9:23 am Im Hoping to get some logs this weekend but in the mean time im going to change 0x1dc as suggested- is it just byte [1] I need to change or [1] & [2]? I cannot quite figure out the cryptic message in the .cpp comments
"cryptic" because its just copy paste from a log.
image.png
Here is the format of the values.

So you the 10bit discharge limit is: 0x1B8 440d. The scaling is 0.25kW per bit, luckily its hex and if you shift it back 2 positions you are dividing by 4.
The discharge limits thus is 0x6E which is 110d kW

So what value do we want to try, lets say 150kW 0x69. Then shift this left 2 you get 0x258 or 600d.

bytes[0]=0x6E;
bytes[1]=0x0A;

Becomes

bytes[0]=0x96;
bytes[1]=0x0A;

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Jun 11, 2024 8:01 am
by ted.walsh
tom91 wrote: Sat Jan 06, 2024 8:15 pm Here is a a log from a 62kwh car

image.png

The way the torque gets requested is a bit strange.

So it scales from 0-100 as torque percentage then multiplies by 2047. Given the motor torque is scaled at 0.25 bit/Nm and its a 12bit value.

This would mean 2047*0.25 = 511.75Nm which sounds like quite alot.

Code: Select all

void LeafINV::SetTorque(float torquePercent)
{
   final_torque_request = (torquePercent * 2047) / 100.0f;

   Param::SetInt(Param::torque,final_torque_request);//post processed final torque value sent to inv to web interface
}
Well I can confirm that with your advice and insight @tom91 on reading our recent logs the peak request I see is for 511nm. At that point the MG_EffectiveTorque is showing 270mn and the shunt is telling me 493amps @ 330v - so pretty much exactly the 160kw rating.
Gotta be a big thumbs up for the Zombie VCU :D

Im still getting a thermal limp though after a couple of mins of running - it would appear that there is still some work to do labelling 0x55a is anyone has any further insight? :?

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Jun 11, 2024 8:17 am
by tom91
ted.walsh wrote: Tue Jun 11, 2024 8:01 am Well I can confirm that with your advice and insight @tom91
Did you do any code changes on the limits as per my previous post?

Thermal limit, why would that be linked to CAN decoding?!? Zombie does not do anything with the thermal data received? It is very possible the inverter has a limited operating time for the peak power.

You are saying you are doing a couple of minutes, this is not what the leaf itself is designed to do.

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Jun 11, 2024 9:09 am
by ted.walsh
Code wise, yes. I made sure 0x1dc[0]=A0 as that appears to be the documented max for my twinned BMW hybrid packs - the numbers do show that side of things are functioning as expected.
I didnt mess with anything to do with the throttle following your sage mentoring and a good session with ChatGPT getting Ai to explain bit shifting and other C related insights. Its a very patient teacher.

Thermal wise I do understand that the 'fault' isn't to do with the code per se its more my understanding of the decode on the log notwithstanding I made a couple of hardware modifications before getting the log that may be skewing the view somewhat.
No doubt I am taking things beyond their design concept in a way that is difficult to achieve in a road car. Im sure nobody drives their Leaf round at 95mph for very long.
I havn't tried soft pedalling for a few mins with the logger on yet but may be able to do so over the weekend as well be able to test again. I have my suspicions on this but more testing is required.

I do have a 44mb can log if anyone would like a copy? - PM and Ill get one across

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Jun 11, 2024 9:16 am
by tom91
if its a CAN log please share it with us

Re: Zombieverter Nissan Leaf 160kW

Posted: Mon Nov 04, 2024 7:56 pm
by ted.walsh
For @tom91 (& those others who are interested in staring at other peoples data) Im attaching a can log of my first outing from this years 2024 Coniston Records week. If you'd like any more insight just ask away!
logged is a full power 1km run south a slow-ish turn and a full power return through the measured kilo.

If any knows how to rinse more RPM out of the Leaf E+ 160kw then Im all ears. Does anyone know if there is a programmable value for MAX_RPM or alike?

Re: Zombieverter Nissan Leaf 160kW

Posted: Mon Nov 04, 2024 11:41 pm
by tom91
ted.walsh wrote: Mon Nov 04, 2024 7:56 pm Does anyone know if there is a programmable value for MAX_RPM or alike?
Please attach the Zombie VCU params

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 05, 2024 8:21 am
by ted.walsh
TYG...

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 05, 2024 9:31 am
by johnlr
ted.walsh wrote: Mon Nov 04, 2024 7:56 pm If any knows how to rinse more RPM out of the Leaf E+ 160kw then Im all ears.
Since you have constant power (160kW), rpm will depend on prop pitch. It would likely be best to change the rpm to maximize inverter/motor efficiency. I don't know the most efficient rpm for EM57/160kW inverter, it maybe more or less than the 6000rpm you are seeing.

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 05, 2024 12:06 pm
by tom91
Reveiwing the CAN log with a Leaf ZE1 dbc.
image.png
You can see we request more torque yet the inverter refuses to give it to us.
image.png
The battery info reported during the run.

As you can see we are just maxing out the inverter. The average power of the two flat bits are 150-160kw give or take

One option to try, increase the power limit in message 0x1DC slightly if you are confident nothing in the battery setup gets hot.
It is possible the inverter will draw more, or it will also have its own internal limit.

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 05, 2024 10:11 pm
by ted.walsh
@tom91 thats great, thanks for the feedback - after looking at it Im interested as to what is actually going on here....
image.png
The actual and requested follow very nicely until about 260NM when there is a big departure. Is this because we run over the set KW limit or because the requested value at that point departs from an MAX_NM setting? either way Im assuming the resultant 'fuzzing' is some internal management algorithm trying to keep things on the straight and narrow.
as a question for all then, would it be best to keep the requested torque value underneath the 260NM 'limit' in code and get a smoother delivery or increase the KW value to try and raise the point at which the fuzzing comes in?

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 05, 2024 11:51 pm
by tom91
It is the KW limit which you are seeing.

Re: Zombieverter Nissan Leaf 160kW

Posted: Tue Nov 12, 2024 3:32 pm
by ted.walsh
This is a trio of later logs. I held the total torque request (throtmax) back to 60% in an attempt to get a smoother delivery as I struggled to get the power delivery under control and that was making it difficult to drive. it sorta helped but Id changed the propeller and that didn't.
our best performance incidentally was when I accidentally limited the VCU to 500a (idcmax) and it did not like that one bit, performance was very unpredictable on the throttle as Im guessing there isn't much in the way of request smoothing going on but once the requests started to come within manageable numbers this smoothed out and we got our best run.

Im assuming from the data that the inverter is now the bottle neck and Im not going to get much further with the standard management board as it has a lot of limits and timers programmed into it that will ultimately hold performance back, Here's to hoping Johannes and crew can pull it out of the bag 8-)