The control of a free-piston engine generator. Part 1: Fundamental analyses