>The torque command we are using is on the 0x90 register, which is "M set (dig.)", it is actually a current command.
No, 0x90 is the percentage of the allowed current to be used for torque. Ndrive IIRC shows the calculated current it can apply below the actual field, which could be where you're confusing it as being an actual current limit. Registers 0xC4 and 0xC5 control the physical current limits (max and continuous, respectively). They should be on the left side of the register panel, by the motor properties. 0-32767 maps to 0-424A for max, and 0-200A for continuous (so for 100A max we could set 0xC4 to 7728). We had separate max and continuous current values for both accelerating and regen.
>From page 79 in the NDrive manual
Ndrive manuals are widely varied, I think I still have multiple versions somewhere. Do you have a specific manual version you're referring to or could you link it?
>I think that your assumptions on the accumulator are very optimistic, or we are using a different type of cells. During typical tests of our car, the voltages go from 440V down to 380V, so (even if it was possible) setting a fixed current input limit is not ideal, as the power limit will go from 44kW to 38kW during the use of the car.
My example dealt with a difference of seconds, not the whole endurance event. Specifically, the seconds between standstill with power applied and moving at whatever speed 2650 PRM is with power applied. Very minor battery voltage difference. For the whole endurance event, you could recalculate the allowed current based on the battery pack voltage. However, I'd either have the option to revert that quickly at comp should the scrutineers not like that or submit a rules question to make sure that calculating and applying higher current values than at the start of the event isn't technically violating the rule that requires control algorithms to only decrease the requested torque from the driver.
>Another thing that you are not considering is the fact that the motors (and the inverters) will draw more power depending on the speed of the vehicle.
Are you referring to the back EMF, and how that increases as the motor spins faster? IMHO, saying something "draws" power is poor phrasing for what is actually happening here. The motor is realistically just 3 inductors arranged in a star or triangle. The motor controller is simply connecting those legs to the accumulator voltage via the six IGBTs in a pattern synchronized with the signal from the resolver mounted on the motor (and offset by the initial calibration angle). The controller's losses are not dependent on speed, it's based on the PWM on-time of the IGBTs and their forward voltage (plus switching loss, which is stable, though higher at higher switching frequencies). A long on-time allows the current flowing through the motor to build up fast, but is not instant (it's an inductor, after all). This is where the PID controller can monitor the limits to change the PWM duty cycle, and this is also where a higher switching frequency results in a more stable current flowing through the motor because the fluctuations are smaller due to them happening faster. This longer on-time is during high torque output, not specifically at a certain speed. That's not to say that a high speed doesn't require more torque to maintain the speed (higher wind and rolling resistance, to start), though still not as much as it took to accelerate to that speed.
Regarding back EMF, this is the reason why the increasing back EMF of the motor (as it speeds up) eventually stops increasing because the voltage of the accumulator is no longer greater than the back EMF. On a bench test under "no load" conditions, applying a torque will eventually stop accelerating and stabilize once these balance out. However, any time the accumulator voltage is above the back EMF voltage (so not at max speed), the motor controller can dictate the current flowing through the motor by just adjusting the PWM duty cycle. Funnily enough, given the accumulator voltage swing you stated, you should see at least a 10% drop in maximum speed over the course of the endurance event (assuming you're using the whole RPM range corresponding to that voltage). Sidenote, there are ways to get around this and generate a faster motor speed via magnetic field weakening, but this is usually more complicated, still needs to be within motor parameters, and requires significantly more power to achieve. You also lose torque the further you push into that zone. I think the Bamocar technically supports doing that, but I never experimented with configuring it.
The current in the motor inductors is going somewhere, and that is through the motor controller. I don't know the exact sensors or their placement in the Bamocar to measure this current (coils, low-resistance resistors, or whatever), but functionally it's measuring three legs that have current flowing through them to the DC high voltage line. This is why I'm saying that those registers (0xC4 and 0xC5) are directly controlling the limits of current, because those are the currents the Bamocar measures. That motor current is the current the accumulator sees. The only part my memory of Ndrive is failing on is whether or not those are labelled as DC A, or A RMS. In either case, it's simply using a constant multiplier to get whatever value is comfortable to you.
For further reading, I'd like to recommend Electric Motors and Drives: Fundamentals, Types and Applications by Austin Hughes and Bill Drury as a good book that covers everything from basic brushed DC motors through PMSMs and their controllers.