An apparatus for controlling propulsion of a marine vessel , comprising: a vessel interface couplable with a vessel control system ; a control interface to control a foil wheel propulsion system , which foil wheel propulsion system comprises a rotatable wheel powered by a wheel motor and controlled by a wheel controller , a plurality of rotatable foils attached perpendicularly to the wheel , each foil powered by a foil motor and controlled by a foil drive , a wheel sensor to measure an actual angular wheel position of the wheel , and a plurality of foil sensors to measure an actual angular foil position of each foil ; one or more memories including computer program code ; and one or more processors to execute the computer program code to cause the apparatus to perform at least the following: receiving a wheel operation status from the wheel controller ; receiving a plurality of foil operation statuses from a plurality of foil drives ; receiving a command from the vessel control system ; generating wheel control data for the wheel controller to control a foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status ; and generating foil control data for the plurality of the foil drives to further control the foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status and the plurality of foil operation statuses , characterized in that a reference torque of the foil control data for each foil drive is generated using a foil feedforward model. a vessel interface couplable with a vessel control system ; a control interface to control a foil wheel propulsion system , which foil wheel propulsion system comprises a rotatable wheel powered by a wheel motor and controlled by a wheel controller , a plurality of rotatable foils attached perpendicularly to the wheel , each foil powered by a foil motor and controlled by a foil drive , a wheel sensor to measure an actual angular wheel position of the wheel , and a plurality of foil sensors to measure an actual angular foil position of each foil ; one or more memories including computer program code ; and one or more processors to execute the computer program code to cause the apparatus to perform at least the following: receiving a wheel operation status from the wheel controller ; receiving a plurality of foil operation statuses from a plurality of foil drives ; receiving a command from the vessel control system ; generating wheel control data for the wheel controller to control a foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status ; and generating foil control data for the plurality of the foil drives to further control the foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status and the plurality of foil operation statuses , characterized in that a reference torque of the foil control data for each foil drive is generated using a foil feedforward model. receiving a wheel operation status from the wheel controller ; receiving a plurality of foil operation statuses from a plurality of foil drives ; receiving a command from the vessel control system ; generating wheel control data for the wheel controller to control a foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status ; and generating foil control data for the plurality of the foil drives to further control the foil pitch function of the foil wheel propulsion system based on the command in view of the wheel operation status and the plurality of foil operation statuses , characterized in that a reference torque of the foil control data for each foil drive is generated using a foil feedforward model. <EOS>