## 5 Simulation Setup
### Simulation Parameters  
Key parameters for the NMPC simulations are summarized in Table 5. The prediction horizon (\(N_{p}=24\) steps, 6 h) was selected to effectively capture daily environmental variability, enabling proactive climate control while maintaining computational feasibility at a 15 min control interval. This horizon also aligns with the effective forecast window of typical short-term weather prediction models [21; 23].  
Economic weights in the objective function were chosen to prioritize biomass accumulation (\(q_{y1}\)), while relatively smaller weights for CO\({}_{2}\) injection (\(q_{u1}\)) and heating input (\(q_{u3}\)) were assigned to penalize excessive resource consumption, reflecting their operational costs and promoting resource efficiency (Equation (6)). The control signal ranges and rate limits are based on standard actuator capacities and established horticultural practices for  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Symbol** & **Value** \\ \hline
1. Time-related parameters & & \\ Sampling time & \(\Delta t\) & 15 min (900 s) \\ NMPC Prediction horizon & \(N_{p}\) & 24 steps (6 h) \\ NMPC Control horizon & \(N_{c}\) & 24 steps (6 h) \\ Simulation duration & \(N_{s}\) & 40 days (3840 control steps) \\ \hline
2. Model/Controller parameters & & \\ Numerical solver & - & IPOPT (via CasADi) \\ Initial crop dry weight & \(x_{1}(t_{0})\) & 0.0035 kg/m\({}^{2}\) (3.5 g/m\({}^{2}\)) \\ Initial indoor CO\({}_{2}\) concentration & \(x_{2}(t_{0})\) & 0.001 kg/m\({}^{3}\) (\(\sim\)400 ppm at 15 \({}^{\circ}\)C) \\ Initial indoor temperature & \(x_{3}(t_{0})\) & 15 \({}^{\circ}\)C \\ Initial indoor humidity & \(x_{4}(t_{0})\) & 0.008 kg/m\({}^{3}\) (\(\sim\)65\% RH) \\ Initial state of control inputs & \(u(t_{0}-1)\) & (0, 0, 0)\({}^{T}\) \\ Economic weight: Biomass & \(q_{y1}\) & 2800 \\ Economic weight: CO\({}_{2}\) input & \(q_{u1}\) & 66 \\ Economic weight: Heating input & \(q_{u3}\) & 1 \\ Slack variable penalty: Biomass & \(\rho_{1}\) & \(10^{5}\) \\ Slack variable penalty: CO\({}_{2}\) & \(\rho_{2}\) & \(10^{3}\) \\ Slack variable penalty: Temp. & \(\rho_{3}\) & \(10^{5}\) \\ Slack variable penalty: Humid. & \(\rho_{4}\) & \(10^{4}\) \\ Lower bounds for control inputs & \(u_{min}\) & (0, 0, 0)\({}^{T}\) \\ Upper bounds for control inputs & \(u_{max}\) & (12 mg/m\({}^{2}\)/s, 75 mm/s, \\ Max. rate of change inputs & \(\Delta t_{max}\) & 150 W/m\({}^{2}\))\({}^{T}\) (units/step) \\ \hline
3. Economic cost coefficients & & \\ Lettuce price & \(c_{p}\) & 1.6 Hfl kg\({}^{-1}\) \\ Heating energy cost & \(c_{h}\) & \(6.35\times 10^{-9}\) Hfl J\({}^{-1}\) \\ CO\({}_{2}\) cost & \(c_{\text{CO}_{2}}\) & 0.42 Hfl kg\({}^{-1}\) \\ \hline \hline \end{tabular}
\end{table}
Table 5: Core simulation parameters for NMPC evaluation.  
-lettuce production [18; 20; 21]. Cost coefficients for profit calculation, including lettuce price and unit costs for heating energy and CO\({}_{2}\), are adopted from the literature [18; 20].  
The nonlinear optimization problem arising from the NMPC formulation is solved using a direct multiple shooting approach, implemented in Python (version 3.11.9) via the CasADi automatic differentiation framework [34]. The IPOPT solver [35] is used for nonlinear programming. The system dynamics (Equations (1)-(3)) are discretized using a fixed-step forward Euler method with a sampling time of 15 min (900 s), which also corresponds to the control interval. For controller configurations that employ warm-start initialization (Section 4.3), IPOPT's warm-start features are activated by providing the shifted solution from the previous time step as the initial guess. All simulations are run on an Intel i7-4810 MQ CPU with 20 GB RAM.