Methods and apparatus for simulating industrial processes

In order to design and implement industrial processes in an efficient manner, an apparatus (1) is provided which can simulate a process to be implemented. The processing of the simulation is controlled by a modelling module (17) and is arranged to cause the constraints on scheduling batches in the simulation to correspond to the constraints in actual processing where mixing of batches initiated at different times is avoided. This is achieved by the modelling module (17), whenever a batch is initiated in the simulation, scheduling the following batch to be initiated, the greatest of either the maximum time items of equipment require to process the batch initiated if no delays occur within the system or the greatest time for processing batches of items equipment currently in use.

The present invention relates to methods and apparatus for performing industrial processes in an efficient manner. In particular, embodiments of the present invention concern methods and apparatus for designing and performing industrial microbiological processes, in a manner in which enables apparatus used in the processes to be used efficiently.

Whenever a production line is in use, it is commercially important that apparatus is used efficiently to maximise output. Whilst, the capacity of a production line is ultimately limited by the apparatus available, careful scheduling of the use of equipment can maximise the efficiency of a production line once apparatus for the production line have been selected.

Method and apparatus exist to enable industrial processes to be simulated in order to aid designers designing new plants and adapting existing plant. The simulation of an industrial process can enable bottle necks within production facilities to be identified prior to actual implementation and thereby enable changes to be made to maximise the use of available equipment.

In particular by simulating the timing and processing of batches of materials through a simulated production line, data can be generated which identifies how real batches should be scheduled within an actual production line so that use of equipment is maximised. Furthermore, simulations of industrial processes enable equipment to be selected so that the capacities of different items of equipment complement one another thereby ensuring that in a real production line corresponding to the simulation the use of all items of equipment can be maximised.

In productions lines for certain materials, notably microbiological materials and some chemicals, it is important that the total processing time of a batch of material as it passes through a plant between defined hold points is minimised. In the case of biological and microbiological materials this constraint rises due to the limited shelf life of live microbiological materials and their products and the need to ensure that any material produced by a plant is substantially free from other contaminants. Since processing time is of such critical importance, many standard techniques for maximising the efficiency of equipment within a plant cannot be applied to industrial microbiological processes. In particular, when extracting or purifying microbiological products, batches of product initiated at different times cannot be consolidated into a single batch later on in a manufacturing process other than at defined hold points where a product is stable since the mixing of products gives rise to the possibility that an unacceptance level of contamination might occur.

There is therefore a need for a modelling system which is adapted to address the requirements of industrial processes in which queues and consolidation occurs only at defined points within a process. Such a modelling system can then be utilized to simulate such processes and enables the scheduling of batches and the capacities of equipment to be selected so that the industrial processes corresponding to the simulation can be efficiently performed.

In accordance with one aspect of the present invention there is provided a method of simulating an industrial process comprising the steps of:for a plurality of items of equipment, determining a respective current cycle time for each said item of equipment;for a batch of product to be processed utilizing said items of equipment, determining a minimum cycle time for each of said items of equipment for processing said batch;determining the greatest cycle time of said current cycle times for each of said items of equipment, and said minimum cycle times for said batch; andscheduling the initiation of the batch following the current batch to occur after a period of time corresponding to said determined greatest cycle time.

By determining for an industrial process the greatest of the cycle times for items of equipment within a production line and the minimum processing time for a new batch and then scheduling the initiation of a new batch after the determined greatest cycle time, a means is provided to ensure that the processing of a product using equipment having the greatest cycle time is scheduled to occur separately for different batches of products. When an industrial process corresponding to that simulated is performed, the batches of material being processed are then scheduled corresponding to the scheduling within the model and in this way the mixing of different batches and the formation of queues within a system is avoided.

Although simulation tools are known which enable production lines to be designed or modified so that processes corresponding to those simulated are performed in an efficient manner, such design tools normally only enable the size and timing of simulated batches and the size and capacity of simulated equipment to be varied. Although the variation of such parameters and simulation of processes enables the size and timing and size and capacity of bathes and equipment on an actual production line to be set to increase the efficiency of a corresponding process other factors can limit the efficiency of an actual production line.

In particular, in many known methods and apparatus for simulating industrial processes, no attempt is made to model support services needed to implement a main process. In general, this is because the demand for external utilities such as water and electricity can be assumed to be such that for most processes, the availability of utilities does not place constraints what processing may be undertaken. However, the applicants have appreciated that in the case of specialised processes this assumption is not necessarily true.

In particular, where, as is the case of industrial biological processes, many steps involve the use of utilities generated on site such as e.g. purified water, water injection (WFI), clean steam etc., the availability of on site generated utilities can act to limit site output and therefore need to be modelled. The modelling of on-site utilities can then identify the requirements for generation and storage of such specialised utilities or enable processes to be rescheduled or varied to ensure that utility capacity does not limit production efficiency. The resultant data on simulated production lines can then be utilised to select production facilities or schedule processing within a real plant.

Where support services are modelled, it is important that modelling can determine times of the demand so that the peak demand can be determined and controlled if necessary. It is possible to model supply and demand for a utility by way of a continuous model in which the instantaneous demand for a utility is determined. However, where an industrial process is a combination of processing steps only some of which require subsidiary services, the processing of such a continuous model for the entirety of the system is computationally complex and therefore reduces the speed of the simulation or requires an increase in computer overhead.

In accordance with a further aspect of the present invention, there is provided a method of simulating an industrial process comprising the steps of:classifying for each of a plurality of process steps in a process to be modelled, a first group of process steps whose processing is dependent upon utilities which are to be modelled, and a second group of process steps whose processing is not dependent upon utilities which are to be modelled;associating with all of said process steps a completion condition for completing each said process step and data indicative of whether each said process step is currently active;associating with each of said process steps in said second group, rate data indicative of the rate of utility use of a utility for a predetermined time period to be modelled as part of said process steps; andstep wise modelling said industrial process and said utilities using said rate data, wherein said each modelling step comprises the steps of:determining whether any active process steps to be modelled are associated with rate data;determining the shortest time period required to fulfil the completion condition associated with any active process step; andupdating a model of said industrial process utilizing said predetermined time period if at least one active process is associated with rate data and said predetermined period is smaller than said determined period; and updating said model utilizing said determined time period if no active processes are associated with rate data or said determined time period is shorter than said predetermined period.

The present application concerns the design and implementation of industrial processes. In particular, in one aspect the present application concerns the design and implementation of industrial processes in which bottlenecks and delays due to lack of resources can be reduced and equipment is efficiently used.

In accordance with an embodiment of the present invention, initially a model corresponding to a process to be implemented is created, utilizing input batch parameters and equipment parameters. A simulation of the process is then effected. In the simulation, the use of equipment, processing of batches and demand for resources are determined within the simulation and an appropriate schedule for timing of the initiation of batches is calculated. After a number of simulations have been run an industrial process corresponding to a simulated process is then be implemented by providing equipment corresponding to the simulated equipment parameters and processing actual batches corresponding to simulated batches in accordance with the generated schedule for the initiation of batches corresponding to the simulation which output data indicates will run efficiently.

An illustrative example of a process which can be modelled utilizing the present invention will now be described with reference toFIG. 1.

In this example an illustrative process for generating biological material is shown comprising a fermentation process20which causes a biological material to be grown followed by an extraction process21, a purification process22and a formulation process23which results in an output being the desired biological material. These processes20-23in this example occur using different equipment. The fermentation process20, the extraction process21, purification process22and formulation process23all result in the generation of waste which needs to be processed by means of waste management process27.

In this example, the fermentation process20, the extraction process21, purification process22and formulation process23and the waste management process27all require support services. These support services comprise external utilities28such as electricity for heating products, on-site utilities29such as purified water, water suitable for injection (WFI) which needs to be generated and raw materials30such as media components for fermentation and raw chemicals used in purification which can be mixed with on-site generated utilities such as generated water for injection (WFI) to make the media used in fermentation and buffers used in purification. Cleaning solutions for cleaning the equipment used to perform the fermentation process20, the extraction process21, purification process23and formulation process23so that the equipment used in those steps may be used to create further batches of biological material is also generated from raw cleaning chemicals and purified water. Alternatively steam sterilisation is used using on-site purified water to prepare production equipment for processing a further batch of material.

In order to arrange the scheduling of batches through the processes20-23and select equipment for performing the processes20-23, in a way in which use and speed of precessing is increased, initially the processes are modelled in a manner which will be described in detail later.

In order to model the processing of batches of material as they pass through the fermentation process20, the extraction process21, the purification process22and the formulation process23it can be sufficient that external utilities such as electricity and mains water are considered to be continuously available. However, for specialised utilities such as water for injection or cleaning solutions utilizing water for injection, availability of these cleaning solutions or any other on-site utilities may limit processing rates. Therefore, for a more complete model the demands for these on-site utilities are also modelled so that appropriate equipment for generating and storing such utilities can be determined.

The timing of demands for external utilities28, on-site utilities29and raw materials30is determined by the manner in which batches of products are scheduled for processing through the fermentation process20, the extraction process21, the purification process22and the formulation process23. In the case of biological materials in addition to constraints on the basis of availability of on-site utilities29and the availability of equipment for performing fermentation, extraction, purification and formulation, a further constraint on how production of material is scheduled arises due to the need to ensure that no mixing of different batches occurs during fermentation and consolidation of batches only occurs at defined hold points in the purification stages so that any excessive build up of impurities within the biological product is avoided. Thus in this example, this would require that whenever a new batch was to be processed by the fermentation process20, the equipment for processing the next batch was available for use. However, the rate at which batches progress through the process is also dependent on availability and demand for on-site utilities29. It therefore necessary to establish a suitable schedule for initiating new batches.

This constraint is also modelled within the simulation of the processes.

Thus by providing apparatus for simulating the processes20-23in accordance with input data defining the batches of material and capacities of equipment utilised to implement the processes20-23, a means is provided by which the effect of varying batches and equipment within the actual processes can be determined. In particular, by utilizing a number of different sets of input data and outputting for each simulation data identifying the use of equipment and quantities of utilities used a means is provided to enable the selection of appropriate equipment to effect the process modelled.

FIRST EMBODIMENT

Apparatus for generating data identifying the use of equipment and quantities of utilities for modelled processes utilizing equipment corresponding to defined input parameters in accordance with an embodiment of the present invention will now be described.

FIG. 2is a block diagram of a computer apparatus embodying the present invention. The computer apparatus comprises a conventional computer1that is connected to a display3, a keyboard5and a mouse7. The computer1is also connected to a printer8and a disc drive9. The disc drive9is arranged to receive a disc10having a computer program stored thereon which causes a copy of the computer program to be stored within the memory11of the computer1.

In this embodiment the computer program stored within the memory11comprises an input module15for inputting data representative of a model of an industrial process; and a modelling module17for simulating the processing of products through a process utilizing the model data input using the input module15. The memory11also is arranged to store modelling data19being data input utilizing the input module15and data generated by the modelling module17.

In use, after the input module15and modelling module17have been stored in memory11, a user inputs model data using the input module15, the keyboard5and the mouse7. Data input via the keyboard5, mouse7is then processed by the input module15and stored as modelling data19. An industrial process can then be simulated using the modelling data19in accordance with the modelling module17. Generated output data is then stored within the memory11and after the simulation has been completed results are displayed on the display3. The generated output data can then be printed out in hard copy format by the printer8.

The modelling in accordance with the present invention is such to enable support services such as on site utilities and waste processing and production rules to be modelled. In particular, the present invention enables continuous models of utilities identifying instantaneous demand for utilities to be incorporated within discrete models of other processes. This is achieved by the modelling module17determining for each step within a model, firstly whether any continuous processes are to be modelled and then utilizing a suitable time increment for the model by selecting the smaller time increment of either the minimum time required to complete an active process or a default time increment. If no continuous processes are determined to be active the minimum time required to complete an active process is used as a time increment.

Thus in this way, whenever only discrete processes i.e. processes not modelling instantaneous demand for a utility are being modelled, time periods corresponding to the minimum time periods to complete processes are used so that the total number of steps involved in a model is minimised. However, a default time period is used to break down processes which are to be modelled as continuous processes into a number of steps so that an approximation of instantaneous demand for utilities may be determined.

Furthermore, in this embodiment of the present invention a system is provided for simulating and modelling the scheduling the initiation of batches within a model to comply with the constraints of an industrial process in which mixing of batches is avoided. In this embodiment, this is achieved by determining whenever a batch is initialised within specified portions of a simulation where queuing and consolidation constraints arise, a time period for initiating the next batch which corresponds to the longest cycle period for any item of equipment utilized in the process modelled. This longest cycle period is either selected from the current times for equipment currently in use or from estimates of the minimum cycle times for the next batch. Thus in this way a means is provided for ensuring that within the simulation no batches ever are mixed and queues within the model are minimised during the simulation of fermentation stages ad limits consolidation to defined hold points in the purification stages.

Exemplary data structures for storing modelling data19in accordance with this embodiment of the present invention will now be described with reference toFIGS. 3 to 11.

FIG. 3is a block diagram of modelling data19stored within the memory11of the computer1. The modelling data19comprises data input via the input module15defining processes and equipment to be modelled together with data generated by the modelling module17utilizing the input data.

In this embodiment the modelling data19comprises a plurality of equipment records31defining the manner in which products can be processed by a plurality of items of equipment to be simulated; a plurality of utilities32records utilized to simulate the generation and use of each of a plurality of on-site utilities; batch data34comprising data defining the parameters of batches of product as they pass through an industrial process and data defining how the batches are to be scheduled to ensure that no mixing of different batches occurs as will be described in detail later; and a plurality of output records36comprising data indicating the times at which individual items of equipment defined by the equipment records31are in use and the available levels of generated utility identified by the utilities records32at any time throughout the simulation.

In this embodiment the equipment records31comprise a plurality of records each defining an item of equipment in terms of physical parameters for the equipment and the different processes which take place using that equipment. Thus for example a chromatography column for purifying a component of interest, in this embodiment is defined in terms of physical parameters such as volume and circumference, and a plurality of processes such as packing, loading, elution and cleaning which are undertaken using the equipment.

Also stored as part of an equipment record is status data indicative of whether as part of the simulation the equipment is in use and cycle time data indicating the total amount of time an item of equipment has been processing an individual batch and the time previously taken to process a batch become available for the processing of the next batch which is used to determine scheduling data for batches which avoids the build up of queues within the system as will be described in detail later.

Exemplary data structures for the equipment records31, utilities records32, batch data34and output data36will now be described in detail with reference toFIGS. 4 to 11.

FIG. 4is a block diagram of an exemplary data structure for an equipment record. In this embodiment the equipment records each comprise equipment identification data50; equipment type data52indicative of an equipment type e.g. a chromatography column, a holding vessel etc, status data54identifying whether the equipment is in use at a certain time within a simulation, a number of physical parameters55for example volume and circumference, a number of discrete process records60and a number of continuous process records62identifying the processes which are undertaken using the equipment as will be described later; an output process record64, current cycle time data66and previous cycle time data68which is used for determining the scheduling of batches of products within the simulation as will be described in detail later.

The equipment identification data50enables an item of equipment to be identified so that its usage within the model may be monitored. The equipment identification data50also enables batches of products to be routed to specific pieces of equipment within a model. The equipment type data52identifies the sort of equipment that is intended to be modelled and enables batches of products to be routed to equipment of a specific type rather than to a specific item of equipment. Thus for example where a product is to be temporarily stored in a suitable holding vessel any available vessel might be used to store the product. Therefore, in a model of such a process a batch would be directed to an item of equipment associated with equipment type holding vessel, rather than a predefined item of equipment.

FIG. 5is a schematic block diagram of an exemplary data structure for a discrete process record60in accordance with this embodiment of the present invention. The discrete process records each comprise process identification data69, an active flag70indicating when within the model the process is taking place; time active data72indicating the total amount of time a process has been active; a completion condition74comprising data indicative of what conditions must occur within the model in order for the process modelled by the discrete process record to be considered to be complete; a set of one or more required inputs76, and a next action field80identifying which processes in terms of process ID numbers69follow a further completion of the process simulated by the record or alternatively a null field indicating that the processing of an item of equipment is to end.

The completion condition74defines the conditions which must be fulfilled in order for the process to be considered complete. A simple example of a completion condition would be for the time active72for the process to be equal to a certain value. This would be a suitable completion condition74for a process having a fixed time span. More complicated completion conditions could comprise requirements for the time active72to be equal to a value calculated on the basis of batch parameters or physical parameters55for an item of equipment. The input data76defines the inputs necessary to be available in order for a discrete process to be initiated as will be described later.

FIG. 6is a schematic block diagram of a data structure for a continuous process record. In this embodiment, the data structure for a continuous process record62is identical to the data structure for a discrete process record60and description of the data structure will be repeated except a continuous process record additionally includes rate determination data82. The rate determination data82comprises data for converting a continuous model of a process defined in terms of rates of usage of utilities into data suitable for use with a discrete model and in this embodiment comprises data identifying the rate at which a utility is used which can be multiplied by a time increment to determine how much of a utility is used within a specified time period, as will be described in detail later.

FIG. 7is a schematic block diagram of an exemplary data structure for an output process record64. An output process record comprises a record indicative of a process where a batch of materials is transferred from one item of equipment to another. The output process record64comprises a process identification data88; and an active flag90indicating that a batch material is waiting to be transferred from one item of equipment to another. The output process record64also comprises next equipment type field92and a next action field94. The next equipment type field92is arranged to store data indicating the next item of equipment which is to be utilized to process a batch either in terms of specific equipment identification data50equipment type data52. The next action field94is arranged to store process of identification data corresponding to the record within the discrete process records60or continuous process records62is to be performed after the processing of the batch has been completed or alternatively a null field indicating the processing by the equipment identified by the equipment record is complete.

The output process records64, enables a specific type of process to be modelled namely storage of a batch within an item of equipment prior to transfer to another item of equipment. As the process comprises waiting for the availability of other equipment the next equipment field92implicitly defines the necessary condition complete the output process being modelled. Thus in the case of process modelled by an output process the next equipment type field92may be utilised in a similar way to the completion condition data74for a discrete60or continuous62process record as will be described in detail later.

FIG. 8is a schematic block diagram of an exemplary data structure for a utility record32. In this embodiment each utility record32comprises utility type data100, current quantity data102, maximum capacity data103, activation level data104, generator status data106, generation rate data108and external input data110.

The utility type data100identifies the type of utility to be modelled using the utility record32. The current quantity data102identifies the current amount of utility available. The maximum capacity data103comprises data identifying the maximum amount of utility which can be stored, for example in a size of a holding tank for a utility. The activation level data104comprises data identifying a level below which the on site utility is to be generated thereby defining a control mechanism to be employed to maximise the availability of the utility. The generation rate data108comprises data identifying the rate at which an on site utility may be generated. The external inputs data110comprises data identifying required resources when the utility is generated.

In accordance with this embodiment of the present invention where a continuous process record has an active flag70indicating that the process is currently occurring the rate determination82associated with the continuous process record is utilized to reduce the quantity level102of an associated utility corresponding to the input required76for that record to reflect the use of a utility within an on-going process. Whenever the quantity level102associated with a particular utility type is determined to be beneath the activation level104for that utility the generator status106is amended to indicate that the utility is to be generated which then causes the current quantity102to be updated to account for generation of utility at the generation rate108provided required external inputs110are available. When the current quantity102is equal to the maximum capacity104the generation status106is amended to indicate that utility is no longer to be generated and the current quantity102is no longer increased on the basis of the generation rate108. Thus in this way the generation and use of utilities can be modelled.

The applicants have also appreciated that the generation of waste by a process can be modelled in the same way in which a utility may be modelled. In particular, just as the generation and utilisation of a generated utility may be modelled, the available capacity of waste processing can be considered a form of negative utility which is created rather than used up by other processes and which needs to be processed to be removed rather than generated. However, in the same way in which available capacity and lack of available utilities effect the timing of processing in a main production line, similarly the available capacity and lack of available processing capacity of waste processing can also effect the timing of other processes.

FIG. 9is a block diagram illustrating an exemplary data structure for batch data34for use in accordance with this embodiment of the present invention. In this embodiment the batch data34comprises a plurality of batch records115comprising data identifying the content and processing of batches of products as will be described in detail below. The batch data also comprises a next batch pointer117indicating which of the batch records115is to be utilized as representing the next batch to be processed and a next batch due time119indicating when the next batch117is to be initiated relative to the current time, as will be described in detail later.

FIG. 10is a schematic block diagram illustrating an exemplary data structure for batch records115within the batch data34. In this embodiment of the present invention the batch records115each comprise a batch number130enabling the batches to be identified, equipment identification data132, identifying the equipment ID50of an item of equipment processing a particular batch; routing data134comprising data indicative of which items of equipment in terms of their equipment ID50, a particular batch is to be processed by where this is defined in advance; and a set of batch parameters136comprising data identifying the product characteristics for example size and volume of package of a product etc., that is processed as part of the batch indicated by the batch record.

As will be described in detail later the batch data34is utilized to determine the order in which individual batches represented by the individual batch records115are initiated and the processing of batches is then determined by the routing data and batch parameters134associated with that batch.

FIG. 11is a schematic block diagram of an exemplary data structure for output record36in accordance with this embodiment of the present invention. In this embodiment the simulation is arranged to record only simulated equipment use and utility availability. It will be appreciated that other data such as quantities of product made or quantities of raw materials consumed could be monitored in addition to the equipment use and utility availability monitored in this embodiment.

In accordance with the present embodiment, the output records each comprise a time field140containing data indicating the relative time of the output data relative to the initiation of the model; an equipment in use field142comprising a list of equipment identification numbers50of equipment having status flags54indicating that the equipment is in use at the time indicated within the time field140and a list of utility levels comprising the values of the instantaneous quantities of utilities, wastes and products102of each of the utility records within the utilities data32for the user's activities at the time indicated in the time field. Thus in this way the output data records enables the use and level of utilities for each of the utilities and equipment within a model to be stored for each step throughout the running of a simulation.

The input of data identifying the items of equipment, utilities and batches of product to be simulated prior to simulation of a process will now be described.

In this embodiment equipment utilized in a process is modelled in terms of processes which an item of equipment is used for and fundamental physical parameters. Equipment records31are generated either by selecting data from a library of predefined records for types of equipment stored on a disk10or directly input via the keyboard5and mouse7. In order to facilitate input of equipment data, in this embodiment of the present invention the input module15is arranged to generate a graphical interface for inputting data in a similar manner to that provided by the Extend TM Software provided by ImagineThat Inc.

FIG. 12is an exemplary graphical interface for inputting equipment data. In this example the interface comprises a main input screen200, to the left of the main input screen200is a data entry screen202for inputting data for storage as equipment data nd to the right is a control screen203. Also displayed is a pointer204which is controlled using the mouse7.

In this embodiment the main input screen200is arranged to display a block diagram of processes undertaken by an item of equipment to be modelled. In this example the equipment to be modelled comprises a chromatography column which is initially filled210, then eluted211and then cleaned212. The elution211also results in output213.

The data entry screen202comprises a parameter entry section220and a process edit section222. The control screen203comprises a new button230, a previous button232, and a next button234used for navigations between a data entry for different items of equipment, an add button236and an end button238.

In use, initially a user selects utilizing the mouse7and the pointer the new button230which causes a new equipment record to be generated in which the main input screen is blank. Selecting the add button236causes a new block to appear within the main input screen200. Blocks displayed in the main input screen200can then be selected using the pointer. If a block is selected the block may be edited to enter a name for example fill, elute etc corresponding to the process the block represents. If two blocks are selected a line is shown connecting the blocks to indicate which processes follows one another.

Selecting a block also cause the process edit section222of the data entry screen202to display type, requirement, rate and time data associated with a block to be displayed. This data can then be edited by selecting the portion of the process edit section222to be changed and inputting new data via the keyboard5. Thus in this way by entering data each process is associated with data for storage as a process record60-64. In a similar way equipment type data52and physical parameter data55can be entered using the parameter entry section220for the equipment being modelled. Equipment data for other items of equipment can be entered by selecting the next or previous buttons232. When parameters for all items of equipment have been entered a user can select the end button238which causes all of the entered data to be stored in the form of equipment records.

The data for batch data records and utilities records are then entered using other interfaces in a similar manner which will not be described in detail here. Thus in this way the processing of specific equipment for a defined set of batches is input.

After equipment records31, utilities records32and batch data34have been input using the input module15of the modelling program within the memory11a simulation of an industrial process may be created using the modelling module17utilizing the input data. The processing of modelling module17in accordance with an embodiment of the present invention will now be described with reference toFIGS. 13,14,15A and15B.

In accordance with this embodiment of the present invention, the modelling module17repeatedly utilises and updates the modelling data19in order to simulate the processing of an industrial process. As a result of the modification of modelling data19by the modelling module17output data indicative of the use of equipment within the simulation and instantaneous levels of available utilities modelled within the simulation are generated.

FIG. 13is a flow diagram illustrating the processing of the modelling module17to generate output data for a step within a simulated process. Initially (S1) the modelling module17determines whether the next batch due data119in the batch data34is equal to zero indicating that a new batch is to be initiated. If this is the case the modelling module17then (S2) determines the greatest previous cycle time68currently associated with an equipment record31. This maximum cycle time is then stored in the memory11.

The modelling module17then (S3) determines minimum cycle times for processing the next batch by each of the items of equipment which are to be simulated. This is achieved by the modelling module17calculating for each item of equipment the sum of times associated with completion conditions74for each of the discreet process records60and continuous process records62for an item of equipment where the completion conditions74are either fixed or dependent upon batch parameters136for the batch record having a batch identification number130corresponding to the next batch pointer117. Thus in this way a minimum cycle time for each item of equipment for processing the batch is determined in which the processing of a batch is not delayed in any way by external constraints such as the availability of utilities.

The modelling module17then causes the equipment identification data132associated with the batch record having a batch number130corresponding to the next batch pointer117to be set equal to the equipment identification number50for initially processing that batch and sets the active flag70for the first process of the processes associated with the equipment record having the equipment identification number50for the first item of equipment to process the batch to indicate that the process is now active. The modelling module17then updates the next batch pointer117to be equal to the batch number130of the next batch record of the plurality of batch records115and sets as the next batch due value119a value corresponding to the greater of either the maximum cycle time of the current model or the determined minimum cycle time for the initiated batch throughout which ever is greater.

By calculating an initial next batch being due value equal to the greater of either the current maximum cycle times for equipment within the model or the minimum cycle time necessary to process the latest batch but a means is provided to ensure that the processing of the newly initiated batch is completed by simulated equipment within the model before the next batch is started throughout the simulation. The calculated scheduling of batches in this manner thus ensures that at no point within the simulation, two batches initiated at different times are combined within the same item of equipment and hence enables the modelling of industrial microbiological processes to be undertaken.

After the modelling module17has initiated if a new batch is due or if the modelling module17determines that no new batch is due, the modelling module17then determines (S5) a suitable timing increment or step size for generating output data as will now be described with reference toFIG. 14.

FIG. 14is a flow diagram of the processing of the modelling module17determining a time period for use in updating the output data for a simulated process. Initially the modelling module17generates (S10) a list of active processes being list of equipment identification numbers50and process identification numbers69of discreet and continuous process records60,62having data70indicating that those processes are currently active. The modelling module17then appends to the list data indicative of the utility records32having associated generator status106indicating that utility is currently being generated.

The modelling module17then determines a minimum time increment required to fulfil the completion conditions for or each of the active discreet processes in the generated list. In this embodiment this is achieved by the modelling module17initially selecting as a suitable time increment a time increment corresponding to the next batch due time119for the bath data34. The modelling module17then determines for the first of the discreet processes in the list of generated list of active processes the difference between the time active data72for the corresponding process record and the time required to fulfil the completion condition74for that record. If this is less than the next batch due time119this time difference is then stored as the current minimum time increment for the model. The modelling module17then proceeds to determine a calculated time difference for the next active process on the list of processes and substitute this time difference if it is shorter than the currently stored minimum time difference. This is repeated for each of the active processes on the list and in this way the minimum time difference to complete an active discrete process or the next batch initiation is determined.

The modelling module17then (S12) determines whether within the list of active processes generated any records correspond to continuous process records62. If no continuous records are within the list, the stored minimum time difference is then (S14) selected as the next time increment.

If at least one continuous process is active, the modelling module17then (S13) determines whether the stored minimum time increment stored in memory11is smaller than the default time increment for modelling continuous processes. If this is determined to be the case the modelling module17then (S14) selects the determined minimum time difference stored in memory11as a time increment for updating the output data36. If the default time difference is determined to be smaller than the stored minimum time difference, the modelling module17then (S15) selects the default time difference as a time increment.

Returning toFIG. 13, after a suitable time increment has been selected (S5) the modelling module17then (S6) updates the next batch due data119to account for the selected time increment. The modelling module17then updates (S7) the modelling data19within the memory11utilising the selected time increment as will now be described in detail with reference toFIGS. 15A, B and C.

FIGS. 15A,15B and15C are a flow diagram of the processing of the modelling module17for updating modelling data19after a suitable time increment has been determined.

Initially (S20) the modelling module17determines which items of equipment are currently in use. In this embodiment this is achieved by the modelling module17generating a list of equipment identification numbers50corresponding to equipment records in which at least one process corresponding to either a discrete process record60or a continuous process record62has a active status70indicating that the item of equipment is undertaking some process.

Thus for example in this embodiment for a particular process for a set of batches in which two fermentation vessels, two storage vessels, a centrifuge, a chromatography column where water for injection is measured are utilized the following might be an extract from a set of output records.

In this way output data which can subsequently be displayed in the form of a GANT chart or a graph of available quantity of modelled utility is generated.

It will of course be appreciated that other data could be stored for example data indicative of instantaneous demand for a utility within a model. Alternatively further data for example data indicative of the simulated processes being undertaken by an item of equipment, or initiation and progress of individual batches could also be stored.

The modelling module17then (S21) generates a new output data record36comprising time data140corresponding to the time data140of the last output record generated incremented by the selected time increment; equipment in use data142comprising the generated list of equipment in use, and utility quantity data144comprising a list of utility type100and current utility quantity102for each of the utility records32stored in memory.

The modelling module17then (S22) causes the current cycle time data66associated with each equipment record having equipment identification data50corresponding to the list of items of equipment in use to be incremented by the value corresponding to the selected time increment.

Thus, in this way, the levels of model utilities and the times at which modelled items equipment are in use are stored as output data and the current cycle time data66for each equipment record is updated to indicate the additional time in use of each item of equipment.

The modelling module17then proceeds to utilise the list of active processes previously generated (S10) and stored in memory to update the data within the discrete process record60and continuous process record62and utility records36to simulate the action occurring in the model over the selected time period, as will now be described.

The modelling module17initially (S23) selects the first of the active processes within the list of active processes stored in memory11. The modelling module17then (S19) determines whether the inputs required corresponding to the input data76for the process record are currently available, for example, where the quantity of a utility necessary for a process is above a certain threshold. If this is determined not to be the case the process is not simulated the modelling module proceeds to determine (S31) whether the process currently under consideration is the final active process.

If the modelling module17determines that the necessary inputs are available for a process, the modelling module17then determines (S25) whether the current process being updated comprises a continuous process. If this is the case, the modelling module17then proceeds (S26) to update the utility quantity102corresponding to the required input76for the process by decrementing the current quantity102for the utility required indicated by the input data76by an amount calculated by multiplying the selected time increment by the rate determination data82for that utility. Thus, in this way, whenever a continuous process utilising a utility is modelled, the demand for utilities are also modelled in a way in which an approximation of instantaneous demand for utility can be determined.

After updating any utility records (S26) if necessary the modelling module17then (S27) determines whether the completion condition74for the process currently under consideration has been fulfilled.

Thus, for example, where the completion condition74comprises an amount of time necessary to complete a process, the modelling module17compares the time active data72for the process with the completion condition74to determine whether the process is complete. Alternatively, where a completion condition74comprises the completion of another process or the availability of some item of equipment or equipment having a specified equipment type, the determination (S22) of whether the completion condition74is fulfilled would comprise determinations of status data54of appropriate equipment records or active data70of process records.

If the modelling module17determines (S27) that the completion condition has not yet been fulfilled, the modelling module17then proceeds to determine whether the process currently under consideration is the last process (S31) as will be described later. If the modelling model17determines (S27) that the completion condition74for the process currently under consideration has been fulfilled, the modelling module17then (S28) causes the active flag70and time active72for the current process to be reset to indicate that the process is no longer taking place and causes the active flag70on the record corresponding to the next action80within the current process to be set to indicate that process is to be initiated.

Where the next action80of a process which is determined to be complete corresponds a null value, the process which is currently being simulated comprises the final process which takes place within an item of equipment. Where such an active process is completed, the modelling module17then (S29) determines whether any other process is occurring within the item of equipment which is being modelled. If this is not the case, the completion of the current process is indicative of the equipment no longer being in use. The modelling module17then proceeds to change the status data54for the item of equipment which the process currently under consideration forms a part to indicate that the equipment is no longer in use and sets the previous cycle time68for that item of equipment equal to the current cycle time66and then resets that current cycle time to zero.

Thus in this way whenever it is determined that no processes are occurring within a simulation of an item of equipment, the status data associated with that item of equipment and the current cycle time data66are reset to indicate that the equipment is inactive whilst the previous cycle time data68is made to reflect the time taken from the initiation of activity within the equipment to its completion for the last time that the equipment corresponding to the equipment was in use.

After the status and cycle time data of an item of equipment which has ceased to be in use has been amended (S30) or if the process under consideration is either determined not to be complete (S27) or the inputs necessary for the process (S24) are determined not to be available, the modelling module17then (S31) determined whether the current process under consideration comprises the final process in the list of processes in memory. If this is not the case, the modelling module17then selects (S32) the next process within the list of actual processes in memory and then proceeds to determine whether the inputs are available to continue the nearly selected process (S24).

Thus in this way the simulation of processes utilising equipment is simulated for the predetermined time period for each of the active processes within the simulation and equipment and utilities data is amended to reflect the actions taking place as a result of the process steps. At the same time, the cycle times for each item of the equipment are monitored so that the maximum cycle time for equipment within a processing line can be determined and the scheduling of new batches through the simulation selected so as to ensure that queues do not develop within the simulation.

If the process currently under consideration is determined to be the last in the list of active processes stored in memory11the modelling module17then (S33) generates a list of output records having an active flag90indicating that the processes of the output process records64are currently awaiting to be completed. The modelling module17then (S34) selects the first of the records on the generated list and then (S35) determines whether the status of equipment within the model is such that the output process may be completed.

In this embodiment this is achieved by the modelling module17initially identifying the batch record115having the equipment identification number132corresponding to the equipment identification number50of the equipment record containing the output process record64currently under consideration. The modelling module17then determines whether the routing data134of the selected batch record115specifies a particular item of equipment to which the batch under consideration is to be routed. If this is the case then the modelling module17then determines whether the status data54of the identified equipment record31to which the batch is to be directed is currently inactive. Alternatively if the batch record115does not specify a particular item of equipment to which a batch is to be routed then the modelling module17utilises the next equipment type data92for the output process record64currently under consideration to determine which items of equipment the current batch may be routed to and then determines whether the status data54of equipment records31corresponding to the requirements of the next equipment type data92indicates that any item of equipment fulfilling the requirements of the next equipment type data92is currently inactive.

If the modelling module17determines that the current status data54for an equipment record31corresponding to an item of equipment to which a batch may be routed indicates that the item of equipment is inactive the modelling module17then (S36) updates the output process record64currently under consideration by amending the active flag90to indicate that the process is no longer continuing and then initiates the next process in the available equipment by altering the status data54of the equipment record31corresponding to the next item of equipment being used to indicate that the equipment is now active and also causing the active flag70of the first process of the process of records60,62for that equipment record31to be set to indicate that the first process is about to be undertaken.

The modelling module17then (S37) determines whether the equipment record31containing the output process64currently under consideration which has just be completed is now no longer undertaking any process. This is achieved by the modelling module17determining whether any of the discrete process records60or continuous process records62for the equipment record31containing the current output process record64have active flags70indicating that the process is within the equipment are currently active. If no discrete60or continuous62processes are active the completion of the output process under consideration would have resulted in the equipment used for the output process to now be available for use once again. The modelling module17then (S38) causes the status data54for the equipment record31containing the output process record64currently under consideration to be updated to indicate that the equipment is now no longer in use and sets the previous cycle time data68to be equal to the current cycle time data66before resetting the current cycle time data66to zero. Since the new availability of a further item of equipment can effect the possible completion of other output processes, in accordance with this embodiment of the present invention the modelling module17then generates a new list of output processes (S33) so that the possible fulfilment of those all output processes may be considered once again.

If it is determined (S35) that the equipment available necessary to complete the output process currently under consideration is not available or the completion of an output process does not result in an item of equipment becoming free for use (S37), the modelling module17proceeds to determine (S39) whether the output process currently under consideration is the last active process in the generated list of output processes.

If this is not the case, the modelling module17proceeds (S40) to select the next output process record for consideration as to whether the equipment for completing the next process is available for use (S35). If the current output process is the final process in the list of output processes generated by the modelling module17the processing of the modelling module for the step of the model currently being simulated then ends.

After the simulation has been completed the computer1will have stored in memory11output data140-144which can be output either as a graph or as a table and displayed on the display3or printed out in hard copy from utilizing the printer8. By varying the batch and utilities records32, records120, equipment records31utilizing the input module15, a number of different simulations can be performed to identify how the variation of parameters effects the simulation and resulting output data. Actual equipment for performing a process can the be selected and the scheduling of batches performed in accordance to the equipment31and utility32records and batch records120respectively with the equipment and schedules being such as to correspond to a simulation whose use of equipment is determined to represent an efficient process.

SECOND EMBODIMENT

A second embodiment of the present invention will now be described. In the first embodiment a system is described which is suitable for modelling a continuous production process. Many production processes, however, involve shift work. Where, for example, biological material is being manufactured in separate shifts, it is necessary to ensure that processing between hold points is achievable prior to the end of a shift. This embodiment of the present invention is identical to the first embodiment except the modelling module17is modified to enable the additional constraint that processing between hold points must be completed within certain shifts is simulated.

Specifically, the processing of the modified modelling module17is identical to the processing described in the previous embodiment except the modified modelling module17additionally stores a simulated current time so that the time remaining before the end of a shift can be determined, and the processing of the modelling module17after it has been determined that a new batch is due to be initiated is modified as will now be described with reference toFIG. 16.

Initially (S50), after it has been determined that a new batch is due to be initiated, in this embodiment the modelling module17first determines whether it is possible to complete the processing of the new batch within the time remaining in a current shift. In this embodiment this is achieved by the modelling module17first determining the time remaining within the shift utilizing the current simulated time and pre-stored data identifying when a shift ends. This time remaining is then compared with the minimum time within which the next batch being initiated could possibly be processed. This minimum time itself can be determined from the data defining the processes to be undertaken to process a batch assuming that only the processes associated with a completion condition74identifying a specific time elapse cause any delay in the processing of the batch.

After the modelling module17has determined the minimum possible processing time for processing a batch, it is determined whether this minimum time is greater than the time remaining in the current shift. If this is the case, the modelling module17then automatically re-schedules initiation of the batch (S51) by setting the initiation of the next batch to be due at the beginning of the next shift. The processing of the modelling module then continues with determining a new appropriate step size (S5) has as previously been described in relation to the first embodiment with reference toFIG. 13.

If, the modelling module17determines that processing of a new batch could possibly be completed within the time available within the remaining time for a shift, the modelling module17then (S52) proceeds to estimate the likely time required to actually process the batch. In this embodiment this is achieved by the modelling module17determining the sum for each item of equipment50which is required to process the batch which is about to be initiated the greater of the previous cycle times68associated with each item of equipment or the estimated minimum time for the item of equipment to process the new batch.

The modelling module17(S53) then determines whether this estimated processing time indicates that the completion of the batch will occur before the end of the current shift. If the modelling module17determines that processing of the batch to be initiated will not be completed within the time remaining in the current shift the modelling module17then (S54) re-sets the next batch due data124for the current batch to a default value indicating that reconsideration of initiating the batch should occur after that default time period has been simulated. The processing of the modelling module17then continues to determine an appropriate step size (S5) as has previously been described in relation to the first embodiment.

If, however, the modelling module17determines that the batch to be initiated is likely to be processed within the current shift, the modelling module17then (S55) proceeds to initiate the current batch and schedules the following batch (S55) as has been previously described in the previous embodiment in relation toFIG. 13(S2-S4) before proceeding to determine an appropriate step size (S5) for continuing the simulation.

By determining whether the processing of a batch is likely to be completed before the end of a shift before initiating the processing of a batch, a means is provided to simulate the running down of production at the end of a work day. The re-scheduling of batches which cannot possibly be processed within the time available ensures that once it is established that the processing of a batch is impossible no further reconsideration of initiating the batch occurs until the following shift. In contrast, where it appears on the basis of current cycle times a batch is merely unlikely to be processed within the available time, the rescheduling of a batch by a default delay (S54) enables the status of a production line to be re-checked at regular intervals in case current bottle necks in the production process are overcome and processing can be initiated.

In the above embodiment the estimated time required to process a new batch is determined purely by calculating the sum of previous cycle times68or minimum processing times for items of equipment which are to be utilized to simulate the processing of the batch. Other more sophisticated algorithms for estimating a likely processing time could however be utilized. For example, the time for processing a batch could be determined by summing for each item of equipment to be utilized to process the batch the greater of the current cycle times66or the previous cycle time68associated with items of equipment utilized to process the batch.

Alternatively, each time the particular process utilizing an item of equipment is simulated, the actual processing time could be stored. Where it was imperative that a particular type of batch had to be processed within a particular shift, the estimated time required for processing a batch of that type could then be determined by summing the greatest stored cycle times for each item of equipment utilized to process a batch of that type.

Alternatively, where some flexibility in shift time is available, the distribution of cycle times for processing a particular type of batch could be determined and a value corresponding to an estimated time required selected on the basis that a default percentage of processing would normally occur within the selected time period. Thus for example, where in 90% of cases processing a particular type of batch are determined to take place within the specified time period, that the time period might be utilized as an estimate of the time required for processing a batch of that type.

FURTHER AMENDMENTS AND MODIFICATIONS

Although in the first embodiment a system is described in which data is entered utilizing a graphical interface, it will be appreciated that as the equipment records31, utility records32and batch records120comprise data associated within a record any suitable form of input interface could be utilized to generate records.

In particular, by defining equipment in terms of a number of physical parameters55and a number of processes60,62,64any type of equipment can be pre-defined. The passage of individual batches between different items of equipment would then be simulated by entering data for routing data134, batch parameters136for batches and data for the processes60,62,64. Thus by directly entering the definition for processing in terms of processing undertaken by items of equipment and detailing exactly what is to be processed by entering routing data and batch parameters134,136great flexibility in defining a production system to be simulated can be achieved. In particular, by directly entering information such as the routing data134where different products as identified by the batch parameters136are processed in different ways using the same equipment, direct entry of data enables multiple processes using the same items of equipment to be designed more easily than can be achieved using a graphical interface.

Although the embodiments of the invention described with reference to the drawings comprise computer apparatus and processes performed in computer apparatus, the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of source or object code or in any other form suitable for use in the implementation of the processes according to the invention. The carrier be any entity or device capable of carrying the program.

For example, the carrier may comprise a storage medium, such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disk. Further, the carrier may be a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or other means.

When a program is embodied in a signal which may be conveyed directly by a cable or other device or means, the carrier may be constituted by such cable or other device or means.

Alternatively, the carrier may be an integrated circuit in which the program is embedded, the integrated circuit being adapted for performing, or for use in the performance of, the relevant processes.