Heavy haul trains are used to transport mineral resources from inland mines to harbours in South Africa. It is believed that the cost is less with a larger load per car or per train. This has resulted in the use of long heavy haul trains. The increase in train length has posed unprecedented technical challenges. For heavy haul trains, energy consumption, running time and in-train forces between neighbouring cars are of much concern to transportation corporations. The objective of the study is to find optimal driving methodologies for the implementation of a desired speed profile with energy consumption and in-train forces considered. Firstly, three control strategies are proposed in this study for train handling. In view of the characteristics of traditional pneumatic braking systems and the new Electronically Controlled Pneumatic (ECP) braking systems, a simulation study of optimal open loop controllers was undertaken. The result shows that the ECP braking systems demonstrate superb performance compared with pneumatic braking systems, especially together with independent distributed power (iDP) control. Thus, the main focus of the study was the control of heavy haul trains equipped with ECP braking systems. It is shown that there are redundancies in designing an open loop controller. An optimization procedure is applied to schedule cruise control by taking the in-train forces into initial design consideration. Optimal open loop scheduling presents a better starting point for a closed-loop controller design. A type of linear quadratic regulator (LQR) controller with state feedback is simulated to verify the above result. However, the closed-loop control law is designed based on full state feedback, which is not practical since not all the states can be measured. An observer could be designed to supplement the LQR controller if partial states are measured. This is, however, not the approach taken in this study. Instead, the application of output regulation of nonlinear systems with measured output feedback to the control of heavy haul trains is considered. This approach to design is practically feasible and manageable, and by its nature, is also easily integrable with human drivers. In this study, the existing result of output regulation of nonlinear systems is extended. The output regulation problem of nonlinear systems with measured output feedback is formulated in this study and solved for the local version and global version. For its application to train control, some application issues are discussed. Based on the proposed theory, a speed regulator for train control is designed. Simulation results show its applicability. Lastly, this study concentrates on the fault-tolerant capacity of the speed regulator. Two kinds of fault modes are considered. Fault detection and isolation for the sensor fault and braking system fault are exploited. Controller redesign is also given. Simulation results show that such a speed regulator has a fault-tolerant capacity to the corresponding faults.