← Back to project catalogue
GP-MA-0PDE26AMathematicsReady

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.

Adjoint-Based PDE-Constrained Thermal Control project visual
GP-MA-0PDE26A · Mathematics
  • Python
  • NumPy
  • SciPy
  • Pandas
  • Matplotlib
  • Jupyter

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

01

Thermal model

Assembles the finite-volume conduction and convection operator for a cell-centred rectangular grid.

02

Control model

Creates sixteen normalised Gaussian heater fields and enforces actuator and total-power limits.

03

Adjoint solver

Solves the transpose system and returns the objective gradient with respect to every heater power.

04

Constrained optimiser

Uses SLSQP to minimise tracking error and control effort under the declared constraints.

05

Experiment runner

Executes the baseline, sensitivity, refinement, target, and uncertainty studies from one versioned configuration.

06

Evidence builder

Writes the retained fields, tabular results, figures, and summary metrics used in the report.

Methodology

Project workflow

  1. 01
    Load the study

    The program reads the geometry, material, grid, heater, objective, and experiment settings.

  2. 02
    Assemble the PDE

    The finite-volume matrix, ambient forcing, parasitic load, and control matrix are constructed.

  3. 03
    Check the gradient

    Adjoint directional derivatives are compared with centred finite differences across decreasing step sizes.

  4. 04
    Optimise the controls

    The bounded problem is solved from the uniform-power baseline while recording every iteration.

  5. 05
    Run the studies

    The retained design is compared across meshes, budgets, penalties, layouts, targets, and uncertain inputs.

  6. 06
    Export 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

  1. 01Complete Python source code
  2. 02Two-dimensional finite-volume thermal model with 1,271 cells
  3. 03Discrete adjoint gradient and constrained heater-power optimiser
  4. 04Baseline, mesh, regularisation, power-budget, actuator-layout, and target studies
  5. 05200-sample uncertainty study for the retained control design
  6. 06Thirteen labelled result figures with complete CSV, JSON, and NPZ evidence
  7. 0784-page project report in PDF and editable Word formats
  8. 0816-page setup and usage guide in PDF and editable Word formats
  9. 0950 annotated references and three sourced literature figures
  10. 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

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.