I have a spring that I need to compress 80mm. To do so requires approximately 15kg of force. To compress the spring, I will have the spring in front of a piston head. The piston head will have a protrusion holding 6mm(diameter) by 3mm neodymium magnets. When the solenoid is powered, the magnets will be attracted to the solenoid, which will push the piston head, compressing the spring. The piston head will also have an o-ring sealed with the cylinder, I am not sure how much extra force would be needed to overcome the friction of the seal. A full cycle(cylinder head recoiling to returning to start point) needs to be achieved in 50 - 100ms.
How would I design a solenoid(how many turns of wire, what gauge wire etc...) that can provide 15kg force to compress the spring 80mm? The dimensions of the solenoid cannot be more than 40mm wide or 80mm long(shorter is better) so it fits in my project. Ideal current rating should be around 5A as I have 5Ah battery. I don't mind if the solenoid is cored or core-less. I also have a 12mm diameter soft iron rod but can buy a different core if need be. My budget is around 40 dollars to make the solenoid. I can go over the budget though.
Also, if there is a ready made solenoid that does the job with the necessary dimension, I would be happy to buy that.