Photovoltaic power station operation and maintenance path planning method and system based on multi-target dynamic programming

By optimizing the operation and maintenance path of photovoltaic power plants through a multi-objective dynamic programming method, and combining Euclidean straight-line distance and actual distance on Gaode Map, the problems of low computational efficiency and unreasonable path planning in existing technologies are solved, and efficient and low-cost operation and maintenance path planning is achieved.

CN122390169APending Publication Date: 2026-07-14ZHONGLAI ZHILIAN ENERGY ENG CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ZHONGLAI ZHILIAN ENERGY ENG CO LTD
Filing Date
2026-03-24
Publication Date
2026-07-14

AI Technical Summary

Technical Problem

Existing photovoltaic power plant operation and maintenance path planning algorithms have shortcomings in computational efficiency, adaptability, road modeling accuracy, and multi-objective optimization, resulting in low operation and maintenance efficiency and high costs. In particular, they are difficult to meet real-time scheduling requirements in the case of large-scale site clusters and missing coordinates.

Method used

A multi-objective dynamic programming approach is adopted, which optimizes path planning by using Euclidean straight-line distance for initial screening and actual distance calculation from Amap (Gaode Maps) and combining greedy algorithms and dynamic optimization mechanisms. The approach includes modules for site information database, task generation, global initial screening, local optimization, and dynamic optimization, and handles map API call anomalies.

Benefits of technology

It significantly reduces algorithm complexity, improves path quality and operational efficiency, reduces computational costs, ensures that paths conform to actual road conditions and have anomaly handling capabilities, and meets real-time scheduling requirements.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

This invention discloses a photovoltaic power plant operation and maintenance path planning method and system based on multi-objective dynamic programming. It includes a site information database for storing basic site information, including site name and latitude / longitude coordinates. Sites with latitude / longitude coordinates in the database are marked as valid sites, while those without are marked as invalid sites. The method includes the following steps: calculating the Euclidean straight-line distance between sites; sequentially filtering a set of sites that meet the operation and maintenance requirements using a greedy algorithm to obtain an operation and maintenance site list; calculating the actual distance between sites; sorting the sites in the operation and maintenance site list using a greedy algorithm to obtain an optimal path; starting from the second site in the optimal path, replacing each site one by one with the site with the second closest actual distance; then executing the greedy algorithm to sort the remaining sites and comparing the total distance to obtain the optimal path. The beneficial effects of this invention are: through a two-stage architecture of "global initial screening + local optimization," the initial screening stage quickly filters sites based on Euclidean straight-line distance, controlling the scale of fine optimization to within 20 sites, significantly reducing the number of calls to the Gaode Map API, and reducing the algorithm complexity from O(n^2) to O(n^2). 2 The distance is reduced to an acceptable range to meet real-time scheduling requirements; the path quality is improved: the path is more reasonable by combining the initial screening of Euclidean distance and the actual distance calculation of Gaode Map; multi-objective balance: on the basis of optimal distance, time cost and resource allocation are implicitly considered.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of photovoltaic operation and maintenance, and in particular to a method and system for photovoltaic power plant operation and maintenance path planning based on multi-objective dynamic programming. Background Technology

[0002] Photovoltaic power plants typically occupy a large area and are geographically dispersed, requiring maintenance personnel to visit multiple sites daily for equipment inspections, troubleshooting, and other tasks. Therefore, the rational planning of maintenance routes directly impacts maintenance efficiency and operating costs.

[0003] Currently, photovoltaic power plant operation and maintenance route planning mainly adopts the following two methods: one is to rely on manual experience, with operation and maintenance personnel arranging routes themselves according to the distribution of sites. This method is highly arbitrary and it is difficult to guarantee the global optimum. The other is to use a simple greedy algorithm, selecting the next site in turn based on the "nearest distance" criterion. Although it can generate a path quickly, it is easy to get trapped in local optima.

[0004] However, existing technologies have the following shortcomings in practical applications:

[0005] First, the algorithm design does not take into account the geographical distribution characteristics of photovoltaic power plants, resulting in poor adaptability and difficulty in meeting the operation and maintenance needs of large-scale site clusters. When the number of operation and maintenance sites is large (e.g., more than 20), the computational complexity of the algorithm increases sharply, leading to a significant decrease in computational efficiency and making it impossible to meet real-time scheduling requirements.

[0006] Secondly, there is a lack of accurate modeling of the actual road network. Path planning is mostly based on Euclidean straight-line distance, which deviates significantly from the actual road driving distance, resulting in poor feasibility of the planned path and a serious disconnect from the actual driving scenario.

[0007] Third, it does not incorporate multi-objective optimization theory, focusing only on the single dimension of "shortest distance," and cannot take into account multiple practical needs such as operation and maintenance efficiency, resource utilization, and time cost.

[0008] Fourth, the allocation of computing resources is unreasonable, and the computing logic is not optimized for the scale of the sites. When it is necessary to call the map API to obtain the real road distance, the full call of large-scale sites further exacerbates the problem of low computing efficiency and leads to high interface costs.

[0009] Furthermore, existing methods lack effective mechanisms to handle missing coordinates for some sites, which can easily lead to planning interruptions or abnormal results.

[0010] Therefore, there is an urgent need for a photovoltaic power plant operation and maintenance path planning method that can balance computational efficiency and path quality, adapt to actual road conditions, and have the ability to handle anomalies. Summary of the Invention

[0011] The purpose of this invention is to provide a photovoltaic power plant operation and maintenance path planning method and system based on multi-objective dynamic programming to solve or partially solve the above-mentioned technical problems.

[0012] To achieve the above objectives, the present invention provides the following technical solution:

[0013] A photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming includes a site information database to store basic site information including site name and latitude and longitude coordinates; sites with latitude and longitude coordinates in the site information database are marked as valid sites, and those without are marked as invalid sites.

[0014] Includes the following stages:

[0015] Phase 1: Calculate the Euclidean straight-line distance between sites, and use a greedy algorithm to sequentially filter out the set of sites that meet the operation and maintenance requirements to obtain the operation and maintenance site list;

[0016] The second stage involves calculating the actual distance between sites and sorting the sites in the maintenance site list using a greedy algorithm to obtain the optimal path.

[0017] The third stage: Starting from the second station in the optimal path, the stations are replaced one by one. Each time, a station is replaced with the station that is actually the second closest. Then, a greedy algorithm is executed to sort the remaining stations and compare the total distance to obtain the optimal path.

[0018] Preferably, it includes the following steps:

[0019] S1. Generate Operation and Maintenance Tasks: Based on the operation and maintenance requirements, set the total number of sites to be maintained and determine the initial sites to generate operation and maintenance tasks;

[0020] S2. Greedy algorithm for selecting maintenance sites, including the following sub-steps:

[0021] S21. Add the initial site to the maintenance site list and use the initial site as the starting point;

[0022] S22. Calculate the Euclidean straight-line distance between the starting point and other sites in the site information database that are not included in the operation and maintenance site list, select the valid site with the closest Euclidean straight-line distance, add it to the operation and maintenance site list, and use it as the new starting point;

[0023] S23. Repeat step S22 until a list of maintenance sites including the total number of sites to be maintained is obtained;

[0024] S3. Greedy algorithm for local optimization includes the following sub-steps:

[0025] S31. Add the initial site to the optimized path and use the initial site as the starting point;

[0026] S32. Calculate the actual distance between the starting point and the sites in the maintenance site list that have not entered the optimized path through the map API, select the site with the smallest actual distance, add it to the optimized path and record its order, and use it as the new starting point.

[0027] S33. Repeat step S32 until all sites in the maintenance site list have entered the optimized path;

[0028] S4. Dynamic Optimization: The optimal path is replaced point by point to select the path with the shortest total distance, including the following sub-steps:

[0029] S41. Set the replacement position index k=1, and use the optimized path as the temporary optimal path;

[0030] S42. Input the first k stations in the temporary optimal path into the comparison path in sequence as the first k stations in the comparison path, and take the kth station as the current point;

[0031] S43. Iterate through all the sites in the maintenance site list that are not included in the comparison path, call the map API to calculate the actual road distance from each site to the current point, select the second closest site as the next site, and add it to the comparison path;

[0032] S44. Using the next station obtained in step S43 as the current point, traverse all stations in the maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, select the station with the closest distance as the next station, and add it to the comparison path;

[0033] S45. Repeat step S44 until all sites in the maintenance site list are included in the comparison path;

[0034] S46. Calculate the total actual distance of the comparison path. If the total distance of the comparison path is less than the total distance of the temporary optimal path, then replace the temporary optimal path with the comparison path.

[0035] S47. Increment k by 1, and repeat sub-steps S42 to S46 until k equals the total number of sites to be maintained.

[0036] S5. Optimal Path Output: The final temporary optimal path is output as the optimal path. The optimal path includes the site access order, the actual distance between each site, and the cumulative total distance.

[0037] Preferably, in step S1, the initial site is a valid site selected manually, and is the valid site closest to the departure point of the maintenance personnel.

[0038] Preferably, in step S2, the total number of sites to be maintained is preset based on the amount of maintenance work that can be completed on that day.

[0039] Preferably, in steps S3 and S4, when calling the map API to calculate the actual road distance, an exception handling sub-step is included:

[0040] If the map API call is successful, obtain and record the actual road distance;

[0041] If the map API call fails, the Euclidean straight-line distance between the station pairs will be used as the actual road distance to ensure that route planning is not interrupted.

[0042] Preferably, in steps S3 and S4, the total number of sites to be maintained does not exceed 20.

[0043] Preferably, the map API is the Amap distance measurement API, used to calculate the actual road distance and travel time between stations.

[0044] This invention also provides a photovoltaic power plant operation and maintenance path planning system based on multi-objective dynamic programming, comprising:

[0045] Site Information Database Module: Used to store basic site information, including site name and latitude and longitude coordinates, and to mark sites with latitude and longitude coordinates as valid sites, and others as invalid sites;

[0046] Task generation module: Used to set the total number of sites to be maintained and determine the initial sites according to the operation and maintenance requirements, and generate operation and maintenance tasks;

[0047] Global Preliminary Screening Module: Starting from the initial site, it uses a greedy algorithm based on Euclidean straight-line distance to screen out a total number of valid sites to be maintained and generate a list of maintenance sites.

[0048] Local optimization module: This module is used to calculate the actual road distance by calling the map API, starting from the initial station, and to generate an optimal path using a greedy algorithm.

[0049] Dynamic optimization module: used to perform point-by-point replacement optimization on the optimal path, and obtain the optimal path by comparing path distances;

[0050] Exception handling module: Used to replace the actual road distance with Euclidean straight-line distance when the map API call fails;

[0051] Path Output Module: Used to output the final temporary optimal path as the optimal path, including the site access order, the actual distance between each site, and the cumulative total distance.

[0052] Preferably, the dynamic selection module further includes:

[0053] The index setting unit is used to set the replacement location index k=1 and increment it to the total number of sites to be maintained;

[0054] The path retention unit is used to sequentially input the first k stations in the temporary optimal path into the comparison path, so as to serve as the first k stations in the comparison path.

[0055] The nearest station selection unit is used to traverse all stations in the maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, and select the second closest station as the next station to be added to the comparison path;

[0056] The greedy construction unit is used to take the next station obtained from the next nearest station selection unit as the current point, traverse all stations in the operation and maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, select the closest station as the next station to add to the comparison path, until all stations have entered the comparison path;

[0057] The path comparison and replacement unit is used to calculate the total actual distance of the compared paths. If it is less than the total distance of the temporary optimal path, the temporary optimal path is replaced by the compared path.

[0058] The iterative control unit is used to control the index k to increment and repeat until k equals the total number of sites to be maintained.

[0059] The beneficial effects of this invention are as follows: Through a two-stage architecture of "global initial screening + local optimization", the initial screening stage quickly filters stations based on Euclidean straight-line distance, while controlling the scale of fine optimization to within 20, significantly reducing the number of calls to the Gaode Map API, and reducing the algorithm complexity from O(n²) to an acceptable range, thus meeting the real-time scheduling requirements; Improved path quality: Combining Euclidean distance initial screening with actual distance calculation from Gaode Map, the path is more reasonable; Multi-objective balance: Based on optimal distance, time cost and resource allocation are implicitly considered. Detailed Implementation

[0060] The technical solution of the present invention will be further described in detail below with reference to specific embodiments.

[0061] In the description of this invention, it should be noted that the terms "inner", "outer", "upper", "lower", "horizontal", etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are only for the convenience of describing this invention and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on this invention.

[0062] This invention consists of three stages: global initial screening, local optimization, and dynamic selection.

[0063] Phase 1: Global Initial Screening (High-speed screening without calling external APIs)

[0064] Based on the operation and maintenance requirements, set the total number of sites to be maintained and determine the initial sites, and generate operation and maintenance tasks;

[0065] Based on whether the station's latitude and longitude coordinates are empty, the stations are divided into: List of Valid Coordinate Stations L valid List of Invalid Coordinate Sites L invalid (Spatial distance calculations cannot be performed without coordinates).

[0066] Using the first site as the current location, perform the following steps:

[0067] (1) Calculate the straight-line distance from the current site to the unvisited site using the Euclidean distance formula calculateDistance():

[0068] in:

[0069] · This represents the Euclidean distance between two points.

[0070] · , These represent the latitude and longitude coordinates of the first station, respectively.

[0071] · , These represent the latitude and longitude coordinates of the second station, respectively.

[0072] (2) Call the nearest neighbor search method findNearestLocationOfOamMaintain() to determine the nearest station.

[0073] (3) Add this site to the maintenance site list L gross .

[0074] (4) Set the site as the new currentLocation and repeat steps (1) to (3) until 20 sites are added to the maintenance site list; if there are fewer than 20 sites, all will proceed to the next stage.

[0075] This stage relies on methods for calculating the straight-line distance between two points and finding the nearest neighbor site. It involves no external API calls and uses pure in-memory computation to ensure high-speed filtering efficiency. The core code is as follows:

[0076] / **

[0077] * Core: Find the nearest operating site to the current site (nearest neighbor core method)

[0078] * @param currentLocation Current location (current site)

[0079] * @param oamMaintainInfos List of valid coordinate sites to be accessed

[0080] * @return The nearest operations and maintenance site

[0081] * / public static OamMaintainInfo findNearestLocationOfOamMaintain(OamMaintainInfo currentLocation, List <oammaintaininfo>oamMaintainInfos) {

[0082] return oamMaintainInfos.stream()

[0083] .filter(location -> location.getLatitude() != null &&location.getLongitude() != null)

[0084] .min(Comparator.comparing(location -> calculateDistance(currentLocation, location)))

[0085] .map(nearestLocation -> {

[0086] BigDecimal distance = calculateDistance(currentLocation,nearestLocation);

[0087] nearestLocation.setStationDistance(BigDecimal.ZERO.compareTo(distance) == 0 ?

[0088] (currentLocation.getStationDistance() == null ? BigDecimal.ZERO : currentLocation.getStationDistance()) :distance);

[0089] Return nearestLocation.

[0090] }).orElse(null);}

[0091] / **

[0092] * Dependency method: Calculate the straight-line distance (Euclidean distance) between two points.

[0093] * @param loc1 Starting station

[0094] * @param loc2 Destination station

[0095] * @return The straight-line distance (km) between the two points, rounded to 3 decimal places.

[0096] * / private static BigDecimal calculateDistance(OamMaintainInfo loc1,OamMaintainInfo loc2) {

[0097] if (loc1.getLatitude().equals(loc2.getLatitude()) &&loc1.getLongitude().equals(loc2.getLongitude())){

[0098] return BigDecimal.ZERO;

[0099] }

[0100] return DistanceUtil.getDistanceBigDecimalOneDecimalPlace(

[0101] loc1.getLatitude(),loc1.getLongitude(),

[0102] loc2.getLatitude(),loc2.getLongitude()

[0103] ).divide(BigDecimal.valueOf(1000), 3, BigDecimal.ROUND_HALF_UP);}

[0104] The purpose of this stage is to significantly reduce the scale of subsequent local optimization sites, compressing the original dozens or even hundreds of operation and maintenance sites to a maximum of less than 20, greatly reducing the number of calls to the Gaode Map API in the second stage, and reducing call latency and costs.

[0105] Phase Two: Local Optimization (Precise Optimization Based on Actual Road Distances)

[0106] The core of this phase is the encapsulation and calling method GdMapUtil.gdDistanceApi() for the Gaode Map road distance API. Redundant logs, duplicate validations, and other non-core code have been removed, retaining only the core business logic. A simplified version is as follows:

[0107] / **

[0108] * Core: Encapsulation of Amap's road distance measurement API (real road distance calculation)

[0109] * @param distanceVOList A list of starting coordinates, supporting up to 100 coordinate pairs in batches.

[0110] * @param destination Destination coordinates, format: longitude, latitude

[0111] * @return assigns a list of coordinates representing the actual road distance / duration.

[0112] * @throws Exception: Throws an exception if the coordinates are null or if an API call exception occurs.

[0113] /

[0114] public static List <gddistancevo>gdDistanceApi(List <gddistancevo>distanceVOList, String destination) throws Exception {

[0115] if (CollectionUtils.isEmpty(distanceVOList) ||StringUtils.isBlank(destination)) {

[0116] throw new Exception("Start / destination coordinates cannot be empty!");

[0117] }

[0118] / / Assemble the Amap API request parameters

[0119] String url = "https: / / restapi.amap.com / v3 / distance";

[0120] Map<String, String> queries = new HashMap<>();

[0121] String origins = distanceVOList.stream()

[0122] .map(GdDistanceVO::getOrigins)

[0123] .collect(Collectors.joining("|"));

[0124] querys.put("origins", origins);

[0125] queries.put("destination", destination);

[0126] querys.put("output", "JSON");

[0127] querys.put("key", API_KEY);

[0128] / / Call the API and parse the results, assigning the actual road distance and travel time as values.

[0129] String s = HttpUtils.sendPost(url, queries);

[0130] Map map = JSON.parseObject(s, Map.class);

[0131] if (!"1".equals(map.get("status"))) {

[0132] throw new Exception("Exception occurred when calling the Gaode distance measurement API:" + map.get("info"));

[0133] }

[0134] List <gddistancevo>distanceVos = JSON.parseArray(map.get("results").toString(), GdDistanceVO.class);

[0135] Map<String, GdDistanceVO> distanceMap = distanceVos.stream()

[0136] .collect(Collectors.toMap(GdDistanceVO::getOrigin_id, v -> v));

[0137] distanceVOList.forEach(m -> {

[0138] GdDistanceVO gdDistanceVO = distanceMap.get(m.getOrigin_id());

[0139] if (gdDistanceVO != null) {

[0140] m.setDistance(gdDistanceVO.getDistance());

[0141] m.setDuration(gdDistanceVO.getDuration());

[0142] }

[0143] });

[0144] return distanceVOList;

[0145] }

[0146] The purpose of this stage is to sort the up to 20 sites in the maintenance site list output from the first stage to obtain the optimal path calculated based on the actual distance:

[0147] Step 1: Initialize the greedy iteration parameters

[0148] 1. Path initialization: Set the initial path list Lfine = [S0] (starting from the initial site, in line with the operating habits of maintenance personnel);

[0149] 2. Access flag: Set a boolean array visited[], initially visited[0] = true (marking S0 as visited), the rest are false;

[0150] 3. Current site: current = S0 (the initial current site is S0).

[0151] Step 2: Iteratively select the optimal next station using a greedy algorithm.

[0152] Loop through the following operations until all sites have been visited (all visited [] are true):

[0153] 1. Traverse all unvisited sites S in the maintenance site list. j (visited[j] = false), calculate the distance D to the current point using the map API. idx [j];

[0154] 2. Select the station S with the shortest distance. m (i.e., min {D [current]) idx ][j] | visited [j] =false});

[0155] 3. Place S m Add the optimized path and mark visited[m] = true;

[0156] Update the current point current = S m The cumulative path distance is calculated as D[current_prev_idx][m].

[0157] The purpose of this stage is to replace the Euclidean distance used in the initial global screening stage with accurate real road distances, thereby addressing the core pain point of "short straight-line distance but long actual detours". This makes the final path more consistent with the actual driving conditions of maintenance vehicles, further improving the quality of path optimization and reducing ineffective driving costs during the maintenance process.

[0158] Phase 3: Dynamic optimization (replacing the optimal path point by point to improve the greedy algorithm)

[0159] Step 1: Use the optimized path as the temporary optimal path, take the first point of the temporary optimal path as the current point, and add the current point to the comparison path;

[0160] Step 2: Calculate the actual distance between the current point and all other stations that have not entered the temporary optimal path using the map API, and add the second closest station as a new station to the comparison path; this replaces the nearest station in the original greedy algorithm, thereby improving the greedy algorithm;

[0161] Step 3: Starting from the new station, continue to use the greedy algorithm to add the remaining stations to the comparison path, compare the temporary optimal path with the comparison path, and keep the one with the smaller total distance as the temporary optimal path;

[0162] Step 4: Treat the new station in Step 2 as the new current point, and repeat Steps 2 and 3 in this way, replacing the original nearest point with the next nearest point in turn, and obtain the shortest temporary optimal path after replacement by comparing the total distance.

[0163] The purpose of this stage is to replace each path calculated by the greedy algorithm with the second nearest station. This improves upon the shortcomings of the simple greedy algorithm, which only pursues the selection of the current nearest station and is prone to getting trapped in local optima, failing to guarantee the optimality of the global path. This can improve the optimization of the global path without significantly increasing the computational load. The principle behind this design is that when there are few stations, the simple greedy algorithm selects the nearest station that is already close to the optimal solution, and the result obtained by selecting the second nearest station is also close to the optimal solution. At this point, replacing each of the second nearest stations one by one can increase the comparison under the above condition (close to the optimal solution) and find a better solution without significantly increasing the computational load.

[0164] The above description is merely an embodiment of the present invention and does not limit the patent scope of the present invention. Any equivalent structural or procedural transformations made based on the content of the present invention specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of the present invention.< / gddistancevo> < / gddistancevo> < / gddistancevo> < / oammaintaininfo>

Claims

1. A photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming, characterized in that, It includes a site information database, which stores basic site information, including site name and latitude and longitude coordinates; Sites with latitude and longitude coordinates in the site information database are marked as valid sites, otherwise they are marked as invalid sites; It includes the following three stages: Phase 1: Calculate the Euclidean straight-line distance between sites, and use a greedy algorithm to sequentially filter out the set of sites that meet the operation and maintenance requirements to obtain the operation and maintenance site list; The second stage involves calculating the actual distance between sites and sorting the sites in the maintenance site list using a greedy algorithm to obtain the optimal path. The third stage: Starting from the second station in the optimal path, the stations are replaced one by one. Each time, a station is replaced with the station that is actually the second closest. Then, a greedy algorithm is executed to sort the remaining stations and compare the total distance to obtain the optimal path.

2. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 1, characterized in that, Includes the following steps: S1. Generate Operation and Maintenance Tasks: Based on the operation and maintenance requirements, set the total number of sites to be maintained and determine the initial sites to generate operation and maintenance tasks; S2. Greedy algorithm for selecting maintenance sites, including the following sub-steps: S21. Add the initial site to the maintenance site list and use the initial site as the starting point; S22. Calculate the Euclidean straight-line distance between the starting point and other sites in the site information database that are not included in the operation and maintenance site list, select the valid site with the closest Euclidean straight-line distance, add it to the operation and maintenance site list, and use it as the new starting point; S23. Repeat step S22 until a list of maintenance sites including the total number of sites to be maintained is obtained; S3. Greedy algorithm for local optimization includes the following sub-steps: S31. Add the initial site to the optimized path and use the initial site as the starting point; S32. Calculate the actual distance between the starting point and the sites in the maintenance site list that have not entered the optimized path through the map API, select the site with the smallest actual distance, add it to the optimized path and record its order, and use it as the new starting point. S33. Repeat step S32 until all sites in the maintenance site list have entered the optimized path; S4. Dynamic Optimization: The optimal path is replaced point by point to select the path with the shortest total distance, including the following sub-steps: S41. Set the replacement position index k=1, and use the optimized path as the temporary optimal path; S42. Input the first k stations in the temporary optimal path into the comparison path in sequence as the first k stations in the comparison path, and take the kth station as the current point; S43. Iterate through all the sites in the maintenance site list that are not included in the comparison path, call the map API to calculate the actual road distance from each site to the current point, select the second closest site as the next site, and add it to the comparison path;    S44. Using the next station obtained in step S43 as the current point, traverse all stations in the maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, select the station with the closest distance as the next station, and add it to the comparison path; S45. Repeat step S44 until all sites in the maintenance site list are included in the comparison path;    S46. Calculate the total actual distance of the comparison path. If the total distance of the comparison path is less than the total distance of the temporary optimal path, then replace the temporary optimal path with the comparison path. S47. Increment k by 1, and repeat sub-steps S42 to S46 until k equals the total number of sites to be maintained. S5. Optimal Path Output: The final temporary optimal path is output as the optimal path. The optimal path includes the site access order, the actual distance between each site, and the cumulative total distance.

3. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 2, characterized in that, In step S1, the initial site is a valid site selected manually, and it is the valid site closest to the departure point of the maintenance personnel.

4. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 2, characterized in that, In step S2, the total number of sites to be maintained is preset based on the amount of maintenance work that can be completed on that day.

5. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 2, characterized in that, In steps S3 and S4, when calling the map API to calculate the actual road distance, an exception handling sub-step is included: If the map API call is successful, obtain and record the actual road distance; If the map API call fails, the Euclidean straight-line distance between the station pairs will be used as the actual road distance to ensure that route planning is not interrupted.

6. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 2, characterized in that, In steps S3 and S4, the total number of sites to be maintained does not exceed 20.

7. The photovoltaic power plant operation and maintenance path planning method based on multi-objective dynamic programming according to claim 2, characterized in that, The map API mentioned is the Amap distance measurement API, used to calculate the actual road distance and travel time between stations.

8. A photovoltaic power plant operation and maintenance path planning system based on multi-objective dynamic programming, characterized in that, include: Site Information Database Module: Used to store basic site information, including site name and latitude and longitude coordinates, and to mark sites with latitude and longitude coordinates as valid sites, and others as invalid sites; Task generation module: Used to set the total number of sites to be maintained and determine the initial sites according to the operation and maintenance requirements, and generate operation and maintenance tasks; Global Preliminary Screening Module: Starting from the initial site, it uses a greedy algorithm based on Euclidean straight-line distance to screen out a total number of valid sites to be maintained and generate a list of maintenance sites. Local optimization module: This module is used to calculate the actual road distance by calling the map API, starting from the initial station, and to generate an optimal path using a greedy algorithm. Dynamic optimization module: used to perform point-by-point replacement optimization on the optimal path, and obtain the optimal path by comparing path distances; Exception handling module: Used to replace the actual road distance with Euclidean straight-line distance when the map API call fails; Path Output Module: Used to output the final temporary optimal path as the optimal path, including the site access order, the actual distance between each site, and the cumulative total distance.

9. The photovoltaic power plant operation and maintenance path planning system based on multi-objective dynamic programming according to claim 8, characterized in that, The dynamic optimization module further includes: The index setting unit is used to set the replacement location index k=1 and increment it to the total number of sites to be maintained; The path retention unit is used to sequentially input the first k stations in the temporary optimal path into the comparison path, so as to serve as the first k stations in the comparison path. The nearest station selection unit is used to traverse all stations in the maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, and select the second closest station as the next station to be added to the comparison path; The greedy construction unit is used to take the next station obtained from the next nearest station selection unit as the current point, traverse all stations in the operation and maintenance station list that have not entered the comparison path, call the map API to calculate the actual road distance from each station to the current point, select the closest station as the next station to add to the comparison path, until all stations have entered the comparison path; The path comparison and replacement unit is used to calculate the total actual distance of the compared paths. If it is less than the total distance of the temporary optimal path, the temporary optimal path is replaced by the compared path. The iterative control unit is used to control the index k to increment and repeat until k equals the total number of sites to be maintained.