Following water power and wind power, photovoltaic power generation has become the third largest renewable energy source globally. The core component of solar power generation is the silicon solar cell, whose efficiency directly impacts energy output. If a solar cell has defects, it can significantly reduce efficiency or even cause failure, leading to hot spots. Hot spots not only cause local power loss but the accumulated high temperature over time accelerates module aging, backsheet burning, and can even cause fires, resulting in huge power generation revenue losses and potential property damage. This drastically increases maintenance costs and severely affects energy conversion efficiency. Furthermore, hot spots may pose electric shock risks, threatening personnel and equipment safety. As global photovoltaic installed capacity continues to grow rapidly, enormous challenges are placed on maintenance support capabilities. Therefore, inspecting and regularly maintaining solar panels is an extremely important task.
Currently, methods for detecting defects in solar panels are broadly divided into two types. One is traditional manual inspection, which suffers from high error rates and high costs, making it difficult to meet the demands of high-precision detection. The other utilizes machine vision for defect detection, leveraging the electroluminescence (EL) characteristic of solar panels. By applying a forward bias voltage (connecting the positive terminal of an external power source to the positive terminal of the cell and the negative terminal to the negative terminal of the cell) to inject current, the solar panel switches from “power generation mode” to “light emission mode.” Electrons and holes recombine, releasing photons and generating near-infrared light, which forms an EL image. Specific defect detection algorithms are then applied to these EL images. Prior work using YOLOv3 for detecting broken grid and hidden crack defects in cells showed promise. Another study improved the YOLOv4 algorithm for detecting broken grid and hidden cracks, reducing missed and false detections but resulting in an overly large model parameter count. Researchers introduced a lightweight MobileOne module based on YOLOv5, performing well across multiple defect types. Another investigation used YOLOv5 with a Transformer mechanism embedded in the backbone network, achieving high accuracy. Further improvements on YOLOv5 involved embedding Coordinate Attention (CA), a Weighted Bi-directional Feature Pyramid Network (BiFPN), and Adaptive Spatial Feature Fusion (ASFF) to enhance feature extraction capabilities for solar photovoltaic defects and reduce information feature loss. Using YOLOv7-tiny as a baseline model, another team introduced lightweight PSDConv convolution modules and a Decoupled Fully Connected (DFC) attention mechanism, replacing the original CIoU with EIoU, achieving high model accuracy.
Although current algorithms for detecting solar panel defects have made progress in lightweight design and identification accuracy for specific defect categories, when facing large-scale solar power station inspection tasks conducted by drones, the lightweight degree of existing algorithms still struggles to meet the high timeliness and large workload requirements of engineering applications. A significant contradiction remains between computational resource consumption and real-time performance demands, especially in scenarios requiring rapid detection over large areas. The recognition accuracy and robustness for small targets, low-contrast objects, and morphologically variable defects in real complex scenes still need improvement. Furthermore, for detecting narrow and elongated cracks during high-altitude inspections, the limitations of low illumination and flight altitude inherent in drone inspection tasks can make data processing, transmission, and model inference speeds a bottleneck, making it difficult to achieve near-real-time online monitoring and rapid response. Therefore, improving model robustness is particularly important for the accuracy of detecting narrow and elongated defect types.
Addressing these issues, the main contributions of this paper are as follows: We modify the backbone network to a Poly Kernel Inception Network (PKINet), which uses multiple parallel convolution kernels of different sizes without dilation to extract contextual information across scales. Simultaneously, the strip convolutions within the Context Anchor Attention (CAA) module enhance the backbone network’s ability to extract features for the elongated defects common in solar panels. In the neck network, to handle the significant scale variation, complex shapes, and irregularities of various defects, we use deformable convolution v4 (DCNv4) to improve the C2f module, better adapting to the diversity of defect variations. Additionally, we introduce the High-level Screening-feature Fusion Pyramid Network (HSFPN) to improve the feature fusion part. This uses channel attention mechanisms for feature screening and Selective feature Fusion Mechanism (SFF) modules to use high-level features as weights to filter low-level features’ semantic information, enabling better information fusion and retaining richer details. For the loss function, we introduce the Powerful IoU (PIoU) loss. This loss function uses the width and height of the ground truth bounding box to directly guide the regression of the predicted box, effectively solving the enlargement problem encountered during box regression. It introduces a non-monotonic focusing attention layer, resulting in faster convergence speed and better generalization capability.

Model Improvements
Backbone Network Improvement Based on Multi-Kernel Inception Network
Defects in solar photovoltaic panels, such as cracks, scratches, and broken fingers, exhibit characteristics of large scale variation and low contrast with the background. For small-scale defects in solar panels, the semantic information contained is minimal, making them prone to loss in low-level feature maps and confusion with the background. Sufficient contextual information, therefore, helps the object detector locate small-scale features in the image, thereby improving its discriminatory power. Similarly, gathering enough contextual information for large-scale features allows them to contain richer semantic information, aiding the classifier in making more accurate judgments and improving the model’s classification and localization accuracy. To address the challenges posed by multi-scale information in EL images, it is necessary to model the model’s short-range and long-range dependency capabilities to extract local and global context from the image, respectively.
In the feature extraction stage, to efficiently extract features from several types of elongated defects, we modify the backbone network and introduce the Poly Kernel Inception Net (PKINet). It consists of two main parts: the PKI Module, responsible for collecting local contextual information, and the CAA Module, responsible for modeling global context. The CAA module utilizes global average pooling and 1D strip convolutions to capture relationships between distant pixels and enhance features within the central region. The structure of the PKINet network is detailed in the source text.
Module Improvement Based on Deformable Convolution v4
The Deformable Convolutional Network (DCN) was proposed to handle multi-scale object detection, pose estimation, and complex geometric transformations. Facing the irregular and multi-scale defects in solar photovoltaic panels, the adaptive receptive field of deformable convolution makes detection more advantageous. In traditional 2D convolution, regular sampling is performed on the input feature map, followed by weighted summation of the sampled values:
$$ y(p) = \sum_{k \in R} w(p_k) \cdot x(p + p_k) $$
Here, p represents each position on the feature map x, and pk represents each position in the regular grid R. The core of deformable convolution is enhancing the spatial sampling positions in the convolution through additional offsets, learning these offsets from the target task, and controlling the magnitude of the offsets using more convolutional layers with offset learning capability and an introduced modulation mechanism:
$$ y(p) = \sum_{k \in R} w(p_k) \cdot x(p + p_k + \Delta p_k) \cdot \Delta m_k $$
Here, Δpk and Δmk are the learnable offset and modulation scalar for the k-th location, respectively. Building on this, the original weight w(pk) is separated into depth-wise and point-wise parts. The depth-wise part is handled by the original position-aware modulation scalar Δmk, while the point-wise part is handled by the projection weight w(pk) shared among sampling points. Furthermore, a multi-group mechanism is introduced, dividing the spatial sampling process into G groups, allowing each group to have separate sampling offsets and modulation scalars:
$$ y(p) = \sum_{g=1}^{G} \sum_{k=1}^{K} w(p_k)_g \cdot \Delta m_{gk} \cdot x_g(p + p_k + \Delta p_{gk}) $$
Comparing the receptive field heatmaps, the normal C2f layer has weaker feature extraction capabilities, lacks local focus, and is easily affected by the background. In contrast, deformable convolution is more sensitive to the shape and extent of features. It can perform targeted receptive field extraction and learning for the various irregular and shape-diverse defects in solar cells, thereby improving the efficiency and accuracy of defect type detection.
Improving the Neck Network with High-level Screening-feature Fusion Pyramid Network
The luminescence intensity of crystalline silicon is much lower than that of sunlight. Therefore, the collection and capture of solar module images need to be performed in dark environments. In actual shooting scenarios, high-altitude drone photography at night and low-light conditions lead to low-resolution captured images. Additionally, defects like cracks and scratches exhibit significant scale differences, necessitating feature fusion to inject more robust shallow and deep features. This corrects misidentifications caused by recognizing features from different scales, thereby improving the model’s detection accuracy. The HSFPN (High-level Screening-feature Fusion Pyramid Net) uses parallel multi-branch networks, employing different convolutions for feature extraction, followed by concatenation to fuse the extracted features. HSFPN mainly consists of two parts: a feature selection module and a feature fusion module. Initially, feature maps from different scales undergo a screening phase in the feature selection module. Subsequently, the high-level and low-level information within these feature maps is integrated through the Selective Feature Fusion (SFF) mechanism, producing semantically rich features that help detect subtle features in the image and enhance the model’s detection capability.
The feature selection part primarily consists of a channel attention (CA) module. The CA module processes the input feature map through two pooling layers — global average pooling and global max pooling. One extracts the most relevant information from each channel, while the other uniformly acquires all information from the feature map to minimize loss. These are then fused, and the channel weights are determined using a Sigmoid function. The multi-scale feature maps generated by the backbone network exhibit high-level features rich in semantic information but with relatively coarse object localization. Conversely, low-level features provide precise object locations but contain limited semantic information. To address this, the SFF module is introduced. It converts the high-level features fHIGH into corresponding attention weight matrices using a transposed convolution, bilinear interpolation, and a CA module. Dot products and residual connections are then performed to fuse the semantic information between the two feature layers, enabling better feature fusion:
$$ f_{ATT} = BL( T-Conv( f_{HIGH} )) $$
$$ f_{OUT} = f_{LOW} \otimes CA( f_{ATT} ) + f_{ATT} $$
The overall HSFPN and the improved network model structure are presented in the source text. Based on the feature map processing results from the intermediate C2f_PKIModule and SFF Module, the model demonstrates a more refined extraction capability for elongated defect features. After feature fusion at different stages within HSFPN, while simplifying the network, the model’s fusion expression ability is also enhanced, making it more beneficial for processing the detection of elongated defects.
Introducing the Powerful IoU Loss Function
YOLOv8 uses the CIoU loss function. CIoU introduces a penalty term based on DIoU to minimize the normalized distance between the center points of bounding boxes, thereby increasing the regression accuracy of the model. The CIoU expression is as follows:
$$ L_{IoU} = 1 – \frac{I}{U} $$
$$ L_{CIoU} = L_{IoU} + \frac{d^2}{c^2} + \alpha \cdot v, \quad 0 \le L_{CIoU} \le 2 $$
$$ \alpha = \frac{v}{(1 – vIoU) + v}, \quad v = \frac{4}{\pi^2} \left( \arctan \frac{w^{gt}}{h^{gt}} – \arctan \frac{w^{pred}}{h^{pred}} \right)^2 $$
In these equations, LIoU represents the IoU loss. I and U denote the intersection and union of the predicted box and the target box, respectively. vIoU represents the ratio of the intersection to the union of the predicted box and target box. The term d represents the distance between the center points of the predicted box and the target box, and c represents the diagonal length of the smallest enclosing box covering both boxes. In the early stages of training, the quality of predicted box samples obtained by the model is low, meaning the vIoU value is small. If the boxes do not overlap, the gradient information during the regression of the predicted box is blocked. This leads to a phenomenon where the predicted box enlarges during CIoU regression:
$$ \frac{\partial L_{CIoU}}{\partial d} = \frac{2d}{c^2} $$
Calculating the gradient of LCIoU with respect to d reveals that increasing c reduces LCIoU, but it also causes the predicted bounding box to enlarge, reducing regression efficiency and prolonging regression time. This issue arises from the inappropriate use of c as a denominator. To address the problem of the predicted bounding box enlarging, Powerful IoU (PIoU) is introduced. PIoU uses a penalty factor P based on the distances between the four edges of the predicted box and the target box. It directly replaces the smallest enclosing box c with the width and height of the ground truth bounding box:
$$ P = \frac{ \left( \frac{d_{w1}}{w^{gt}} + \frac{d_{w2}}{w^{gt}} + \frac{d_{h1}}{h^{gt}} + \frac{d_{h2}}{h^{gt}} \right)}{4} $$
Here, dw1, dw2, dh1, and dh2 are the absolute distances between the corresponding edges of the predicted box and the ground truth box. wgt and hgt are the width and height of the target box. The PIoU value is denoted as vPIoU:
$$ f(x) = 1 – e^{-x^2} $$
$$ v_{PIoU} = vIoU – f(P), \quad -1 \le v_{PIoU} \le 1 $$
$$ L_{PIoU} = 1 – v_{PIoU} = L_{IoU} + f(P), \quad 0 \le L_{PIoU} \le 2 $$
The non-monotonic focusing attention mechanism and the introduced PIoUv2 expression are:
$$ u(x) = 3x \cdot e^{-x^2} $$
$$ L_{PIoUv2} = 3\lambda e^{-(P + \lambda^2 e^{-2P})} \cdot L_{PIoU} $$
Analyzing the attention function u(λx) shows a higher focus on values in the middle part between 0 and 1. This means during the regression of the predicted box, for boxes with low IoU and high IoU, the penalty is reduced, allowing the model to focus more on the middle part, i.e., boxes of average quality. While improving generalization ability, this accelerates the regression of intermediate samples, leading to faster model convergence.
Experimental Results and Analysis
Dataset and Defect Types
The original data images were collected from a solar energy technology company using a CCD camera. The captured infrared images of solar photovoltaic modules consist of 60 cells. The dataset was constructed by segmenting the whole module images using image segmentation techniques. The detection principle involves simulating the direct current generated by sunlight irradiating the silicon cells. By applying a forward bias voltage to the silicon cells, carriers recombine and emit photons, which are captured by the CCD camera within a specific spectral range and displayed as images. The effective dataset comprises 2,862 images, divided into training and validation sets at an 8:2 ratio. The training set has 2,289 images, and the validation set has 573 images. In the training set, the label counts for Crack, FingerInterruption, and Scratch are 786, 1,380, and 1,455, respectively. In the validation set, the label counts are 249, 378, and 279, respectively. There are three types of defects in the dataset.
Experimental Setup
The deep learning experiment environment configuration is as follows:
| Configuration Item | Name/Specification |
|---|---|
| System | Ubuntu 20.04 |
| CPU | 18 vCPU AMD EPYC 9754 128-Core Processor |
| GPU | RTX 4090D (24 GB) |
| Python | Python 3.8.10 |
| Deep Learning Framework | PyTorch 1.10.0 |
| CUDA Version | 11.3 |
The experimental hyperparameters are set as follows:
| Parameter | Value |
|---|---|
| Image Size | 640 |
| Batch Size | 32 |
| Epoch | 200 |
| Learning Rate (lr) | 0.01 |
| Momentum | 0.937 |
| Weight Decay | 0.0005 |
Evaluation Metrics
To validate the effectiveness of the improvements, we use the mean average precision (mAP) metric to evaluate detection performance across multiple classes. The confusion matrix for evaluation is defined as follows:
| True Label | Predicted Label | |
|---|---|---|
| Positive | Negative | |
| True | TP | TN |
| False | FP | FN |
Precision (P) and Recall (R) are defined as:
$$ P = \frac{TP}{TP + FP} $$
$$ R = \frac{TP}{TP + FN} $$
Average Precision (AP) for a single class and Mean Average Precision (mAP) are:
$$ AP = \int_0^1 P(R) d(R) $$
$$ mAP = \frac{\sum_{i=1}^{k} AP_i}{k} $$
Ablation Study
To verify the effectiveness of the proposed improved model, ablation studies were conducted based on YOLOv8n. The results are shown in the table below. A checkmark (✓) indicates the module was added, and a cross (✗) indicates it was not. The base model is Model 1 (YOLOv8n).
| Model | PKI Module | CAA Module | HSFPN | DCNv4 | PIoU | AP50 Crack |
AP50 Finger |
AP50 Scratch |
mAP@50 (%) | mAP@50:95 (%) | Params (M) | GFLOPs (G) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Model 1 | ✗ | ✗ | ✗ | ✗ | ✗ | 0.803 | 0.826 | 0.813 | 0.814 | 0.522 | 3.006 | 8.1 |
| Model 2 | ✓ | ✗ | ✗ | ✗ | ✗ | 0.816 | 0.832 | 0.805 | 0.818 | 0.509 | 2.701 | 7.5 |
| Model 3 | ✗ | ✗ | ✓ | ✗ | ✗ | 0.788 | 0.849 | 0.822 | 0.820 | 0.516 | 1.934 | 6.8 |
| Model 4 | ✗ | ✗ | ✗ | ✗ | ✓ | 0.805 | 0.832 | 0.824 | 0.820 | 0.520 | 3.006 | 8.1 |
| Model 5 | ✗ | ✗ | ✓ | ✓ | ✗ | 0.816 | 0.849 | 0.810 | 0.825 | 0.515 | 1.922 | 6.8 |
| Model 6 | ✓ | ✓ | ✗ | ✗ | ✗ | 0.801 | 0.854 | 0.812 | 0.822 | 0.524 | 2.763 | 7.7 |
| Model 7 | ✓ | ✓ | ✓ | ✗ | ✗ | 0.818 | 0.846 | 0.806 | 0.823 | 0.526 | 1.691 | 6.5 |
| Model 8 | ✓ | ✓ | ✓ | ✓ | ✗ | 0.799 | 0.860 | 0.814 | 0.824 | 0.527 | 1.679 | 6.4 |
| Model 9 | ✓ | ✓ | ✓ | ✓ | ✓ | 0.825 | 0.837 | 0.829 | 0.830 | 0.525 | 1.679 | 6.4 |
Compared to the baseline YOLOv8n, the final improved model (Model 9, named PHDP-YOLO) shows a 1.6% improvement in mAP@50. The parameters decreased by 44.2%, and the computational cost (GFLOPs) decreased by 21%. The ablation study reveals the contributions of each module. Adding the PKI Module (Model 2) and CAA Module (Model 6) individually showed improvements in mAP@50 and reductions in parameters. Introducing HSFPN (Model 3) also improved mAP@50 while significantly lowering model complexity. The DCNv4 module (Model 5, 8) contributed to handling multi-scale defects. Finally, the PIoU loss (Model 4, 9) provided a further boost in mAP@50, particularly for the ‘Crack’ and ‘Scratch’ categories, achieving the best final results. The final model shows clear advantages for deployment on edge devices like drones, where low latency and high throughput are critical.
Comparative Experiments
To evaluate the performance of the proposed method against current mainstream object detection algorithms for solar panel defect detection, we compared it with Faster R-CNN, SSD, RetinaNet, and various YOLO series models.
| Model | Scale | AP50 Crack | AP50 Finger | AP50 Scratch | mAP@50 (%) | mAP@50:95 (%) | Params (M) | GFLOPs (G) |
|---|---|---|---|---|---|---|---|---|
| Faster R-CNN | – | 0.743 | 0.742 | 0.805 | 0.764 | 0.422 | 41.130 | 206.670 |
| RetinaNet | n | 0.616 | 0.706 | 0.793 | 0.705 | 0.370 | 19.660 | 154.670 |
| SSD | – | 0.678 | 0.718 | 0.727 | 0.708 | 0.368 | 61.530 | 193.890 |
| YOLOv3 | – | 0.746 | 0.814 | 0.812 | 0.791 | 0.480 | 3.098 | 2.139 |
| YOLOv5 | n | 0.760 | 0.818 | 0.821 | 0.800 | 0.498 | 12.330 | 8.117 |
| YOLOv5 | s | 0.766 | 0.815 | 0.828 | 0.803 | 0.499 | 35.287 | 24.553 |
| YOLOv6 | n | 0.809 | 0.804 | 0.819 | 0.811 | 0.494 | 4.301 | 5.496 |
| YOLOv6 | s | 0.843 | 0.791 | 0.824 | 0.819 | 0.504 | 17.188 | 21.883 |
| YOLOv6 | m | 0.820 | 0.835 | 0.812 | 0.822 | 0.520 | 34.200 | 40.619 |
| YOLOv7 | t | 0.727 | 0.836 | 0.817 | 0.793 | 0.455 | 6.020 | 6.559 |
| YOLOv7 | l | 0.794 | 0.818 | 0.799 | 0.804 | 0.490 | 36.514 | 51.758 |
| YOLOv8 | n | 0.803 | 0.826 | 0.813 | 0.814 | 0.522 | 3.006 | 8.100 |
| YOLOv8 | s | 0.802 | 0.834 | 0.828 | 0.821 | 0.518 | 11.127 | 28.400 |
| YOLOv8 | m | 0.829 | 0.843 | 0.815 | 0.829 | 0.533 | 43.609 | 164.800 |
| YOLO-X | t | 0.802 | 0.808 | 0.775 | 0.795 | 0.424 | 5.033 | 7.572 |
| YOLO-X | s | 0.809 | 0.807 | 0.788 | 0.801 | 0.497 | 8.938 | 13.321 |
| YOLO-X | m | 0.814 | 0.799 | 0.797 | 0.803 | 0.454 | 25.326 | 36.879 |
| PP-YOLO | t | 0.781 | 0.799 | 0.777 | 0.786 | 0.386 | 2.540 | 3.124 |
| PP-YOLO | s | 0.782 | 0.841 | 0.789 | 0.804 | 0.449 | 12.958 | 36.160 |
| DAMO-YOLO | t | 0.774 | 0.812 | 0.788 | 0.791 | 0.487 | 8.170 | 17.130 |
| DAMO-YOLO | s | 0.796 | 0.815 | 0.806 | 0.805 | 0.482 | 15.630 | 35.800 |
| DAMO-YOLO | m | 0.794 | 0.823 | 0.807 | 0.808 | 0.495 | 27.560 | 59.900 |
| RTM-DETR | t | 0.806 | 0.813 | 0.815 | 0.811 | 0.504 | 41.440 | 95.470 |
| RTM-DETR | s | 0.805 | 0.844 | 0.816 | 0.822 | 0.518 | 4.869 | 8.089 |
| RTM-DETR | m | 0.823 | 0.835 | 0.826 | 0.828 | 0.513 | 8.887 | 14.835 |
| PHDP-YOLO | n | 0.825 | 0.837 | 0.829 | 0.830 | 0.525 | 1.679 | 6.400 |
The experimental results clearly demonstrate the superiority of the proposed PHDP-YOLO model. While achieving the highest mAP@50 of 0.830%, it also possesses the lowest parameter count (1.679 M) and the lowest computational cost (6.4 GFLOPs) among all compared methods. This makes it exceptionally well-suited for deployment on resource-constrained platforms like drones, perfectly balancing high accuracy with the stringent requirements of lightweight and real-time performance for large-scale solar panel inspection tasks.
Validation on the PVEL-AD Dataset
To verify the detection effectiveness and generalization performance of the improved model on other datasets, we conducted tests on the PVEL-AD (Photovoltaic cell electroluminescence anomaly detection) dataset. This dataset, from Hebei University of Technology and Beijing University of Aeronautics and Astronautics, contains 12 types of anomalies. We selected four classes of defects with narrow and elongated characteristics: Crack, FingerInterruption, StarCrack, and ThickLine, forming a smaller dataset of 2,146 images. This dataset was split into training, validation, and test sets with a ratio of 7:2:1, resulting in 1,496, 420, and 230 images, respectively.
| Model | AP50 Crack | AP50 Finger | AP50 StarCrack | AP50 ThickLine | mAP@50 (%) | mAP@50:95 (%) | Params (M) | GFLOPs (G) |
|---|---|---|---|---|---|---|---|---|
| YOLOv8n | 0.699 | 0.900 | 0.801 | 0.825 | 0.806 | 0.463 | 3.006 | 8.1 |
| PHDP-YOLO | 0.704 | 0.905 | 0.838 | 0.831 | 0.820 | 0.466 | 1.679 | 6.4 |
Compared to the original YOLOv8n, the improved PHDP-YOLO model showed an overall mAP@50 improvement of 1.4% on this external dataset, achieving 82.0%. Performance for Crack, FingerInterruption, StarCrack, and ThickLine improved by 0.5%, 0.5%, 3.7%, and 0.6%, respectively. This confirms the model’s robust generalization ability across different defect datasets while maintaining a significantly reduced parameter count and computational load.
Conclusion
This paper constructed a dataset of three representative types of narrow and elongated defects found in solar panels. Based on this dataset, we proposed an improved lightweight model based on YOLOv8, named PHDP-YOLO. The results demonstrate that, while substantially reducing the model’s parameter count and computational cost, the model effectively maintains and even improves detection accuracy. The key innovations, including the multi-kernel inception backbone for enhanced feature extraction, deformable convolution for handling irregular shapes, the high-level screening fusion pyramid network for efficient multi-scale feature integration, and the Powerful IoU loss function for faster and more stable training all contribute to these improvements. Validation on the public PVEL-AD dataset, which contains four different types of narrow defects, further confirmed the model’s strong generalization performance. Defect detection accuracy for three of the four classes showed a modest increase, and one class showed a significant improvement. Based on these findings, the proposed PHDP-YOLO model is well-suited for the specific operational scenario of drone-based solar panel inspection. It successfully meets the high demands for real-time detection and accuracy, providing a favorable condition for deployment on edge computing platforms and contributing to more efficient and reliable maintenance of modern solar power infrastructure.
