AVC control method of cloud edge architecture constructed based on protobuf
By adopting a cloud-edge architecture based on protobuf in the main network automatic voltage control system, global reactive power optimization calculation and automatic voltage control optimization calculation are solved, and the stability and efficiency of the system are improved.
Patent Information
- Application Number
- CN202510075555.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-01-17
- Publication Date
- 2025-04-29
AI Technical Summary
The existing main network automatic voltage control system has shortcomings in coordination and maintenance, resulting in insecure system stability and efficiency.
The cloud edge architecture based on protobuf is adopted to perform global reactive power optimization calculations through the cloud, and the edge is used to perform automatic voltage control optimization calculations to reduce the coordination and maintenance between systems.
It improves the stability and efficiency of the automatic voltage control system, reduces the workload of operation and maintenance personnel, and makes the system more compatible and pluggable.
Smart Images

Figure CN119906037A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of automatic voltage control of power systems, and specifically relates to an AVC control method of a cloud-edge architecture built based on protobuf, which is mainly suitable for automatic voltage control of the main grid (national, network, provincial, and local). Background Art
[0002] The Automatic Voltage Control (AVC) system is an important means of achieving safe (improving voltage stability margin), economical (reducing network losses), and high-quality (improving voltage compliance rate) operation of the power grid. The AVC system is built on the power grid energy management system (EMS). It can use the real-time operation data of the power grid to scientifically determine the best reactive voltage adjustment plan from the perspective of global power grid optimization, and automatically send it to power plants, substations, and lower-level power grid dispatching agencies for execution. The AVC system uses voltage safety and quality as constraints and system operation economy as the goal. It continuously performs real-time voltage optimization control in a closed loop, realizing a complete set of analysis, decision-making, control, and re-analysis, re-decision-making, and re-control of reactive voltage coordinated control solutions, which can effectively overcome the shortcomings of traditional power grid reactive voltage control methods and improve the level of safe, stable, and economical operation of the power grid.
[0003] Currently, the provincial, prefectural, and other levels of the main grid dispatching centers deploy an AVC system for automatic voltage control at all levels, achieving reactive power balance within the region through coordinated control between upper and lower levels. The current main grid basically adopts a three-level control mode based on the platform grid model for calculation. Each dispatching center performs its own calculations. Relevant coordinated control is required at the grid boundary, such as upper and lower level control coordination and inter-plant coordination of edge stations at the same level. Some constraints are generated and sent to the automatic voltage control systems of other dispatching centers through the front end. After receiving the constraints, the automatic voltage control systems of other dispatching centers perform global optimization calculations and then apply them to specific control. The coordination data in this process needs to be forwarded through the front end data. This process requires the definition of a large amount of telemetry and telesignaling, which increases the workload of operation and maintenance personnel.
[0004] Sun Hongbin, Zhang Boming, and Guo Qinglai described the architecture of automatic voltage control for large power grids in "Design of a Global Voltage Optimization Control System Based on Soft Partitioning" (Automation of Electric Power Systems, Vol. 27, No. 8, 2003, pp. 16-20). This approach uses a three-level automatic voltage control architecture based on "soft partitioning" to achieve automatic voltage control for large power grids. Specifically:
[0005] The third-level control is the global reactive power optimization calculation, which fully considers various adjustable reactive power means and gives the bus voltage optimization control target coordinated by the whole network through the optimal power flow calculation; the second-level control is the control strategy calculation of partition decoupling: the power grid is automatically divided into decoupled areas, several central buses are selected in each area, and the control strategy of various reactive resources in each partition is calculated separately for each partition to follow the central bus optimization target in the area given by the third-level control; the first-level control is the on-site control at the plant end, which executes the voltage or reactive power control instructions given by the AVC master station.
[0006] In control, the AVC system uses a coordinated secondary voltage control method (CSVC) to achieve voltage control of a regional power grid that includes a power plant. The secondary control is a control strategy calculation for partition decoupling. It automatically divides the power grid into decoupled partitions, selects several central buses in each partition, and calculates the control strategy of various reactive resources in each partition, including power plants, to follow the optimization target of the central bus in the partition. Summary of the Invention
[0007] The purpose of this invention is to overcome the shortcomings of existing technologies and propose an AVC control method for a cloud-edge architecture based on protobuf. Based on the cloud-edge architecture deployment model, the present invention uses the protobuf data serialization protocol for data exchange between the cloud and edge. This helps to facilitate compatibility with more automatic voltage control systems at the edge, reduce coordination between systems, reduce maintenance workload, and make the automatic voltage control system more stable.
[0008] The embodiment of the present invention proposes an AVC control method for a cloud-edge architecture based on protobuf, including:
[0009] Build an automatic voltage control system using a cloud-edge architecture;
[0010] Based on the cloud-edge architecture, when the start-up period of the edge-side automatic voltage control arrives, the edge uses the structured objects defined by the Protobuf unified communication protocol rules to assemble data based on the current power system model and sends it to the cloud, making a computing request to the cloud;
[0011] After receiving the request from the edge, the cloud performs global reactive power optimization calculation based on the data sent by the edge and returns the calculation results to the edge;
[0012] The edge terminal forms a busbar three-level optimization target based on the calculation results and performs optimization calculation for automatic voltage control;
[0013] The edge sends the results of the optimization calculation to each automatic voltage control power plant substation of the terminal power plant for execution.
[0014] In a specific embodiment of the present invention, the cloud-edge architecture includes a cloud, several edge terminals, and several terminals; wherein the cloud is connected to each edge terminal, each edge terminal corresponds to an automatic voltage control system of a dispatching control center, and each edge terminal controls one or more terminals connected to it;
[0015] The cloud is used to perform global reactive power optimization calculations based on the large model of the State Grid Dispatching Cloud Model Center. The calculation takes into account the constraints set by the edge request and returns the optimization target of the terminal device controlled by the edge after the calculation is completed.
[0016] The edge is used to perform automatic voltage control, which is responsible for maintaining key parameter information for this dispatch. It obtains the current operation status of each device from the terminal and sends the voltage control target to the terminal based on the operation status. It calculates the constraint conditions by requesting the cloud and returns the result of the global reactive power optimization control calculation. The edge is also used in local secondary planning automatic voltage control to form the bus control target and send it to the terminal.
[0017] The terminal is used to adjust the unit by receiving the voltage control target of the edge.
[0018] In a specific embodiment of the present invention, the edge assembles data based on the current power system model using structured objects defined by the Protobuf unified communication protocol rules and sends the data to the cloud, including:
[0019] (1) In the power system model, obtain the set of all buses and record it as BS = {BSk, k = 1, ..., n1}, where n1 is the number of buses in the current model. Store BS into the bus constraint RolfBarConstr defined by the protobuf memory structure object. RolfBarConstr specifically includes: bus keyword id_bar, bus constraint qopt_bar, bus voltage upper limit vmax_bar, and bus voltage lower limit vmin_bar.
[0020] (2) In the power system model, obtain the set of all units and record it as GEN = {GENk, k = 1, ..., n2}, where n2 is the number of all units included in the current model, and store GEN in the unit constraint RolfGenConstr defined by protobuf; RolfGenConstr specifically includes: unit keyword id_gen, whether the unit participates in optimization qopt_gen, unit type gtype_gen, unit active upper limit pmax_gen, unit active lower limit pmin_gen, unit reactive upper limit qmax_gen, unit reactive lower limit qmin_gen;
[0021] (3) In the power system model, obtain the set of all capacitors and record it as CP = {CPk, k = 1, ..., n3}, where n3 is the number of all capacitors included in the current model, and store CP in the memory structure object capacitor constraint ROlfCompConstr defined by protobuf; ROlfCompConstr specifically includes: capacitor serial number id_cp, whether the capacitor participates in optimization qopt_cp, and the number of capacitor actions on the day cnum_cp;
[0022] (4) In the power system model, obtain the set of all main transformers and record it as TRFM = {TRFMk, k = 1, ..., n4}, where n4 is the number of all main transformers included in the current model, and store TRFM in the main transformer constraint RolfTransConstr defined by the protobuf memory structure object; RolfTransConstr specifically includes: the main transformer keyword id_trfm, whether the main transformer participates in the optimization qopt_trfm, the main transformer highest gear htap_trfm, and the main transformer lowest gear ltap_trfm;
[0023] (5) In the power system model, obtain the set of all windings and record it as XF = {XFk, k = 1, ..., n5}, where n5 is the number of all windings contained in the current model. Store XF in the winding constraint RolfXfConstr, a memory structure object defined by protobuf. RolfXfConstr specifically includes: winding keyword id_xf, winding adjustable reactive upper limit max_q_xf, winding adjustable reactive lower limit min_q_xf, whether the winding is a gateway device bgate_xf, and whether the winding participates in optimization qopt_xf.
[0024] (6) In the power system model, obtain the set of all lines and record it as LN = {LNk, k = 1, ..., n6}, where n6 is the number of all lines included in the current model. Store LN in the line constraint RolfLnConstr, a memory structure object defined by protobuf. RolfLnConstr specifically includes: line keyword id_ln, line power factor upper limit max_cos_ln, line power factor lower limit min_cos_ln, whether the line is a gateway device bgate_ln, and whether the line participates in optimization qopt_ln.
[0025] (7) In the power system model, obtain the current calculation parameters, record them as PARA, and store PARA in the memory structure object parameter RolfPara defined by protobuf; RolfPara specifically includes: calculation parameter keyword id_para, optimization step size nstep_para, whether the generator participates in optimization m_bun_para, whether the capacitor participates in optimization m_bcp_para, whether the tap participates in optimization m_btap_para, whether the bus voltage constraint is relaxed m_bvslack_para, whether the line flow constraint is relaxed m_blnslack_para, whether the winding flow constraint is relaxed m_bxfslack_para, whether the transformer ratio constraint is relaxed m_btslack_para, whether the generator reactive power constraint is relaxed m_bqslack_para, whether the generator active power constraint is relaxed m_bpslack_para, and the control target m_nctrlobj_para;
[0026] (8) Write the busbar constraint RolfBarConstr, unit constraint RolfGenConstr, capacitive reactance constraint RolfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the memory structure into the device constraint RolfDevConstr of the memory structure;
[0027] (9) Write the memory structure device constraint RolfDevConstr into the memory structure RolfCalRequest, and set the model mode model_type and the requested calculation time cal_time;
[0028] (10) The assembled protobuf-defined memory structure RolfCalRequest is serialized to form a byte sequence data packet and sent to the cloud.
[0029] In a specific embodiment of the present invention, after the cloud receives the request from the edge, performing global reactive power optimization calculation based on the data sent by the edge includes:
[0030] (1) The cloud performs protobuf deserialization on the byte sequence data packet received from the edge to form the input memory structure RolfCalRequest, and sequentially reads the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitor constraint ROlfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the device constraint RolfDevConstr to form the constraint Lmt. Based on the State Grid dispatch cloud model and the parsed constraint Lmt, the global reactive power optimization calculation is performed, and the data after the calculation is completed is stored in the data buffer THNetData;
[0031] (2) Based on the calculation result of step (1), a return data result protobuf object RolfCalResponse is generated; the specific steps are as follows:
[0032] (2-1) In the data buffer THNetData, obtain the set of all buses and record it as BS_O = {BS_Ok, k = 1, ..., m1}, where m1 is the number of all buses contained in the current data buffer, and store BS_O in the bus information RolfBarInfo of the memory structure object defined by protobuf; RolfBarInfo specifically includes: bus keyword id_bar, bus name name_bar, bus voltage measurement vmeas_bar, bus value before optimization vfop_bar, bus value after optimization vop_bar, bus over-limit flag before optimization ovrp_bar, bus over-limit flag after optimization ovrop_bar, bus voltage upper limit vmax_bar, bus voltage lower limit vmin_bar;
[0033] (2-2) In the data buffer THNetData, obtain the set of all units and record it as UN_O = {UN_Ok, k = 1, ..., m2}, where m2 is the number of all units contained in the current data buffer, and store UN_O in the unit information RolfUnitInfo of the memory structure object defined by protobuf; RolfUnitInfo specifically includes: unit keyword id_un, unit name name_un, unit active power p_un, unit reactive power q_un, unit active power before optimization plf_un, unit reactive power before optimization qlf_un, unit active power after optimization pop_un, unit reactive power after optimization qop_un, unit over-limit before optimization ovrq_un, unit over-limit after optimization ovroq_un;
[0034] (2-3) In the data buffer THNetData, obtain the set of all capacitors and record it as CP_O = {CP_Ok, k = 1, ..., m3}, where m3 is the number of all capacitors contained in the current data buffer, and store CP_O in the memory structure object capacitor information RolfCompInfo defined by protobuf; RolfCompInfo specifically includes: capacitor keyword id_cp, capacitor name name_cp, capacitor capacity qnom_cp, capacitor rated voltage kvnom_cp, capacitor switch status stopflag_cp, and capacitor control type ctrltype_cp;
[0035] (2-4) In the data buffer THNetData, obtain the set of all main transformers and record it as TRFM_O = {TRFM_Ok, k = 1, ..., m4}, where m4 is the number of all main transformers contained in the current data buffer, and store TRFM_O in the main transformer information RolftrwdInfo of the memory structure object defined by protobuf; RolftrwdInfo specifically includes: main transformer keyword id_trfm, main transformer name name_trfm, main transformer ratio t_trfm, main transformer step size tstap_trfm, main transformer gear tap_trfm, and main transformer optimized gear otap_trfm;
[0036] (2-5) In the data buffer THNetData, obtain the set of all line components and record it as LN_O = {LN_Ok, k = 1, ..., m5}, where m5 is the number of all lines contained in the current data buffer, and store LN_O in the line information RolfLnInfo of the memory structure object defined by protobuf; RolfLnInfo specifically includes: line keyword id_ln, line name name_ln, line head end real-time active power p_ln, line head end real-time reactive power q_ln, line head end optimized active power opfp_ln, line head end optimized reactive power opfq_ln, line end real-time active power p2_ln, line end real-time reactive power q2_ln, line end optimized active power opfp2_ln, line end optimized reactive power opfq2_ln, line reactive power reduction qdec_ln, and line loss reduction lossdec_ln;
[0037] (2-6) In the data buffer THNetData, obtain the set of all windings and record it as XF_O = {XF_Ok, k = 1, ..., m6}, where m6 is the number of all windings contained in the current data buffer, and store XF_O in the winding information RolfXfInfo of the memory structure object defined by protobuf; RolfXfInfo specifically includes: winding keyword id_xf, winding name name_xf, winding head end real-time active power p_xf, winding head end real ... Reactive power q_xf, real-time winding gear tap_xf, optimized active power opfp_xf at the beginning of the winding, optimized reactive power opfq_xf at the beginning of the winding, optimized winding gear opftap_xf, reactive power change adjq_xf at the winding, reactive power reduction qdec_xf at the winding, loss reduction lossdec_xf at the winding end, real-time active power p2_xf at the end of the winding, real-time reactive power q2_xf at the end of the winding, optimized active power opfp2_xf at the end of the winding, optimized reactive power opfq2_xf at the end of the winding;
[0038] (2-7) In the data buffer THNetData, obtain the calculation result data, record it as RST_O, and store RST_O in the global calculation result RolfSysInfo of the memory structure object defined by protobuf; RolfSysInfo specifically includes: global calculation keyword id_rst, system load fpload, active power loss before optimization fploss0, active power loss after optimization fplossopf, network loss reduction fp, loss reduction percentage value_opf, network loss rate value before optimization, network loss rate fwsl after optimization, and start calculation time stm , end calculation time etm, calculation status nstat, calculation information sztmp, calculation node szlocalhost, calculation electrical island number nlvisl, network loss rate after 500 optimization wsl500, network loss rate after 220 optimization wsl220, network loss rate after 110 optimization wsl110, network loss after 500 optimization ws500, network loss after 220 optimization ws220, network loss after 110 optimization ws110, network loss rate after 750 optimization wsl750, network loss after 750 optimization ws750, network loss rate after 330 optimization wsl330, network loss after 330 optimization ws330;
[0039] (2-8) In the data buffer THNetData, obtain all regional information, recorded as DV_O = {DV_Ok, k = 1, ..., m7}, where m7 is the number of all regions contained in the current data buffer, and store DV_O in the memory structure object regional statistics RolfDvInfo defined by protobuf; RolfDvInfo specifically includes: regional keyword id_dv, regional name name_dv, regional load pload_dv, regional active loss before optimization ploss0_dv, regional active loss after optimization plossopf_dv, regional network loss reduction ploss_dv, regional loss reduction percentage dlossopf_dv, regional network loss rate before optimization dloss_dv, and regional network loss rate wsl_dv after optimization;
[0040] (2-9) Write RolfBarInfo, RolfUnitInfo, RolfCompInfo, RolftrwdInfo, RolfLnInfo, RolfXfInfo, RolfSysInfo, and RolfDvInfo into the calculation information object RolfCalInfo in sequence; write the calculation information object RolfCalInfo into the output object RolfCalResponse, set the calculation time time_rps and calculation status cal_stat_rps of the output object RolfCalResponse; serialize the assembled protobuf-defined memory structure object RolfCalResponse to form a byte sequence data packet.
[0041] In a specific embodiment of the present invention, the edge terminal forms a busbar three-level optimization target based on the calculation result and performs optimization calculation for automatic voltage control, including:
[0042] (1) The edge deserializes the byte sequence data returned by the cloud to form the data calculation result structure object RolfCalResponse, and then traverses the optimized value vop_bar of RolfBarInfo in RolfCalResponse to form the busbar three-level optimization target
[0043] (2) Optimization target obtained according to step (1) A quadratic programming model is used to calculate the power plant control commands, including:
[0044] First, an automatic voltage control optimization model is established. The objective function of the optimization model is expressed as follows:
[0045]
[0046] Among them, V p Indicates the current voltage of the central busbar in the power system area. Indicates the set voltage of the central busbar in the power system area, C g is the central bus reactive voltage sensitivity matrix, ΔQ g Indicates the regulation amount of the generator reactive output, W p and W q is the weight coefficient of the generator set, α is the gain coefficient, Θ g is the reactive margin vector, Θ g The i-th component of is:
[0047]
[0048] in, is the current reactive power output of generator i, is the regulation amount of reactive power output of generator i, is the maximum reactive power of generator i, is the minimum reactive power of generator i, i is the serial number of the generator, ||Θ g || 2 is the reactive margin vector set;
[0049] Determine the constraints of the automatic voltage control optimization model, and the expression is as follows:
[0050]
[0051] Among them, C0, C1, C2, and C3 are the limit constraint equations respectively; C vg is the high-voltage side bus reactive voltage sensitivity matrix; V H Indicates the current voltage of the high-voltage side bus of the generator; and Respectively represent the lower limit of the central bus voltage and the upper limit of the central bus voltage; and Respectively represent the lower limit and upper limit of the generator reactive power; Q g is the current reactive power output of the generator; and They respectively represent the lower voltage limit, upper voltage limit and maximum allowable single-step voltage adjustment of the generator high-voltage side busbar;
[0052] Solve the optimization model to obtain the regulation value ΔQ of the generator reactive output g .
[0053] The characteristics and beneficial effects of the present invention are:
[0054] The present invention is based on a three-level control mode. The global reactive power optimization function based on the large model of the State Grid Dispatching Cloud Model Center is deployed in the cloud. The three-level optimization targets of the entire power grid are calculated uniformly. The dispatching automatic voltage control functions are deployed on the edge. The dispatching automatic voltage control of each edge requests calculations from the global reactive power optimization function of the cloud. After completion, the results are verified by regional control calculations. After forming a control command, it is handed over to the terminal power plant for execution. Among them, the protobuf data serialization protocol is used between the two ends of the cloud and the edge for data exchange. Compared with the current automatic voltage control mode, the coordination between the upper and lower levels and the coordination between adjacent areas are eliminated. At the same time, the use of the protobuf protocol makes the cloud have good compatibility and pluggability. Through this protocol, more automatic voltage control systems can be compatible with the edge. By implementing this control method, the coordination between systems can be reduced, the maintenance workload of staff can be reduced, and the automatic voltage control system can be made more stable. BRIEF DESCRIPTION OF THE DRAWINGS
[0055] Figure 1 This is a flowchart of an AVC control method for a cloud-edge architecture built based on protobuf in an embodiment of the present invention. DETAILED DESCRIPTION
[0056] The present invention proposes an AVC control method for a cloud-edge architecture built based on protobuf, which is further described in detail below with reference to the accompanying drawings and specific embodiments.
[0057] The embodiment of the present invention proposes an AVC control method for cloud-edge architecture based on protobuf. The overall process is as follows: Figure 1 As shown, the following steps are included:
[0058] (1) Build an automatic voltage control system using a cloud-edge architecture.
[0059] In this embodiment, the architecture includes a cloud, several edge devices, and several terminals. The cloud includes multiple computing servers for global reactive power optimization control calculations; the cloud can connect to each edge device, each of which corresponds to an automatic voltage control system in the dispatching control center, and each edge device controls one or more terminals connected to it.
[0060] The cloud end is used to perform global reactive power optimization calculations based on the large model of the State Grid Dispatching Cloud Model Center. The calculation takes into account the constraints set by the edge request. After the calculation is completed, the optimization goals of the terminal equipment controlled by the edge end are returned, including the switching on and off of capacitive reactance, gear adjustment, reactive power adjustment of the unit, bus voltage setting, etc.
[0061] The edge is used to perform automatic voltage control responsible for maintaining key parameter information for this dispatch, obtain the current input status of each device from the terminal, and send the voltage control target to the terminal based on the input status. It requests the cloud to set the constraint conditions and return the results of the global reactive power optimization control calculation. The edge is also used in local secondary planning automatic voltage control to form the bus control target and send it to the terminal.
[0062] The terminal adopts the existing automatic voltage control substation equipment terminal, and adjusts the unit by receiving the voltage control target of the edge.
[0063] In a specific embodiment of the present invention, a start-up period Ts of the edge automatic voltage control is set, wherein Ts is 5 seconds to 5 minutes.
[0064] It should be noted that the cloud-edge architecture is a network architecture that combines cloud computing and edge computing. It aims to meet real-time and low-latency requirements by providing computing and storage resources at the edge of the network. This architecture consists of three main components: the cloud, the edge, and end devices. The cloud is primarily responsible for big data processing and storage, providing powerful computing capabilities and resources. Through various service models such as IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service), the cloud provides infrastructure such as computing, storage, networking, and virtual machines, as well as device management, resource management, data processing, and analysis. The edge, located between the cloud and end devices, is responsible for preliminary data processing and filtering, reducing latency and improving response speed. Edge computing, through models such as EC-IaaS (Edge Infrastructure as a Service), EC-PaaS (Edge Platform as a Service), and EC-SaaS (Edge Software as a Service), provides computing, storage, networking, and virtualization resources for data pre-processing and analysis, as well as application deployment and orchestration. End devices are responsible for data collection and basic processing. Terminal devices interact with edge nodes through communication channels such as MQTT agents to collect, filter, store and mine data, and send instructions to devices for control.
[0065] (2) Based on the cloud-edge architecture established in step (1), when the start period Ts of the edge automatic voltage control arrives, the edge reads the current power system model, and then assembles data based on the current power system model using the structured objects defined by the Protobuf unified communication protocol rules and sends it to the cloud, making a computing request to the cloud; the specific steps are as follows:
[0066] (2-1) In the power system model, obtain the set of all buses, denoted as BS = {BSk, k = 1, …, n1}, where n1 is the number of buses in the current model. Store BS in the bus constraint RolfBarConstr, a protobuf-defined memory structure object. RolfBarConstr specifically includes: id_bar (bus keyword), qopt_bar (whether the bus is constrained), vmax_bar (bus voltage upper limit), and vmin_bar (bus voltage lower limit).
[0067] (2-2) In the power system model, obtain the set of all generators, denoted as GEN = {GENk, k = 1, …, n2}, where n2 is the number of generators in the current model. Store GEN in the protobuf-defined memory structure object RolfGenConstr, a generator constraint. RolfGenConstr specifically includes: id_gen (generator keyword), qopt_gen (whether the generator participates in optimization), gtype_gen (generator type), pmax_gen (generator active upper limit), pmin_gen (generator active lower limit), qmax_gen (generator reactive upper limit), and qmin_gen (generator reactive lower limit).
[0068] (2-3) In the power system model, obtain the set of all capacitors, denoted as CP = {CPk, k = 1, …, n3}, where n3 is the total number of capacitors in the current model. CP is stored in the capacitive constraint ROlfCompConstr, a memory structure object defined by protobuf. ROlfCompConstr specifically includes: id_cp (capacitor number), qopt_cp (whether the capacitor participates in optimization), and cnum_cp (the number of times the capacitor has been activated on the same day).
[0069] (2-4) In the power system model, obtain the set of all main transformers, denoted as TRFM = {TRFMk, k = 1, …, n4}, where n4 is the number of main transformers in the current model. Store TRFM in the main transformer constraint RolfTransConstr, a protobuf-defined memory structure object. RolfTransConstr specifically includes: id_trfm (main transformer keyword), qopt_trfm (whether the main transformer participates in optimization), htap_trfm (highest gear position of the main transformer), and ltap_trfm (lowest gear position of the main transformer).
[0070] (2-5) In the power system model, obtain the set of all windings, denoted as XF = {XFk, k = 1, …, n5}, where n5 is the number of windings in the current model. Store XF in the winding constraint RolfXfConstr, a protobuf-defined memory structure object. RolfXfConstr specifically includes: id_xf (winding keyword), max_q_xf (winding adjustable reactive upper limit), min_q_xf (winding adjustable reactive lower limit), bgate_xf (whether the winding is a gateway device), and qopt_xf (whether the winding participates in optimization).
[0071] (2-6) In the power system model, obtain the set of all lines, denoted as LN = {LNk, k = 1, …, n6}, where n6 is the number of lines in the current model. Store LN in the line constraint RolfLnConstr, a memory structure object defined by protobuf. RolfLnConstr specifically includes: id_ln (line keyword), max_cos_ln (line power factor upper limit), min_cos_ln (line power factor lower limit), bgate_ln (whether the line is a gateway device), and qopt_ln (whether the line participates in optimization).
[0072] (2-7) In the power system model, obtain the current calculation parameters, denoted as PARA, and store PARA in the memory structure object parameter RolfPara defined by protobuf. RolfPara specifically includes: id_para (calculation parameter keyword), nstep_para (optimization step size), m_bun_para (whether the generator participates in optimization), m_bcp_para (whether the capacitor participates in optimization), m_btap_para (whether the tap participates in optimization), m_bvslack_para (whether to relax the bus voltage constraint), m_blnslack_para (whether to relax the line power flow constraint), m_bxfslack_para (whether to relax the winding power flow constraint), m_btslack_para (whether to relax the transformer ratio constraint), m_bqslack_para (whether to relax the generator reactive power constraint), m_bpslack_para (whether to relax the generator active power constraint), and m_nctrlobj_para (control target).
[0073] (2-8) Write the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitive reactance constraint ROlfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the memory structure into the device constraint RolfDevConstr in the memory structure.
[0074] (2-9) Write the memory structure device constraint RolfDevConstr into the memory structure RolfCalRequest, and set model_type (model mode) and cal_time (request calculation time); among them, model_type is generally set to use the cloud model, and cal_time is generally set to the current time.
[0075] (2-10) The assembled protobuf-defined memory structure RolfCalRequest is serialized to form a byte sequence data packet and sent to the cloud, and a computing request is made to the cloud.
[0076] It's important to note that protobuf, short for Protocol Buffer, is a data serialization protocol provided by Google. Protocol Buffers is a lightweight and efficient structured data storage format that can be used for structured data serialization, making it ideal for data storage or RPC data exchange. It provides a language-independent, platform-independent, and scalable serialized structured data format for communication protocols, data storage, and other fields. It offers efficient serialization and deserialization capabilities for data generation and parsing, reducing data preparation and parsing time. Network transmission and disk storage significantly save network bandwidth and storage space, ensuring data accuracy and stability.
[0077] (3) After receiving the request from the edge, the cloud uses the data sent by the edge to perform global reactive power optimization calculations based on the State Grid dispatch cloud model and returns the calculation results to the edge. The specific steps are as follows:
[0078] (3-1) The cloud performs protobuf deserialization on the byte sequence data packet received from the edge to form the input memory structure RolfCalRequest, and reads the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitor constraint ROlfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the device constraint RolfDevConstr in turn to form the constraint Lmt. Based on the State Grid Dispatching Cloud model and the parsed constraint Lmt, global reactive power optimization calculation is performed, and the data after calculation is stored in the data buffer THNetData.
[0079] (3-2) Based on the calculation result of step (3-1), a return data result protobuf object RolfCalResponse is generated; the specific steps are as follows:
[0080] (3-2-1) In the data buffer THNetData, obtain the set of all buses, recorded as BS_O = {BS_Ok, k = 1, ..., m1}, where m1 is the number of all buses contained in the current data buffer. Store BS_O in the bus information RolfBarInfo memory structure object defined by protobuf. RolfBarInfo specifically includes: id_bar (bus keyword), name_bar (bus name), vmeas_bar (bus voltage measurement), vfop_bar (bus value before optimization), vop_bar (bus value after optimization), ovrp_bar (bus over-limit flag before optimization), ovrop_bar (bus over-limit flag after optimization), vmax_bar (bus voltage upper limit), and vmin_bar (bus voltage lower limit).
[0081] (3-2-2) In the data buffer THNetData, obtain the set of all units, denoted as UN_O = {UN_Ok, k = 1, ..., m2}, where m2 is the number of units in the current data buffer. Store UN_O in the unit information object RolfUnitInfo, a memory structure object defined by protobuf. RolfUnitInfo specifically includes: id_un (unit keyword), name_un (unit name), p_un (unit active power), q_un (unit reactive power), plf_un (unit active power before optimization), qlf_un (unit reactive power before optimization), pop_un (unit active power after optimization), qop_un (unit reactive power after optimization), ovrq_un (unit overrun before optimization), and ovroq_un (unit overrun after optimization).
[0082] (3-2-3) In the data buffer THNetData, obtain the set of all capacitors and record it as CP_O = {CP_Ok, k = 1, ..., m3}, where m3 is the total number of capacitors contained in the current data buffer. Store CP_O in the capacitive reactance information RolfCompInfo, a memory structure object defined by protobuf. RolfCompInfo specifically includes: id_cp (capacitor keyword), name_cp (capacitor name), qnom_cp (capacitor capacity), kvnom_cp (capacitor rated voltage), stopflag_cp (capacitor switch status), and ctrltype_cp (capacitor control type).
[0083] (3-2-4) In the data buffer THNetData, obtain the set of all main transformers, denoted as TRFM_O = {TRFM_Ok, k = 1, ..., m4}, where m4 is the number of main transformers contained in the current data buffer. Store TRFM_O in the main transformer information RolftrwdInfo, a memory structure object defined by protobuf. RolftrwdInfo specifically includes: id_trfm (main transformer keyword), name_trfm (main transformer name), t_trfm (main transformer ratio), tstap_trfm (main transformer step size), tap_trfm (main transformer gear position), and otap_trfm (main transformer optimized gear position).
[0084] (3-2-5) In the data buffer THNetData, obtain the set of all lines, denoted as LN_O = {LN_Ok, k = 1, ..., m5}, where m5 is the number of lines in the current data buffer. Store LN_O in the line information object RolfLnInfo, a memory structure object defined by protobuf. RolfLnInfo specifically includes: id_ln (line keyword), name_ln (line name), p_ln (real-time active power at the head end of the line), q_ln (real-time reactive power at the head end of the line), opfp_ln (optimized active power at the head end of the line), opfq_ln (optimized reactive power at the head end of the line), p2_ln (real-time active power at the end of the line), q2_ln (real-time reactive power at the end of the line), opfp2_ln (optimized active power at the end of the line), opfq2_ln (optimized reactive power at the end of the line), qdec_ln (reduction in reactive power at the end of the line), and lossdec_ln (loss reduction in line).
[0085] (3-2-6) In the data buffer THNetData, obtain the set of all windings and record it as XF_O = {XF_Ok, k = 1, ..., m6}, where m6 is the number of all windings contained in the current data buffer, and store XF_O in the winding information RolfXfInfo of the memory structure object defined by protobuf. RolfXfInfo specifically includes: id_xf (winding keyword), name_xf (winding name), p_xf (real-time active power at the beginning of the winding), q_xf (real-time reactive power at the beginning of the winding), tap_xf (real-time gear position of the winding), opfp_xf (optimized active power at the beginning of the winding), opfq_xf (optimized reactive power at the beginning of the winding), opftap_xf (winding optimization gear position), adjq_xf (winding reactive power change), qdec_xf (winding reactive power reduction), lossdec_xf (winding loss reduction), p2_xf (real-time active power at the end of the winding), q2_xf (real-time reactive power at the end of the winding), opfp2_xf (optimized active power at the end of the winding), and opfq2_xf (optimized reactive power at the end of the winding).
[0086] (3-2-7) Get the calculation result data in the data buffer THNetData, record it as RST_O, and store RST_O in the global calculation result RolfSysInfo of the memory structure object defined by protobuf. RolfSysInfo specifically includes: id_rst (global calculation keyword), fpload (system load), fploss0 (active power loss before optimization), fplossopf (active power loss after optimization), fp (network loss reduction), value_opf (loss reduction percentage), value (network loss rate before optimization), fwsl (network loss rate after optimization), stm (start calculation time), etm (end calculation time), nstat (calculation status), sztmp (calculation information), szlocalhos t (computing node), nlvisl (computing electrical island number), wsl500 (network loss rate after 500 optimization), wsl220 (network loss rate after 220 optimization), wsl110 (network loss rate after 110 optimization), ws500 (network loss after 500 optimization), ws220 (network loss after 220 optimization), ws110 (network loss after 110 optimization), wsl750 (network loss rate after 750 optimization), ws750 (network loss after 750 optimization), wsl330 (network loss rate after 330 optimization), ws330 (network loss after 330 optimization).
[0087] (3-2-8) In the data buffer THNetData, obtain all region information, recorded as DV_O = {DV_Ok, k = 1, ..., m7}, where m7 is the number of all regions contained in the current data buffer. Store DV_O in the region statistics object RolfDvInfo, a memory structure defined by protobuf. RolfDvInfo specifically includes: id_dv (region keyword), name_dv (region name), pload_dv (region load), ploss0_dv (region active power loss before optimization), plossopf_dv (region active power loss after optimization), ploss_dv (regional network loss reduction), dlossopf_dv (regional loss reduction percentage), dloss_dv (regional network loss rate before optimization), and wsl_dv (regional network loss rate after optimization).
[0088] (3-2-9) Sequentially write RolfBarInfo (busbar information), RolfUnitInfo (unit information), RolfCompInfo (capacitive reactance information), RolftrwdInfo (main transformer information), RolfLnInfo (line information), RolfXfInfo (winding information), RolfSysInfo (global calculation results), and RolfDvInfo (regional statistics) into the calculation information object RolfCalInfo; write the calculation information object RolfCalInfo into the output object RolfCalResponse, and set the output object RolfCalResponse's time_rps (calculation time) and cal_stat_rps (calculation status). Serialize the assembled protobuf-defined memory structure object RolfCalResponse to form a byte sequence data packet.
[0089] (3-3) The cloud returns the byte sequence data packet formed in (3-2) to the edge through the network.
[0090] (4) Based on the calculation results returned by the cloud, the edge terminal forms the busbar three-level optimization target and performs optimization calculation for automatic voltage control. The specific steps are as follows:
[0091] (4-1) The edge deserializes the byte sequence data returned by the cloud to form the data calculation result structure object RolfCalResponse, and then traverses the vop_bar (optimized value) of RolfBarInfo in the data calculation result structure object RolfCalResponse to form the busbar three-level optimization target
[0092] (4-2) Optimization target obtained according to step (4-1) A quadratic programming model is used to calculate the power plant control commands, including:
[0093] First, an automatic voltage control optimization model is established. The objective function of the optimization model is expressed as follows:
[0094]
[0095] Among them, V p Indicates the current voltage of the central busbar in the power system area. Indicates the set voltage of the central busbar in the power system area, C g is the central bus reactive voltage sensitivity matrix, ΔQ g Indicates the regulation amount of the generator reactive output, W p and W q is the weight coefficient of the generator set, the value range is (0.1-10), α is the gain coefficient, the value range is 0.1~10, Θ g is the reactive margin vector, Θ g The i-th component of is:
[0096]
[0097] in, is the current reactive power output of generator i, is the regulation amount of reactive power output of generator i, is the maximum reactive power of generator i, is the minimum reactive power of generator i, i is the serial number of the generator, ||Θ g || 2 is the reactive margin vector set, and the above data are obtained from the automatic voltage control system in the power system.
[0098] Determine the constraints of the automatic voltage control optimization model, and the expression is as follows:
[0099]
[0100] Among them, C0, C1, C2, and C3 are the limit constraint equations respectively; C vg is the high-voltage side bus reactive voltage sensitivity matrix, read from the power system; V H Indicates the current voltage of the high-voltage side bus of the generator; and Respectively represent the lower limit of the central bus voltage and the upper limit of the central bus voltage; and Respectively represent the lower limit and upper limit of the generator reactive power; Q g is the current reactive power output of the generator; and They respectively represent the voltage lower limit, voltage upper limit and maximum allowable single-step voltage adjustment of the generator high-voltage side bus. The above data quantities are the limit values obtained from the local dispatching system.
[0101] The optimization model is solved by using the quadratic programming calculation method to obtain the regulation value ΔQ of the generator reactive output g .
[0102] (5) The optimization calculation result at the edge is the adjustment amount ΔQ of the generator reactive output g It is sent to each automatic voltage control power plant substation of the terminal power plant for execution.
[0103] (6) When the next cycle Ts arrives, return to step (2).
[0104] The method described in this embodiment is further described in detail below with reference to a specific embodiment.
[0105] In this embodiment, the AVC control method of the cloud-edge architecture built based on protobuf includes the following steps:
[0106] (1) Build an automatic voltage control system using a cloud-edge architecture.
[0107] In this embodiment, the architecture includes a cloud, several edge devices, and several terminals. The cloud includes multiple computing servers for global reactive power optimization control calculations; the cloud can connect to each edge device, each of which corresponds to an automatic voltage control system in the dispatching control center, and each edge device controls one or more terminals connected to it.
[0108] The cloud end is used to perform global reactive power optimization calculations based on the large model of the State Grid Dispatching Cloud Model Center. The calculation takes into account the constraints set by the edge request. After the calculation is completed, the optimization goals of the terminal equipment controlled by the edge end are returned, including the switching on and off of capacitive reactance, gear adjustment, reactive power adjustment of the unit, bus voltage setting, etc.
[0109] The edge is used to perform automatic voltage control responsible for maintaining key parameter information for this dispatch, obtain the current input status of each device from the terminal, and send the voltage control target to the terminal based on the input status. It requests the cloud to set the constraint conditions and return the results of the global reactive power optimization control calculation. The edge is also used in local secondary planning automatic voltage control to form the bus control target and send it to the terminal.
[0110] The terminal adopts the existing automatic voltage control substation equipment terminal, and adjusts the unit by receiving the voltage control target of the edge.
[0111] In a specific embodiment of the present invention, in the cloud-edge architecture: the cloud includes two global reactive power optimization calculation servers; the edge is a provincial dispatching system, and each edge includes two servers, one master and one backup; each edge includes a power plant substation.
[0112] In a specific embodiment of the present invention, a start-up period Ts of the edge automatic voltage control is set, wherein Ts is 5 seconds to 5 minutes.
[0113] (2) Based on the cloud-edge architecture established in step (1), when the start period Ts of the edge automatic voltage control arrives, the edge reads the current power system model, and then assembles data based on the current power system model using the structured objects defined by the Protobuf unified communication protocol rules and sends it to the cloud, making a computing request to the cloud; the specific steps are as follows:
[0114] (2-1) In the power system model, obtain the set of all buses, denoted as BS = {BSk, k = 1, …, n1}, where n1 is the number of buses in the current model. Store BS in the bus constraint RolfBarConstr, a protobuf-defined memory structure object. RolfBarConstr specifically includes: id_bar (bus keyword), qopt_bar (whether the bus is constrained), vmax_bar (bus voltage upper limit), and vmin_bar (bus voltage lower limit).
[0115] Table 1 RolfBarConstr parameter table in a specific embodiment of the present invention
[0116] Serial number id_bar qopt_bar vmax_bar vmin_bar 1 1301_01 1 526.9239 520.1877 2 1301_02 1 232.9971 230.1048 3 1301_03 1 118.6942 110.1596 … … … … … n1 1301_0n 1 39.0000 33.0000
[0117] (2-2) In the power system model, obtain the set of all generators, denoted as GEN = {GENk, k = 1, …, n2}, where n2 is the number of generators in the current model. Store GEN in the protobuf-defined memory structure object RolfGenConstr, a generator constraint. RolfGenConstr specifically includes: id_gen (generator keyword), qopt_gen (whether the generator participates in optimization), gtype_gen (generator type), pmax_gen (generator active upper limit), pmin_gen (generator active lower limit), qmax_gen (generator reactive upper limit), and qmin_gen (generator reactive lower limit).
[0118] Table 2 RolfGenConstr parameter table in a specific embodiment of the present invention
[0119] Serial number id_gen qopt_gen gtype_gen pmax_gen pmin_gen qmax_gen qmin_gen 1 1101_1 1 2 250 -250 185.92 -80 2 1101_2 1 2 250 -250 185.92 -80 3 1101_3 1 2 250 -250 185.92 -80 … … … … … … … … n2 1101_n 1 2 250 -250 185.92 -80
[0120] (2-3) In the power system model, obtain the set of all capacitors, denoted as CP = {CPk, k = 1, …, n3}, where n3 is the total number of capacitors in the current model. CP is stored in the capacitive constraint ROlfCompConstr, a memory structure object defined by protobuf. ROlfCompConstr specifically includes: id_cp (capacitor number), qopt_cp (whether the capacitor participates in optimization), and cnum_cp (the number of times the capacitor has been activated on the same day).
[0121] Table 3 ROlfCompConstr parameter table in a specific embodiment of the present invention
[0122] Serial number id_cp qopt_cp cnum_cp 1 1401_1 1 2 2 1401_2 1 2 3 1401_3 1 2 … … … … n3 1401_n 1 2
[0123] (2-4) In the power system model, obtain the set of all main transformers, denoted as TRFM = {TRFMk, k = 1, …, n4}, where n4 is the number of main transformers in the current model. Store TRFM in the main transformer constraint RolfTransConstr, a protobuf-defined memory structure object. RolfTransConstr specifically includes: id_trfm (main transformer keyword), qopt_trfm (whether the main transformer participates in optimization), htap_trfm (highest gear position of the main transformer), and ltap_trfm (lowest gear position of the main transformer).
[0124] Table 4 RolfTransConstr parameter table in a specific embodiment of the present invention
[0125]
[0126]
[0127] (2-5) In the power system model, obtain the set of all windings, denoted as XF = {XFk, k = 1, …, n5}, where n5 is the number of windings in the current model. Store XF in the winding constraint RolfXfConstr, a protobuf-defined memory structure object. RolfXfConstr specifically includes: id_xf (winding keyword), max_q_xf (winding adjustable reactive upper limit), min_q_xf (winding adjustable reactive lower limit), bgate_xf (whether the winding is a gateway device), and qopt_xf (whether the winding participates in optimization).
[0128] Table 5 RolfXfConstr parameter table in a specific embodiment of the present invention
[0129] Serial number id_xf qopt_xf bgate_xf max_q_xf min_q_xf 1 1312_1 1 1 1 0.98 2 1312_2 1 1 1 0.98 3 1312_3 1 1 1 0.98 … … … … … … n5 1312_n 1 1 1 0.98
[0130] (2-6) In the power system model, obtain the set of all lines, denoted as LN = {LNk, k = 1, …, n6}, where n6 is the number of lines in the current model. Store LN in the line constraint RolfLnConstr, a memory structure object defined by protobuf. RolfLnConstr specifically includes: id_ln (line keyword), max_cos_ln (line power factor upper limit), min_cos_ln (line power factor lower limit), bgate_ln (whether the line is a gateway device), and qopt_ln (whether the line participates in optimization).
[0131] Table 6 RolfLnConstr parameter table in a specific embodiment of the present invention
[0132] Serial number id_ln qopt_ln bgate_ln max_cos_ln min_cos_ln 1 1201_1 1 1 1 0.98 2 1201_2 1 1 1 0.98 3 1201_3 1 1 1 0.98 … … … … … … n6 1201_n 1 1 1 0.98
[0133] (2-7) In the power system model, obtain the current calculation parameters, denoted as PARA, and store PARA in the memory structure object parameter RolfPara defined by protobuf. RolfPara specifically includes: id_para (calculation parameter keyword), nstep_para (optimization step size), m_bun_para (whether the generator participates in optimization), m_bcp_para (whether the capacitor participates in optimization), m_btap_para (whether the tap participates in optimization), m_bvslack_para (whether to relax the bus voltage constraint), m_blnslack_para (whether to relax the line power flow constraint), m_bxfslack_para (whether to relax the winding power flow constraint), m_btslack_para (whether to relax the transformer ratio constraint), m_bqslack_para (whether to relax the generator reactive power constraint), m_bpslack_para (whether to relax the generator active power constraint), and m_nctrlobj_para (control target).
[0134] Table 7 RolfPara parameter table in a specific embodiment of the present invention
[0135] Serial number id_para nstep_para m_bun_para m_bcp_para m_btap_para m_bvslack_para 1 1 3 1 1 1 1 Serial number m_blnslack_para m_bxfslack_para m_btslack_para m_bqslack_para m_bpslack_para m_nctrlobj_para 1 1 3 1 1 1 0
[0136] (2-8) Write the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitive reactance constraint ROlfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the memory structure into the device constraint RolfDevConstr in the memory structure.
[0137] (2-9) Write the memory structure device constraint RolfDevConstr into the memory structure RolfCalRequest, and set model_type (model mode) and cal_time (request calculation time); among them, model_type is generally set to use the cloud model, and cal_time is generally set to the current time.
[0138] (2-10) The assembled protobuf-defined memory structure RolfCalRequest is serialized to form a byte sequence data packet and sent to the cloud, and a computing request is made to the cloud.
[0139] (3) After receiving the request from the edge, the cloud uses the structured objects sent by the edge to assemble data, performs global reactive power optimization calculations based on the State Grid dispatch cloud model, and returns the calculation results to the edge. The specific steps are as follows:
[0140] (3-1) The cloud performs protobuf deserialization on the byte sequence data packet received from the edge to form the input memory structure RolfCalRequest, and reads the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitor constraint ROlfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the device constraint RolfDevConstr in turn to form the constraint Lmt. Based on the State Grid Dispatching Cloud model and the parsed constraint Lmt, global reactive power optimization calculation is performed, and the data after calculation is stored in the data buffer THNetData.
[0141] (3-2) Based on the calculation result of step (3-1), the return data result protobuf object RolfCalResponse is formed; the specific steps are as follows:
[0142] (3-2-1) In the data buffer THNetData, obtain the set of all buses, recorded as BS_O = {BS_Ok, k = 1, ..., m1}, where m1 is the number of all buses contained in the current data buffer. Store BS_O in the bus information RolfBarInfo memory structure object defined by protobuf. RolfBarInfo specifically includes: id_bar (bus keyword), name_bar (bus name), vmeas_bar (bus voltage measurement), vfop_bar (bus value before optimization), vop_bar (bus value after optimization), ovrp_bar (bus over-limit flag before optimization), ovrop_bar (bus over-limit flag after optimization), vmax_bar (bus voltage upper limit), and vmin_bar (bus voltage lower limit).
[0143] Table 8 RolfBarInfo result table in a specific embodiment of the present invention
[0144] Serial number id_bar name_bar vmeas_bar vfop_bar vop_bar ovrp_bar ovrop_bar vmax_bar vmin_bar 1 1301_01 1301_01 523.21 523.21 524.00 0 0 526.9239 520.1877 2 1301_02 1301_02 231.00 231.00 232.10 0 0 232.9971 230.1048 3 1301_03 1301_03 116.01 116.01 116.52 0 0 118.6942 110.1596 … … … … … … … … … … m1 1301_0m 1301_0m 36.1 36.1 37.0 0 0 39.0000 33.0000
[0145] (3-2-2) In the data buffer THNetData, obtain the set of all units, denoted as UN_O = {UN_Ok, k = 1, ..., m2}, where m2 is the number of units in the current data buffer. Store UN_O in the unit information object RolfUnitInfo, a memory structure object defined by protobuf. RolfUnitInfo specifically includes: id_un (unit keyword), name_un (unit name), p_un (unit active power), q_un (unit reactive power), plf_un (unit active power before optimization), qlf_un (unit reactive power before optimization), pop_un (unit active power after optimization), qop_un (unit reactive power after optimization), ovrq_un (unit overrun before optimization), and ovroq_un (unit overrun after optimization).
[0146] Table 9 RolfUnitInfo result table in a specific embodiment of the present invention
[0147] Serial number id_gen name_gen p_un q_un plf_un qlf_un pop_un qop_un ovrq_un ovroq_un 1 1101_1 1101_1 2.38312 0 2.38312 0 2.3831 0 0 0 2 1101_2 1101_2 83.20566 99.29482 483.1766 86.22205 483.1765 86.2221 0 0 3 1101_3 1101_3 335.6662 63.13076 335.6375 62.22232 335.6375 62.2223 0 0 … … … … … … … … m2 1101_m 1101_m 412.7943 -60.581 412.7634 -53.8947 412.7634 -53.8947 0 0
[0148] (3-2-3) In the data buffer THNetData, obtain the set of all capacitors and record it as CP_O = {CP_Ok, k = 1, ..., m3}, where m3 is the total number of capacitors contained in the current data buffer. Store CP_O in the capacitive reactance information RolfCompInfo, a memory structure object defined by protobuf. RolfCompInfo specifically includes: id_cp (capacitor keyword), name_cp (capacitor name), qnom_cp (capacitor capacity), kvnom_cp (capacitor rated voltage), stopflag_cp (capacitor switch status), and ctrltype_cp (capacitor control type).
[0149] Table 10 RolfCompInfo result table in a specific embodiment of the present invention
[0150] Serial number id_cp name_cp qnom_cp kvnom_cp stopflag_cp ctrltype_cp 1 1401_1 1401_1 60 10 1 1 2 1401_2 1401_2 60 10 1 1 3 1401_3 1401_3 40 10 1 1 … … … … … … … m3 1401_m 1401_m 40 10 1 1
[0151] (3-2-4) In the data buffer THNetData, obtain the set of all main transformers, denoted as TRFM_O = {TRFM_Ok, k = 1, ..., m4}, where m4 is the number of main transformers contained in the current data buffer. Store TRFM_O in the main transformer information RolftrwdInfo, a memory structure object defined by protobuf. RolftrwdInfo specifically includes: id_trfm (main transformer keyword), name_trfm (main transformer name), t_trfm (main transformer ratio), tstap_trfm (main transformer step size), tap_trfm (main transformer gear position), and otap_trfm (main transformer optimized gear position).
[0152] Table 11 RolftrwdInfo result table in a specific embodiment of the present invention
[0153] Serial number id_trfm name_trfm t_trfm tstap_trfm tap_trfm otap_trfm 1 1311_1 1 -0.0125 0.0125 9 9 2 1311_2 1 -0.0125 0.0125 9 9 3 1311_3 1 -0.0125 0.0125 5 5 … … … … … … … m4 1311_m 1 -0.0125 0.0125 5 5
[0154] (3-2-5) In the data buffer THNetData, obtain the set of all lines, denoted as LN_O = {LN_Ok, k = 1, ..., m5}, where m5 is the number of lines in the current data buffer. Store LN_O in the line information object RolfLnInfo, a memory structure object defined by protobuf. RolfLnInfo specifically includes: id_ln (line keyword), name_ln (line name), p_ln (real-time active power at the head end of the line), q_ln (real-time reactive power at the head end of the line), opfp_ln (optimized active power at the head end of the line), opfq_ln (optimized reactive power at the head end of the line), p2_ln (real-time active power at the end of the line), q2_ln (real-time reactive power at the end of the line), opfp2_ln (optimized active power at the end of the line), opfq2_ln (optimized reactive power at the end of the line), qdec_ln (reduction in reactive power at the end of the line), and lossdec_ln (loss reduction in line).
[0155] Table 12 RolfLnInfo result table in a specific embodiment of the present invention
[0156]
[0157] (3-2-6) In the data buffer THNetData, obtain the set of all windings and record it as XF_O = {XF_Ok, k = 1, ..., m6}, where m6 is the number of all windings contained in the current data buffer, and store XF_O in the winding information RolfXfInfo of the memory structure object defined by protobuf. RolfXfInfo specifically includes: id_xf (winding keyword), name_xf (winding name), p_xf (real-time active power at the beginning of the winding), q_xf (real-time reactive power at the beginning of the winding), tap_xf (real-time gear position of the winding), opfp_xf (optimized active power at the beginning of the winding), opfq_xf (optimized reactive power at the beginning of the winding), opftap_xf (winding optimization gear position), adjq_xf (winding reactive power change), qdec_xf (winding reactive power reduction), lossdec_xf (winding loss reduction), p2_xf (real-time active power at the end of the winding), q2_xf (real-time reactive power at the end of the winding), opfp2_xf (optimized active power at the end of the winding), and opfq2_xf (optimized reactive power at the end of the winding).
[0158] Table 13 RolfXfInfo result table in a specific embodiment of the present invention
[0159] Serial number id_xf name_xf p_xf q_xf tap_xf opfp_xf opfq_xf opftap_xf adjq_xf 1 1312_1 1312_1 13.3548 1.6017 3 13.3548 1.6017 3 0 2 1312_2 1312_2 19.4318 2.0564 5 19.4306 2.0403 5 -0.0161 3 1312_3 1312_3 13.9885 -0.9885 5 13.9881 -0.9966 5 -0.0081 … … … … … … … … … … m6 1312_m 1312_m 23.4191 1.5993 6 23.4166 1.5637 6 -0.0356L
[0160] (3-2-7) Get the calculation result data in the data buffer THNetData, record it as RST_O, and store RST_O in the global calculation result RolfSysInfo of the memory structure object defined by protobuf. RolfSysInfo specifically includes: id_rst (global calculation keyword), fpload (system load), fploss0 (active power loss before optimization), fplossopf (active power loss after optimization), fp (network loss reduction), value_opf (loss reduction percentage), value (network loss rate before optimization), fwsl (network loss rate after optimization), stm (start calculation time), etm (end calculation time), nstat (calculation status), sztmp (calculation information), szlocalhos t (computing node), nlvisl (computing electrical island number), wsl500 (network loss rate after 500 optimization), wsl220 (network loss rate after 220 optimization), wsl110 (network loss rate after 110 optimization), ws500 (network loss after 500 optimization), ws220 (network loss after 220 optimization), ws110 (network loss after 110 optimization), wsl750 (network loss rate after 750 optimization), ws750 (network loss after 750 optimization), wsl330 (network loss rate after 330 optimization), ws330 (network loss after 330 optimization).
[0161] Table 14 RolfSysInfo result table in a specific embodiment of the present invention
[0162] Serial number id_rst fpload fploss0 fplossopf fp value_opf value fwsl stm 1 1 38788.6992 545.8223 532.1750 13.1239 2.4044 1.4 1.37 1736213355 2 etm nstat sztmp szlocalhost nlvisl wsl500 wsl220 wsl110 ws500 3 1736213356 1 Calculation success thnas-avc1 1 2.3015 2.8151 2.6616 168.9279 4 ws220 ws110 wsl750 ws750 wsl330 ws330 5 114.5420 126.1916 2.3015 38.7786 0 0
[0163] (3-2-8) In the data buffer THNetData, obtain all region information, recorded as DV_O = {DV_Ok, k = 1, ..., m7}, where m7 is the number of all regions contained in the current data buffer. Store DV_O in the region statistics object RolfDvInfo, a memory structure defined by protobuf. RolfDvInfo specifically includes: id_dv (region keyword), name_dv (region name), pload_dv (region load), ploss0_dv (region active power loss before optimization), plossopf_dv (region active power loss after optimization), ploss_dv (regional network loss reduction), dlossopf_dv (regional loss reduction percentage), dloss_dv (regional network loss rate before optimization), and wsl_dv (regional network loss rate after optimization).
[0164] Table 15 RolfDvInfo result table in a specific embodiment of the present invention
[0165]
[0166] (3-2-9) Sequentially write RolfBarInfo (busbar information), RolfUnitInfo (unit information), RolfCompInfo (capacitive reactance information), RolftrwdInfo (main transformer information), RolfLnInfo (line information), RolfXfInfo (winding information), RolfSysInfo (global calculation results), and RolfDvInfo (regional statistics) into the calculation information object RolfCalInfo; write the calculation information object RolfCalInfo into the output object RolfCalResponse, and set the output object RolfCalResponse's time_rps (calculation time) and cal_stat_rps (calculation status). Serialize the assembled protobuf-defined memory structure object RolfCalResponse to form a byte sequence data packet.
[0167] (3-3) The cloud returns the byte sequence data packet formed in (3-2) to the edge through the network.
[0168] (4) Based on the calculation results returned by the cloud, the edge terminal forms the busbar three-level optimization target and performs optimization calculation for automatic voltage control. The specific steps are as follows:
[0169] (4-1) The edge deserializes the byte sequence data returned by the cloud to form the calculation result structure object RolfCalResponse, and then traverses the vop_bar (optimized value) of RolfBarInfo in RolfCalResponse to form the busbar three-level optimization target
[0170] (4-2) Optimization target obtained according to step (4-1) A quadratic programming model is used to calculate the power plant control commands, including:
[0171] First, an automatic voltage control optimization model is established. The objective function of the optimization model is expressed as follows:
[0172]
[0173] Among them, V p Indicates the current voltage of the central busbar in the power system area. Indicates the set voltage of the central busbar in the power system area, C g is the central bus reactive voltage sensitivity matrix, ΔQ g Indicates the regulation amount of the generator reactive output, W p and W qis the weight coefficient of the generator set, the value range is (0.1-10), α is the gain coefficient, the value range is 0.1~10, Θ g is the reactive margin vector, Θ g The i-th component of is:
[0174]
[0175] in, is the current reactive power output of generator i, is the regulation amount of reactive power output of generator i, is the maximum reactive power of generator i, is the minimum reactive power of generator i, i is the serial number of the generator, ||Θ g || 2 is the reactive margin vector set, and the above data are obtained from the automatic voltage control system in the power system.
[0176] Determine the constraints of the automatic voltage control optimization model, and the expression is as follows:
[0177]
[0178] Among them, C0, C1, C2, and C3 are the limit constraint equations respectively; C vg is the high-voltage side bus reactive voltage sensitivity matrix, read from the power system; V H Indicates the current voltage of the high-voltage side bus of the generator; and Respectively represent the lower limit of the central bus voltage and the upper limit of the central bus voltage; and Respectively represent the lower limit and upper limit of the generator reactive power; Q g is the current reactive power output of the generator; and They respectively represent the voltage lower limit, voltage upper limit and maximum allowable single-step voltage adjustment of the generator high-voltage side bus. The above data quantities are the limit values obtained from the local dispatching system.
[0179] The optimization model is solved by using the quadratic programming calculation method to obtain the regulation value ΔQ of the generator reactive output g .
[0180] (5) The optimization calculation result at the edge is the adjustment amount ΔQ of the generator reactive output g It is sent to each automatic voltage control power plant substation of the terminal power plant for execution.
[0181] (6) When the next cycle Ts arrives, return to step (2).
Claims
1. An AVC control method for a cloud-edge architecture based on protobuf, characterized in that: include: Build an automatic voltage control system using cloud-edge architecture; Based on the cloud-edge architecture, when the start-up cycle of the edge automatic voltage control arrives, the edge assembles data based on the current power system model using the structured objects defined by the Protobuf unified communication protocol rules and sends it to the cloud, making a computing request to the cloud; After receiving the request from the edge, the cloud performs global reactive power optimization calculation based on the data sent by the edge and returns the calculation results to the edge; The edge terminal forms a three-level optimization target of the bus based on the calculation result and performs optimization calculation of automatic voltage control; The edge sends the results of the optimization calculation to each automatic voltage control power plant substation of the terminal power plant for execution.
2. The method according to claim 1, characterized in that: The cloud-edge architecture includes a cloud, several edge terminals and several terminals; wherein the cloud is connected to each edge terminal, each edge terminal corresponds to an automatic voltage control system of a dispatching control center, and each edge terminal controls one or more terminals connected to it; The cloud is used to perform global reactive power optimization calculations based on the large model of the State Grid Dispatching Cloud Model Center. The calculation takes into account the constraints set by the edge request, and returns the optimization target of the terminal device controlled by the edge after the calculation is completed; The edge is used to perform automatic voltage control responsible for maintaining the key parameter information of this dispatch, obtain the current input status of each device from the terminal, and send the voltage control target to the terminal according to the input status, and calculate the constraint conditions by requesting the cloud and returning the result of the global reactive power optimization control calculation. The edge is also used in the local secondary planning automatic voltage control to form the control target of the bus and send it to the terminal; The terminal is used to adjust the unit by receiving the voltage control target of the edge.
3. The method according to claim 2, characterized in that The edge assembles data based on the current power system model using structured objects defined by Protobuf unified communication protocol rules and sends it to the cloud, including: (1) In the power system model, obtain a set of all buses, denoted as BS = {BSk, k = 1, ..., n1}, where n1 is the number of all buses included in the current model, and store BS in the bus constraint RolfBarConstr defined in the protobuf memory structure object; RolfBarConstr specifically includes: bus keyword id_bar, bus constraint qopt_bar, bus voltage upper limit vmax_bar, bus voltage lower limit vmin_bar; (2) In the power system model, obtain a set of all units, record it as GEN = {GENk, k = 1, ..., n2}, n2 is the number of all units included in the current model, and store GEN in the memory structure object unit constraint RolfGenConstr defined by protobuf; RolfGenConstr specifically includes: unit keyword id_gen, whether the unit participates in optimization qopt_gen, unit type gtype_gen, unit active upper limit pmax_gen, unit active lower limit pmin_gen, unit reactive upper limit qmax_gen, unit reactive lower limit qmin_gen; (3) In the power system model, obtain a set of all capacitors and record it as CP = {CPk, k = 1, ..., n3}, where n3 is the number of all capacitors included in the current model, and store CP in the memory structure object capacitor constraint ROlfCompConstr defined by protobuf; ROlfCompConstr specifically includes: capacitor serial number id_cp, whether the capacitor participates in optimization qopt_cp, and the number of capacitor actions on the day cnum_cp; (4) In the power system model, obtain a set of all main transformers and record it as TRFM = {TRFMk, k = 1, ..., n4}, where n4 is the number of all main transformers included in the current model, and store TRFM in the main transformer constraint RolfTransConstr defined by protobuf; RolfTransConstr specifically includes: the main transformer keyword id_trfm, whether the main transformer participates in optimization qopt_trfm, the main transformer highest gear htap_trfm, and the main transformer lowest gear ltap_trfm; (5) In the power system model, obtain the set of all windings and record it as XF = {XFk, k = 1, ..., n5}, where n5 is the number of all windings contained in the current model, and store XF in the memory structure object winding constraint RolfXfConstr defined by protobuf; RolfXfConstr specifically includes: winding keyword id_xf, winding adjustable reactive upper limit max_q_xf, winding adjustable reactive lower limit min_q_xf, whether the winding is a gateway device bgate_xf, and whether the winding participates in optimization qopt_xf; (6) In the power system model, obtain the set of all lines and record it as LN = {LNk, k = 1, ..., n6}, where n6 is the number of all lines included in the current model, and store LN in the memory structure object line constraint RolfLnConstr defined by protobuf; RolfLnConstr specifically includes: line keyword id_ln, line power factor upper limit max_cos_ln, line power factor lower limit min_cos_ln, whether the line is a gateway device bgate_ln, and whether the line participates in optimization qopt_ln; (7) In the power system model, obtain the current calculation parameters, recorded as PARA, and store PARA in the memory structure object parameter RolfPara defined by protobuf; RolfPara specifically includes: calculation parameter keyword id_para, optimization step nstep_para, whether the generator participates in the optimization m_bun_para, whether the capacitor participates in the optimization m_bcp_para, whether the tap participates in the optimization m_btap_para, whether to relax the bus voltage constraint m_bvslack_para, whether to relax the line flow constraint m_blnslack_para, whether to relax the winding flow constraint m_bxfslack_para, whether to relax the transformer ratio constraint m_btslack_para, whether to relax the generator reactive power constraint m_bqslack_para, whether to relax the generator active power constraint m_bpslack_para, and the control target m_nctrlobj_para; (8) Write the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitive reactance constraint RolfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the memory structure into the device constraint RolfDevConstr of the memory structure; (9) Write the memory structure device constraint RolfDevConstr into the memory structure RolfCalRequest, and set the model mode model_type and the requested calculation time cal_time; (10) The assembled protobuf-defined memory structure RolfCalRequest is serialized to form a byte sequence data packet and sent to the cloud.
4. The method according to claim 3, characterized in that After receiving the request from the edge, the cloud performs global reactive power optimization calculation based on the data sent by the edge, including: (1) The cloud performs protobuf deserialization on the byte sequence data packet received from the edge to form the input memory structure RolfCalRequest, and reads the bus constraint RolfBarConstr, unit constraint RolfGenConstr, capacitor constraint RolfCompConstr, main transformer constraint RolfTransConstr, winding constraint RolfXfConstr, line constraint RolfLnConstr, and parameter RolfPara in the device constraint RolfDevConstr in turn to form the constraint Lmt. Based on the State Grid dispatching cloud model and the resolved constraint Lmt, the global reactive power optimization calculation is performed, and the calculated data is stored in the data buffer THNetData. (2) Based on the calculation result of step (1), a return data result protobuf object RolfCalResponse is generated; the specific steps are as follows: (2-1) In the data buffer THNetData, obtain the set of all buses and record it as BS_O = {BS_Ok, k = 1, ..., m1}, where m1 is the number of all buses contained in the current data buffer, and store BS_O in the bus information RolfBarInfo of the memory structure object defined by protobuf; RolfBarInfo specifically includes: bus keyword id_bar, bus name name_bar, bus voltage measurement vmeas_bar, bus value before optimization vfop_bar, bus value after optimization vop_bar, bus over-limit flag before optimization ovrp_bar, bus over-limit flag after optimization ovrop_bar, bus voltage upper limit vmax_bar, bus voltage lower limit vmin_bar; (2-2) In the data buffer THNetData, obtain the set of all units and record it as UN_O = {UN_Ok, k = 1, ..., m2}, where m2 is the number of all units contained in the current data buffer, and store UN_O in the unit information RolfUnitInfo of the memory structure object defined by protobuf; RolfUnitInfo specifically includes: unit keyword id_un, unit name name_un, unit active power p_un, unit reactive power q_un, unit active power before optimization plf_un, unit reactive power before optimization qlf_un, unit active power after optimization pop_un, unit reactive power after optimization qop_un, unit over-limit before optimization ovrq_un, unit over-limit after optimization ovroq_un; (2-3) In the data buffer THNetData, obtain the set of all capacitors and record it as CP_O = {CP_Ok, k = 1, ..., m3}, where m3 is the number of all capacitors contained in the current data buffer, and store CP_O in the memory structure object capacitor information RolfCompInfo defined by protobuf; RolfCompInfo specifically includes: capacitor keyword id_cp, capacitor name name_cp, capacitor capacity qnom_cp, capacitor rated voltage kvnom_cp, capacitor switch state stopflag_cp, and capacitor control type ctrltype_cp; (2-4) In the data buffer THNetData, obtain the set of all main transformers and record it as TRFM_O = {TRFM_Ok, k = 1, ..., m4}, where m4 is the number of all main transformers contained in the current data buffer, and store TRFM_O into the main transformer information RolftrwdInfo of the memory structure object defined by protobuf; RolftrwdInfo specifically includes: main transformer keyword id_trfm, main transformer name name_trfm, main transformer ratio t_trfm, main transformer step size tstap_trfm, main transformer gear tap_trfm, and main transformer optimized gear otap_trfm; (2-5) In the data buffer THNetData, obtain the set of all line components and record it as LN_O = {LN_Ok, k = 1, ..., m5}, where m5 is the number of all lines contained in the current data buffer, and store LN_O in the memory structure object line information RolfLnInfo defined by protobuf; RolfLnInfo specifically includes: line keyword id_ln, line name name_ln, line head end real-time active power p_ln, line head end real-time reactive power q_ln, line head end optimized active power opfp_ln, line head end optimized reactive power opfq_ln, line end real-time active power p2_ln, line end real-time reactive power q2_ln, line end optimized active power opfp2_ln, line end optimized reactive power opfq2_ln, line reactive power reduction qdec_ln, line loss reduction lossdec_ln; (2-6) In the data buffer THNetData, obtain the set of all windings and record it as XF_O = {XF_Ok, k = 1, ..., m6}, where m6 is the number of all windings contained in the current data buffer, and store XF_O in the memory structure object winding information RolfXfInfo defined by protobuf; RolfXfInfo specifically includes: winding keyword id_xf, winding name name_xf, winding head end real-time active power p_xf, winding head end real ... Reactive power q_xf, real-time gear position of winding tap_xf, optimized active power opfp_xf at the head end of winding, optimized reactive power opfq_xf at the head end of winding, optimized gear position opftap_xf at winding, reactive power change adjq_xf at winding, reactive power reduction qdec_xf at winding, loss reduction lossdec_xf at winding, real-time active power p2_xf at the end of winding, real-time reactive power q2_xf at the end of winding, optimized active power opfp2_xf at the end of winding, optimized reactive power opfq2_xf at the end of winding; (2-7) In the data buffer THNetData, obtain the calculation result data, record it as RST_O, and store RST_O in the global calculation result RolfSysInfo of the memory structure object defined by protobuf; RolfSysInfo specifically includes: global calculation keyword id_rst, system load fpload, active power loss before optimization fploss0, active power loss after optimization fplossopf, network loss reduction fp, loss reduction percentage value_opf, network loss rate value before optimization, network loss rate fwsl after optimization, and start calculation time stm , end calculation time etm, calculation status nstat, calculation information sztmp, calculation node szlocalhost, calculation electrical island number nlvisl, 500 optimized network loss rate wsl500, 220 optimized network loss rate wsl220, 110 optimized network loss rate wsl110, 500 optimized network loss ws500, 220 optimized network loss ws220, 110 optimized network loss ws110, 750 optimized network loss rate wsl750, 750 optimized network loss ws750, 330 optimized network loss rate wsl330, 330 optimized network loss ws330; (2-8) In the data buffer THNetData, obtain all the regional information, recorded as DV_O = {DV_Ok, k = 1, ..., m7}, m7 is the number of all regions contained in the current data buffer, and store DV_O in the memory structure object regional statistics RolfDvInfo defined by protobuf; RolfDvInfo specifically includes: regional keyword id_dv, regional name name_dv, regional load pload_dv, regional active loss before optimization ploss0_dv, regional active loss after optimization plossopf_dv, regional network loss reduction ploss_dv, regional loss reduction percentage dlossopf_dv, regional network loss rate before optimization dloss_dv, regional network loss rate after optimization wsl_dv; (2-9) Write RolfBarInfo, RolfUnitInfo, RolfCompInfo, RolftrwdInfo, RolfLnInfo, RolfXfInfo, RolfSysInfo, and RolfDvInfo into the calculation information object RolfCalInfo in sequence; write the calculation information object RolfCalInfo into the output object RolfCalResponse, set the calculation time time_rps and calculation status cal_stat_rps of the output object RolfCalResponse; serialize the assembled protobuf-defined memory structure object RolfCalResponse to form a byte sequence data packet.
5. The method according to claim 4, characterized in that The edge terminal forms a busbar three-level optimization target based on the calculation result and performs optimization calculation of automatic voltage control, including: (1) The edge deserializes the byte sequence data returned by the cloud to form the data calculation result structure object RolfCalResponse, and then traverses the optimized value vop_bar of RolfBarInfo in RolfCalResponse to form the busbar three-level optimization target (2) Optimization target obtained according to step (1) The quadratic programming model is used to calculate the power plant control instructions, including: First, an automatic voltage control optimization model is established. The expression of the objective function of the optimization model is as follows: Among them, V p Indicates the current voltage of the central busbar in the power system area. Indicates the set voltage of the central busbar in the power system area, C g is the reactive voltage sensitivity matrix of the central bus, ΔQ g Indicates the regulation amount of the generator reactive output, W p and W q is the weight coefficient of the generator set, α is the gain coefficient, Θ g is the reactive power margin vector, Θ g The i-th component of is: Among them, Q gi is the current reactive power output of generator i, is the reactive power regulation of generator i, is the maximum reactive power of generator i, is the minimum reactive power of generator i, i is the serial number of the generator, ||Θ g || 2 is the reactive margin vector set; Determine the constraints of the automatic voltage control optimization model, the expression is as follows: Among them, C0, C1, C2, and C3 are limit constraint equations respectively; C vg is the high-voltage bus reactive voltage sensitivity matrix; V H Indicates the current voltage of the busbar on the high-voltage side of the generator; and They represent the lower limit of the central bus voltage and the upper limit of the central bus voltage respectively; and They represent the lower and upper limits of the reactive power of the generator respectively; Q g is the current reactive power output of the generator; and They respectively represent the voltage lower limit, voltage upper limit and maximum allowable single-step voltage adjustment of the high-voltage side busbar of the generator; Solve the optimization model to obtain the regulation value ΔQ of the generator reactive output g .