An electromagnetic engine comprises an electromagnet having opposing
magnetic poles at ends thereof. A non-magnetic rigid support is mounted
for oscillatory stroke movement relative to the electromagnet. A
crankshaft is coupled to the support; a sensor is coupled to the
crankshaft and outputs a crankshaft position signal. First and second
permanent magnets are affixed to the support on either side of the
electromagnet and are oriented so as to present the same magnetic pole to
each respective end of the electromagnet. The permanent magnets are
spaced from one another by a distance approximately equal to the distance
between the first and second ends of the electromagnet plus the stroke
movement of the support. A timing circuit is operative to switch the
electromagnet between first and second energized states in response to
the crankshaft position signal. Also disclosed is an electromagnetic
engine in which a piston moves along guide rails.