Solar Heliostat Field Optimization Design
English | 中文
📋 Project Overview
This project provides a complete solution for the 2023 China Undergraduate Mathematical Contest in Modeling (CUMCM) Problem A - Solar Heliostat Field Optimization Design. It includes comprehensive analysis of optical efficiency, mathematical modeling, MATLAB implementation, and optimization algorithms for concentrating solar power (CSP) systems.
🎯 Contest Information
| Item | Details |
|---|---|
| Contest | China Undergraduate Mathematical Contest in Modeling (CUMCM) |
| Year | 2023 |
| Problem | A |
| Topic | Solar Heliostat Field Optimization Design |
| Domain | Solar Energy / Optical Engineering / Optimization |
🧠 Technical Background
Problem Statement
Concentrating Solar Power (CSP) systems use mirrors (heliostats) to reflect sunlight onto a central receiver tower. The efficiency of such systems depends on multiple factors:
- Cosine Efficiency: Loss due to the angle between sunlight and heliostat surface
- Shadowing & Blocking Efficiency: Loss due to mutual shading between heliostats
- Truncation Efficiency: Loss due to limited receiver size
- Atmospheric Transmission: Loss due to air absorption and scattering
This project calculates these efficiency factors and optimizes the heliostat field layout to maximize the average thermal power output per unit mirror area.
Key Parameters
| Parameter | Value | Description |
|---|---|---|
| Location | Longitude 98.5°E, Latitude 39.4°N | High-altitude solar site |
| Altitude | 3000 m | High-altitude location |
| Tower Height | 80 m | Receiver tower height |
| Heliostat Size | 6m × 6m | Mirror dimensions |
| Heliostat Height | 4 m | Installation height |
| Receiver Radius | 350 m | Field radius |
📁 Project Structure
cumcm2023a/
├── src/ # MATLAB Source Code
│ ├── problem1/ # Problem 1: Optical Efficiency Calculation
│ │ ├── main.m # Main program
│ │ ├── DNICal.m # Direct Normal Irradiance calculation
│ │ ├── Fdircal.m # Direction vector calculation
│ │ ├── natcal.m # Atmospheric transmittance
│ │ ├── shaddec.m # Shadowing & blocking detection
│ │ ├── axisrot.m # Coordinate system rotation
│ │ ├── axisrot_d.m # Rotation matrix (direct)
│ │ ├── axisrot_dI.m # Inverse rotation
│ │ ├── ReflectLoc.mat # Heliostat positions (MAT format)
│ │ └── 附件.xlsx # Original data file
│ │
│ ├── problem2/ # Problem 2: Layout Optimization
│ │ ├── main.m # PSO optimization main program
│ │ ├── PSO.m # Particle Swarm Optimization
│ │ ├── fobj.m # Objective function
│ │ └── *.png/xlsx # Results
│ │
│ └── problem3/ # Problem 3: Analysis & Visualization
│
├── docs/ # Documentation
│ ├── A题.pdf # Contest Problem (PDF)
│ ├── A题的公式和思路文档总结.docx # Solution Summary
│ ├── ARCHITECTURE.md
│ ├── DEVELOPMENT.md
│ └── USER_GUIDE.md
│
├── data/ # Shared Data
│ └── 附件.xlsx # Heliostat coordinates
│
├── results/ # Output Results
│ ├── result2.xlsx # Problem 2 results
│ └── result3.xlsx # Problem 3 results
│
└── reference/ # Reference Materials
└── A代码视频讲解.mkv # Code Explanation Video
---
## 🔬 Algorithm Details
### 1. Solar Position Calculation
```matlab
% Calculate solar declination angle
sigma = asin(sin(2*pi*D/365)*sin(2*pi/360*23.45));
% Solar elevation angle
alphas = asin(cos(sigma)*cos(latitude)*cos(w) + sin(sigma)*sin(latitude));
% Solar azimuth angle
gammas = acos((sin(sigma)-sin(alphas)*sin(latitude))/(cos(alphas)*cos(latitude)));
2. Optical Efficiency Components
Cosine Efficiency
Where \vec{S} is the solar direction vector and \vec{R} is the reflected ray direction.
Shadowing & Blocking
Using coordinate transformation and ray tracing:
- Transform coordinates to heliostat local frame
- Project shadow-casting elements onto the target plane
- Detect intersection with heliostat surface
Atmospheric Transmittance
Where d is the distance from heliostat to receiver.
3. Particle Swarm Optimization (PSO)
% PSO parameters
w = 0.729; % Inertia weight
c1 = 1.49445; % Cognitive coefficient
c2 = 1.49445; % Social coefficient
% Update velocity
v(i+1) = w*v(i) + c1*rand()*(pbest-x(i)) + c2*rand()*(gbest-x(i));
% Update position
x(i+1) = x(i) + v(i+1);
4. Coordinate System Transformation
% Transform to local heliostat coordinate system
[ReflectLoc0new] = axisrot_d(ReflectLoc0', ReflFdir');
🚀 Usage Guide
Environment Requirements
| Requirement | Version | Notes |
|---|---|---|
| MATLAB | R2018a or higher | Core simulation platform |
| Toolboxes | None required | Uses basic MATLAB functions |
Running Simulations
Problem 1 - Optical Efficiency Calculation:
cd src/problem1
main
Problem 2 - Layout Optimization:
cd src/problem2
main % Run PSO optimization (may take significant time)
Problem 3 - Results Analysis:
cd src/problem3
main
Output Files
Results are automatically saved to:
src/problem1/*.fig/*.mat- Efficiency calculation resultssrc/problem2/*.xlsx/*.png- Optimization resultssrc/problem3/- Analysis and visualization
📊 Simulation Results
Key Findings
| Month | Avg Optical Efficiency | Avg Cosine Efficiency | Avg Shadowing | Avg Truncation |
|---|---|---|---|---|
| Jan | ~0.52 | ~0.82 | ~0.95 | ~0.98 |
| Jun | ~0.58 | ~0.88 | ~0.96 | ~0.98 |
| Annual | ~0.55 | ~0.85 | ~0.95 | ~0.98 |
Optimization Results
- Objective: Maximize average thermal power per unit mirror area
- Method: Particle Swarm Optimization (PSO)
- Optimized Layout: Improved heliostat positioning reduces shadowing and blocking
📚 Mathematical Models
Annual Average Output Power
Where:
Optical Efficiency
👥 Authors
- QCLAW - Project organization and documentation
📄 License
All Rights Reserved
This project is provided for educational and research purposes only. Commercial use requires explicit permission from the original authors.
🙏 Acknowledgments
- 2023 CUMCM Organizing Committee
- China Solar Thermal Industry
Built with MATLAB 💙