Adjoint-Based PDE-Constrained Thermal Control
An applied mathematics project that uses a finite-volume heat equation and discrete adjoint gradients to optimise sixteen heater powers on a thin plate.

Project definition
Problem statement
A thin plate with a nonuniform parasitic heat load will not reach a uniform target temperature when every heater receives the same power.
The mathematical problem is to choose sixteen bounded heater powers while solving the heat equation and respecting a shared power budget. Directly perturbing every control is expensive, so the project derives and verifies a discrete adjoint gradient.
Project objectives
- Build a steady two-dimensional finite-volume model of conduction and distributed convection.
- Represent a four by four array of Gaussian heater controls and a nonuniform parasitic heat load.
- Derive the discrete adjoint equation and the gradient of the regularised tracking objective.
- Optimise heater powers under individual bounds and a 180 W shared power budget.
- Compare zero, uniform, and optimised controls using the same numerical model.
- Study mesh refinement, regularisation, power budget, actuator layout, target temperature, and uncertainty.
Project structure
Project components
Thermal model
Assembles the finite-volume conduction and convection operator for a cell-centred rectangular grid.
Control model
Creates sixteen normalised Gaussian heater fields and enforces actuator and total-power limits.
Adjoint solver
Solves the transpose system and returns the objective gradient with respect to every heater power.
Constrained optimiser
Uses SLSQP to minimise tracking error and control effort under the declared constraints.
Experiment runner
Executes the baseline, sensitivity, refinement, target, and uncertainty studies from one versioned configuration.
Evidence builder
Writes the retained fields, tabular results, figures, and summary metrics used in the report.
Methodology
Project workflow
- 01Load the study
The program reads the geometry, material, grid, heater, objective, and experiment settings.
- 02Assemble the PDE
The finite-volume matrix, ambient forcing, parasitic load, and control matrix are constructed.
- 03Check the gradient
Adjoint directional derivatives are compared with centred finite differences across decreasing step sizes.
- 04Optimise the controls
The bounded problem is solved from the uniform-power baseline while recording every iteration.
- 05Run the studies
The retained design is compared across meshes, budgets, penalties, layouts, targets, and uncertain inputs.
- 06Export evidence
Figures, CSV files, the complete field archive, and the study summary are written for independent review.
Demonstration scenario
A 0.60 m by 0.40 m stainless-steel plate receives a 45 W nonuniform parasitic load. Sixteen heaters are adjusted to approach a 323.15 K target. The optimised design reduces tracking RMSE from 6.326 K for uniform power to 3.631 K while using 99.295 W.
Engineering
Tools and method
- Tools
- The project uses Python, NumPy, SciPy, Pandas, Matplotlib, Jupyter for subject analysis, simulation, and results.
- Governing model
- Steady two-dimensional conduction through a thin plate with distributed convection to ambient.
- Spatial discretisation
- Cell-centred finite volumes on a 41 by 31 reference grid with a symmetric positive-definite operator.
- Control parameterisation
- Sixteen one-watt normalised Gaussian source columns with 0 to 30 W actuator bounds.
- Objective and adjoint
- Mean squared target tracking with a quadratic effort penalty and one transpose linear solve per gradient.
- Optimisation
- Sequential least-squares programming with box constraints and a shared 180 W power constraint.
- Verification
- Automated tests, finite-difference gradient checks, heat balance, mesh refinement, dependency audit, and document validation.
Testing
Evaluation
Evaluation measures
- Temperature RMSE, mean, minimum, maximum, and spatial span
- Improvement over the uniform-power baseline
- Total and maximum actuator power with constraint residuals
- Adjoint directional-derivative error against centred finite differences
- Steady heat-balance residual and matrix properties
- Mesh, regularisation, budget, actuator-layout, and target sensitivity
- RMSE distribution across 200 uncertain conductivity, convection, and parasitic-load samples
Project boundaries
- The plate, heater fields, load, and uncertainty ranges are documented numerical assumptions rather than measurements from a physical rig.
- Material properties are constant and the retained model is steady, two dimensional, and linear.
- Radiation, contact resistance, temperature-dependent properties, sensor dynamics, and transient control are outside the retained model.
- The results support mathematical study and do not certify a real thermal-control system.
Included
- 01Complete Python source code
- 02Two-dimensional finite-volume thermal model with 1,271 cells
- 03Discrete adjoint gradient and constrained heater-power optimiser
- 04Baseline, mesh, regularisation, power-budget, actuator-layout, and target studies
- 05200-sample uncertainty study for the retained control design
- 06Thirteen labelled result figures with complete CSV, JSON, and NPZ evidence
- 0784-page project report in PDF and editable Word formats
- 0816-page setup and usage guide in PDF and editable Word formats
- 0950 annotated references and three sourced literature figures
- 1032 automated tests with 98.44 percent branch-aware coverage
Project record
No information is collected on this page.
- Permanent project ID
- GP-MA-0PDE26A
- Catalogued
- 21 Aug 2026
- Completed
- 26 Aug 2026
- Verified
- 26 Aug 2026
- Demonstration
- Included in repository
Handover
After purchase
- 01Payment is confirmed
The project is marked unavailable and cannot be purchased again.
- 02Repository access is granted
The buyer's submitted GitHub account receives access to the private repository.
- 03The purchase record is delivered
The certification sheet is prepared from the reviewed buyer details and sent privately by email.