Go Down

Topic: Building an break in rig for rc engines (Read 634 times) previous topic - next topic

victorg00

Hi!

I am currently working on an Arduino project where I am building a break in system for RC engines. I have some problems and maybe some ideas to solutions but I don't know if this is possible.

The idea is like this:
I am thinking about building a heated oil bath which I put the engine in, then I connect a dc or stepper motor to the engine's crankshaft so I can rotate it. Then I will use my Arduino to read the resistance and torque needed to turn the crankshaft of the engine and by using the values I get from that
I want to choose from different pre-programmed break in operations depending on how much break in is needed.

The oil bath's temperature is going to be monitored and controlled by the Arduino's and the engines rpm too.

Hope you guys can give me some advice and maybe ideas on how to read the resistance and compression of the engines and then decide a break in option depending on that.

Here is a video of a similar rig which is not controlled by an arduino:
https://www.youtube.com/watch?v=4cLXNDb22LE

Robin2

With a DC motor and some means to measure its speed you can detect changes in the force it is exerting by measuring the current it is drawing.

A stepper motor cannot be used like that because they draw the full current even when stationary.

Another approach is to put some sort of strain gauge between the electric motor and the motor being broken-in.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

wildbill

A waterproof DS18B20 will be handy for reading oil temperature and an immersion heater plus the PID library should take care of temperature control. In your example video, it looks like a stepper being used to turn the motor.

Do you really want to measure compression? In that example at least, it looks like the cylinder head is removed.

victorg00

Hi wildbill sry for being inexplicit!

Compression was maybe the wrong choice of word. I mean the tightness between cylinder and piston. So the only real measurement I need is how heavy it is to turn the motor.

Thanks for the recommendation of the temp sensor I will look that up.

victorg00

Hi Robin2!


This is pretty much to cycle I want to go through. This cycle is a copy of the one an existing system on the market is using. But what I want to add in my system is a function in the last phase which reads the momentum to turn the engine required either by reading the current or by reading the speed of the motor. The last phase should go on till it reaches a special value. Every motor is a little bit individual but I want to get the same result of abrasion every time in the end.

1st start I heat it up to 95 degrees to have some heat for a low pinch. You have to warm it up for about 20 minutes when the bath on all sides feels hand warmly before starting the motor.
After a half hour running you will notice the rpm did raise a bit and the current is much lower than at the 1st start.
Then I set it to 85 degrees and you will notice the current is going up a tiny bit and the rpm lowers a tiny bit.
Then I let it run for several hours and after that I lower the temp to 65~70 degrees and let it run for 1 hour

Do you think that is possible and what reading do you think I should focus on? The rpm or current the motor is drawing?


Robin2

what reading do you think I should focus on? The rpm or current the motor is drawing?
You need both because they affect each other. Either choose a fixed current and use the resulting RPM as an indicator of friction or fix the RPM and use the changing current as the indicator.

Actually, I think you need to keep the RPM constant because the force required at different speeds will be affected by the different amount of pumping, and not only by friction. The only result of the breaking-in process is to reduce the friction. The pumping forces will always exist and will just confuse your calculations of changes in friction if you allow the speed to change.

Of course you might wish to do a few series of tests at different speeds - but don't try to compare readings at one speed with those at a different speed.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

victorg00

Ah okay!

But how do I keep the rpm constant? If I for example run the motor on full speed(analogWrite(255)......) and first when it is really heavy it can just go to 300 rpm and then due to less friction maybe it will rise to 400 rpm?? Is there any controllers for that which helps to keep the rpm constant, Should I maybe go for a dc motor with encoder.

I was thinking of using this as it produces a lot of torque  http://www.conrad.com/ce/en/product/233131/High-performance-gearbox-motor-Modelcraft

Robin2

I am not going to comment on your choice of motor as I don't know enough (anything) about the breaking-in process you are trying to implement.

Quote
But how do I keep the rpm constant? If I for example run the motor on full speed(analogWrite(255)......)
The first requirement is a motor that does not need full power - so that it has something in reserve if it needs it.

You need to be able to measure the speed of the motor and then you need code in your program to adjust the PWM value up and down as necessary to hold the speed constant. A simple speed detector can be made with a black disk that rotates with the shaft and has a blob of white paint on it. A reflective optical detector such as a QRE1113 can then detect the white spot and the Arduino can measure the time for each revolution.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

wildbill

I owned a glow plug engine once but I know nothing about breaking them in - I assume you're trying to optimize to get that last few percent for racing. However, car and motorcycle manufacturers  break in instructions suggest that you should vary revs during the break in period. Indeed, they suggest that running at constant revs is a bad thing. Is the same thing true of the kinds of engines you will be using?

Robin2

However, car and motorcycle manufacturers  break in instructions suggest that you should vary revs during the break in period. Indeed, they suggest that running at constant revs is a bad thing.
Good point. I was only referring to holding the speed constant during the measuring period.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

victorg00

Hi!

I don't think that alternating rpm:s is necessary because I will be adjusting the temperature in the oil bath instead to get the right abrasive on the main different cylinder positions.

How do I measure the current the motor is drawing. Can I use one of the analogue ports??

Robin2

#11
Jun 05, 2017, 11:57 am Last Edit: Jun 05, 2017, 11:57 am by Robin2
How do I measure the current the motor is drawing. Can I use one of the analogue ports??
You can't measure current directly.

One way is to pass the current through a very low value resistor (such as 0.005 ohms) and measure the voltage across the resistor. However that voltage will be too low to measure directly with an Arduino without amplifying it. The Atmega328 in an Uno does not include an amplifier, but the Atmega2560 in the Mega does.

Another way is to get a current sensing module that clamps over the wire and converts current into data the Arduino can use.

It would be useful to know what range of currents you want to measure.

...R
Two or three hours spent thinking and reading documentation solves most programming problems.

victorg00

Hi!

The motors max load current is 0.7A so I guess the measures I want is around 0-1A or how does it work?

MarkT

Use a shunt resistor of 0.1 or 0.2 ohms is fine for that I suspect.

To control speed you'll have to measure speed with an encoder or hall switch or similar and use
a feedback loop.
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

MorganS

And don't forget to break in your break-in rig without a motor. The DC motor will probably have very similar characteristics for the first million revolutions.
"The problem is in the code you didn't post."

Go Up