The process industries are characterized by a large number of continuously operating plants, for which optimal operation is of economic importance. However, optimal operation is particularly difficult to achieve when the process model used in the optimization is inaccurate or in the presence of process disturbances. In highly automated plants, optimal operation is typically addressed by a decision hierarchy involving several levels that include plant scheduling, real-time optimization (RTO), and process control. At the RTO level, medium-term decisions are made by considering economic objectives explicitly. This step typically relies on an optimizer that determines the optimal steady-state operating point under slowly changing conditions such as catalyst decay or changes in raw material quality. This optimal operating point is characterized by setpoints that are passed to lower-level controllers. Model-based RTO typically involves nonlinear first-principles models that describe the steady-state behavior of the plant. Since accurate models are rarely available in industrial applications, RTO typically proceeds using an iterative two-step approach, namely a parameter estimation step followed by an optimization step. The idea is to repeatedly estimate selected uncertain model parameters and use the updated model to generate new inputs via optimization. This way, the model is expected to yield a better description of the plant at its current operating point. The classical two-step approach works well provided that (i) there is little structural plant-model mismatch, and (ii) the changing operating conditions provide sufficient excitation for estimating the uncertain model parameters. Unfortunately, such conditions are rarely met in practice and, in the presence of plant-model mismatch, the algorithm might not converge to the plant optimum, or worse, to a feasible operating point. As far as feasibility is concerned, the updated model should be able to match the plant constraints. Alternatively, feasibility can be enforced without requiring the solution of a parameter estimation problem by adding plant-model bias terms to the model outputs. These biases are obtained by subtracting the model outputs from the measured plant outputs. A bias-update scheme, where the bias terms are used to modify the constraints in the steady-state optimization problem, has been used in industry. However, the analysis of this scheme has received little attention in the research community. In the context of this thesis, such an RTO scheme is referred to as constraint adaptation. The constraint-adaptation scheme is studied, and its local convergence properties are analyzed. Constraint adaptation guarantees reaching a feasible operating point upon convergence. However, the constraints might be violated during the iterations of the algorithm, even when starting the adaptation from within the feasible region. Constraint violations can be avoided by controlling the constraints in the optimization problem, which is done at the process control level by means of model predictive control (MPC). The approach for integrating constraint adaptation with MPC described in this thesis places high emphasis on how constraints are handled. An alternative constraint-adaptation scheme is proposed, which permits one to move the constraint setpoints gradually in the constraint controller. The constraint-adaptation scheme, with and without the constraint controller, is illustrated in simulation through the real-time optimization of a fuel-cell system. It is desirable for a RTO scheme to achieve both feasibility and optimality. Optimality can be achieved if the underlying process model is able to predict not only the constraint values of the plant, but also the gradients of the cost and constraint functions. In the presence of structural plant-model mismatch, this typically requires the use of experimental plant gradient information. Methods integrating parameter estimation with a modified optimization problem that uses plant gradient information have been studied in the literature. The approach studied in this thesis, denoted modifier adaptation, does not require parameter estimation. In addition to the modifiers used in constraint adaptation, gradient-modifier terms based on the difference between the estimated and predicted gradient values are added to the cost and constraint functions in the optimization problem. With this, a point that satisfies the first-order necessary conditions of optimality for the plant is obtained upon convergence. The modifier-adaptation scheme is analyzed in terms of model adequacy and local convergence conditions. Different filtering strategies are discussed. The constraint-adaptation and modifier-adaptation RTO approaches are illustrated experimentally on a three-tank system. Finite-difference techniques can be used to estimate experimental gradients. The dual modifier-adaptation approach studied in this thesis drives the process towards optimality, while paying attention to the accuracy of the estimated gradients. The gradients are estimated from the successive operating points generated by the optimization algorithm. A novel upper bound on the gradient estimation error is developed, which is used as a constraint for locating the next operating point.