Oh right I didnt realise how complicated it was and that it needs some major brain power to get it working, would you ever expand into other vehicles to say try the Gavril T-series truck or something like that?
You're right, the exhaust temp needs to be high enough for the SCR catalyst to work. That's why they have the "high idle" setting now, in case the engine needs to idle for a long time. Also holy shit this mod is really something. I'm not sure how the power exactly flows from the engine to the wheels, but as someone who regularly rides Toronto's series-hybrid buses (BAE HybriDrive), it is astonishingly similar in driving feel.
They must be similar buses to what Chicago has; that was my reference for the "feel" of how my citybus mod handles since Chicago's hybrid buses are my only real-world reference currently. Glad it feels accurate!
Is it possible to add this code to say something like the Gavril T-series and other vehicles, maybe that should be another addition to the game, also if the devs asked you to do dev work on Electric motors for the game would you do it @Arcanox
It can be applied to any land vehicle if tuned right. As to whether or not I'd work for BeamNG, probably not, because I don't have enough time to dedicate to something full-time. This is just something I do in my free time.
I guess you are right about that with the tuning part of it, its just knowing how much is too much, ah okay well at least they could always look at incorporating code of yours into the game in the future if they do ever come out with an EV vehicle it would only be right to have your code in there
So I looked it up, and contrary to Toronto's pure series hybrids, Chicago's New Flyer hybrids use the Prius system--which seems to be the one modeled by your code. That said, I don't know how closely the in-game CVT can model the eCVT, which is actually a differential. Regardless, this is definitely heads and shoulders above most engine mods on BeamNG, if not a whole torso.
Ah, ok. I know Chicago was experimenting with several hybrid systems so perhaps I've only been on ones that are series mode and not the main fleet of "Prius buses". As for the eCVT in-game, it's not a planetary differential like the real Prius (or my Volt...), but it's fairly close in behavior. I didn't feel like trying to figure out the torque and AV equations for a planetary differential transmission at the time
Okay, I did a bit more testing. The simulated electric motors do not have a RPM limit. The engine overspeeds at high speeds, and whenever the wheels lose traction. Also, the creep feature is very irritating, especially with the race motors.
this^^ basically having the engine running at a constant rate to keep supercaps charged. Not too sure why they used supercaps when there is no charging mentioned, there isn't enough regen power to oversaturate a lipo battery... I'm seeing a train kind of vibe with this hybrid: the accelerator pedal controls the amount of power coming from the battery to the wheels, then the ECU will recharge the battery using the engine. The engine can be kept at a constant rate, which will be fuel efficient, or be turned off when required, when the load is low. This is what we can call a mild hybrid. Engine+Battery, no charging, and not much EV only mode. But also i thought of this idea, what if buses had relatively small engines, say 3.0L V6 diesel, recharging a battery slowly, then when needed the motor can deliver big pulses of acceleration, for things like passing and hill climbing, which are not sustainable, but it doesn't matter! The battery charge can decrease whilst in these states, then increase when the bus is driving on flat ground, or stationery.
this was very cool to read, and much of the stuff that you have mentioned i had implemented a few months back into a etk K-series, so in theory, it can be done if you would like, i can send you the jbeam file for that hybrid setup
Real electric motors technically don't have an RPM limit that would be hit under normal circumstances either, but I should probably add a forced torque falloff to prevent the wheels from exploding (regardless of how fun it is). I've never had the engine overspeed to the point of actual damage except if the vehicle's hanging with the drive wheels off the ground. It could be fixed by decreasing the minimum gear ratio on the CVT. Why do you find the creep feature irritating? For me, driving with my racing wheel/pedals, it feels about the same as the V6 idling on the stock 856. Huh, that's pretty interesting. Usually a brake balance too far to the rear causes instability, so those must not have had very powerful regenerative brakes (or used friction brakes at the same time in the front).
Current version of the bus hybrid is bang on perfect at what it needs to do. But there's just one last request, which i don't mind you not implementing (since it is just cherry on the cake ). So now the bus likes to maintain a state of charge of around 50%. What would be amazing if you could adjust this, on the fly, using a UI app! Eg. i could set a target of 90% battery for where i want my bus to be absolutely flying, therefore the engine is running a lot to keep the battery near full capacity (as i blast along using the circa 500HP capacity of both the engine and the fully charged battery.), or i could set it to have a target of 30%, leaving lots and lots of battery room for regen and etc. *bug* Also when the battery is charging (go in EV mode and drain it to like 25% and you'll see), on braking with regen, shut the engine off to allow for full regen, or disconnect the engine (leave in idle state) to allow max braking force for regen at all times. Also in the charging mode, at full throttle not all engine power is available, some is sent to the battery for recharging, at full throttle power should be going all to the wheels, as full throttle is like a panic state, the battery charge can be soon recovered.
One look at the AC-50/51 motors by HPEVS will tell you that motors do have an RPM limit. The Chevy Bolt's motor has an RPM limit of 8810RPM, and the Spark EVs had one of 4500RPM. I have had the bus engine overspeed while on oval test tracks, and also going off road which is usually where I go in BeamNG. The creep feature overrides the parking brake. With the 650 KW motor, it breaks traction every time you shift. It's hilariously fast though lol. I mean, it's your mod, and also you're not getting paid for this lol, so it's not really your job to write up a decent lua implementation of electric motors and generators and a flexible powertrain framework. Like, your implementation is technically a motor put onto the output of a steel-belt CVT. I think BeamNG has an actual RPM limit feature now, so you can "program the ECU" to limit the RPM.
I see what you mean now by the creep being annoying on the racing bus; I had only tested it on the ETK models and the normal bus model since changing the way it works. The racing bus is supposed to be humorous already, but the tires spinning with your foot still on the brake is a bit over the line I can definitely fix that. As to the RPM limit of the motors, technically the Bolt's motor could be driven to spin faster than that, but it would destroy itself from vibration. That's why there's a hard-imposed RPM limit on it. Once I get around to learning how to implement damage, I'll probably implement that as well as things like battery overheating/runaway. --- Post updated --- The "target" state of charge is actually determined by other factors, it's not something that is a set value or that could be easily adjusted. I do need to tune the equations a bit so that the performance doesn't drop as much when the battery is super low.
Oh no you don't have to do that I mean OEMs impose fuel cutoffs before engine damage anyway, the only way to damage them as I'm sure you know is to money shift in some way or another.
@Arcanox i don't think you saw in my post.. there's a bug where if the bus is in "recharge mode" with the engine charging the battery, there is limited regen. During regen the engine should be disconnected, to allow for the full 140Kw to be taken from the wheels, instead of a mix between the wheels and the engine.