An optimal predictive control algorithm is introduced for the control of linear and nonlinear discrete-time multivariable systems. The controller is specified in a "restricted structure" form involving a set of given linear transferfunctions and a set of gains that minimize a Generalized Predictive Control (GPC) cost-index. The set of functions can be chosen as proportional, integral and derivative terms; however, a wide range of controller structures is possible. This is referred to as Restricted-Structure GPC control. The multi-step predictive control cost-function is novel, since it includes weightings on the "low-order" controller gains and the rate of change of gains. This considerably improves the numerical computations ensuring critical inverse computations cannot lead to a singular matrix. It also provides the option of adding soft or hard constraints on the controller gains which provides additional flexibility for control design. The ability to include a plant model that can include a general nonlinear operator is also new for restricted structure control solutions. The low-order controller provides a potential improvement in robustness, since it is often less sensitive to plant uncertainties. The simple controller structure also enables relatively unskilled staff to retune the system using familiar tuning terms, and provides a potentially simpler QP problem for the constrained case.