Patent Publication Number: US-10318656-B2

Title: Systems and methods for optimizing component placement in a battery design

Description:
GOVERNMENT CONTRACTS 
     The invention described herein was made in the performance of work under NASA Contract No. NNK14MA75C and is subject to the provisions of Section 305 of the National Aeronautics and Space Act of 1958 (72 Stat. 435: 42U.S.C.2457.) 
    
    
     BACKGROUND 
     Currently, large-scale batteries can be construed of individual battery cells and electrical components coupled in various electrical arrangements. The large-scale batteries can be formed of modular sub-units consisting of commercial off-the-shelf (COTS) battery cells. The approach of using small cells in large batteries results in a total cell count of hundreds or thousands of cells in the battery. Battery performance, however, can be affected due to variations in individual cell and other battery component performance. 
     SUMMARY 
     Aspects of the present disclosure concern a method that includes determining operational parameters of an inventory of components to be included in a battery. The components can include storage components and electrical components. The method also includes generating a system of equations that describe suitable combinations of components in locations in a battery design layout for the battery, the system of equations being generated based at least partially on rules and constraints. Further, the method includes analyzing the system of equations using integer optimization. The integer optimization can optimizes, based at least partially on the operational parameters, one or more objective functions in the system of equations to determine at least one solution for the battery design layout, and the at least one solution can include a set of the components for the locations in the battery design layout for the battery. The method also includes providing, via an interface, the at least one solution to a user. 
     Additional aspects of the present disclosure concern a system that includes one or more memory devices storing instructions, and one or more processors coupled to the one or more memory devices and configured to execute the instructions to perform a method. The method includes determining operational parameters of an inventory of components to be included in a battery. The components can include storage components and electrical components. The method also includes generating a system of equations that describe suitable combinations of components in locations in a battery design layout for the battery, the system of equations being generated based at least partially on rules and constraints. Further, the method includes analyzing the system of equations using integer optimization. The integer optimization can optimizes, based at least partially on the operational parameters, one or more objective functions in the system of equations to determine at least one solution for the battery design layout, and the at least one solution can include a set of the components for the locations in the battery design layout for the battery. The method also includes providing, via an interface, the at least one solution to a user. 
     Additional aspects of the present disclosure concern a non-transitory computer readable medium storing instructions for causing one or more processors to perform a method. The method includes determining operational parameters of an inventory of components to be included in a battery. The components can include storage components and electrical components. The method also includes generating a system of equations that describe suitable combinations of components in locations in a battery design layout for the battery, the system of equations being generated based at least partially on rules and constraints. Further, the method includes analyzing the system of equations using integer optimization. The integer optimization can optimizes, based at least partially on the operational parameters, one or more objective functions in the system of equations to determine at least one solution for the battery design layout, and the at least one solution can include a set of the components for the locations in the battery design layout for the battery. The method also includes providing, via an interface, the at least one solution to a user. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  illustrates an example of a design environment and computer system that includes a battery design tool, according to various aspects of the present disclosure. 
         FIG. 2  illustrates an example of a process of designing a battery, according to various aspects of the present disclosure. 
         FIGS. 3A-3C  illustrate examples of user interfaces for communicating with the battery design tool, according to various aspects of the present disclosure. 
         FIGS. 4A and 4B  illustrate examples of a design layout for a battery, according to various aspects of the present disclosure. 
         FIG. 5  illustrates an example of a hardware configuration for a computer device, according to various aspects of the present disclosure. 
         FIG. 6  illustrates an example of an application of the battery design tool, according to various aspects of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     For simplicity and illustrative purposes, the principles of the present teachings are described by referring mainly to examples of various implementations thereof. However, one of ordinary skill in the art would readily recognize that the same principles are equally applicable to, and can be implemented in, all types of information and systems, and that any such variations do not depart from the true spirit and scope of the present teachings. Moreover, in the following detailed description, references are made to the accompanying figures, which illustrate specific examples of various implementations. Logical and structural changes can be made to the examples of the various implementations without departing from the spirit and scope of the present teachings. The following detailed description is, therefore, not to be taken in a limiting sense and the scope of the present teachings is defined by the appended claims and their equivalents. 
       FIG. 1  illustrates a design environment  100  in which a battery layout can be tested and determined, according to aspects of the present disclosure. While  FIG. 1  illustrates various components contained in the design environment  100 ,  FIG. 1  illustrates one example of a design environment and additional components can be added and existing components can be removed. 
     As illustrated in  FIG. 1 , the design environment  100  includes a computer system  102 . The design environment  100  can represent the computer systems and network hardware of public or private entities, such as governmental agencies, individuals, businesses, partnerships, companies, corporations, etc., utilized to support the entities. The computer system  102  can be any type of conventional computer systems that is operating in the design environment  100  or supporting the design environment  100 . For example, the computer system  102  can include various types of servers, such as file servers, web servers, application servers, database servers, email servers and the like, that provide services within the design environment  100 . Likewise, for example, the computer system  102  can include laptop computers, desktop computers, tablet computers, mobile phones, and the like used by the personnel of the entities. 
     Additionally, for example, the design environment  100  includes other hardware and computer systems that support the design environment  100 . For example, the design environment  100  can include gateways, routers, wireless access points, firewalls, and the like that support any type of communications networks to allow the computing systems in the design environment  100  to communicate. In any of the examples, the computer systems, including the computer system  102 , in the design environment  100  include hardware resources, such as processors, memory, network hardware, storage devices, and the like, and software resources, such as operating systems (OS), application programs, and the like. 
     According to aspects of the present disclosure, the computer system  102  is configured to execute a battery design tool  104 . The battery design tool  104  is configured to screen and match components, for example, battery cells  110  and electrical components  112 , in a battery design layout  122  that includes multiple battery cells and electrical components. The electrical components  112  may include a plurality of one or more of fuses, pass transistors, diodes, thermosensors, and an indicator. The battery design tool  104  is configured to determine a set of constraints and objective functions that represent the battery design layout  122  and apply operational parameters of the component, the set of constraints, and objective function to one or more integer optimization algorithms or solvers. Utilizing the one or more integer optimization algorithms or solvers, the battery design tool  104  can determine a solution or a battery build  124  for the battery design layout  122  that optimizes the placement of individual components in a battery  126 . 
     In aspects, the battery design tool  104  is configured as a software program that is capable of being stored on and executed by the computer system  102 . The battery design tool  104  can be written in a variety of programming languages, such as JAVA, C++, Python code, Visual Basic, hypertext markup language (HTML), extensible markup language (XML), and the like to accommodate a variety of operating systems, computing system architectures, etc. 
     The battery design tool  104  is configured to operate, at least partially, under the control of a user  106 . To receive input and output results to the user  106 , the battery design tool  104  is configured to generate and provide a user interface  108 . The user interface  108  can be any type of command line and/or graphical user interface (GUI) that allows the user  106  to interact with the battery design tool  104 . The battery design tool  104  is configured to provide, via the user interface  108 , controls, forms, reports, etc., to allow the user  106  to interact with the battery design tool  104  and perform the processes described herein. 
     In aspects, the operational parameters utilized by the battery design tool  104  can include any information and metrics that describe an actual operational performance of the components, e.g., the battery cells  110  and the electrical components  112 . For example, the operational parameters of the battery cells can include capacity, impedance, ampere-hour rating of the battery cell, internal resistance of the battery, the open circuit voltage of the battery, state of charge of the battery, etc. For example, the operational parameters of the electrical components can include equivalent resistance at different temperatures and impedance at different temperatures. In aspects, the battery design tool  104  can be configured to utilize operational parameters and data that is created, transmitted or stored in any format, for example, Arbin, Maacor, etc. 
     In some aspects, the operational parameters can be received from manufacturers of the components, e.g., theoretical operational parameters. In some aspects, the operational parameters can be determined by a third party or separate computer system and provided to the computer system  102  and the battery design tool  104 . In some aspects, the operational parameters can be determined by the computer system  102  and the battery design tool  104 . 
     For example, to determine the operational parameters, the computer system  102  can be coupled to testing equipment  114 . The testing equipment  114  can include electronics and circuits that place the battery cells  110  and the electrical components  112  under real-world operational conditions. The testing equipment  114  can also include one or more sensors that measure the operational parameters of the battery cells  110  and the electrical components  112  under the real-world operational conditions. Additionally, for example, the operational parameters can also include parameters calculated from the measured data such as IR trends and capacity trends. 
     In aspects, the computer system  102  includes a repository  116 . The repository  116  can be configured to store data utilized by the battery design tool  104 . For example, the repository  116  can store the operational parameters determined by the battery design tool  104  utilizing the testing equipment  114 . Likewise, for example, the repository  116  can store databases that include an inventory of components, e.g., the battery cells  110  and the electrical components  112 , and details of the battery cells  110  and the electrical components  112  such as identification of each of the battery cells  110  and electrical components  112  (e.g. serial number), the specifications of the battery cells  110  and the electrical components  112 , and theoretical operational parameters of the battery cells  110  and the electrical components  112  (e.g. manufacturer designated operational parameters). 
     In aspects, the computer system  102  can be coupled to one or more repositories  118  via one or more networks  120 . For example, the repositories  118  can be operated and maintained by manufactures of the components, e.g., the battery cells  110  and the electrical components  112 . The battery design tool  104  can be configured to retrieve, via a network  120 , details of the components, e.g., the battery cells  110  and the electrical components  112  from the repositories  118 . The network  120  can be any type of network whether public or private. The repository  118  can be any type of computer system that stores information about the components. 
       FIG. 2  illustrates one example of a process  200  for designing a battery from components, according to aspects of the present disclosure. While  FIG. 2  illustrates various stages that can be performed, stages can be removed and additional stages can be added. Likewise, the order of the illustrated stages can be performed in any order. 
     After the process begins, in  202 , the battery design tool  104  is initiated. For example, the user  106  can initiate execution of the battery design tool  104  on the computer system  102 . Once initiated, the battery design tool  104  can provide the user interface  108  to the user  106 . The user interface  108  can allow the user  106  to operate the battery design tool  104 . For example,  FIGS. 3A-3C  illustrate examples of the user interface  108  as discussed further below. 
     In  204 , the battery design tool imports an inventory of components. The components can include battery cells and electrical components such as fuses, resistors, capacitors, etc. The inventory of components can include an identification of the components and details of the components (e.g., operational parameters of the components). For example, the battery design tool  104  can communicate with the testing equipment  114  to determine the operational parameters of the components, e.g., the battery cells  110  and the electrical components  112 . Likewise, for example, the battery design tool  104  may have previously tested the components and can retrieve the operational parameters for the components that were previously tested. Likewise, the battery design tool  104  can retrieve (or can have previously retrieved) the theoretical operational parameters of the components, e.g., the battery cells  110  and the electrical components  112  (e.g. manufacturer designated operational parameters). 
     In an example, as further described below, the components in inventory can include both battery cells and fuses.  FIGS. 3A and 3B  illustrate examples of a user interface  300  for retrieving inventory and viewing the details of the components. 
     In  206 , the battery design tool optionally removes components from inventory that do not meet one or more criteria. For example, the battery design tool  104  can maintain one or more criteria for the operational parameters. The one or more criteria can be preset in the battery design tool  104 . Likewise, the one or more criteria can be selected or set by the user  106 , via the user interface  108 . The decision to perform the removal of inventory can be preset in the battery design tool  104 . Likewise, the decision to perform the removal of inventory can be selected or set by the user  106 , via the user interface  108 . 
     For example, the user  106  can instruct the battery design tool  104  to filter components from the inventory that do not have operational parameters within a certain criteria, for example, operational parameters within a certain standard deviation (e.g., 1, 2, or 3, sigmas). In response, the battery design tool  104  can remove the components from the inventory when determining the battery design layout. As illustrated in  FIG. 3A , the user  106  can specify the one or more criteria for removing components from the inventory. 
     In an example as further described below, the battery design layout can include both battery cells and fuses and the operational parameters can include: 
     1. Cell capacity, 
     2. Cell impedance, and 
     3. Fuse impedance. 
     In  208 , the battery design tool  104  determines a design layout for a battery. In aspects, the design layout for a battery can include a structure of the battery (e.g., a circuit diagram or configuration) that is composed of components, e.g., battery cells and electrical components, to provide a desired performance for the battery. The design layout for the battery can also include a number, type, location etc. of components that are to be included in the battery. For example, the circuit diagram can include components such as battery cells and electrical components in various electrical arrangements (e.g. series and parallel circuit configurations) to provide a desired performance for the battery (e.g. a desired output voltage, current, lifetime, etc.) 
     In some aspects, the battery design tool  104  can determine and utilize a design layout for the battery that is a complete design layout. For example, if the design layout is a complete design layout, the design layout can include the structure of the battery (e.g., a circuit diagram or configuration) and a complete specification (e.g., number, type, location etc.) of the components, e.g., the battery cells  110  and the electrical components  112 , to be included in the structure of the battery. 
     In some aspects, the battery design tool  104  can determine and utilize a design layout for the battery that is a partial design layout. For example, if the design layout is a partial design layout, the design layout can include a partial structure of the battery (e.g., a circuit diagram or configuration); a partial specification of the components, e.g., the battery cells  110  and the electrical components  112 , to be included in the structure of the battery; or combination thereof. For instance, in one example, the design layout can include the structure of the battery (e.g., a circuit diagram or configuration) and a specification (e.g., number, type, location, etc.) of battery cells to be included in the structure of the battery but not specify other electrical components to be included in the structure (e.g., fuses). In another example, the design layout can include the structure of the battery (e.g., a circuit diagram or configuration) and a specification (e.g., number, type, location, etc.) of electrical components to be included in the structure (e.g., fuses) to be included in the structure of the battery but not specify the battery cells. 
     In aspects, the user  106  can input or select, via the user interface  108 , a design layout for a battery. For example, the user  106  can input, via the user interface  108 , the structure of the battery (e.g., a circuit diagram or configuration), the specification (e.g., number, type, location etc.) of the components, e.g., the battery cells  110  and the electrical components  112 , to be included in the structure of the battery, or combination thereof. The user  106  can input, via the user interface  108 , a complete design layout for a battery, a partial design layout for the battery, or combination thereof. In some aspects, for example, the battery design tool  104  can provide, via the user interface  108 , a circuit design interface that allows the user  106  to design the structure for the battery and partially or completely provide the specification of the components. 
     Likewise, for example, the user  106  can select, via the user interface  108 , the structure of the battery (e.g., a circuit diagram or configuration), the specification (e.g., number, type, location etc.) of the components, e.g., the battery cells  110  and the electrical components  112 , to be included in the structure of the battery, or combination thereof. The user  106  can select, via the user interface  108 , a complete design layout for a battery, a partial design layout for the battery, or combination thereof. In one example, the user  106  can select the structure of the battery (e.g., a circuit diagram or configuration) and input either a partial or complete specification of the electrical components. For example, the battery design tool  104  can store one or more design layouts for different battery configurations, and the user  106  can select one or more of the stored design layouts. 
     In aspects, the user  106 , via the user interface  108 , can select a complete layout or a partial layout that was previously evaluated by the battery design tool  104  for completion, modification, or revision. In one example, the user may have previously input or selected a complete layout and generated a battery build. In another example, the user  106  may have previously input or selected a partial layout that included a specification (e.g., number, type, location, etc.) of battery cells to be included in the structure of the battery but not specify other electrical components to be included in the structure (e.g., fuses), and a battery build may have been generated by the battery design tool  104 . Likewise, in another example, the user  106  may have previously input or selected a partial layout that included a specification (e.g., number, type, location, etc.) of electrical components to be included in the structure (e.g., fuses) of the battery but not specify the battery cells, and a battery build may have been generated by the battery design tool  104 . In any example, the battery design tool  104  can store the complete or partial layout including the battery build determined by the battery design tool  104 . The user  106 , via the user interface  108 , can select the stored complete or the stored partial layout that was previously evaluated by the battery design tool  104  for completion or revision, for example, by inputting specification of the battery cells, electrical components, or combination thereof. This may allow the user to partially generate an optimized battery build for available components and complete the partial design layout once additional components are available, new components are manufactured, requirements of the battery change, etc. Likewise, this may allow the use to generate a complete optimized battery build and revise or modify the design layout at a later time, for example, as new components are manufactured, requirements of the battery change, etc. 
     In aspects, the user  106  can input requirements for the battery, and the battery design tool  104  can automatically generate a design layout, whether partial or complete, for a battery. 
       FIGS. 4A and 4B  illustrate an example of a design layout for a battery. For example, as illustrated in  FIG. 4A , a design layout  400  for a battery can consist of six (6) modules: Module 1  402 , Module 2  404 , Module 3  406 , Module 4  408 , Module 5  410 , and Module 6,  412 . The six modules can be coupled, for example, in series to produce a desired voltage and current for the battery. While illustrated as being coupled in series, the six modules can be coupled in any configuration, e.g., series, parallel, or combination thereof. 
     In this example, one or more components can be placed within a module at a specific location  414  and each location must be occupied. Each module can include a number of locations  414  arranged in rows and columns. For example, the Module 1  402  can include 72 locations  414  arranged in rows  416  and columns  418 , as illustrated in  FIG. 4B . In this example, the location can receive one or more components, e.g., a battery cell, a fuse, or combination thereof. In aspects, the locations  414  can be coupled in any arrangement, e.g., series, parallel, or combination thereof. In aspects, Module 1  402 , Module 2  404 , Module 3  406 , Module 4  408 , Module 5  410 , and Module 6,  412  can have the same arrangements and locations. Likewise, in aspects, Module 1  402 , Module 2  404 , Module 3  406 , Module 4  408 , Module 5  410 , and Module 6,  412  can have different arraignments and locations. 
     The location  414 , within a module, can be described as a row/column pairing. In this example, each row can be described as a virtual cell. For example, the locations in a row may be connected to form a virtual cell. Each location at a column location can be termed a cell. In this example, each cell can comprise a battery cell or a battery cell and a fuse. As will be discussed below, the following notation can be used to described the design layout 
     
       
         
           
               
               
               
             
               
                   
               
             
            
               
                 n 
                 Battery Cell 
                 1 . . . N 
               
               
                 f 
                 Fuse 
                 1 . . . F 
               
               
                 i 
                 Module 
                 1 . . . I 
               
               
                 j 
                 Virtual Cell (row) 
                 1 . . . J 
               
               
                 k 
                 Cell (in virtual Cell) 
                 1 . . . K 
               
               
                   
               
            
           
         
       
     
     In this example, as discussed above, the design layout  400  can be complete or partial. For example, the specification (location, type, number, etc.) of the battery cells and the specification (location, type, number, etc.) of the fuses may be included in the design layout  400 . In another example, the specification (location, type, number, etc.) of the battery cells may be included in the design layout  400 , but and the specification (location, type, number, etc.) of the fuses may not be included. In another example, the specification (location, type, number, etc.) of the fuses may be included in the design layout  400 , but and the specification (location, type, number, etc.) of the battery cells may not be included. 
     In  210 , weights for performance objectives and optimality gap or time limit are determined. The weights can be preset in the battery design tool  104 . Likewise, the user  106  can input, via the user interface  108 , the weights. The optimality gap or time limit can be preset in the battery design tool  104 . Likewise, the user  106  can input, via the user interface  108 , the optimality gap or time limit. 
     For example, the weights for the performance objectives can represent an importance of each performance objective in the battery design layout. The performance objectives can include a criteria that describes a desired performance of the battery design layout. The performance objectives can include, for example, minimize the difference in capacity across all virtual cells, minimize the difference in impedance within each virtual cell, and minimize the difference in impedance across all modules. 
     Likewise, for example, optimality gap can represent a gauge of solution (battery build) for the battery design layout. For example, optimality gap can provide a margin by which the battery design tool  104  will calculate a solution (battery build), e.g., within a percentage of the true optimal.  FIG. 3C  illustrate an example of a user interface  306  for inputting the objective weights and the optimality gap. The time limit can be an amount of time the battery design tool  104  will execute before providing a battery build. 
     In  212 , the battery design tool  104  generates a battery build for the battery design layout of the battery. The battery build can represent an identification of specific component or components to be used at each location of the battery design layout. The battery design tool  104  can be configured to utilize integer optimization to generate a battery build. The battery design tool  104  can generate a problem definition that is defined by one or more equations to be solved. The problem definition can include decision variables, constraint equations, and objective functions. The battery design tool  104  can be configured to apply the problem definition to an integer optimization algorithm or solver that finds a battery build within the optimality gap. 
     For example, in a battery, the capacity of a unit cell in a module can be defined by equation (1) and the capacity of a virtual cell can be defined by equation (2):
 
unit cell capacity=cell capacity  (1)
 
virtual cell capacity=Σunit cell capacity  (2).
 
     The impedance of a unit cell in a module can be defined by equation (3), the impedance of a virtual cell can be defined by equation (4), the impedance of a module can be defined by equation (5): 
     
       
         
           
             
               
                 
                   
                     unit 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     impendance 
                   
                   = 
                   
                     
                       cell 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       impedance 
                     
                     + 
                     
                       fuse 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       impedance 
                     
                   
                 
               
               
                 
                   ( 
                   3 
                   ) 
                 
               
             
             
               
                 
                   
                     1 
                     
                       virtual 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       cell 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       impedance 
                     
                   
                   = 
                   
                     ∑ 
                     
                       1 
                       
                         unit 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         impedance 
                       
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
             
               
                 
                   
                     module 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     impedance 
                   
                   = 
                   
                     ∑ 
                     
                       virtual 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       cell 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       impedance 
                     
                   
                 
               
               
                 
                   ( 
                   5 
                   ) 
                 
               
             
           
         
       
     
     To optimize placement of components within a battery design layout, the battery design tool  104  can define a decision variable, x nijk , given by: 
     
       
         
           
             
               
                 
                   
                     x 
                     nijk 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             1 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             if 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             cell 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             unit 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             n 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             is 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             assigned 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             to 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             position 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ijk 
                           
                         
                       
                       
                         
                           
                             0 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             otherwise 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   6 
                   ) 
                 
               
             
           
         
       
     
     If fuses are included, the battery design tool  104  can define a decision variable, x fijk , given by: 
     
       
         
           
             
               
                 
                   
                     x 
                     fijjk 
                   
                   = 
                   
                     { 
                     
                       
                         
                           
                             1 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             if 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             fuse 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             unit 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             f 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             is 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             assigned 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             to 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             position 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             ijk 
                           
                         
                       
                       
                         
                           
                             0 
                             ⁢ 
                             
                                 
                             
                             ⁢ 
                             otherwise 
                           
                         
                       
                     
                   
                 
               
               
                 
                   ( 
                   7 
                   ) 
                 
               
             
           
         
       
     
     The operational parameters of the components can be references by the following notation: 
     
       
         
           
               
               
             
               
                   
               
             
            
               
                 C n   
                 Capacity of a cell n 
               
               
                 Z n   
                 Impedance of cell n 
               
               
                 Z f   
                 Impedance of fuse f 
               
               
                   
               
            
           
         
       
     
     Constraints 
     To determine a battery build, the battery design tool  104  can determine a set of constraints. The constraints can be defined such that each component can only be placed in at most one position and each position needs to be occupied by a unit. The constraints can be given by the following equations:
 
Σ k=1   K Σ j=1   J Σ i=1   I   x   nijk ≤1∀ n   (8)
 
Σ n=1   N   x   nijk =1∀ i,j,k   (9)
 
Σ k=1   K Σ j=1   J Σ i=1   I   x   fijk ≤1∀ f   (10)
 
Σ f=1   F   x   fijk =1∀ i,j,k   (11)
 
     Constraint equations (8) and (9) can ensure exactly one battery cell can placed in one position, ijk and each specific battery cell can be only used at most once. Constraint equations (10) and (11) ensure exactly one fuse is placed in one position, ijk and each fuse can be only used at most once. The battery design tool  104  can determine constraint equations (10) and (11) battery design layout includes fuses. 
     To determine the battery build, the battery design tool  104  can determine different objective functions. The objective functions can represent various parameters to optimize in the battery build, subject to the constraints. In one example, the battery design tool  104  can determine the object functions: minimize the difference in capacity across all virtual cells, minimize the difference in impedance within each virtual cell, and minimize the difference in impedance across all modules. 
     Minimize the Difference in Capacity Across all Virtual Cells 
     In an example, the battery design tool  104  may determine to minimize the difference in capacity and to increase the overall capacity of the battery. The battery design tool  104  can determine a decision variable Y vc  that represents the minimum virtual cell capacity. To minimize the difference in capacity across all virtual cells, the battery design tool  104  can determine equation (12):
 
Maximize  Y   vc  
 
Σ k=1   K Σ n=1   N   C   n   *x   nijk   ≥Y   vc   ∀i,j   (12)
 
     Minimize the Difference in Impedance within Each Virtual Cell 
     The battery design tool  104  can determine to maintain an approximate impedance value within each virtual cell. In the example described herein, each virtual cell can include 9 cells, and the battery design tool  104  can determine to maintain an approximately similar impedance value between. The battery design tool  104  can determine two decision variables for each virtual cell: 
     
       
         
           
               
               
             
               
                   
               
             
            
               
                 mZ ij   
                 Minimum cell impedance of virtual cell ij 
               
               
                 MZ ij   
                 Maximum cell impedance of virtual cell ij 
               
               
                   
               
            
           
         
       
     
     The battery design tool  104  can determine the following equation to minimize the impedance difference:
 
Minimize Σ ij ( MZ   ij   −mZ   ij )
 
 mZ   ij ≤Σ n=1   N   Z   n   *x   nijk   ≤MZ   ij   ∀i,j   (13)
 
 mZ   ij ≤Σ n=1   N   Z   n   *x   nijk +Σ f=1   F   Z   f   *n   fijk   ≤MZ   ij   ∀i,j   (14)
 
     Either equation (6) or (7) can used depending on whether a fuse is included. 
     Minimize the Difference in Impedance Across all Modules 
     The battery design tool  104  can determine an equation minimize the difference in impendence across all modules. This can be similar to capacity except that the equation to calculate module impedance is nonlinear. The battery design tool  104  can determine a decision variable Y mod  which represents the minimum module impedance: 
     
       
         
           
             
               
                 
                   
                     Maximize 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       Y 
                       mod 
                     
                   
                   ⁢ 
                   
                     
 
                   
                   ⁢ 
                   
                     
                       
                         ∑ 
                         
                           j 
                           = 
                           1 
                         
                         J 
                       
                       ⁢ 
                       
                         1 
                         
                           
                             ∑ 
                             
                               k 
                               = 
                               1 
                             
                             K 
                           
                           ⁢ 
                           
                             1 
                             
                               
                                 
                                   ∑ 
                                   
                                     n 
                                     = 
                                     1 
                                   
                                   N 
                                 
                                 ⁢ 
                                 
                                   
                                     z 
                                     n 
                                   
                                   * 
                                   
                                     x 
                                     nijk 
                                   
                                 
                               
                               + 
                               
                                 
                                   ∑ 
                                   
                                     f 
                                     = 
                                     1 
                                   
                                   F 
                                 
                                 ⁢ 
                                 
                                   
                                     z 
                                     f 
                                   
                                   * 
                                   
                                     x 
                                     fijk 
                                   
                                 
                               
                             
                           
                         
                       
                     
                     ≥ 
                     
                       
                         Y 
                         mod 
                       
                       ⁢ 
                       
                         ∀ 
                         i 
                       
                     
                   
                 
               
               
                 
                   ( 
                   15 
                   ) 
                 
               
             
           
         
       
     
     In an example, the battery design tool  104  may desire to not use a nonlinear function, and the battery design tool  104  can determine a linear summation as an approximation:
 
Maximize  Y   mod  
 
Σ j=1   J (Σ n=1   N   Z   n   *x   nijk +Σ f=1   F   Z   f   *x   fijk )≥ Y   mod   ∀i   (16)
 
     Based on the three objective functions for each constraint and a weight for each constraint, the battery design tool  104  can determine an overall objective function given by:
 
Maximize  W   vc   *Y   vc   +W   mod   *Y   mod   −W   zrange *Σ ij ( MZ   ij   −mZ   ij )  (17),
 
wherein the formulation includes:
 
Σ k=1   K Σ j=1   J Σ i=1   I   x   nijk ≤1∀ n   battery cell allocation equation (8),
 
Σ n=1   N   x   nijk =1∀ i,j,k   battery cell allocation equation (9),
 
Σ k=1   k Σ j=1   J Σ i=1   I   x   fijk ≤1∀ f   fuse allocation equation (10),
 
Σ f=1   F   x   fijk =1∀ i,j,k   fuse allocation equation (11),
 
Σ k=1   K Σ n=1   N   C   n   *x   nijk   ≥Y   vc    ∀i,j   Min diff in capacity across virtual cells equation (12),
 
 mZ   ij ≤Σ n=1   N   Z   n   *x   nijk +Σ f=1   F   Z   f   *x   fijk   ≤MZ   ij    ∀i,j   Min diff in impedance within virtual cell equation (14), and
 
Σ j=1   J (Σ n=1   N   Z   n   *x   nijk +Σ f=1   F   Z   f   *x   fijk )≥ Y   mod    ∀i   Min diff in impedance across modules equation (16).
 
     Utilizing inventory of components and the operational parameters, the battery design tool  104  can execute an integer optimizer or solver using the overall objective function and formulation to determine a battery build. The integer optimizer or solver can apply different combination of components to optimize the overall object function. The battery design tool  104  can execute the integer optimizer or solver until the optimality gap is reached or the optimal solution is found. Similarly, the user may define a time limit for the solver to run, and the battery tool  104  will execute the optimizer or solver until the time limit is reached. 
     Based on the results of the integer optimization, the battery design tool  104  can select specific components in the inventory for the locations specified in the design layout for the battery to form the battery build. The battery build can denote the potential combination of components, e.g. battery cells and fuses, by associating the identification (e.g. serial number) of the potential components with location in the battery design layout. In some aspects, the battery design tool  104  can select one potential combination of components for the battery build. In some aspects, the battery design tool  104  can select multiple combinations of components for the battery build. 
     In  214 , the battery design tool  104  outputs battery build for the design layout of the battery. For example, in aspects, battery build can include the identification of components that may be potentially used for the locations of the battery design layout of the battery. In some aspects, the battery design tool  104  can output a list of identifications (e.g. serial numbers) of components and indication of the location in the battery design layout. In some aspects, the battery design tool  104  can output the design layout that includes identifications (e.g. serial numbers) of components recorded on the design layout. The battery design tool  104  can also store the battery build and the design layout. 
     In  216 , the battery design tool  104  can determine whether the design layout is to be modified or completed. For example, the user  106  may desire to modify the design layout and determine a new battery build. If so, the process may return to  208 . Likewise, for example, the design layout may be a partial design layout and the user  104  may desire to complete the design layout. If so, the process may return to  208 . Also, The battery design tool  104  can also store the battery build and the design layout for later evaluation and completion. 
     In the process  200 , the battery design tool  104  can perform the optimization for different inventory of components and different battery design layouts. In  218 , the battery design tool  104  can perform the matching process for different design layouts for the battery. In  218 , the design tool can determine whether to test a new design layout for the battery. If a new design layout is to be tested, the process  200  can return to  204 . In  218 , the battery design tool  104  can also determine whether to test a new inventory of components is to be tested. If a new inventory is to be tested, the process  200  can return to  204  and repeat the process of a new inventory of components. If a new design layout new inventory is not tested, the process can end. 
     The foregoing description is illustrative, and variations in configuration and implementation can occur to persons skilled in the art. For instance, the various illustrative logics, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein can be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor can be a microprocessor, but, in the alternative, the processor can be any conventional processor, controller, microcontroller, or state machine. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. 
     In one or more exemplary embodiments, the functions described can be implemented in hardware, software, firmware, or any combination thereof. For a software implementation, the techniques described herein can be implemented with modules (e.g., procedures, functions, subprograms, programs, routines, subroutines, modules, software packages, classes, and so on) that perform the functions described herein. A module can be coupled to another module or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, or the like can be passed, forwarded, or transmitted using any suitable means including memory sharing, message passing, token passing, network transmission, and the like. The software codes can be stored in memory units and executed by processors. The memory unit can be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art. 
     For example,  FIG. 5  illustrates an example of a hardware configuration for the computer system  102 . While  FIG. 5  illustrates various components contained in the computer device  500 ,  FIG. 5  illustrates one example of a computer device and additional components can be added and existing components can be removed. 
     The computer device  500  can be any type of computer device. As illustrated in  FIG. 5 , the computer device  500  can include one or more processors  502  of varying core configurations and clock frequencies. The computer device  500  can also include one or more memory devices  504  that serve as a main memory during the operation of the computer device  500 . For example, during operation, a copy of the software that supports the battery design tool  104  can be stored in the one or more memory devices  504 . The computer device  500  can also include one or more peripheral interfaces  506 , such as keyboards, mice, touchpads, computer screens, touchscreens, etc., for enabling human interaction with and manipulation of the computer device  500 . 
     The computer device  500  can also include one or more network interfaces  508  for communicating via one or more networks, for example the network  120 , such as Ethernet adapters, wireless transceivers, or serial network components, for communicating over wired or wireless media using protocols. The computer device  500  can also include one or more storage device  510  of varying physical dimensions and storage capacities, such as flash drives, hard drives, random access memory, etc., for storing data, such as images, files, and program instructions for execution by the one or more processors  502 . 
     Additionally, the computer device  500  can include one or more software programs  512  that enable the functionality of the battery design tool  104  described above. The one or more software programs  512  can include instructions that cause the one or more processors  502  to perform the processes described herein. Copies of the one or more software programs  512  can be stored in the one or more memory devices  504  and/or on in the one or more storage devices  510 . Likewise, the data utilized by one or more software programs  512  can be stored in the one or more memory devices  504  and/or on in the one or more storage devices  510 . 
     The computer device  500  can include a variety of data stores and other memory and storage media as discussed above. These can reside in a variety of locations, such as on a storage medium local to (and/or resident in) one or more of the computers or remote from any or all of the computers across the network. In some implementations, information can reside in a storage-area network (SAN) familiar to those skilled in the art. Similarly, any necessary files for performing the functions attributed to the computers, servers, or other network devices may be stored locally and/or remotely, as appropriate. 
     In implementations, the components of the computer device  500  as described above need not be enclosed within a single enclosure or even located in close proximity to one another. Those skilled in the art will appreciate that the above-described componentry are examples only, as the computer device  500  can include any type of hardware componentry, including any necessary accompanying firmware or software, for performing the disclosed implementations. The computer device  500  can also be implemented in part or in whole by electronic circuit components or processors, such as application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). 
     If implemented in software, the functions can be stored on or transmitted over a computer-readable medium as one or more instructions or code. Computer-readable media includes both tangible, non-transitory computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media can be any available tangible, non-transitory media that can be accessed by a computer. By way of example, and not limitation, such tangible, non-transitory computer-readable media can comprise a random access memory (RAM), a read only memory (ROM), a flash memory, an electrically erasable programmable read only memory (EEPROM), a compact disc read only memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, includes CD, laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Combinations of the above should also be included within the scope of computer-readable media. 
     In the aspects described above, the battery design tool  104  can be utilized to determine a design layout for a battery to be used in any type of application.  FIG. 6  illustrates one example of an application for the battery design tool  104 . As illustrated in  FIG. 6 , an aircraft  600  can include a battery  602 . In aspects, the battery design tool  104  can be utilized to determine the deign layout of the battery  602 . 
     While the teachings have been described with reference to examples of the implementations thereof, those skilled in the art will be able to make various modifications to the described implementations without departing from the true spirit and scope. The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. In particular, although the processes have been described by examples, the stages of the processes can be performed in a different order than illustrated or simultaneously. Furthermore, to the extent that the terms “including”, “includes”, “having”, “has”, “with”, or variants thereof are used in the detailed description, such terms are intended to be inclusive in a manner similar to the term “comprising.” As used herein, the terms “one or more of” and “at least one of” with respect to a listing of items such as, for example, A and B, means A alone, B alone, or A and B. Further, unless specified otherwise, the term “set” should be interpreted as “one or more.” Also, the term “couple” or “couples” is intended to mean either an indirect or direct connection. Thus, if a first device couples to a second device, that connection can be through a direct connection, or through an indirect connection via other devices, components, and connections.