Water turbine governor no-load opening degree optimization method and system based on dynamic linked list
By optimizing the no-load opening degree of the turbine governor using dynamic linked list technology, the problem of deviation between theoretical and actual opening degree was solved, enabling rapid grid connection and stable operation of the unit, and improving the control accuracy and response speed of the pumped storage unit.
Patent Information
- Application Number
- CN202510784596.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-12
- Publication Date
- 2025-11-04
AI Technical Summary
Existing turbine governors, under no-load conditions, have discrepancies between the theoretical no-load opening degree and the actual demand, resulting in frequent adjustments that affect the unit's speed stability and grid connection time, making it difficult to meet the rapid response requirements of pumped-storage units.
Using dynamic linked list technology, the estimated no-load opening degree is calculated by interpolation, and the actual opening degree value is recorded at the moment of grid connection. The linked list data is dynamically updated to optimize the no-load opening degree control. Combined with the setting of threshold and node upper limit, data redundancy is avoided and adaptive optimization is achieved.
It improves the grid connection speed and stability of the unit under different head conditions, reduces the PID regulation amount and number of regulation under no-load conditions, and enhances the unit's rapid response capability and operational stability.
Smart Images

Figure CN120889700A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the technical field of turbine governors, and particularly relates to a method and system for optimizing the no-load opening degree of a turbine governor based on a dynamic linked list. Background Technology
[0002] The turbine governor is a key component of the hydropower station control system. Its main function is to regulate the turbine's speed and power output, ensuring stable unit operation. Under no-load conditions, the governor must achieve zero-error regulation, precisely maintaining the unit speed at 50Hz to meet the requirements of rapid grid connection. With the rapid development of new energy power systems, the large-scale commissioning of pumped storage units has placed higher demands on the governor's control performance. Compared to traditional mixed-flow units, pumped storage units have characteristics such as low rotational inertia and large head variations, significantly increasing the difficulty of speed control under no-load conditions and imposing more stringent standards on the governor's dynamic response and regulation accuracy.
[0003] Currently, the control of turbine governors under no-load conditions mainly relies on theoretical no-load opening data provided by the main engine manufacturer. Specifically, the theoretical no-load opening values corresponding to different heads are pre-stored in a fixed array. The governor retrieves the initial opening value based on the current head, and then performs fine-tuning using a PID control algorithm to stabilize the unit speed around 50Hz. For example, patent CN118554539A proposes a rapid grid connection method based on the relationship between theoretical head and no-load opening value. This method determines the initial opening value through theoretical calculations combined with real-time head data, and then uses PID control to achieve speed control.
[0004] However, the theoretical no-load opening provided by the turbine manufacturer is usually calculated based on the turbine's design operating conditions. In actual operation, due to factors such as hydraulic characteristics, unit wear, and changes in the flow channel, the theoretical no-load opening often deviates significantly from the actual requirement. This deviation leads to frequent PID control of the governor during no-load regulation, resulting in excessive regulation. This can easily cause the unit speed to oscillate continuously around 50Hz, prolonging grid connection time and even affecting grid stability. Summary of the Invention
[0005] Purpose of the invention: The purpose of this invention is to provide a method for optimizing the no-load opening of a turbine governor based on a dynamic linked list, which can solve the problem of frequent no-load adjustments, large adjustment amounts, and difficulties in grid connection caused by large deviations between theoretical and actual no-load opening. This improves the unit's rapid grid connection capability and increases the rapid response speed of pumped-storage units. On the other hand, this invention also provides a system for optimizing the no-load opening of a turbine governor based on a dynamic linked list.
[0006] Technical solution: The method for optimizing the no-load opening degree of a turbine governor as described in this invention includes the following steps:
[0007] (1) Construct a dynamic linked list containing several nodes. Each node includes a pointer field and a data field. The data field is used to store the head value and the corresponding empty opening value.
[0008] (2) Initialize the dynamic linked list and store the multiple theoretical head values and corresponding theoretical no-load opening values provided by the OEM into each node;
[0009] (3) When the unit is started, the current measured head value is obtained and compared with the theoretical head value in the dynamic linked list. The interpolation method is used to calculate the current estimated no-load opening value.
[0010] (4) At the moment the unit is connected to the grid, record the actual no-load opening value and compare the actual no-load opening value with the estimated no-load opening value. If the difference between the two exceeds the set threshold, insert the current measured head value and the actual no-load opening value as new nodes into the linked list.
[0011] (5) During the subsequent unit startup process, repeat steps (3)-(4) to make the linked list dynamically expand with the running data.
[0012] By storing the correspondence between head value and no-load opening value in a dynamic linked list, the estimated opening is calculated in real time using interpolation. After grid connection, the linked list data is dynamically updated by comparing the deviation between the actual value and the estimated value, thus realizing adaptive optimization of the no-load opening of the turbine governor. This effectively improves the control accuracy and unit stability during the start-up process. At the same time, the model adaptability is continuously optimized by accumulating operating data.
[0013] Preferably, in step 2, when initializing the dynamic linked list, the tail insertion method is used to construct a linked list containing 7 nodes, the head pointer points to the data field address of the first node, and the nodes are arranged in ascending order of head value.
[0014] By constructing an initial linked list using the tail insertion method and ensuring that the nodes are arranged in order according to the head value, the initialization process of the linked list is simplified, and the efficiency of subsequent interpolation calculations is optimized. At the same time, the design of fixing 7 nodes balances storage overhead and calculation accuracy, and the direct positioning of the head pointer further improves the data access speed, laying the foundation for the rapid and accurate prediction of the turbine's no-load opening.
[0015] Preferably, the formula for calculating the current estimated no-load opening value using interpolation in step 3 is as follows:
[0016] GV_Cur=GV[i]+(Head_Ins-Head[i]) / (Head[i+1]-Head[i])*(GV[i+1]-GV[i])
[0017] Where GV[i] is the theoretical no-load opening value, Head[i] is the theoretical head value, Head_Ins is the measured head value, and Head_Ins is between Head[i] and Head[i+1].
[0018] Using linear interpolation to calculate the estimated no-load opening value can quickly and accurately estimate the corresponding opening value when the head value is between two known theoretical values, thereby optimizing the governor control performance, reducing the impact during grid connection, and improving the stability and response speed of unit operation.
[0019] Preferably, the threshold set in step 4 is 0.2% of the theoretical no-load opening value. When |GV_Ins-GV_Cur| / GV_Cur×100%≥0.2%, a new node insertion operation is performed, where GV_Ins is the actual no-load opening value and GV_Cur is the estimated no-load opening value.
[0020] By setting a relative error threshold of 0.2%, this method avoids the problem of redundant data caused by frequent updates to the linked list while ensuring calculation accuracy. The linked list is only dynamically expanded when the deviation between the measured value and the estimated value is significant. Thus, while optimizing the no-load opening control, the method maintains the efficiency of data storage and the stability of the model, and further improves the adaptive capability of the turbine governor.
[0021] Preferably, the insertion position of the new node in step 4 is determined by the measured head value. Specifically, when Head_Ins is located between the original Head[i] and Head[i+1] in the linked list, the new node is inserted between the nodes corresponding to Head[i] and Head[i+1], while maintaining the monotonically increasing order of the head value of the linked list.
[0022] By dynamically inserting new nodes and always keeping the linked list ordered by head value, this method ensures the continuity and accuracy of data during interpolation calculations, avoids prediction deviations caused by data chaos, and optimizes the query efficiency of the linked list. This enables the turbine governor to adapt more accurately to different head conditions, further improving the control performance of no-load opening and the operational stability of the unit.
[0023] Preferably, in step 4, when the measured head value Head_Ins is equal to a certain theoretical head value Head[i] in the linked list, and the difference between the corresponding actual no-load opening value GV_Ins and the theoretical no-load opening value GV[i] exceeds a set threshold, GV_Ins replaces GV[i].
[0024] By dynamically updating the no-load opening data under the same head value, the parameters are optimized in real time while maintaining the stability of the linked list structure. This avoids redundant storage of duplicate nodes and ensures continuous calibration between theoretical data and actual operating conditions, thereby effectively improving the control accuracy and adaptability of the governor under different head conditions, making the unit operation more in line with actual operating requirements.
[0025] Preferably, the method for optimizing the no-load opening of the turbine governor further includes step 6: setting an upper limit N for the total number of linked list nodes, and stopping the insertion of new nodes when the number of linked list nodes reaches N.
[0026] By setting an upper limit N for the total number of linked list nodes, this method effectively controls the storage space occupation while ensuring dynamic data optimization, preventing excessive expansion of the linked list that would lead to a decrease in query efficiency. This achieves a balance between computational accuracy and system resource consumption, ensuring the long-term stable operation of the turbine governor while maintaining efficient adaptive regulation capabilities.
[0027] The turbine governor no-load opening optimization system of the present invention includes:
[0028] The linked list construction module is used to construct a dynamic linked list containing several nodes. Each node includes a pointer field and a data field. The data field is used to store the head value and the corresponding empty opening value.
[0029] The data initialization module is used to initialize the dynamic linked list and store multiple theoretical head values and corresponding theoretical no-load opening values provided by the OEM into each node.
[0030] The real-time calculation module is used to obtain the current measured head value when the unit is started, compare it with the theoretical head value in the dynamic linked list, and calculate the current estimated no-load opening value using the interpolation method.
[0031] The data update module is used to record the actual no-load opening value at the moment the unit is connected to the grid, and compare the actual no-load opening value with the estimated no-load opening value. If the difference between the two exceeds the set threshold, the current measured head value and the actual no-load opening value are inserted into the linked list as new nodes.
[0032] The dynamic expansion control module is used to repeat the above steps during subsequent unit startup processes, so that the linked list can be dynamically expanded as the running data increases.
[0033] Preferably, the data update module includes:
[0034] The difference calculation unit is used to calculate the relative deviation between the actual no-load opening value and the estimated no-load opening value;
[0035] A threshold determination unit is used to determine whether the relative deviation exceeds a set threshold.
[0036] The linked list insertion unit is used to insert the current measured head value and the actual no-load opening value as the corresponding positions of the linked list when the deviation exceeds the threshold.
[0037] The data replacement unit is used to replace the theoretical no-load opening value with the actual no-load opening value when the measured head value is equal to a theoretical head value in the linked list and the deviation exceeds a threshold.
[0038] A computer device, characterized in that it includes a memory and a processor, wherein the memory stores a computer program that can be loaded and executed by the processor to optimize the no-load opening degree of the turbine governor based on a dynamic linked list.
[0039] A computer-readable storage medium storing a computer program thereon, characterized in that, when executed by a processor, the computer program implements the aforementioned method for optimizing the no-load opening of a turbine governor based on a dynamic linked list.
[0040] Beneficial Effects: Compared with existing technologies, this invention has the following significant advantages: 1. By applying dynamic linked list technology to the calculation of the governor's no-load opening, the dynamic scalability of the linked list can continuously optimize and supplement the actual no-load opening under various heads, thereby effectively reducing the adjustment amount and number of adjustments of the no-load PID, which is conducive to increasing the pass rate of the no-load swing test and reducing the difficulty of selecting no-load PID parameters; 2. By recording the actual no-load opening value at the moment of grid connection in real time and intelligently comparing it with the theoretical calculation value, the linked list data is dynamically adjusted so that the predicted value of the no-load opening gradually approaches the actual optimal value, significantly improving the grid connection speed and stability of the unit under different head conditions; 3. By using an interpolation algorithm combined with a dynamic linked list structure, while ensuring the accuracy of the no-load opening calculation, reasonable thresholds and node upper limits are set to avoid data redundancy, ensure system response speed, and meet the needs of pumped-storage units for rapid response; 4. By setting an upper limit on the total number of nodes and an intelligent replacement mechanism, the most valuable operating data is retained, and the risk of storage space overflow is prevented, realizing the self-learning, self-optimization, and long-term reliable operation of the turbine governor parameters. Attached Figure Description
[0041] Figure 1 This is a schematic diagram of the method flow of the present invention;
[0042] Figure 2 This is a schematic diagram of the linked list technology of the present invention, where P is a pointer of node type;
[0043] Figure 3 This is a schematic diagram of node insertion in the linked list according to the present invention;
[0044] Figure 4 This is a flowchart of the optimization of the no-load opening degree algorithm of the present invention. Detailed Implementation
[0045] The technical solution of the present invention will be further described below with reference to the accompanying drawings.
[0046] like Figure 1 As shown, the technical solution of the turbine governor no-load opening optimization method of the present invention is as follows: Utilizing the dynamic scalability of linked list technology, a new linked list containing 7 nodes is created, where each node contains a pointer field and a data field, such as... Figure 2 As shown, the pointer field points to the next node, and the data field contains two parameters: head and opening degree. The theoretical no-load opening degrees (GV1 to GV7) under the seven heads (Head1 to Head7) provided by the OEM are stored in seven nodes as the initial values of the linked list. For example, in the no-load opening degree calculation program segment, a new structure data type is created. This structure data type contains one data field and one pointer field. The data field contains floating-point variables Head and GV, and the pointer field contains pointer variable Link. Each generated structure is a node in the linked list. A linked list of seven nodes is created using the tail insertion method, and the seven nodes are initialized with the theoretical no-load opening degrees and corresponding heads provided by the OEM, namely Head1 to Head7 and GV1 to GV7. The head pointer points to the data field address of the first node.
[0047] When the unit is started, the head value Head_Ins at the moment of startup is recorded. Head_Ins is assigned to the intermediate variable Head_Temp and compared with the head value in the data field of the linked list. The no-load opening degree is calculated by interpolation. For example, if Head_Ins is between Head[i] and Head[i+1], where i takes the value 1 to 6, then the no-load opening degree used for this startup is GV_Cur=GV[i]+(Head_Ins-Head[i]) / (Head[i+1]-Head[i])*(GV[i+1]-GV[i]).
[0048] Upon entering no-load operation and immediately connecting to the grid, the actual no-load opening value GV_Ins is recorded. GV_Ins is compared with GV_Cur. If the difference is less than a fixed value G (e.g., 0.2%), the actual head value Head_Ins and the actual no-load opening value GV_Ins are not inserted into the linked list. Otherwise, Head_Ins and GV_Ins are inserted into the linked list as a new node. Figure 3 As shown, the insertion position is between Head[i] and Head[i+1] of the linked list, thus increasing the number of nodes in the linked list by 1 and reordering them as Head1~Head8 and GV1~GV8.
[0049] When the system is powered on again, the head value Head_Ins2 at the moment of power-on is recorded again and compared with the head value of the data field in the linked list. The no-load opening degree is calculated by interpolation. For example, if Head_Ins2 is between Head[i] and Head[i+1], where i takes the value 1 to 7, then the no-load opening degree used for this power-on is GV_Cur2=GV[i]+(Head_Ins2-Head[i]) / (Head[i+1]-Head[i])*(GV[i+1]-GV[i]).
[0050] Upon entering the no-load state and immediately connecting to the grid, the actual no-load opening value GV_Ins2 is recorded. GV_Ins2 and GV_Cur2 are compared. If the difference between the two is less than a fixed value G (e.g., 0.2%), then Head_Ins2 and GV_Ins2 are not inserted into the linked list. Otherwise, Head_Ins2 and GV_Ins2 are inserted into the linked list as a new node, with the insertion position between Head[i] and Head[i+1], thus increasing the number of nodes in the linked list by one and reordering them as Head1~Head9 and GV1~GV9. Figure 4 As shown, this process repeats continuously. With the increase in the number of power-on cycles, the actual no-load opening degree and corresponding head at the moment of grid connection of the unit will be continuously added to the linked list as new nodes. By setting the total number of nodes N, the infinite generation of new nodes can be prevented, which can effectively prevent the controller from crashing due to storage space overflow.
[0051] In special cases, if the head value during a startup matches the initial head value, and the difference between the actual no-load opening and the theoretical no-load opening is significant (e.g., greater than 0.2%), the actual no-load opening will replace the theoretical no-load opening. Therefore, as the number of startups increases, the no-load opening at each head will be continuously optimized and supplemented. If, during a startup, the no-load opening calculation uses a newly recorded actual no-load opening, the no-load opening for that startup will be closer to the actual no-load opening at the current head. This effectively reduces the amount and number of adjustments in the no-load PID control, which helps increase the pass rate of the no-load swing test and reduces the difficulty of selecting no-load PID parameters.
[0052] Based on a similar inventive concept, this invention also provides a turbine governor no-load opening optimization system corresponding to the aforementioned turbine governor no-load opening optimization method, comprising:
[0053] The linked list construction module is used to construct a dynamic linked list containing several nodes. Each node includes a pointer field and a data field. The data field is used to store the head value and the corresponding empty opening value.
[0054] The data initialization module is used to initialize the dynamic linked list and store multiple theoretical head values and corresponding theoretical no-load opening values provided by the OEM into each node.
[0055] The real-time calculation module is used to obtain the current measured head value when the unit is started, compare it with the theoretical head value in the dynamic linked list, and calculate the current estimated no-load opening value using the interpolation method.
[0056] The data update module is used to record the actual no-load opening value at the moment the unit is connected to the grid, and compare the actual no-load opening value with the estimated no-load opening value. If the difference between the two exceeds the set threshold, the current measured head value and the actual no-load opening value are inserted into the linked list as new nodes.
[0057] The dynamic expansion control module is used to repeat the above steps during subsequent unit startup processes, so that the linked list can be dynamically expanded as the running data increases.
[0058] Furthermore, the data update module includes:
[0059] The difference calculation unit is used to calculate the relative deviation between the actual no-load opening value and the estimated no-load opening value;
[0060] A threshold determination unit is used to determine whether the relative deviation exceeds a set threshold.
[0061] The linked list insertion unit is used to insert the current measured head value and the actual no-load opening value as the corresponding positions of the linked list when the deviation exceeds the threshold.
[0062] The data replacement unit is used to replace the theoretical no-load opening value with the actual no-load opening value when the measured head value is equal to a theoretical head value in the linked list and the deviation exceeds a threshold.
[0063] The present invention also discloses an electronic device.
[0064] Specifically, the electronic device can be a desktop computer, laptop computer, handheld computer, or cloud server, etc. This computer device may include, but is not limited to, a processor and memory. The processor and memory can be connected via a bus or other means. The processor can be a Central Processing Unit (CPU). The processor can also be other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, graphics processing units (GPUs), embedded neural network processing units (NPUs) or other dedicated deep learning coprocessors, discrete gate or transistor logic devices, discrete hardware components, or combinations of the above types of chips.
[0065] Memory, as a non-transitory computer-readable storage medium, can be used to store non-transitory software programs, non-transitory computer-executable programs, and modules. The processor executes various functional applications and data processing by running non-transitory software programs, instructions, and modules stored in memory. Memory may include a program storage area and a data storage area. The program storage area may store the control unit and the application program required for at least one function; the data storage area may store data created by the processor, etc. Furthermore, memory may include high-speed random access memory and non-transitory memory. In some embodiments, memory may optionally include memory remotely located relative to the processor, which can be connected to the processor via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0066] The present invention also discloses a computer-readable storage medium.
[0067] Specifically, the computer-readable storage medium is used to store a computer program, which, when executed by a processor, implements the methods described in the above-described method embodiments. Those skilled in the art will understand that implementing all or part of the processes in the methods described in the above-described embodiments of this application can be accomplished by a computer program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments described above. The storage medium can be a magnetic disk, optical disk, read-only memory (ROM), random access memory (RAM), flash memory, hard disk drive (HDD), or solid-state drive (SSD), etc.; the storage medium can also include combinations of the above types of memory.
Claims
1. A method for optimizing the no-load opening degree of a turbine governor based on a dynamic linked list, characterized in that, Includes the following steps: (1) Construct a dynamic linked list containing several nodes. Each node includes a pointer field and a data field. The data field is used to store the head value and the corresponding empty opening value. (2) Initialize the dynamic linked list and store the multiple theoretical head values and corresponding theoretical no-load opening values provided by the OEM into each node; (3) When the unit is started, the current measured head value is obtained and compared with the theoretical head value in the dynamic linked list. The interpolation method is used to calculate the current estimated no-load opening value. (4) At the moment the unit is connected to the grid, record the actual no-load opening value and compare the actual no-load opening value with the estimated no-load opening value. If the difference between the two exceeds the set threshold, insert the current measured head value and the actual no-load opening value as new nodes into the linked list. (5) During the subsequent unit startup process, repeat steps (3)-(4) to make the linked list dynamically expand with the running data.
2. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, In step 2, when initializing the dynamic linked list, the tail insertion method is used to construct a linked list containing 7 nodes. The head pointer points to the data field address of the first node, and the nodes are arranged in ascending order of their head values.
3. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, The formula for calculating the current estimated no-load opening value using the interpolation method described in step 3 is as follows: GV_Cur=GV[i]+(Head_Ins-Head[i]) / (Head[i+1]-Head[i])*(GV[i+1]-GV[i]) Where GV[i] is the theoretical no-load opening value, Head[i] is the theoretical head value, Head_Ins is the measured head value, and Head_Ins is between Head[i] and Head[i+1].
4. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, The threshold set in step 4 is 0.2% of the theoretical no-load opening value. When |GV_Ins-GV_Cur| / GV_Cur×100%≥0.2%, a new node insertion operation is performed, where GV_Ins is the actual no-load opening value and GV_Cur is the estimated no-load opening value.
5. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, In step 4, the insertion position of the new node is determined by the measured head value. Specifically, when Head_Ins is located between the original Head[i] and Head[i+1] in the linked list, the new node is inserted between the nodes corresponding to Head[i] and Head[i+1], while maintaining the monotonically increasing order of the head value of the linked list.
6. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, In step 4, when the measured head value Head_Ins is equal to a theoretical head value Head[i] in the linked list, and the difference between the corresponding actual no-load opening value GV_Ins and the theoretical no-load opening value GV[i] exceeds the set threshold, GV_Ins replaces GV[i].
7. The method for optimizing the no-load opening degree of a turbine governor according to claim 1, characterized in that, It also includes step 6: setting an upper limit N for the total number of linked list nodes, and stopping the insertion of new nodes when the number of linked list nodes reaches N.
8. A system for optimizing the no-load opening degree of a turbine governor based on a dynamic linked list, characterized in that, include: The linked list construction module is used to construct a dynamic linked list containing several nodes. Each node includes a pointer field and a data field. The data field is used to store the head value and the corresponding empty opening value. The data initialization module is used to initialize the dynamic linked list and store multiple theoretical head values and corresponding theoretical no-load opening values provided by the OEM into each node. The real-time calculation module is used to obtain the current measured head value when the unit is started, compare it with the theoretical head value in the dynamic linked list, and calculate the current estimated no-load opening value using the interpolation method. The data update module is used to record the actual no-load opening value at the moment the unit is connected to the grid, and compare the actual no-load opening value with the estimated no-load opening value. If the difference between the two exceeds the set threshold, the current measured head value and the actual no-load opening value are inserted into the linked list as new nodes. The dynamic expansion control module is used to repeat the above steps during subsequent unit startup processes, so that the linked list can be dynamically expanded as the running data increases.
9. The turbine governor no-load opening optimization system according to claim 8, characterized in that, The data update module includes: The difference calculation unit is used to calculate the relative deviation between the actual no-load opening value and the estimated no-load opening value; A threshold determination unit is used to determine whether the relative deviation exceeds a set threshold. The linked list insertion unit is used to insert the current measured head value and the actual no-load opening value as the corresponding positions of the linked list when the deviation exceeds the threshold. The data replacement unit is used to replace the theoretical no-load opening value with the actual no-load opening value when the measured head value is equal to a theoretical head value in the linked list and the deviation exceeds a threshold.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When executed by a processor, the computer program implements the method for optimizing the no-load opening of a turbine governor based on a dynamic linked list, as described in any one of claims 1 to 7.