Dual plane dynamic crankshaft balancer build

AshPowers

Well-known member
2 weeks obsessed yield a quite satisfying outcome.

I've always wanted to build a balancing rig like this And finally the stars aligned and made thoughts into matter.

The physical construction is pretty self-explanatory in the images. As for the electronics I'm using a pair of 20 kg load cells that I pulled out of a pair of handheld digital scales I purchased from Amazon for $9 each. Those sensors are tied into an x1000 gain amplifier and fed into a teensy 4.0. I'm also using a magnetic rotary angle position sensor which has a 3.3 volt power input and analog output from 0.3 volt to 2.8 volt over a 360° rotation.

The teensy has two different operating modes: stream and burst. Streaming mode samples position and load cells and spits that data out through the serial port as quickly as it can crunch. This is mostly used just for making sure the position sensor and load cells are working properly. Burst mode writes out to two separate arrays of 10x360 where load cell data is stored for each degree of rotation. Then the average is taken over those 10 samples for each degree. This process is performed over 150 revolutions and each degree averaged once again. At that point serial data is sent to the PC to cover one full rotation of load cell data.

The windows UI is written in VB6 and is pretty self-explanatory. At the moment it is at its most basic it can functionally be but I couldn't be happier with the results.

I've attached a link to a YouTube video I put together today of it as a walkthrough. I have quite a few more code implementations to write up but now having a functional machine has really helped to fuel the motivation. 😏

https://youtu.be/cknnzavM24E
 

Attachments

  • IMG_20230116_204434_(1080_x_1080_pixel).jpg
    IMG_20230116_204434_(1080_x_1080_pixel).jpg
    127.7 KB · Views: 160
  • IMG_20230116_204535_(1080_x_1080_pixel).jpg
    IMG_20230116_204535_(1080_x_1080_pixel).jpg
    155.7 KB · Views: 144
  • IMG_20230116_204554_(1080_x_1080_pixel).jpg
    IMG_20230116_204554_(1080_x_1080_pixel).jpg
    81.1 KB · Views: 131
  • IMG_20230116_204645_(1080_x_1080_pixel).jpg
    IMG_20230116_204645_(1080_x_1080_pixel).jpg
    137.1 KB · Views: 134
  • IMG_20230116_204627_(1080_x_1080_pixel).jpg
    IMG_20230116_204627_(1080_x_1080_pixel).jpg
    148.3 KB · Views: 143
Cool and very impressive that you can put together something like this with mechanical, electrical, electronic, and software elements. I'm curious about the position sensor and how you use it to sample load position in degree increments?
 
AshPowers,

That's incredible! The mechanical build, the physics analysis into software, excellent UI, and usefulness to a real world application - Nice!

Andy
 
Cool and very impressive that you can put together something like this with mechanical, electrical, electronic, and software elements. I'm curious about the position sensor and how you use it to sample load position in degree increments?

The position sensor only provides the angular position of the crankshaft. The two load cells, one on each pedestal, provide the force data created by the imbalance of the part.

In burst mode the teensy first begins continuous analog reads from the position sensor until the crankshaft is at 0°. This is while the crankshaft is rotating at speed. As soon as the crank is at 0°. That kicks off a sub routine which reads the ADC values from the two load cells. This data from the load cells is acquired over seven samples which is averaged. There are two separate arrays, one for each load cell, 10*360. So at this first burst sample cycle here at 0°, The value of the load cells is put into position zero, zero in each of the two arrays.

Then the burst routine waits until the crank rotates to 1° and that kicks off the force measurement routine. That populates the two arrays in positions zero, one.

It does this over a full 360° rotation and then continues that same process for nine more full rotations. This populates both force arrays.

That kicks off a simple averaging routine that averages the force data over those 10 rotations for every single degree and puts those average values into another array for storage temporarily.

On top of the 10 rotation data average I've set the code up to do this 15 times over. This was needed to filter out both mechanical noise affecting the load cells AND the jitter in the teensy's ADC (GRRRR).

At this point a subroutine kicks off to send 360 load cell data points for the front sensor and 360 load cell data points for the rear sensor, using the serial print function. On the receiving side the windows UI populates two different arrays with load cell data. Because each array begins at 0° position that makes it pretty easy to manage the data and use that for generating the graphical display.

I've ordered delrin acetal plastic plate to make a set of v-block supports for the crankshaft rather than using rolling element supports. Ball bearings are just inherently mechanically noisy not to mention the kind of precision machine work it took to produce the sleeves the bearings are pressed into and the shafts that are pressed into the bearings such that the interference fit of both of those components properly loaded the ball races to eliminate the ball slop AND that the roller plates were perfectly concentric, square and true to the bearing centerline.

Delrin v blocks we'll have a very low coefficient of friction on the steel main journals and better yet it will completely eliminate all rolling element mechanical noise and potential mechanical runout.

Eliminating those heavy bearings and shafts will also be beneficial. The additional mass dampens the effect of imbalance in the rotating part so the lighter you can make the support pedestal the better... Not to mention it also increases the base resonant frequency of the pedestal/part assembly.

Winded response, most likely redundant to your knowledge, my apologies for that.
 
The position sensor only provides the angular position of the crankshaft. The two load cells, one on each pedestal, provide the force data created by the imbalance of the part.

In burst mode the teensy first begins continuous analog reads from the position sensor until the crankshaft is at 0°. This is while the crankshaft is rotating at speed. As soon as the crank is at 0°. That kicks off a sub routine which reads the ADC values from the two load cells. This data from the load cells is acquired over seven samples which is averaged. There are two separate arrays, one for each load cell, 10*360. So at this first burst sample cycle here at 0°, The value of the load cells is put into position zero, zero in each of the two arrays.

Then the burst routine waits until the crank rotates to 1° and that kicks off the force measurement routine. That populates the two arrays in positions zero, one.

This is all great info. So, the crank is spinning, and you do a series of measurements at 0 deg, then a series of measurements at 1 deg, etc? Is the output of the position sensor an analog value proportional to position, and you read it continuously and begin your load-cell measurements at the desired angle? Is there also a digital input for 0 deg?
 
This is all great info. So, the crank is spinning, and you do a series of measurements at 0 deg, then a series of measurements at 1 deg, etc? Is the output of the position sensor an analog value proportional to position, and you read it continuously and begin your load-cell measurements at the desired angle? Is there also a digital input for 0 deg?

Over a series of test runs I had to determine how many data samples I could take within 1 degree of crankshaft rotation at a maximum of 1000 RPM or so. So I ended up setting the number of ADC conversions just a hair under the amount of time it takes for one degree to pass. I'm not using interrupts in this project as that seems like it would complicate things a bit. So basically once I've taken as many samples as I know I can take within 1 degree of rotation, just a split second later the angle position sensor kicks off to the next degree and the cycle begins again.

I have determined what analog voltage step is for one degree of rotation but more practically I've determined how many samples I can take at 1,000 RPM within one degree of rotation.

Yes there is a load cell measurement taken at 0°. In fact that's the first load cell measurement which kicks off the rest of the routine that acquires load cell data for each consecutive degree there after.
 
Over a series of test runs I had to determine how many data samples I could take within 1 degree of crankshaft rotation at a maximum of 1000 RPM or so. So I ended up setting the number of ADC conversions just a hair under the amount of time it takes for one degree to pass. I'm not using interrupts in this project as that seems like it would complicate things a bit. So basically once I've taken as many samples as I know I can take within 1 degree of rotation, just a split second later the angle position sensor kicks off to the next degree and the cycle begins again.

I have determined what analog voltage step is for one degree of rotation but more practically I've determined how many samples I can take at 1,000 RPM within one degree of rotation.

Yes there is a load cell measurement taken at 0°. In fact that's the first load cell measurement which kicks off the rest of the routine that acquires load cell data for each consecutive degree there after.

That's very clever. So, you're taking N measurements from 0-1 and calling that the "0-deg" data, then N measurements from 1-2 deg, etc.? And are you detecting 0 deg by the drop in output voltage of the position sensor?
 
That's very clever. So, you're taking N measurements from 0-1 and calling that the "0-deg" data, then N measurements from 1-2 deg, etc.? And are you detecting 0 deg by the drop in output voltage of the position sensor?

Yes, N samples from 0-1, then 1-2, etc. I am detecting 0 deg not by a falling edge, no, but simply by the moment where the position sensor's output = the known low ADC value. I have kept the T4 code as simple as possible without maths to convert the raw ADC values into units. For the position sensor I have a calibration sub that detects the lower and upper AD values right at the transition. That sub then maths out what the AD value is for one degree of rotation step. Doing it this way, the burst sub waits for the low AD value from the pos sensor, samples the load cells, adds one degree of AD value to the pos sensor and waits for the ADC to see that new pos sensor value.

I have a few ideas to make things far better though. Instead of having a fixed number of AD samples based on that 1000RPM test speed I will be using the T4 to produce a PWM output to drive a SSR for powering the drive motor - using quasi-PID routine I'll write up for this.

In the balancing process you need to start out at a lower test RPM. You don't want the imbalance to cause the part to rattle around on the supports or worse, fly off. You also don't want to overload the load cells beyond their mechanical yield point.

The idea now is to write a routine that starts the test at a low RPM and gradually ramps up that speed while taking reads from the load cells. At the RPM where the load cells are approaching ~80% of their full range the code will then calculate how many load cell ADC samples can be taken in the burst routine per degree at that RPM... then this kicks off the burst routine. Having the system setup like this it will be able to determine the ideal test RPM each time on it's own.. When balancing parts like this you aren't just spinning it up once and shaving/adding weight here and there and then you are done. No, it is a process of spins, shaving/adding, spin again a little faster, shaving/adding, and so on. It usually can be completed in just a few of these iterations to get a good balance but depending on what the part is used for you may need even better balance. Each iteration gets you further into the decimal place of imbalance but it also requires higher test RPM. This creates an issue though of competing variables - higher RPM amplifies imbalance but lowers AD sample time. The reduction in sample time is inversely proportional to the increase in speed however, the increase in imbalance forces are proportional to the square of the speed. Twice as fast, half the sample count but four times the imbalance force... I'm not sure if it would be faster to model the nth order diff eq. of the relationships here or to just mildly "tweak" the mechanics and code to hone in on the best suit of variables.. I love the maths but at a certain point the assumptions land you in Fraggle Rock while the seat-of-pants will put you dead nuts on Sesame Street.....

hb-vs-sb-speed-graph.png
 
Yes, N samples from 0-1, then 1-2, etc. I am detecting 0 deg not by a falling edge, no, but simply by the moment where the position sensor's output = the known low ADC value.

Thanks for all the good info. Are you calculating speed by measuring the time between 0-deg events, or do you also have a speed sensor on the motor?
 
Yes it is calculating RPM based on the time interval from 0 to 0°, covering one full revolution. In the burst mode it is collecting data over 150 rotations so there are 150 values for the RPM which are averaged. In the serial data packet the last data string is the average RPM value for the entire 150 rotation sample.
 
I love Amazon! At 6:00 a.m. this morning I ordered a bunch of trick parts for the balancing machine. All of the pieces arrived a couple of hours ago, on a Sunday, on the same day I ordered them! How wonderful of a world we live in today!

Delrin acetal rod to machine flat bearing pads for the support pedestals.

24V 50A power supply for the juice to run it all.

30A PWM DC motor speed controller.

Adjustable voltage regulators with digital display for 5v and 3.3v source.

Instrumentation amplifiers for the load cells with adjustable gain and adjustable zero offset.

Articulating adjustable arm for position sensor mounting.

IMG_20230122_230904_(1080_x_1080_pixel).jpgIMG_20230122_230925_(1080_x_1080_pixel).jpgIMG_20230122_230935_(1080_x_1080_pixel).jpgIMG_20230122_230955_(1080_x_1080_pixel).jpgIMG_20230122_231022_(1080_x_1080_pixel).jpgIMG_20230122_231011_(1080_x_1080_pixel).jpgIMG_20230122_231042_(1080_x_1080_pixel).jpg
 
Are there any thoughts to find the balancing coefficients at different speeds? Or are you confident that you are always far away from resonance?
 
Are there any thoughts to find the balancing coefficients at different speeds? Or are you confident that you are always far away from resonance?

To make sure that I'm operating below resonance I have connected my oscilloscope to the load cells and in a crude but effective method, if you just tap each end at the pedestal without the crank rotating it will cause the pedestal to resonate. With the current plate spring and load cell arrangement and with this crankshaft in place the pedestals are resonating at 35Hz.

I have changed the pedestals and eliminated the ball bearings and have gone to delrin acetal v-block pad bushings. So now the upper support pedestals are a bit lighter than before so that natural resonance will have gone up. I plan to check that here in the next few hours when I get back on the project.

I will end up writing into my interface a simple routine that will analyze the load cell signals to determine the resonant frequency of the pedestals without having to use another piece of electronics. I'm also thinking that for heavier items obviously The support hardware will need to be stiffer in order to maintain a decent high enough resonant frequency so I've contemplated either installing springs with adjustable preload or making it so that additional spring plates can be installed.

If you look in the original pictures of this post at the waveform graph at 1053 RPM you can see how there's a double heavy spot within one rotation. At 1,053 RPM that puts you right at 17.5 Hz rotational frequency which is 1/2 of the pedestal support frequency. The small amount of imbalance in the crank that remained at that point was exciting that natural pedestal frequency being right at 2x the rotation speed.

Surprisingly enough, at this point in the balancing process I was able to trim the imbalance down to within 1 g at the front end of the crank and 1.7 g at the back end. The entire crank assembly with bob weights has a total mass of 52 lb.. or 23,587g. It's still quite astonishing that I was able to get the imbalance so incredibly low compared to the total mass of the part being balanced. And that was on the first shot with a hardware configuration that created a lot of mechanical noise that had to be filtered. This new arrangement with the solid acetyl bearing pads and going from 20 kg load cells to 5 kg load cells will definitely improve the signal range per mass and get rid of all the noise. I'm thinking the new setup will be able to consistently measure down into the +/- 0.05g accuracy range.

Now that I've gone to these solid acetyl bearing pads all of the noise induced by the rolling element bearings has been eliminated. As a result I shouldn't have to use as much signal filtering/averaging to clean up the waveforms which ultimately will produce a much greater ability to measure the imbalance. Because of that I also shouldn't have to spin the part as quickly to get enough amplitude to resolve a decent signal. I should have everything up and going here within the next few hours and be able to post back the results with the new upgrades.

Ultimately though I will produce a calibration rotor with a 2-in diameter shaft and a rotor disc at each end. From there I'll be able to add a known amount of mass to the rotors at a specific radial distance so that I can map out the conversion from the load cells into an actual mass unit.. And then do this over a range of different test speeds to build a map that models the dynamic response of the machine.
 
Last edited:
A variety of kibbles and bits were ordered for the balancer.

24V 50amp power supply.
Precision adjustable voltage regulators with both voltage and amperage display.
Delrin acetal copolymer rods.
Instrumentation amplifiers (for load cells) with variable adjustable gain (up to 1000x) AND with adjustable zero offset.
12" adjustable articulating arm for mounting the magnetic angle position sensor.
PWM adjustable motor speed controller for the drive motor.
5Kg load cells
And a handsome see-through electronics enclosure.

The voltage regulators, instrumentation amplifiers, and the Teensy 4.0 microcontroller were all integrated onto a common circuit board built to fit inside of the enclosure. Quick disconnect connectors were used for the sensors.

I did away with the ball bearing roller configuration in the balancer stanchions and fabricated a pair of steel upper pedestals. These pedestals have a pair of 30° faces to form the v-block. The Delrin rods were machined into flat bushings and mounted to the upper pedestals.

The coefficient of friction between delrin and polished steel is about 0.2 which is impressive in itself. But with the addition of some high viscosity gear oil (90w) that interface is slick as snot. I was going to use PTFE (Teflon) originally but unfortunately that material is just too soft. Not only would it wear very quickly but it would also tend to dampen the vibration a little bit, although probably insignificant.

Once everything was fabricated and I ran a few test spins it was very clear that these 5 kg load cells just do not offer enough rigidity in the suspended pedestals. The natural harmonic frequency significantly dropped down from 35Hz to 7Hz from using the 20 kg load cells. My solution was to incorporate a pair of Nissan valve springs into the pedestals to increase the rigidity within the suspension. This was convenient as they were perfectly sized and using the valve spring retainers at each end made it a nice clean installation. I integrated stainless Allen head screws with machined tapered arbors on their ends to match the profile on the spring retainers to provide easy adjustability of the preload. This worked perfectly.

In the process of balancing another crankshaft the adjustable suspension preload system revealed that it was not just a solution to a problem. Rather, it was a significant upgrade! Being able to adjust the stiffness of the pedestal suspension provides a means to stiffen it up for initial rough balancing and then reduce the preload to improve the load cell response for fine balancing. This also gives way to incorporating a "soft bearing" balancing approach where the part is spun up higher than the suspension resonance. This would be a hybrid of the two balancing strategies given that soft bearing systems measure displacement rather than force. But fundamentally the only difference is in the phase shift so that would be interesting to study. Soft bearing systems always operate at higher rotating speeds which increase the imbalance forces; effectively increasing the sensitivity of the balancer.

In addition to all of this I also rewrote the data acquisition code. Previously I was waiting until degree zero, read from the load cells, then wait for degree 1, read the load cells, wait for the degree two, and so on.
Unfortunately this method just isn't very efficient for reading load cell data at maximum sample rate.

The new code waits for the crankshaft to come up to test speed, then measures the time for one full rotation. Then it immediately kicks off high speed sampling of the left load cell at 380,000 samples per second for the duration of time it took for the previous 360° of rotation. At the end of the second rotation it kicks off sampling of the right hand load cell for the next 360°. At 500 RPM it only takes about 0.12 seconds for one revolution so in that time I'm now collecting about 45,000 samples from each of the load cells compared to only 360 samples in the previous method. With this kind of sample resolution it opened the door for implementing some digital signal processing. I assembled an algorithm which uses a third order Butterworth low-pass filter with a cutoff frequency at 25 Hertz.

The load cells are incredibly sensitive which is great for picking up even the smallest amount of imbalance but not so great in that they pick up all of the other noise within the machine. I haven't done an FFT to see what the spectrum looks like but on the same token it's not really necessary. I know that I only want frequencies below the pedestal resonance and in that case the most predominant signal there is due to imbalance. Implementing this low pass filter made the signal data absolutely night and day difference compared to without it. The imbalance signal is smooth as a baby's butt.

The only caveat to using a third order Butterworth is signal lag which was quite evident. At 500 RPM the signal log was hovering around 25° or so. In order to compensate for this I tapped back on my study of Empirical Mode Decomposition. I already had all of the core coding written to do this so I punched it up and gave it a run. What I discovered is that the EMD process by itself produced exactly the result I was looking for.

Given that EMD is based within the time domain, that approach filtered out all of the different frequencies without any lag. And on top of that due to the fact that the frequency I'm most interested in is the lowest of all the frequencies within the system, this frequency will always be the last IMF (intrinsic mode function) in the decomposition process.

If you're interested in what EMD is here is a video I put together of The system I built a while back. If you're a geek like me you'll dig it!
https://youtu.be/Z-uGn5cin0o

Lastly, once I finished balancing this second crankshaft I wanted to get an idea of the sensitivity of my machine. So I placed a 0.75 g neodymium magnet on the front counterweight and spun her up. With the spring suspension at its softest that little amount of mass was producing load cell data that spanned about 50% of the y-axis on the graph.
At this point the machine is perfectly capable of balancing all the way down to 0.1g.


enclosure.jpgsprings.jpgloadcell.jpgsensorarm.jpgspeedcontrol.jpgvblock.jpg
 
Really amazing work. I'll read up on EMD.

EDIT: I'm no expert in DSP, but have you looked into the discrete fourier transform? There's an implementation called SDFT (sliding DFT), that I think would be quite good for your application. The basic idea is to take N samples per revolution, where N is a power of 2, and the result is magnitude and phase at the 1-per-rev, 2-per-rev, 3-per-rev, etc. frequencies, as opposed to 1-Hz, 2-Hz, etc. The calculations are simple enough that you could update on every sample and have continuous, real-time calculation of vibration, even with varying speed. I think you are getting a one-per-rev interrupt, so you could either set an interval timer to take a relatively small number of samples (4096?) per rev, updating the timer as necessary on each rev. That would give you better than 0.1 deg resolution of the phase of each mode.
 
Last edited:
Here is a test sketch showing the use of SDFT (sliding discrete fourier transform). It generates a simulated signal composed of harmonics 0-4, each with a different magnitude and phase, executes SDFT to decompose the signal into those harmonics, and prints the results on each sample. It's hard-coded for 256 samples/rev, but easy to increase if you want. What's nice about SDFT for my application is it can be updated on every sample, so there is no large buffer or "batch" calculation. The tricky part for you will be sampling at N/rev, but if you can do that...
 

Attachments

  • SDFT.c
    2.9 KB · Views: 39
  • SDFT.h
    865 bytes · Views: 30
  • SDFT_test_0.ino
    986 bytes · Views: 31
Really amazing work. I'll read up on EMD.

EDIT: I'm no expert in DSP, but have you looked into the discrete fourier transform? There's an implementation called SDFT (sliding DFT), that I think would be quite good for your application. The basic idea is to take N samples per revolution, where N is a power of 2, and the result is magnitude and phase at the 1-per-rev, 2-per-rev, 3-per-rev, etc. frequencies, as opposed to 1-Hz, 2-Hz, etc. The calculations are simple enough that you could update on every sample and have continuous, real-time calculation of vibration, even with varying speed. I think you are getting a one-per-rev interrupt, so you could either set an interval timer to take a relatively small number of samples (4096?) per rev, updating the timer as necessary on each rev. That would give you better than 0.1 deg resolution of the phase of each mode.

Hi Joe!

A couple years back when I got into EMD, CEEMD, etc, I originally was going to go the FFT route for reading the engine knock sensor info. I stumbled onto the EMD/CEEMD method accidentally and was fascinated by it. I have no formal education in any of the engineering disciplines or computer science or the mathematics/computational modeling involved or which signal processing approach would be best suited here. However, if I read an explanation, see the equations used, the lines between the dots seem to form pretty quickly and it gets it's own drawer in the toolbox, LOL. Most times it's all brute force and determination though - throwing everything I've got at it until it works. :-D I've looked through the code you shared and crunched on your explanation but I might be having a rainman moment here, LOL!

In this particular application producing a frequency spectrum analysis is of no direct importance to achieving the goal of balancing a part. I do see FFT/DFT/DTFT/SDFT as being a great tool for further engineering the physical machine itself though.

The other night my 21 year old son was out in the garage with me and I was explaining to him how the resonant frequency of the suspension system is important. I had my oscope connected to both of the load cells and was showing him how just tapping the pedestal like a tuning fork would cause it to "ring" and that was easily seen on the scope. So a light went off in his head and he connected to my bluetooth sound bar with his phone and opened up a sound generator program. The subwoofer for the audio system in the garage was conveniently just two feet away. He slid the subwoofer cabinet over just inches from the right pedestal on the balancer and started really low like at 10Hz with a sin wave. You could see this being picked up by the load cells, faintly. Then as he increased the frequency of the sound slowly, right around 32Hz the amplitude of the load cell signal went from +/- 0.3v up to +/-2.5v. At 34Hz, the resonance was gone and the signal dropped back down to that 0.3V or so. But as he increased the frequency from there, at several other frequencies there were again these spikes in the load cell signals. Around 90Hz it spiked which was unexpected. Something else had to be "ringing". So putting my fingertip onto different parts of the machine I realized that what was ringing at 90Hz were the lower sections of the pedestal stanchions! These parts are not solid - they are made out of 1/8" steel plate formed into the box shape you see with the addition to two internal "X" arranged beams also made from 1/8" steel plate. Being hollow they were acting as resonator chambers. Then again around 112Hz the upper stanchion pedestals began resonating as they too are constructed from 1/8" steel plate and hollow inside.

That little moment of just playing around with a subwoofer and seeing all the different parts that were ringing was pretty fun and both my son and I got a kick out of it.. But it also occurred to me that these parts having the "freedom to ring", as American as it sounds, is actually a big problem LOL. Filtering this out digitally CAN be done, yes, but that comes with a degree of compromises... So what I am planning to do next is fill the stanchions and pedestals with a dampening material. I have some deep-pour two-part epoxy resin and I'm thinking that making a slurry of this from like a 25/75 mix of epoxy/perlite would work very well. I've used perlite before as a component within my furnace refractory liners (portland cement, silica sand, fire clay, perlite, 1:1:1:1) and the granules are ~1-3mm in diameter and very lightweight. That should make for a really effective vibration absorbing "filler" and not add much mass at all to the parts.

So the idea of eliminating/minimizing the ability for parts within the machine from ringing in the first place should make a notable difference in the quality of the load cell data. In my previous post I mentioned not running an FFT on this machine as I felt it unnecessary.. LOL. If I had done that I would have seen these other excitations within the machine prior to discovering it with my son. But it was a really neat moment seeing that with my boy so, perhaps fate was favorable. ;-)

I digress, LOL!

Back to the Fourier - my thoughts on implementing this beyond just an FFT (or other Fourier methods) for the purpose of refining the machine design is that I'm not really seeing how it would be used for balancing. The lower graph in my interface is degree/loadcellValue (x,y) over a 360-degree span. A graph of freq/amplitude (x,y) would only reveal the maximum amplitude of the imbalance frequency (and other frequencies too).. Am I missing something here? I'm not picking up on how this approach will produce the angular position / load cell data needed to produce the graph in my UI.

Thanks again for your input here Joe! :)
 
Congratulations on what you have done/are doing.
When you said that your parts were hollow and ringing what "Jumped" into my head was fill them with Lead.
Literally "Just a thought"
 
Back to the Fourier - my thoughts on implementing this beyond just an FFT (or other Fourier methods) for the purpose of refining the machine design is that I'm not really seeing how it would be used for balancing. The lower graph in my interface is degree/loadcellValue (x,y) over a 360-degree span. A graph of freq/amplitude (x,y) would only reveal the maximum amplitude of the imbalance frequency (and other frequencies too).. Am I missing something here? I'm not picking up on how this approach will produce the angular position / load cell data needed to produce the graph in my UI.

Hi Ash. If you take a look at the simple sketch I posted, the DFT can decompose the load-cell signals into components that are multiples of the rotational frequency (speed). For example, if you are running at 600 rpm, the output will be amplitude and phase angle of vibration at 1-per rev (10 Hz), 2-per-rev (20 Hz), etc. If you are running at 900 rpm, the frequencies will still be 1-per rev (15 Hz), 2-per rev (30 Hz), etc. For any speed, the rotor imbalance will result in vibration at multiples of speed in rev/sec. In the pictures you posted of your UI, it looks like 2 cycles of a sine wave over 360 deg, or 2-per-rev.
 
Most interesting project.
Not sure that the bearing support pedestals are directly responsible for the 32Hz resonance but more the overall structure including what it's bolted to.
Thinking on it took me back to the late 1970s and loud music played on yes, Vinyl disks, ploughed with a kind of load cell. To stop his tonearm/plough skipping when the volume was cranked up(plenty of Bass) one colleague sawed a hole in his timber floor and inserted a concrete footing and pedestal for the turntable. Over time the speakers got better which exposed turntable platter and tonearm resonance. Thankfully the advent of compact disks averted further frivolous engineering.

Wonder if it might have more to do with the concrete slab.
 
I am responding to all of you guys. And most defiantly Ash..... I am a machine shop owner from Texas. I have never programmed, or played with electronics like you guys. Being in the maintenance and repair world "automotive and printing press" I have a familiarity to most of the electronics in this post. I have been looking for a DYI crank balancer idea for a good while now. Just did not know anything about it. I have been reading, and watching, and searching for knowledge. I have learned more from you guys then anywhere else in the world. I also just ordered most of the electronics that was mentioned, and downloaded Visual studio. I am about to learn how to program. I also am a machinist by trade, and can make all the stands, mounts, and have a good knowledge of metals, and density. My plan is to make something similar to what ASH has made. I plan on mounting it to my mill to run, and make it removeable for storage when not needed. Space in my little shop is always needed. The price of used balancers is out of my budge and I am confident I can do this. So get ready for me to ask questions. Thank you guys very much for influening my new crazy project. LOL
 
Hello, forum members!

Literally just did an article on homemade rotor balancing machines and came across this thread on the forum, so I decided to register.


I would like to share some thoughts on the use of different types of sensors in balancing machines.

If I have considered everything correctly, you make a soft bearing balancing machine with supports on flat (plate) springs. Frequency of natural oscillations of these supports should be at least 2-3 times lower than the rotational frequency of the balancing rotor, which is mounted on them.

I think that for soft bearing machines application of capacitive accelerometer ADXL 335 would be more appropriate.


Tenso sensors, on the other hand, will experience overloading. A hard bearing support would be more suitable for these types of sensors.
For example :
Рисунок-21-412w309h.jpeg

Due to the difference in stiffness between the blue and red parts of the support, you will receive a signal from the strain gauge.
IMG_20230409_143731_405.jpg
 
Last edited:
Back
Top