Access controlled grid model
By implementing an access control mechanism, the problem of regional data access control in the power grid system was solved, enabling flexible regional access permissions and personalized simulation results, thus ensuring the security of the power grid and the accuracy of the simulation results.
Patent Information
- Application Number
- CN202480037138.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-12
- Filing Date
- 2024-06-12
- Publication Date
- 2025-12-30
AI Technical Summary
Existing technologies make it difficult to achieve data access control for different regions when maintaining and updating power grid system models, which makes it difficult to guarantee the security and confidentiality of simulation results. At the same time, it is impossible to flexibly specify regional access permissions and provide personalized simulation results.
An access control mechanism is adopted to determine access to a subset of regions of the power grid model through the access permissions of user accounts, and to perform simulations based on user input. It provides granularity and access control for simulation results, allowing users to access simulation results only for authorized regions.
This approach enables flexible specification of area access permissions while ensuring power grid security, providing personalized simulation results and improving the accuracy and security of simulation results.
Smart Images

Figure CN121241345A_ABST
Abstract
Description
[0001] Cross-reference to related applications
[0002] This application claims priority to U.S. Provisional Application No. 63 / 507,717, filed June 12, 2023. The disclosure of the earlier application is considered part of the disclosure of this application and is incorporated herein by reference. Technical Field
[0003] This specification relates to techniques for maintaining, updating, and simulating power grid systems, and more specifically to the operation of maintaining, updating, and simulating power grids while implementing access control. Background Technology
[0004] An electricity grid is an interconnected network of power sources, electrical loads, and components for power transmission and regulation. Transmitting electricity through the grid can include both transmission and distribution; transmission typically occurs at high voltages over long distances, while distribution typically occurs at lower voltages over shorter distances. For example, a power plant can generate electricity, then step it up to high voltage for long-distance transmission, and then step it down at a substation for low-voltage distribution. The distribution system can then distribute the electricity to local households and businesses. Summary of the Invention
[0005] This specification relates to techniques for maintaining, updating, and simulating models of power grid systems, where the power grid comprises regions, and access restrictions for data in each region are enforced by access control mechanisms. Users may run simulations for some or all regions of the power grid model, but detailed simulation results will only be accessible if the access control policy allows.
[0006] Specific embodiments of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. The techniques described below can be used to restrict access to areas of a power grid model to authorized users, while enabling such users to perform simulations of areas where users are not authorized to perform operations other than simulation. These techniques allow users to perform simulations that can inform decisions related to security and efficiency without compromising the broader security and confidentiality of the power grid. Additionally, the techniques enable the flexible designation of areas, including geographically fixed areas described using other specifications. Furthermore, simulation results can be provided based on the user's access level. For example, some users may receive granular simulation details for multiple areas, some users may receive granular simulation details for only a single area, while other users may not receive details for any area, but only receive coarse simulation results.
[0007] Typically, the innovative aspects of the subject matter described in this specification can be embodied in a method that includes accessing a power grid model representing electrical specifications of a power grid and power grid components. The power grid model may include multiple regions. In response to an access request from a user, access may be provided only to a subset of regions based on access permissions associated with a user account. In some embodiments, user access to regions outside the subset of the power grid model is denied. In some embodiments, input from a user may be used to perform a simulation of the power grid model. The input indicates simulation parameters for at least one region within the subset, and simulation is performed on the regions of the power grid model within the subset and at least one additional region not in the subset to produce simulation results, which include electrical values of components in the regions of the power grid model within the subset and electrical values of components in at least one additional region. The simulation results of the electrical values of components in the regions of the power grid model within the subset are provided as output. In some embodiments, at least one change to the power grid model may be received from the user; and in response to verifying that at least one change is associated with at least one region within the subset of regions of the power grid model, the power grid model may be updated to incorporate at least one change. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs configured to perform actions of a method encoded on a computer storage device.
[0008] These and other implementations may optionally include one or more of the following features: At least one change to the power grid model can be received from a user, and in response to verifying that the at least one change is associated with at least one region in a subset of regions of the power grid model, the power grid model can be updated to include the at least one change.
[0009] In some implementations, each region can be a spatial region defined by fixed boundary points. These fixed boundary points can be geographic coordinates.
[0010] In some implementations, each region can be a spatial region defined by an identifier.
[0011] In some implementations, access to only a subset of simulation results may be provided based on access permissions associated with a user account.
[0012] In some implementations, the subset of results may include simulation results at the boundary of one of the multiple regions of the power grid model.
[0013] Typically, the innovative aspects of the subject matter described in this specification can be further embodied in a method that includes obtaining a power grid model representing electrical specifications of a power grid and power grid components. The power grid model may include multiple zones. In response to an access request from a user, access may be provided only to a subset of zones based on access permissions associated with a user account. In some embodiments, user access to zones outside the subset of the power grid model may be denied. At least one change to the power grid model may be received from the user, and in response to verifying that at least one change is associated with at least one zone in the subset of zones of the power grid model, the power grid model may be updated to include at least one change. Other embodiments of this aspect include corresponding systems, apparatus, and computer programs configured to perform actions of the method encoded on a computer storage device.
[0014] These and other implementations may optionally include one or more of the following features: The ability to determine the user group associated with the user and access permissions for the user group. Using access permissions, it can be determined whether at least one change is permitted.
[0015] In some implementations, it is possible to determine the user groups associated with a user and the access permissions for those user groups. It can be determined that at least one access permission cannot be changed.
[0016] In some implementations, in response to determining that access permissions do not allow at least one change, an access notification may be provided, which may instruct the user to deny access.
[0017] Details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the following description. Other features, aspects, and advantages of the invention will become apparent from the description, drawings, and claims. Attached Figure Description
[0018] Figure 1 A block diagram is shown for providing an environment that allows access to a controlled power grid model.
[0019] Figure 2 This is a flowchart of an example process for providing access to a controlled power grid model.
[0020] Figure 3 This is a block diagram of an example computer system.
[0021] In the various figures, the same reference numerals and names indicate the same elements. Detailed Implementation
[0022] A power grid comprises a wide range of interconnecting components, which can be broadly categorized into two classes: transmission components that carry generated electricity long distances along high-voltage lines to substations, and distribution components that distribute electricity from substations to endpoints such as homes and businesses. Several elements, such as substations, are involved in both transmission and distribution. Components can be of various types, including inverters (solar, wind, HVDC, etc.), relays, power plant controllers (PPCs), energy management systems, remedial action systems (RAS), automatic generator controls, alarm systems, and more.
[0023] The operation of one component often affects the operation of other components. For example, PPCs regulate and control grid-connected inverters within a power plant. Furthermore, various components can operate differently under different load conditions. Additionally, the output of one component can affect the load on other components. Understanding how all components in the power grid operate contributes to the proper functioning of the grid.
[0024] Simulation can be used to estimate how various components will operate under such varying load conditions. The model used for simulation can be called a power grid model (or simply a "mesh model"), and can operate on a mesh model or a subset thereof. A mesh model can span all components from generators to end loads (e.g., homes, businesses, factories, etc.). The model can be a software representation (e.g., text, code, or other computer data structures) of power system components and electrical networks, which can include mathematical representations of the components used for simulation and analysis. The physical components of the power grid can be represented by elements of the mesh model, and simulations can be performed on such mesh models.
[0025] In some cases, a grid model is actually a composite of multiple regional grid models, each owned and operated by a different entity, such as a power company. Because the internal operations of a region can be considered proprietary information, some operators will not allow access to details of their grid region. For example, regulations may prohibit general access to power data and / or the data may contain proprietary information that the operator may choose not to disseminate.
[0026] However, because the regions of a grid are interconnected, the operation of one grid region affects the operation of other regions. Therefore, when an operator of a grid region performs a simulation of proposed changes to the regions under its control, that simulation needs to include the other regions. However, as mentioned above, some operators will refuse to release the data required for another operator to perform such a simulation.
[0027] This specification describes a technique where a mesh model can include multiple regions, and the data in each region can be controlled by the operator providing the data. Each operator can establish an access control policy for that region, which defines the operations available to other operators. The access control policy can specify what data can be accessed, for what purpose, by which operator(s), and at what granularity, among other factors. For example, a policy could specify that any operator can access data related to electrical components at the region boundary (e.g., where such a component intersects with components in another region) and can use granular data within the region to perform simulations and report the results, but cannot reveal information describing the details of the simulation operations within the region.
[0028] A grid model can be contained on a single server, a server complex provided by a single entity (e.g., a cloud computing provider), or a federation of servers provided by multiple entities (e.g., a grid operator or a provider of operators). Similarly, simulations can be performed using one or more servers operated by or under the control of one or more computing providers.
[0029] To perform the simulation, as further described below, the system can access a power grid model encompassing multiple regions. When the system receives a request from a user to run a simulation, it can determine the user's access permissions and only grant access to the regions where the user has been granted permission. Once the system has determined the access permissions, it can perform the simulation using simulation parameters provided by the user (e.g., minimum load, maximum load, etc.). Although the user may only have access to a limited number of regions, simulations can be performed on a larger scale to include regions of the model that the user cannot access, for example, to improve the overall accuracy of the simulation results. For example, the simulation can be performed on the complete model. Once the system has completed the simulation, it can provide outputs to the user, where the outputs depend on the user's access permissions. For example, some users may only have access to simulation results for their own region (e.g., the user is an agent of the operator in that region), while other users (e.g., a regulatory agency) may have access to detailed operation of all components in all regions.
[0030] Figure 1 A block diagram is shown for providing an environment for accessing a controlled power grid model. Environment 100 includes a power grid model management system 101 (referred to as "Power Grid Management System 101"), client devices 195, and a data communication network 105, such as a local area network (LAN), a wide area network (WAN), the Internet, a mobile network, or a combination thereof. Data communication network 105 connects client devices 195 to the power grid management system 101.
[0031] Client device 195 is an electronic device capable of communicating via network 105. Example client device 195 includes personal computers, server computers, mobile communication devices (e.g., smartphones and / or tablets), and other devices that can send and receive data via network 105. Client device 195 may also include digital media devices, such as streaming devices that are plugged into a television or other display to stream video to a television or virtual reality system.
[0032] The power grid management system 101 may include a user interaction engine 110, a region access determination engine 115, a region interaction engine 120, a simulation engine 125, a simulation result provision engine 130, and a data storage library such as an access control storage library 180 and a power grid model storage library 190.
[0033] User interaction engine 110 can receive user access requests (referred to as "requests" for brevity) from users on client device 195 via network 105. The user interaction engine can provide an application programming interface (API) configured to receive access requests via network 105, and the API can take various forms, such as web service APIs and remote procedure call APIs.
[0034] A request can specify various information describing the operation a user requests to perform, as well as information associated with the user issuing the request. For example, a request may include the user's user identifier, one or more areas on which the operation is to be performed, one or more operations, the user group the user is assigned to, authorization information (e.g., password or authorization token), etc. When the request is for updating components of a power grid model, the request can specify one or more devices to be updated and the requested update. The request can also specify changes to be applied to all relevant components (e.g., increasing a value by 10%). Updates can be specified as values (e.g., a specific voltage or current), as changes (e.g., an increase of 10%), or using other specification techniques. Requests, including any authorization information, can be encrypted, for example, by using a Secure Hypertext Transfer Protocol (HTTP) to provide security.
[0035] In some implementations, the request may include a user identifier, and the system may use the user identifier to determine the user group to which it is assigned. For example, the power grid management system 101 may include or be coupled to a database that stores user groups assigned user identifiers. In some implementations, instead of including the user identifier in the request, or in addition to including the user identifier in the request, the user identifier may be implicit, for example, obtained from a session identifier associated with communication between the client device 195 and the power grid management system 101. For example, a user may log in to the power grid management system 101 by providing a user identifier and password, and the request provided through that session may be associated with the user identifier provided at login.
[0036] The area access determination engine 115 can accept access requests from the user interaction engine 110 and determine whether the request is authorized to access the power grid model, and if so, determine which areas of the power grid model are authorized to access. The area access determination engine 115 can use access control entries stored in the access control store 180.
[0037] Access control entries stored in the access control store 180 can describe the access permissions for user groups (where an individual user can be considered a group of users) of the system. Access control entries can describe what access permissions are granted for one or more zones for a group of users. Access control entries can also specify default settings, such as any user group can read (but cannot change) data about any zone. In another example, the default setting could specify that access is not allowed unless the access control entry explicitly authorizes such access. Access permissions can include, for example, reading, modifying, deleting, and using in the simulation.
[0038] In some implementations, access control entries can specify access permissions for a group of users sharing a role or set of roles, where a role can be designated as a user group. For example, an access control entry can specify that any user with the "Region Administrator" role can perform any action on the data of a region (i.e., be granted all permissions). The power grid management system 101 may include a store that maps user identifiers to roles.
[0039] Access control entries can be represented in various formats. For example, an access permission can be represented as a tuple, such as {UserGroup, Region, Permission}. In another example, an access control entry can be represented as a conditional statement, such as "if ((UserGroup==Group1) AND (Region==Region7)) THENPermission=READ", which can be interpreted as the UserGroup, named Group1, having read permissions for the data associated with the Region, named Region7.
[0040] Permissions can specify the operations that a user group can perform on a region. As mentioned above, permissions can include read, modify, delete, add, simulate, etc. Default permissions can also be configured. For example, the power grid management system 101 can be configured to allow all user groups to perform simulations on all regions unless the access permission explicitly denies access. Access permissions can also include negative permissions, where the user group is explicitly denied permission. For example, an access permission can specify {UseGroup1, Region3, NOT_READ} to indicate that members of UseGroup1 cannot read the data describing Region3.
[0041] A license can further specify whether simulation results are available and the granularity at which they can be provided. For example, a license could specify "All," instructing the user group to view simulation results at any level of detail. In another example, a license could specify "Boundary," instructing the user group to view simulation results only at the boundaries of a region, not for components within that region. As mentioned above, a boundary can be defined as an electrical component in the region directly coupled to at least one electrical component not in that region. In yet another example, a license can specify the temporal granularity of the simulation. For example, a license could specify that the user group can see all intermediate results for a region, only results upon completion of the simulation, a configured number of intermediate results (e.g., one intermediate result, two intermediate results, etc.), etc.
[0042] The term "area" can refer to a collection of power grid assets, and various techniques can be used to specify these assets. For example, an area can be a spatial region defined by fixed boundary points (such as geographic coordinates) or by identifiers (such as identifiers for spaces or other areas used for ships, aircraft, or other moving or stationary objects). In yet another example, an area can be defined by characteristics that can change over time, such as an area to which a given power provider supplies electricity. In yet another example, an area can describe the topology of power grid assets, such as all assets connecting two feeders. A combination of methods can also be used to specify an area, such as all assets between two feeders within the geographic boundaries of a particular town. Other techniques for identifying areas can also be used.
[0043] In some implementations, regions can be identified by tokens mapped to regions by the power grid management system 101. For example, the system can convert the token "California" to a spatial region in California and "Boulder,CO" to a spatial region in Boulder, Colorado.
[0044] The area access determination engine 115 can provide the area interaction engine 120 with a description of the area's permissible access. The area interaction engine 120 can obtain data describing the power grid from the power grid model storage 190 and update the data based on the access requests and access control information provided by the area access determination engine 115.
[0045] The power grid model repository 190 can store data describing the power grid. The power grid can be an electrical network that transmits electricity to loads such as residential and commercial buildings, and the power grid model can include models of real-world power grid assets. The power grid model can include a topological representation of the power grid, electrical specifications of power grid components, and empirical operating characteristics. As mentioned above, the grid model can be specific to a particular region (e.g., a particular city) or electrical area (e.g., a specific power feeder). The power grid model can also optionally include one or more previously proposed models of interconnections with the power grid, such as proposed interconnections that have not yet been constructed. The detail of the power grid model is sufficient to allow for accurate simulation and representation of the steady-state, dynamic, and transient operation of the power grid.
[0046] In some examples, the power grid model may include complete electrical models of the feeders to which the proposed interconnections will connect. For example, the power grid model may include high-resolution electrical models of one or more distribution feeders. The power grid model may include data models of, for example, substation transformers, distribution switches and reclosers, voltage regulation schemes such as tapped magnets or switched capacitors, network transformers, load transformers, inverters, generators, and various loads. The power grid model may include line models, such as electrical models of medium-voltage distribution lines. The power grid model may also include electrical models of stationary and switched line capacitors, as well as other power grid components and equipment.
[0047] A line model can include multiple segments that can represent interconnections between poles. In the case of underground lines, segments can represent interconnections between risers or underground connections such as transformers and meters. In some examples, the line model can be represented by equivalent inductors, resistors, and capacitors for the associated line lengths. In some examples, the line model can include models of mutual inductance between lines, capacitance between lines, and capacitance from line to ground. Line model attributes can be based on the type of connection and the type of conductor used. Line model attributes can also be based on construction details, such as whether the line is overhead or underground.
[0048] A power grid model can be calibrated using measured power grid data. Measured power grid data can include historical power grid operation data. Historical power grid operation data can be collected over a period of time, such as weeks, months, or years. In some examples, historical power grid operation data can be averaged historical operation data. For example, historical power grid operation data can include the electrical load of a substation during a specific hour of a year, which is an average over many years. In another example, historical power grid operation data can include the number of voltage violations on the power grid during a specific hour of a year, possibly averaged over many years or otherwise statistically represented.
[0049] In some examples, a power grid model may include assumptions. For instance, a power grid model may include measurement data from certain locations within the power grid and may exclude measurement data from other locations. The power grid model may use assumptions to interpolate grid operational data for locations where measurements are unavailable. Assumptions may be, for example, assumed ratios or relationships between loads at industrial locations of the power grid and residential locations, or assumptions about load growth due to climate change.
[0050] In some examples, a power grid model may include measurement data for certain time intervals (e.g., certain hours) and may exclude measurement data for other time intervals. The power grid model may use assumptions to estimate or interpolate power grid operating data for time intervals where measurements are not available. An assumption could be, for example, a hypothetical relationship between load at a particular location at night versus daytime. In another example, an assumption could be a hypothetical relationship between load at a particular location during one hour of a day in summer versus the same hour of a day in winter.
[0051] In some examples, a power grid model may include measurement data for certain characteristics (e.g., electrical loads) and may not include measurement data for other characteristics. Power grid models can use assumptions to estimate power grid operating data for characteristics whose measurements are not available. Assumptions may be, for example, assumed relationships between load and voltage at specific locations on the power grid.
[0052] In some examples, measurement data can be used to address and mitigate errors caused by assumptions in the power grid model. In some examples, the power grid model may include conservative values to replace missing or incomplete data. In some examples, the power grid model may use worst-case assumptions to perform worst-case analysis.
[0053] Data repositories such as the power grid model repository 190 and the access control repository 180 can be any suitable data storage system, such as a relational database, object database, file system, block storage, and / or a combination of data storage systems. Furthermore, although the data repositories are shown as being within the power grid management system 101, each data repository can be external to and coupled to the power grid management system 101.
[0054] The regional interaction engine 120 can provide the modified power grid model to the simulation engine 125, which can then use the modified power grid model to perform simulations and provide the simulation results to the simulation result providing engine 130.
[0055] The simulation results providing engine 130 can make simulation results available to the licensor. For example, the simulation results providing engine 130 can provide simulation results to client device 195 via network 105. In another example, the simulation results providing engine 130 can store simulation results in a repository, such as a relational database, object database, block storage, file system, and other suitable repositories. The simulation results providing engine 130 can also tailor the simulation results based on access permissions associated with user groups, as referenced... Figure 2 Further description.
[0056] Figure 2 This is a flowchart of an example process for providing access to a controlled power grid model. For convenience, process 200 will be described as being performed by a system for providing access to a controlled power grid model (e.g., Figure 1 The process is executed by a power grid management system 101, which is appropriately programmed to perform the process. The operation of process 200 can also be implemented as instructions stored on one or more computer-readable media, which may be non-transitory, and execution of the instructions by one or more data processing devices can cause one or more data processing devices to perform the operation of process 200. One or more other components described herein can perform the operation of process 200.
[0057] The system can obtain (205) a power grid model. In some implementations, the system can obtain the power grid model from a power grid model repository using techniques suitable for the repository. For example, if the power grid model repository is a relational database, the system can use Structured Query Language (SQL) operations to obtain the model. In another example, if the repository is a file system, the system can use file system operations to obtain the model. In yet another example, the repository may provide an API configured to provide a power grid model, and the system can use this API to obtain the power grid model.
[0058] The system can obtain a user access request, for example, through an API configured to accept user access requests. The API could be a web service API or a remote procedure call (RPC) interface, among other examples. The system can obtain the user access request when a user invokes the API and provides a request. In another example, the system can obtain a user access request by accepting a message containing the user access request transmitted via HTTP-S.
[0059] The system can determine (215) an accessible area. The system can determine the user group associated with the request and use the user group to determine the accessible area. In some implementations, the request can include a user group for the request. In some implementations, the request can include a user identifier, and the system can use the user identifier to determine the user group, for example, as referenced... Figure 1 As stated above.
[0060] The system can use user groups to determine accessible areas. The system can use data provided by the access control store to determine the areas and access permissions associated with the user groups determined from the request. For example, the system can query the access control store, provide user groups, and receive, in response, the areas that the user groups can access, and for each area, receive the permissions granted to the user groups for that area. In the case of multiple user groups provided and multiple responses provided by the access control store, the system can determine that the accessible areas comprise the union of the areas provided by the access control store, and for each such area, the permissions can be the union of the received permissions. The system can then grant (220) access to those accessible areas based on the permissions, as further described below.
[0061] In some cases, the system may receive (225) one or more region change requests. In some implementations, the change request can be included in the user access request received in operation 210. In some implementations, the user access request of operation 210 may be an emulation request, and the system may receive a region change request separate from the user access request of operation 210. In this case, the system may include an API, such as a web service API or RPC, configured to accept region change requests. In some implementations, the user access request of operation 210 may include both a region change request and an emulation request, and the system may receive the region change request from the user access request.
[0062] In some cases, the system will only receive the simulation parameters relevant to the simulation request (e.g., as described in reference operation 245), without receiving the change request. In this case, operations 225, 230, 235, and 240 can be omitted because the request only pertains to the simulation.
[0063] The system can determine (230) whether a change is permitted by comparing the access permissions of the user group's accessible area determined in operation 215 with the change request for the area determined from the area change request. For example, if the change request specifies an update to a component in the area (e.g., an update to the maximum voltage of a transformer), and the access permissions (e.g., determined based on information provided by the access control repository) specify that the user group requesting the change has update permissions for that area, the system can determine that the change is permitted. Conversely, if the access permissions do not specify that the user group requesting the change has update permissions for that area, the system can determine that the change is not permitted. If the change is permitted, the system can proceed to operation 240; if the change is not permitted, the system can proceed to operation 235.
[0064] The system may provide the user (235) with an access notification indicating that access has been denied. The access notification may include instructions that the user is not permitted to change the access. The system may use various techniques to provide the access notification, including sending a message to the management console, providing a failure code in response to an API call, and / or sending an email or text message, among others. Once the notification has been provided, the system may cease operation on the request because access has not been authorized. In some implementations, the system may return to operation 210 to obtain a new user access request. In some implementations, the system may cease operation.
[0065] The system can update the (240) power grid model. The request can specify one or more components to be updated and the updates to be performed, for example, as referenced... Figure 1 The system can apply updates to components of the power grid model specified in the request, for example, by changing values associated with components, adding one or more components, and / or removing one or more components.
[0066] The system can obtain (245) simulation parameters using various techniques. For example, simulation parameters can be included in a user access request. In another example, the system can provide an API that, when invoked by a user, allows the user to provide simulation parameters to the system.
[0067] Simulation parameters can include any data related to the simulation. For example, simulation parameters can include simulation changes to interconnects (e.g., adding components, removing components, changing connections between components, etc.), load parameters (e.g., the length, power, and number of loads on components such as distribution feeders), fault conditions (e.g., a component becomes inoperable), the time to perform the simulation, the type of simulation to perform (e.g., power flow, positive sequence, etc.), etc.
[0068] The system can use input from the user to perform a simulation of the (250) power grid model, which may include simulation parameters obtained in operation 245. The simulation parameters may be applied to at least one region in a subset of user-accessible regions that the system has determined (e.g., in operation 215).
[0069] Simulations can be performed using various subsets of the power grid model. For example, simulations can be performed on areas that the user does not have permission to access, view, and / or modify. Alternatively, the entire power grid model can be used for simulations, as grid behavior / operation in other connected parts of the grid may affect operation in areas of the power grid model that the user is allowed to access. Therefore, in some implementations, the user can use areas of the power grid model to perform simulations even if access to those areas has not yet been granted to the user. The simulation can produce simulation results including electrical values of components in areas of the power grid model within a subset and electrical values of components in at least one additional area, as further described below.
[0070] Simulations can be based on, for example, root mean square (RMS), power flow, positive sequence, and / or time-series voltage transient analysis. In some implementations, the system may simulate only the modified grid model that exists after all proposed interconnections have been applied. In some implementations, the system may simulate each of several modified grid models created as the proposed interconnections are applied sequentially (e.g., included in the simulation parameters). This simulation approach provides an impact assessment for each stage, capturing temporary benefits and risks that may not be expressed in the final impact assessment. In some implementations, the system may simulate a subset of several modified grid models created as the proposed interconnections are applied sequentially.
[0071] For each simulation, the simulation system can perform a comprehensive interconnection assessment using a reduced input dataset. The interconnection simulation system is capable of performing rapid simulations of various dynamic grid operating conditions over the simulation period, for example, based on historical grid data. Simulations can include predicted operating conditions at discrete time intervals (e.g., every hour of the simulation year).
[0072] The simulation system can simulate how interconnections and other changes to the power grid affect the grid under various predicted load conditions, including variations due to factors such as seasonal effects, calendar effects, and time-of-day effects. The system can simulate the impact of interconnections at multiple locations within the power grid. It can also simulate various electrical operating characteristics, such as current, voltage, power factor, and load, at multiple locations over extended simulation periods.
[0073] In one example, the amount of data processed during each simulation can depend on the size and frame of the distribution feeder and any suggested interconnections included in the simulation parameters. The simulation can analyze the predicted impact on all connections of the affected distribution feeder and all components of the affected distribution feeder. Therefore, the complexity of the simulation can vary depending on the configuration of the distribution feeder in the area included in the simulation.
[0074] Simulations can vary depending on the length, power, and number of loads on the distribution feeder. Typical distribution feeder lengths can range from approximately one mile to ten miles. Typical distribution feeder power ranges from approximately one megawatt to ten megawatts. The number of loads connected to the feeder can range from hundreds to thousands of residential loads. In some cases, there may also be as few as dozens of commercial or industrial loads, or as many as hundreds.
[0075] The system can use various techniques to provide (255) simulation output. For example, the system can provide simulation output to a storage system such as a relational database, file system, or block storage system. In another example, the system can provide simulation results to a web server. In yet another example, in response to a request to perform a simulation, the system can provide simulation output or a reference to a location containing the simulation output.
[0076] In some implementations, the system may provide simulation output based on access permissions associated with a user account. The system may determine the access permissions associated with a user account, for example, by using the user account to determine the user group associated with the user account, and using the user group to determine the access permissions. See reference... Figure 1 The access permission may include the granularity level at which simulation results can be provided to the user.
[0077] The system can adjust simulation results to a permissible level of granularity. For example, if the access license specifies that the user can only receive boundary results for region R, the system can provide simulation results at the boundaries and not further simulation results. In another example, if the access license specifies that the user can only receive the final result and not intermediate results, the system can only provide the final result. In yet another example, the user might be authorized to view only a metric, such as the maximum current at an electrical component in the region, and the system can only provide that maximum current. In yet another example, the user might be allowed to see only coarse results, such as whether the simulation produced an error condition (e.g., the maximum voltage exceeded a threshold), and the system can only provide an indication of whether such an error condition occurred. Typically, access licenses can specify any restrictions on the simulation results provided to the user.
[0078] In some cases, the request will specify an update to the power grid model and will not include a request to perform a simulation. In this case, operations 245, 250, and 255 can be omitted for the request, and the system can perform operations 225, 230, and 235.
[0079] Figure 3 This is a block diagram of an example computer system 300 that can be used to perform the operations described above. System 300 includes a processor 310, memory 320, storage device 330, and input / output device 340. Each of components 310, 320, 330, and 340 may be interconnected, for example, using a system bus 350. Processor 310 is capable of processing instructions for execution within system 300. In one embodiment, processor 310 is a single-threaded processor. In another embodiment, processor 310 is a multi-threaded processor. Processor 310 is capable of processing instructions stored in memory 320 or on storage device 330.
[0080] Memory 320 stores information within system 300. In one embodiment, memory 320 is a computer-readable medium. In one embodiment, memory 320 is a volatile memory cell. In another embodiment, memory 320 is a non-volatile memory cell.
[0081] Storage device 330 provides high-capacity storage for system 300. In one embodiment, storage device 330 is a computer-readable medium. In various other embodiments, storage device 330 may include, for example, a hard disk drive, an optical disk drive, a storage device shared by multiple computing devices over a network (e.g., a cloud storage device), or some other high-capacity storage device.
[0082] Input / output device 340 provides input / output operations for system 300. In one embodiment, input / output device 340 may include one or more of a network interface device (e.g., an Ethernet card), a serial communication device (e.g., an RS-232 port), and / or a wireless interface device (e.g., an 802.11 card). In another embodiment, the input / output device may include a driver device configured to receive input data and send output data to other input / output devices (e.g., a keyboard, printer, and display device 360). However, other embodiments, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc., may also be used.
[0083] Although already Figure 3 An example processing system is described herein, but implementations of the subjects and functional operations described herein may be implemented in other types of digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or combinations thereof.
[0084] Embodiments of the subject matter and functional operation described in this specification may be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or combinations thereof. Embodiments of the subject matter described in this specification may be implemented using one or more modules of computer program instructions encoded on a computer-readable medium for execution by or control of the operation of a data processing apparatus. The computer-readable medium may be a manufactured product, such as a hard disk drive in a computer system or an optical disk sold through retail channels, or an embedded system. The computer-readable medium may be separately acquired and later encoded with one or more modules of computer program instructions, such as by delivering one or more modules of computer program instructions over a wired or wireless network. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination thereof.
[0085] The term "data processing apparatus" encompasses all means, devices, and machines used for processing data, including, for example, programmable processors, computers, or multiple processors or computers. In addition to hardware, the apparatus may also include code that creates the execution environment for the computer program in question, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, runtime environments, or combinations thereof. Furthermore, the apparatus can employ a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructure.
[0086] A computer program (also known as a program, software, software application, script, or code) can be written in any suitable programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any suitable form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinating files (e.g., a file storing one or more modules, subroutines, or code sections). A computer program can be deployed on a single computer or located at a single site or distributed across multiple sites and interconnected by a communication network.
[0087] The processes and logic flows described in this specification can be executed by one or more programmable processors that execute one or more computer programs to perform functions by manipulating input data and generating outputs. The processes and logic flows can also be executed by dedicated logic circuitry, and the device can be implemented as dedicated logic circuitry, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits).
[0088] Processors suitable for executing computer programs include, for example, dedicated microprocessors. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or operatively coupled thereto to receive data from or transfer data to, or both. However, a computer does not need to have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM (erasable programmable read-only memory), EEPROM (electrically erasable programmable read-only memory), and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CDR OM and DVD-ROM disks. Processors and memory can be supplemented by dedicated logic circuits or incorporated into dedicated logic circuits.
[0089] In this specification, the term "engine" is used broadly to refer to a software-based system, subsystem, or process programmed to perform one or more specific functions. Typically, an engine will be implemented as one or more software modules or components installed on one or more computers in one or more locations. In some cases, one or more computers will be dedicated to a particular engine; in other cases, multiple engines may be installed and run on the same one or more computers.
[0090] To provide interaction with the user, embodiments of the subject matter described herein can be implemented on a computing device capable of providing information to the user. Information can be provided to the user in any sensory format, including visual, auditory, tactile, or a combination thereof. The computing device can be coupled to a display device, such as an LCD (Liquid Crystal Display) device, an OLED (Organic Light Emitting Diode) display device, another monitor, a head-mounted display device, etc., for displaying information to the user. The computing device can be coupled to an input device. Input devices can include touchscreens, keyboards, and pointing devices, such as mice or trackballs, through which the user can provide input to the computing device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any suitable form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any suitable form, including acoustic, voice, or tactile input.
[0091] A computing system may include clients and servers. Clients and servers are typically geographically distant from each other and typically interact via a communication network. The client-server relationship is established by means of computer programs running on respective computers and having a client-server relationship with each other. Embodiments of the subject matter described in this specification can be implemented in a computing system that includes back-end components (e.g., as a data server), or middleware components (e.g., an application server), or front-end components (e.g., a client computer with a graphical user interface or web browser through which a user can interact with an implementation of the subject matter described in this specification), or any combination of one or more such back-end, middleware, or front-end components. Components of the system may be interconnected via any suitable form or medium of digital data communication (e.g., a communication network). Examples of communication networks include local area networks (“LANs”) and wide area networks (“WANs”), interconnected networks (e.g., the Internet) and peer-to-peer networks (e.g., self-organizing peer-to-peer networks).
[0092] In addition to the embodiments described above, the following embodiments are also innovative:
[0093] Example 1 is a computer-implemented method comprising: accessing a power grid model representing electrical specifications of a power grid and power grid components, the power grid model including multiple regions; in response to an access request from a user, providing access to only a subset of regions based on access permissions associated with a user account, wherein the user is not allowed access to other regions of the power grid model outside the subset; performing a simulation of the power grid model using input from the user, the input indicating simulation parameters for at least one region within the subset, the simulation being performed on the regions of the power grid model within the subset and at least one additional region not within the subset to produce simulation results, the simulation results including electrical values of components in the regions of the power grid model within the subset and electrical values of components in at least one additional region; and providing only the simulation results of the electrical values of components in the regions of the power grid model within the subset as output.
[0094] Example 2 is the method as described in Example 1, further comprising: receiving at least one change to the power grid model from the user; and updating the power grid model to incorporate the at least one change in response to verifying that the at least one change is associated with at least one region in a subset of regions of the power grid model.
[0095] Example 3 is the method according to Example 1, wherein the region is a spatial region defined by fixed boundary points.
[0096] Example 4 is the method described in Example 3, wherein the fixed boundary point is a geographic coordinate.
[0097] Example 5 is the method according to Example 1, wherein the region is a spatial region defined by an identifier.
[0098] Example 6 is the method according to Example 1, further comprising: providing access to only a subset of the simulation results based on access permissions associated with the user account.
[0099] Example 7 is the method according to Example 6, wherein the subset of results includes simulation results at the boundary of one of the multiple regions of the power grid model.
[0100] Example 8 is a system comprising: at least one processor; and a data storage device coupled to the at least one processor, the data storage device having instructions stored thereon, the instructions causing the at least one processor to perform a method according to any one of Examples 1-7 when executed by the at least one processor.
[0101] Example 9 is one or more non-transitory computer-readable storage media storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method according to any one of Examples 1-7.
[0102] Example 10 is a computer-implemented method comprising: obtaining a power grid model representing electrical specifications of a power grid and power grid components, the power grid model including multiple regions; in response to an access request from a user, providing access to only a subset of regions based on access permissions associated with a user account, wherein the user is not allowed access to other regions of the power grid model outside the subset; receiving at least one change to the power grid model from the user; and updating the power grid model to incorporate the at least one change in response to verifying that the at least one change is associated with at least one region in the subset of regions of the power grid model.
[0103] Example 11 is the method according to Example 10, further comprising: determining a user group associated with the user; determining access permissions for the user group; and using the access permissions to determine that at least one change is permitted.
[0104] Example 12 is the method according to Example 10, further comprising: determining a user group associated with the user; determining access permissions for the user group; and determining that the access permissions do not allow the at least one change.
[0105] Example 13 is the method of Example 12, further comprising: in response to determining that access permission does not allow at least one change, providing the user with an access notification indicating that access is denied.
[0106] Example 14 is a system comprising: at least one processor; and a data storage device coupled to said at least one processor, said data storage device having instructions stored thereon, said instructions causing said at least one processor to perform a method according to any one of Examples 10-13 when executed by said at least one processor.
[0107] Example 15 is a non-transitory computer-readable storage medium containing one or more storage instructions that, when executed by at least one processor, cause the at least one processor to perform a method according to any one of Examples 10-13.
[0108] While this specification contains numerous implementation details, these should not be construed as limiting the scope of the claims or potentially claimed protections, but rather as descriptions of features specific to particular embodiments of the disclosed subject matter. Certain features described in the context of individual embodiments in this specification may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. Furthermore, although features may be described above as functioning in certain combinations and even initially claimed in this way, in some cases one or more features from the claimed combination may be removed from the combination, and the claimed combination may be for sub-combinations or variations thereof. Therefore, unless expressly stated otherwise, or unless expressly stated otherwise by knowledge of ordinary skill in the art, any feature of the above embodiments may be combined with any other feature of the above embodiments.
[0109] Similarly, although operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order shown or sequentially, or to perform all of the shown operations to achieve the desired result. In some cases, multitasking and / or parallel processing may be advantageous. Furthermore, the separation of the various system components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0110] Therefore, specific embodiments of the invention have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired result.
Claims
1. A computer-implemented method comprising: accessing a power grid model, the power grid model representing electrical specifications of a power grid and power grid components, the power grid model comprising a plurality of regions; in response to an access request from a user, providing access to only a subset of the regions based on access permissions associated with the user account, wherein the user is not permitted to access other regions of the power grid model outside of the subset; performing a simulation of the power grid model using input from the user, the input indicating simulation parameters for at least one region in the subset, the simulation being performed on the regions of the power grid model in the subset and at least one additional region not in the subset to produce simulation results, the simulation results comprising electrical values of components in the regions of the power grid model in the subset and electrical values of components in the at least one additional region; and providing only the simulation results of the electrical values of the components in the regions of the power grid model within the subset as output.
2. The computer-implemented method of claim 1, further comprising: receiving at least one change to the power grid model from the user; and in response to verifying that the at least one change is associated with at least one region in the subset of regions of the power grid model, updating the power grid model to incorporate the at least one change. The regions are spatial regions defined by fixed boundary points.
3. The computer-implemented method of claim 1, wherein, The fixed boundary points are geographic coordinates.
4. The computer-implemented method of claim 3, wherein, The regions are spatial regions defined by identifiers.
5. The computer-implemented method of claim 1, wherein, 6. The computer-implemented method of claim 1, further comprising: based on the access permissions associated with the user account, providing access to only a subset of results of the simulation results. The subset of results includes simulation results at a boundary of one of the regions of the power grid model.
7. The computer-implemented method of claim 6, wherein, 8. A system comprising: at least one processor; and a data storage device coupled to the at least one processor, the data storage device having instructions stored thereon that, when executed by the at least one processor, cause the at least one processor to perform the method of any of claims 1-7.
9. One or more non-transitory computer-readable storage media storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method of any of claims 1-7.
10. A computer-implemented method comprising: obtaining a power grid model representing electrical specifications of a power grid and power grid components, the power grid model comprising a plurality of regions; in response to an access request from a user, providing access to only a subset of the regions based on access permissions associated with the user account, wherein the user is not permitted to access other regions of the power grid model outside of the subset; receiving at least one change to the power grid model from the user; and in response to verifying that the at least one change is associated with at least one region in the subset of regions of the power grid model, updating the power grid model to incorporate the at least one change.
11. The computer-implemented method of claim 10, further comprising: determining a user group associated with the user; determining access permissions for the user group; and using the access permissions to determine that the at least one change is permitted. 12. The computer-implemented method of claim 10, further comprising: determining a user group associated with the user; determining access permissions for the user group; and determining that the access permissions do not allow the at least one change.
13. The computer-implemented method of claim 12, further comprising: in response to determining that the access permissions do not allow the at least one change, providing an access notification to the user indicating that access is denied.
14. A system comprising: at least one processor; and a data storage device coupled to the at least one processor, the data storage device having stored thereon instructions that, when executed by the at least one processor, cause the at least one processor to perform the method of any of claims 10-13.
15. One or more non-transitory computer-readable storage media storing instructions that, when executed by at least one processor, cause the at least one processor to perform the method of any of claims 10-13.