So I need to syncronize the rpm-signal of a combustion engine (2 cylinders, 4 strokes, 1000rpm=16.6HZ) to an electric motor. My idea was to fetch the signal on the negative side of the ignition coil and control the electric motor via PWM.
Unfortunately, I could not find any information at all regarding the snycronization of combustion engines and electric motors...
That being said, I have no experience with the arduino and just wanted to make sure that this task can be completed with the adruino-system.
If so, I would also be extremely grateful if any experienced user could help me with a rough list of things I would need to archieve this....
Hi,
Sorry, english isn't my first language, maybe phrasing it like that was a little unclear:
I basically want the ICE and the E-motor to run at the same speed and have the e-motor follow the rpms of the ICE all the way to it's redline at about 7500rpm.
Thanks!
Try this: Please describe in detail the electrical and timing specifications of the rpm-signal you mentioned in the first line of your posting. Without that description the rest is a wast of time.
You can control the speed of a DC motor with PWM, but to make it match the RPM of the internal combustion engine, you need to measure the RPM of the electric motor and adjust the PWM continuously to achieve the desired RPM. This is not easy and will probably require the use of a PID controller. You will need to tune the PID controller's parameters to follow the target RPM as closely as you can. It will always lag behind the target RPM of the internal combustion engine as that changes.
So this is a difficult challenge!
How much torque must the electric motor produce? If only a little, you could consider a stepper motor instead of a DC motor. You can directly control the RPM of a stepper motor by timing the pulses to its coils, which should make matching the internal combustion engine's RPM a little more straightforward.
Vehicle RPM can be had by looking for its hall sensor signal, or the ignition coil voltage spikes. For both you will need some sort of transducer (mostly a coil). With the ignition coil since each fires once for 1/4 of the crank rotation (4-cyl engine) multiply the no. of pulses by 4. You may measure pulses every second or every millisecond. So whatever value you get within that window you multiply by 4.
While eating breakfast, I realized the impossibility of the proposal. When the engine is stopped, it will stop very quickly. But the electric motor will continue to rotate unless it also has a braking mechanism. Same applies when the IC engine speeds up and slows down, there is NO slowing of the electric motor.
There will be a lag - the electric motor will follow the engine after a lag, since first the engine RPM is determined,and then the input to the motor is computed. The lag will be less or more depending on the overall physical connections and programming logic. However nothing will be instantaneous.
The fundamental issue is that an ICE rpm is directly related to its ignition cycle.
While a typical DC motor speed is related to intangible variables that need to be measured. (brand, model, mass, poles, voltage load etc)
The answer in my mind is to create a closed-loop dc motor controller with rotational feedback… that will run by independently when given a desired target speed.
Once the ICE speed is determined, and the needed control frequency is derived, send that to the dc motor controller, and it will follow (momentum notwithstanding’.
Depending on the complexity of the motor driver, it can be ‘slowed down’, otherwise it would free wheel until the target speed is achieved.
This isn’t a simple problem, and the specification for performance and tolerances needs to be defined before any single solution can be applied vs it’s cost.
Sorry, just still logged in with the tab open, didn't have time to actually read until now.
Thanks for all the input! Seems like this is far more complicated than expected.
For reference, the engine is a carbureted two cylinder gasoline engine, the electric motor is a simple 24V DC brushless, not much power/torque.
Reading about all the difficulties I didn't even think of at first, I came up with another idea:
I could measure the throttle-butterfly to determine which openening degree equals which rpm. Then a potentiometer could be mounted to the throttle shaft and set up accordingly. To factor in the slight throttle-lag of the IC engine (although it is very responsive), a adjustible delay could be added to the potentionmeter.
I am aware that the electric motor would spool down way qicker than the IC engine when closing the throttle by using this method, but I assume that at least for raising and holding the rpm this might work...