Optimization of motion profile using computational fluid dynamics
By employing CFD modeling to optimize agitation motion profiles in AVI systems, the challenges of particle dislodgement in pharmaceutical product inspections are addressed, enhancing detection reliability and reducing errors.
Patent Information
- Application Number
- PCT/US2024/059929
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-15
- Filing Date
- 2024-12-13
- Publication Date
- 2025-06-19
AI Technical Summary
Existing automated visual inspection (AVI) systems for pharmaceutical products face challenges in effectively agitating liquid-filled containers to dislodge particles, leading to reduced detection reliability due to 'dead zones' on container surfaces and interference from lubricants.
The use of computational fluid dynamics (CFD) modeling to optimize motion profiles for agitation, allowing for simulation of container motion and analysis of wall shear stress to ensure effective particle dislodgement and detection.
This approach ensures that AVI and manual visual inspection (MVI) systems properly agitate pharmaceutical products, reducing errors associated with particle sticking and improving detection reliability.
Smart Images

Figure US2024059929_19062025_PF_FP_ABST
Abstract
Description
OPTIMIZATION OF MOTION PROFILE USING COMPUTATIONAL FLUID DYNAMICSFIELD OF THE DISCLOSURE
[0001] The present application generally relates to optimizing visual inspection of pharmaceutical products, and more specifically to applying computational fluid dynamics (CFD) to optimize a motion profile implemented to agitate a pharmaceutical product during visual inspectionBACKGROUND
[0002] During manufacture of pharmaceutical products (e g., biotherapeutic proteins or small molecule therapeutics), the pharmaceutical products can be inspected manually (i.e , by human eyes) or by automated visual inspection (AVI) systems to ensure that products are defect free. For liquid-filled products, the inspection process includes the agitation of the fluid to release and suspend any internal particles of the pharmaceutical product such that they can be reliably detected, either by a human inspector or through a computer vision-based automated system.
[0003] When conducting agitation testing, the particles have a tendency to stick to an interior surface of the container. For example, due to a combination of Van der Waals forces, container geometry, and / or fluid volumes, a “dead zone” may form on the interior surface where the particles are difficult to dislodge. In some conventional systems where the container is a glass syringe, the interior surface may be coated with a lubricant. However, this lubricant may interface with particles, potentially impacting inspection results.
[0004] Generally, AVI systems may be preferred over manual visual inspection (MVI) due the AVI system being able to be controlled by a motion profile that can consistently repeat a set of motions when inspecting a lot of pharmaceutical products. Additionally, some AVI systems can have a significantly higher throughput of pharmaceutical products than MVI systems In some instances, MVI has been found to more reliably agitate the fluid in a manner that causes the release and suspension of the particles of the pharmaceutical product as compared to AVI systems Thus, MVI may be able to provide improved particle detectability during the inspection of the pharmaceutical product Moreover, because each combination of pharmaceutical product, filling liquid, and container may behave differently when agitated, the motion profile during the visual inspection process should be adapted to the particularities of the specific manufacturing process being inspected.BRIEF SUMMARY
[0005] Systems and methods described herein generally use computational fluid dynamics (CFD) modeling techniques to optimize a motion profile for agitation of a pharmaceutical product during a MVI or AVI process The techniques may include configuring a CFD modeling environment with properties of the pharmaceutical product, a filling liquid, and a container that houses both The techniques may then obtain an input motion profile under testing to simulate motion of the container during an agitation event of the MVI or AVI process. During the simulation, the CFD modeling environment models the resultant motion of the liquid solution that includes the pharmaceutical product throughout the agitation event. For systems where the motion profile replicates MVI agitation motions, the techniques may first parameterize sensor data indicative of the manual motion of the container to parameters via which an AVI system can be controlled
[0006] Through experimental testing, it was discovered that wall shear stress exerted upon an inner surface of the container is indicative of whether a particle of pharmaceutical product will dislodge and can be subject to particle detection or trackingtechniques that are implemented in many AVI and MVI systems. The use of CFD modelling techniques enables the determination of shear stress exhibited on the inner surface of the container throughout the agitation event (as well as other features of interest). Accordingly, the techniques disclosed herein are able to analyze the simulation results to determine whether the motion profile will agitate the container in a manner that will dislodge the particles of the pharmaceutical product when implemented in a real world MVI or AVI system. Additionally, according to certain aspects, the denser particles (either intrinsic to the product, formed from debris from the manufacturing equipment, fragments of the primary container components, or foreign contaminants) are more likely to settle on lower surfaces of the container. Accordingly, particular focus may be placed on ensuring that the regions of high wall shear stress sweep across the lower surfaces of the container during the agitation event driven by the motion profile.
[0007] If the CFD simulation of the motion profile does not produce motion that sufficiently agitates the pharmaceutical product, the techniques involve changing one or more parameters of the motion profile and performing additional simulations until the CFD simulation indicates proper agitation of the pharmaceutical product has occurred. As a result, the techniques disclosed herein are able to ensure that AVI and MVI systems properly agitate the pharmaceutical product, thereby reducing errors in the visual inspection of pharmaceutical products associated with particles sticking to surfaces of the container during agitation events.
[0008] In some aspects, the techniques described herein relate to a method for optimizing a motion profile for agitating a sample in a container. The method includes (a) obtaining, by one or more processors, a motion profile associated with an agitation event of the container; (b) analyzing, by the one or more processors, the motion profile using a computational fluid dynamics (CFD) model to generate one or more performance metrics of the agitation event, wherein the performance metrics include a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress; (c) comparing, by the one or more processors, the one or more performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile; and (d) based on the comparison, performing, by the one or more processors, one of (i) accepting the motion profile, or (II) adjusting the motion profile and repeating steps (b)-(d) using the adjusted motion profile.
[0009] In some aspects, the techniques described herein relate to a system for optimizing a motion profile for agitating a sample in a container. The system includes (i) one or more processors; and (ii) a memory storing non-transitory instructions that, when executed by the one or more processors, cause the system to (a) obtain a motion profile associated with an agitation event of the container; (b) analyze the motion profile using a computational fluid dynamics (CFD) model to generate one or more performance metrics of the agitation event, wherein the performance metrics include a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress; (c) compare the one or more performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile; and (d) based on the comparison, perform one of (1) accepting the motion profile, or (2) adjusting the motion profile and repeating steps (b)-(d) using the adjusted motion profile.
[0010] In some aspects, the techniques described herein relate to one or more non-transitory, computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to (a) obtain a motion profile associated with an agitation event of the container; (b) analyze the motion profile using a computational fluid dynamics (CFD) model to generate one or more performance metrics of the agitation event, wherein the performance metrics include a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress; (c) compare the one ormore performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile; and (d) based on the comparison, perform one of (1) accepting the motion profile, or (2) adjusting the motion profile and repeating steps (b)-(d) using the adjusted motion profile.BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The skilled artisan will understand that the figures described herein are included for purposes of illustration and are not limiting on the present disclosure The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the present disclosure It is to be understood that, in some instances, various aspects of the described implementations may be shown exaggerated or enlarged to facilitate an understanding of the described implementations. In the drawings, like reference characters throughout the various drawings generally refer to functionally similar and / or structurally similar components.
[0012] FIG. 1 illustrates an example inspection system 100 in which an optimized motion profile may be implemented.
[0013] FIG. 2 is a simplified block diagram of an example system for optimizing a motion profile implemented, in some embodiments, by the inspection system of FIG. 1.
[0014] FIG. 3 depicts a model for parameterizing motion of a container.
[0015] FIG. 4 depicts example outputs of a CFD simulation at a plurality of different times throughout a simulated execution of a motion profile. Also depicted is the output of post processing analysis of the accumulated wall shear stress distribution.
[0016] FIG. 5 an overall flow diagram for a process 500 of optimizing a motion profile for agitating a container that holds a sample.
[0017] FIG. 6 illustrates a flow chart of an example method 600 for optimizing a motion profile for agitating a sample in a container.DETAILED DESCRIPTION
[0018] The various concepts introduced above and discussed in greater detail below may be implemented in any of numerous ways, and the described concepts are not limited to any particular manner of implementation. Examples of implementations are provided for illustrative purposes.
[0019] FIG. 1 illustrates an inspection system 100 according to an embodiment of the present disclosure. The system 100 includes an agitator 102, which includes a robotic subsystem 104 and a spindle 106. As shown in FIG. 1, the spindle 106 may be coupled to the robotic subsystem 104. The system 100 further includes an illumination system 108 including one or more illuminators to illuminate a container held by the agitator 102, and one or more imagers 110 that acquire images of the container as the container is agitated by the agitator 102.
[0020] The container may include a sample (e.g., a pharmaceutical product) being inspected and may be anything that can exhibit visual attributes or characteristics important to a particular application. In a pharmaceutical context, for example, the inspected container may be a syringe, vial or other container holding fluids that has a sample mixed therewithin.
[0021] As an overview, the system 100 is configured to image the container while controlling the agitator 102 in accordance with a motion profile. Images may be acquired during any segment of the motion profile. In some embodiments, the inspection system 100 analyzes images of the container to determine one or more characteristics of the container. For example, theinspection system 100 may analyze the images to detect particles which are present in the container, count a number of particles present in the container, size particles in the container, track particle movement, or otherwise characterize the particles in the container. Particles may be, for example, dust or other contaminants, or protein aggregates. Additionally, the inspection system 100 may analyze the images to detect the presence of defects in the container (e.g., cracks)
[0022] In some embodiments, the spindle 106 includes a gripper that is spun by a motor. The gripper may be configured to grasp and securely hold the container. In some implementations, the gripper is a pneumatic gripper, electric gripper, or a vacuum gripper. In other implementations, the gripper includes multiple fingers that are controlled by a controller to secure the container to the spindle 106. The motor of the spindle 106 may be a servo motor, stepper motor, or other type of electric motor. The motor may be configured to spin the container around a central axis of the spindle 106. The rate at which the motor of the spindle 106 spins the container may be controlled by the motion profile.
[0023] In some embodiments, the robotic subsystem 104 is a pick-and-place robotic system that includes a robotic arm. Accordingly, the robotic subsystem 104 may have multiple degrees of freedom (e.g., two or more of x, y, z, yaw, pitch, or roll). In one or more embodiments, the robotic subsystem 104 can invert or shake the container. Accordingly, the motion profile may include commands that control the position of the robotic subsystem 104 with respect to at least one degree of freedom.
[0024] According to certain aspects, the motion profile includes one or more motion segments. Each motion segment may include a control command for operating the robotic subsystem 104 and / or the spindle 106, and a time of executing the control command For example, the motion profile may include a first motion segment that may include one or more commands to be executed at time ti of the motion profile and a second motion segment that includes one or more commands to be executed at time t2 of the motion profile The commands included in a motion segment may be higher level commands (such as shaking, inverting, spinning, applying ultrasonic energy, applying acoustic energy, etc.) that are interpreted by a controller of the agitator 102 to generate the control commands that change the position of the robotic subsystem 104 and / or control the operation of the motor of the spindle 106.
[0025] By way of a non-limiting example, in one or more embodiments, the motion profile includes a first motion segment, followed by a sudden halt and a rest period in a second motion segment in which the agitator 102 provides no additional motion (e.g., discontinues the first motion), and then a second motion in a third motion segment. Images may be acquired during one or more of the first agitation period, second agitation period, or third agitation period to determine one or more characteristics associated with the container. In such embodiments, the first motion is a spinning motion, and a fluid within the container continues to spin during the rest period as the inspection system 100 acquires images of the spinning fluid. While the foregoing motion profile includes example motion segments for performing particle tracking and / or detection, the motion profile may include additional or alternative motion segments to support other visual inspection analyses of the container.
[0026] As illustrated, the illumination system 108 may include one or more illuminators that are disposed around the spindle 106 and / or the container For example, the illumination system 108 may include one or more LEDs, lasers, fluorescent bulbs, incandescent bulbs, flash lamps, or any other suitable illuminator or combination of suitable illuminators. A controller of the illumination system 108 may be configured to control the illumination system 108 to illuminate the container during image acquisition. For example, the controller may be configured to control a brightness of light emitted by the illumination system 108 (e.g., to a fixed brightness and / or to produce a strobing effect). Accordingly, in these embodiments, the motion profile mayinclude illumination control commands to configure the illumination system in support of the visual inspection analyses being performed.
[0027] The imager 110 may include one or more imaging devices (e.g., complementary metal-oxide semiconductor (CMOS) sensors or charge-coupled devices (CCDs)) and an optical system (e.g., one or more lenses, and possibly one or more mirrors, etc.) that are collectively configured to capture digital images of containers for visual inspection. Accordingly, the imager 110 may be configured to capture images of the container as the agitator 102 implements a motion profile to agitate the container. The images captured by the imager 110 can be transmitted to a controller for storage and analysis.
[0028] FIG. 2 is a simplified block diagram of an example optimization system 150 for optimizing a motion profile implemented by the inspection system 100 of FIG. 1. As illustrated, the system 150 includes a controller 120 operatively coupled to the imager 110 and the agitator 102 of the inspection system 100 of FIG. 1. The controller 120 is communicatively coupled to a computer 140 via a network 160. The network 160 may be a single communication network, or may include multiple communication networks of one or more types (e.g., one or more wired and / or wireless local area networks (LANs), and / or one or more wired and / or wireless wide area networks (WANs) such as the Internet).
[0029] The controller 120 is generally configured to control the imager 110 to capture images of the container while controlling the agitator in accordance with a motion profile 134 that agitates the container in a manner that dislodges the particles of the sample from the container wall to reduce errors when executing inspection analyses 136. As seen in FIG. 2, the controller 120 includes a processing unit 122, a network interface 124 and a memory 126. The processing unit 122 includes one or more processors, each of which may be a programmable microprocessor that executes software instructions stored in the memory 126 to execute some or all of the functions of the controller 120 as described herein. Alternatively, one, some or all of the processors in the processing unit 122 may be other types of processors (e.g., application-specific integrated circuits (ASICs), field- programmable gate arrays (FPGAs), etc.), and the functionality of controller 120 as described herein may instead be implemented, in part or in whole, in hardware.
[0030] The network interface 124 may include any suitable hardware (e.g., front-end transmitter and receiver hardware), firmware, and / or software configured to communicate via network 160 using one or more communication protocols. For example, network interface 124 may be or include an Ethernet interface, enabling controller 120 to communicate with the computer 140 over the Internet or an intranet, etc. It should be appreciated that the network interface 124 may include separate hardware and / or ports for communicating with the computer 140 and interfacing with the agitator 102 and the imager 110.
[0031] The memory 126 may include one or more physical memory devices or units containing volatile and / or non-volatile memory. Any suitable memory type or types may be included, such as read-only memory (ROM), random access memory (RAM), flash memory, a solid-state drive (SSD), a hard disk drive (HDD), and so on. Collectively, memory 126 may store one or more software applications, data received / used by those applications, and data output / generated by those applications
[0032] The memory 126 may store the software instructions of a control module 132 that, when executed by processing unit 122, causes control messages to be exchanged with the agitator 102 and the imager 110. In particular, the control module 132 may generally be configured to control the agitator 102 and the imager 110 in accordance with the motion profile 134 such that container is agitated in a controlled, repeatable manner that produces motion that dislodges sample particles from the containerwalls. Accordingly, the control module 132 may cause imager 110 to capture / generate any number of images per container, which are then received by the controller 120. The controller 120 may initially store the received images in an image memory 138, which may be any suitable type of temporary storage (e g., RAM) that allows controller 120 to analyze each image prior to its deletion. The image memory 138 may be overwritten each time a new image, or set of images, associated with a container arrives from the imager 110, for example.
[0033] As illustrated, the memory 126 stores the software instructions of one or more inspection analyses 136 that, when executed by processing unit 122, analyzes image data stored in the image memory 138 to detect one or more sample attributes or characteristics of a container and / or sample included therein. In some embodiments, one or more of the inspection analyses 136 include a trained machine-learning (ML) model that processes the image data to apply one or more classifiers thereto. For example, one or more images of a fluid sample may be input to a ML model of an inspection analysis 136 that, after processing the image(s), outputs a predicted number of particles in the fluid, and / or a distribution of particle or object types contained in the fluid sample, etc. It should be appreciated that if the controller 120 implements a motion profile 134 that does not dislodge all of the particles of the sample, the ML model may undercount the number of particles in the fluid when predicting the number of sample particles included in the container. Thus, by optimizing the motion profile 134 in accordance with the below-described techniques, prediction error in the ML models implemented by the inspection analyses 136 is reduced
[0034] The ML models implemented by the inspection analyses 136 may be any suitable type of machine-learning model, such as a linear regression model, a convolutional neural network, a recursive neural network, and so on. Alternatively, inspection analyses 136 may instead comprise software instructions of a non-ML algorithm (i.e , vision analysis software) that performs classification functions without requiring any training. In some embodiments, inspection analyses may also use the output(s) of one or more ML models to determine whether a given sample should be rejected or accepted (or set aside for manual inspection, etc.). In alternative embodiments, the output of the ML models itself includes a classification directly indicative of whether the sample should be accepted or rejected (or set aside for further review, etc.), or a different module in memory 126 (or the memory of another computer in the system 150, not shown in FIG. 2) determines whether the sample should be accepted or rejected.
[0035] Similar to the controller 120, the computer 140 includes a processing unit 142, a network interface 144 and a memory 146. The processing unit 142 includes one or more processors, each of which may be a programmable microprocessor that executes software instructions stored in the memory 146 to execute some or all of the functions of the computer 140, including the functions described with to the flowcharts described herein Alternatively, one, some or all of the processors in the processing unit 142 may be other types of processors (e.g , application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), and the functionality of computer 140 as described herein may instead be implemented, in part or in whole, in hardware.
[0036] The network interface 144 may include any suitable hardware (e.g., front-end transmitter and receiver hardware), firmware, and / or software configured to communicate via network 160 using one or more communication protocols. For example, network interface 144 may be or include an Ethernet interface, enabling computer 140 to communicate the controller 120 over the Internet or an intranet, etc.
[0037] The memory 146 may include one or more physical memory devices or units containing volatile and / or non-volatile memory. Any suitable memory type or types may be included, such as read-only memory (ROM), random access memory (RAM), flash memory, a solid-state drive (SSD), a hard disk drive (HDD), and so on. Collectively, memory 146 may store one or more software applications, data received / used by those applications, and data output / generated by those applications
[0038] The memory 146 may store the software instructions of a computational fluid dynamics (CFD) simulator 147 that, when executed by processing unit 142, causes the computer 140 to simulate the fluid dynamics that occur when a motion profile under testing is used to control operation of the agitator 102 in an agitation cycle. To configure the CFD simulation, the CFD simulator147 may obtain model data 148 stored in the memory 146. The model data 148 may indicate various characteristics of the agitator 102, the container held by the agitator 102, a fluid inside the container, and / or the sample mixed with the fluid. As nonlimiting examples, the model data 148 of the agitator 102 may include the physical dimensions of the robotic subsystem 104; the model data 148 of the container may indicate the physical dimensions of the container and a container material, the model data148 of the liquid may indicate a fill volume, a viscosity, and a surface tension; and the model data 148 of the sample may indicate a particle type and a particle mass. In some embodiments, model data for a plurality of containers, liquids, and samples is maintained at an external database (not depicted). In these embodiments, a user of the computer 140 may provide an indication of the container, liquid, and / or sample used in the process being modeled via the CFD simulator 147, which then obtains the indicated model from the external databased and loads the obtained models into the memory 146
[0039] To set up the simulation, the CFD simulator 147 may obtain the model data 148 and create a virtual environment representative of the visual inspection system 100 that is holding a container. The CFD simulator 147 may include a physics engine that acts upon virtual models of the agitator 102, the container, the liquid, and the sample that replicate physical characteristics of the modeled component in the virtual environment. Accordingly, the CFD simulator 147 may configure virtual objects representative of the agitator 102, the container, the liquid, and the sample based upon their respective characteristics indicated by the model data 148. Accordingly, when the CFD simulator 147 simulates the motion of the agitator 102, the physics engine of the CFD simulator 147 can determine the physical forces exerted upon the container, liquid, and / or sample and / or movement of the same.
[0040] The memory 146 also stores the software instructions of a profile optimizer 149 configured to optimize a motion profile based upon the results of a simulation performed by the CFD simulator 147. To this end, the CFD simulator 147 may be configured to output one or more performance metrics indicative of the forces exerted upon the container, liquid, and sample during the execution of the motion profile For example, the CFD simulator 147 may be configured to output a map of the container indicating regions of high wall shear stress caused by the liquid being thrust against an inner surface of the container. The profile optimizer 149 may be configured to determine whether the motion profile utilized during a simulation satisfied one or more acceptance criteria. If the motion profile satisfies the acceptance criteria, the profile optimizer 149 may be configured to provide the motion profile to the controller 120 for use as the motion profile 134.
[0041] If the motion profile does not satisfy the acceptance criteria, the profile optimizer 149 may adjust one or more parameters of the motion profile and perform another simulation. The profile optimizer 149 may alter the timing between the motion segments, change an action type performed during a motion segment, change a parameter value for an action performed during a motion segment, and add or remove motion segments. In some embodiments, the profile optimizer 149 may implementa regression process (e.g., a multivariate regression analysis, a linear regression analysis) that adjusts the various features of the motion profile in order to maximize one or more parameters evaluated as part of the motion profile acceptance criteria.
[0042] It should be appreciated that while the foregoing description of FIGS. 1 and 2 describe how the disclosed motion profile optimization techniques may be implemented in an AVI system that includes a pick-and-place robotic system, the disclosed techniques may be implemented in other AVI systems. For example, some high-throughput AVI systems include a carousel, starwheel, or rotatory table via which multiple containers can be agitated simultaneously. In these embodiments, the motion profile may include commands that control a direction and / or angular velocity / acceleration of the carousel, starwheel, or rotatory table for a plurality of motion segments
[0043] Further, the foregoing techniques may also be implemented in manual visual inspection (MVI). In MVI embodiments, a tester manually agitates the container that includes the sample being inspected. Accordingly, in MVI embodiments, the system 100 does not include the agitator 102. Instead, in MVI embodiments, the motion profile may be a series of instructions for the tester to perform when manually agitating the container. Accordingly, in these embodiments, the controller 120 may instead be configured to output the instructions included in the motion profile to a display unit (not depicted) at a testing workstation.
[0044] In MVI embodiments, a motion profile may be derived from a set of motion data associated with a container being manually agitated. For example, the motion data may be obtained from accelerometers and / or imagers. In some embodiments, the motion data is input directly into the CFD simulator 147 which then converts the motion data into virtual motions to simulate the forces exerted upon the container, liquid, and / or sample. In other embodiments, the memory 146 may include a parameterization module (not depicted) that converts the motion data into control parameters associated with an AVI system. As a result, a motion profile that is optimized based on motion data obtained from a MVI process is able to improve AVI systems as well.
[0045] FIG. 3 depicts a model 300 for parameterizing motion of a container 303 as represented at two different times ti and fc. As illustrated, from time ti to time t2, the container 303 can be rotated around two different angular axes. The first angular axis is associated with rotation of the container 303 in a circle or radius rand having an angular velocity of wi. The second angular axis is associated with rotation by the fluid inside the container 303 and having an angular velocity of W2. In the visual inspection system 100, motion around the first angular axis may be mapped to control commands for the robotic subsystem 104 and motion around the second angular axis may be mapped to control commands for the spindle 106. Additionally, the model 300 may include a vertical offset angle 0 at which container is tilted from a vertical axis
[0046] In the model 300, a motion profile may indicate values for wi, 1 / 1 / 2, r, and © for a plurality of times. In some embodiments, the values may be derived from motion data obtained during a MVI process. In AVI systems, the parameter values may be converted into a format of a control command that can be executed by the AVI equipment (such as the agitator 102) prior to providing the optimized motion profile to a controller thereof (such as the controller 120).
[0047] FIG. 4 depicts example outputs 400 of a CFD simulation at a plurality of different times throughout a simulated execution of a motion profile. As described herein, one of the indicators that the container has been properly agitated is based on a coverage of an inner surface of the container associated with a high amount of wall shear stress at the fluid-air interface. Accordingly, the CFD simulator 147 may be configured to output a map of the container for a plurality of times throughout thesimulation. The map may generally associate a three-dimensional mesh of cells representative of the container with a calculated shear stress acting upon said cell based on the CFD model being simulated. In some embodiments, the three-dimensional mesh data is projected into a two-dimensional image that is analyzed using two-dimensional image processing techniques. As illustrated in FIG. 4, the darker shaded regions constitute a map representing where high wall shear stress regions have traversed the interior surface of the container and the lighter shaded regions are associated with lower wall shear stress. In some embodiments, the CFD simulation may derive the value of wall shear stress from a magnitude and / or direction of a fluid velocity vector at the corresponding cell in the model of the container.
[0048] In some embodiments, the computer 140 may apply a thresholding technique to the output maps to determine coverage metric associated regions that exhibit high amounts of wall shear stress. As one example, the thresholding techniques may apply a wall shear stress threshold to identify the regions associated with a stress level exceeding the threshold. As one example for an International Standards Organization (ISO) 6R glass vial filled with water, the wall shear stress threshold may be about 20 Pascals, about 25 Pascals, about 30 Pascals, and so on. According to aspects, having a wider sweep of the high wall shear stress regions may increase the likelihood of the sample particles dislodging from the container’s interior surface. Thus, in this example, the thresholding techniques may further include an area or size threshold for the regions of high wall shear stress and discard the regions the do not satisfy the size threshold
[0049] The computer 140 may perform this thresholding techniques for the output maps at different times and combine the map to produce a composite binary map of the container. For example, the thresholding techniques may be configured to set cells / pixels that satisfy the threshold condition(s) to a 1 and cells / pixels that do not to a 0. The computer may then combine the maps by performing a cellwise OR operation on the binary maps to produce a composite binary map of container. The computer may then analyze the composite binary map to determine one or more of the performance metrics. For example, the computer 140 may determine a coverage percentage of the inner surface area of the container included in the binary map. Because the sample particles tend to settle towards the bottom of the container, the coverage percentage may be weighted along a gradient of container heights associated with each cell.
[0050] Additionally, the computer 140 may analyze the maps using shapal and / or other analyses to detect other conditions. For example, the shapal analysis can be performed to detect the presence of bubbles and / or foaming. As shown in FIG. 4, the small clustered features 404 at time 0.2 second may indicate the presence of bubbling. As bubbles can be confused for sample particles when performing particle tracking, a motion profile that produces bubbles may fail to satisfy the acceptance criteria As another example, the map may indicate that a portion of the liquid may get stuck in a neck of the container during the motion profile. As this would prevent the particles from freely moving in the liquid, this may also cause issues in the particle tracking algorithms and cause the motion profile to fail to satisfy the acceptance criteria.
[0051] FIG. 5 is an overall flow diagram for a process 500 of optimizing a motion profile for agitating a container that holds a sample. The process may be implemented in part by a computer (such as the computer 140). In embodiments where the motion profile is implemented in an AVI system, the process 500 may begin at block 505 where the computer obtains a parameterize motion profile. The motion profile may be a motion profile currently in use in the AVI system or a best-guess motion profile manually configured by a user. In scenarios where the motion profile for the AVI systems is being optimized to replicate MVI motion, the process 500 may instead begin at block 510 where the computer obtains measured motion dataindicative of a manual agitation of a container. In these scenarios, at block 505, the computer converts the measured motion data into a parameterized motion profile that includes control commands and corresponding timings intended to replicate the manual agitation of the container measured by the motion data.
[0052] The computer may then configure a CFD simulator (such as the CFD simulator 147) to perform the CFD simulation. Accordingly, at block 520, the computer may obtain physical parameters describing the sample, the liquid, and / or the container modeled in the CFD simulation. In some embodiments, the CFD simulator includes an object library of objects that include the physical parameters for a plurality of different particles, liquids, and / or containers. Similarly, at block 525, the computer obtains the CFD model parameters 525 that represent the AVI or MVI system being modeled The CFD model parameters may also include a mapping of motion profile parameters to the corresponding physical dimension and / or function block in the modeled system. It should be appreciated that in MVI embodiments, the CFD simulator may instead accept the motion data and perform an internal parameterization that reflects the measured motion of the container.
[0053] In either scenario, at block 530, the computer may execute the CFD model simulation using the physical and CFD model parameters and the input motion profile (or motion data) to produce the output data 535 (such as the map of wall shear stress). At block 540, the computer analyzes the output data 535 to determine whether the simulated motion profile (or motion data) satisfies one or more acceptance criteria. If so, the process 500 proceeds to block 550 where the computer outputs the motion profile for usage in the AVI / MVI system. For AVI systems, the computer may transmit the motion profile to a controller (such as the controller 120) of the AVI system or upload the motion profile to a server for storage such that the motion profile can be downloaded into the controller at a later time. For MVI systems, the computer may input the approved motion profile and / or the motion data into to a converter configured to generate a set of instructions that, when performed by user, causes the intended motion for the container during manual agitation.
[0054] If the output data 535 does not satisfy the acceptance criteria, the computer proceeds to block 545 where it adjusts the motion profile parameters prior to conducting another simulation. In some embodiments, the computer may execute a regression technique that adjusts the parameters based on whether or not a prior modification causes the output data 535 to be closer to satisfying the performance metric(s). Additionally or alternatively, the computer may analyze the output data 535 to identify a time period that caused the motion profile to fail the performance metric(s) (e.g., by causing bubbling or foaming) and adjust the motion profile parameters preceding this time period in a manner intended to prevent the failure condition. The computer may continue to iteratively adjust the motion profile parameters at block 545 and conduct additional CFD model simulations at block 530 until the motion profile satisfies the performance metric(s)
[0055] FIG. 6 is a flow diagram of an example method 600 for optimizing a motion profile for agitating a sample in a container. The motion profile may be implemented in an AVI system (such as the AVI system 100 that includes a robotic holder arm or an AVI system that includes one or more of a carousel, a motorized rotary table, or a starwheel) or an MVI system. The method 600 may be implemented by one or more processors (such as processors of the processing unit 142) of a computer (such as the computer 140). The computer may store one or more computer-executable instructions in a memory (such as the memory 146) that implement the method 600. The instructions may be distributed between one or more applications in the memory (such as a CFD simulator 147 and a profile optimizer 149).
[0056] The method 600 begins at block 602 when the computer obtains a motion profile associated with an agitation event of the container. As described herein, the motion profile may indicate motion of the container at a plurality of different times during the agitation event. In embodiments where the motion profile controls an AVI system, the indicated motion may be control commands that operate one or more components of an agitator of the AVI system (such as the agitator 102).
[0057] In some embodiments, the motion profile is obtained based upon a manual agitation of the container. In these embodiments the computer may obtain a first set of motion data associated with a first manual agitation of the container under a first set of movement instructions and process the motion data to generate the motion profile. The processing may include parameterizing the motion data to control parameters of an AVI system. Accordingly, the computer may analyze the motion data to determine a rotation radius, a rotation speed, or an angle of rotation at a plurality of times during the agitation event.
[0058] At block 604, the computer analyzes the motion profile using a computational fluid dynamics (CFD) model (such as a CFD model included in the CFD simulator 147) to generate one or more performance metrics of the agitation event. For example, the CFD model may be configured to model characteristics of the sample, characteristics of the container, or characteristics of a liquid in the container.
[0059] As described herein, generating the performance metrics includes generating a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress. In some embodiments, to generate the coverage metric, the computer may (i) apply the CFD model to calculate the wall shear stress exerted upon the inner surface of the container at the plurality of different times; and (ii) generate a map of wall shear stress exerted upon the inner surface of the container at the plurality of different times (such as the maps described with respect to FIG. 4) Accordingly, generating the coverage metric may include determining a percentage of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress. As described above, because the heavy particles of the sample tend to settle towards the bottom of the container, in some embodiments, the computer analyzes the maps to generate a weighted coverage metric based upon an area of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress, wherein the weighted coverage metric assigns a higher weight to a lower portion of the container and a lower weight to a higher portion of the container.
[0060] The performance metrics may also include other performance metrics. For example, the performance metrics may include a metric indicative of a presence of bubbling, a presence of foaming, or residual liquid being trapped in a neck of the container.
[0061] At block 606, the computer compares the one or more performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile. For example, the acceptance criteria associated with the coverage metric may be at least 80% of the inner surface of the container, at least 90% of the inner surface of the container, or at least 95% of the inner surface of the container. It should be appreciated that the percentage may be a raw percentage or a weighted coverage metric that is, in some embodiments, normalized to a scale of 0-100%. As another example, the acceptance criteria may also be an absence of bubbling, foaming, or residual liquid.
[0062] If the computer determines that the performance metrics do not satisfy the acceptance criteria, the computer proceeds to block 608 where the computer adjusts the motion profile. As described herein, for motion profiles that control AVI systems,the computer may implement a regression analysis that generates an adjusted motion profile that has adjusted parameters based on whether or not the performance metrics are closer to the acceptance criteria from a prior simulation of a prior motion profile using the CFD model. For motion profiles that are implemented in MVI systems, the computer may (1) generate a second set of movement instructions; (2) obtain a second set of motion data associated with a second manual agitation of the container under the second set of movement instructions; and (3) process the second set of motion data to generate the adjusted motion profile.
[0063] On the other hand, if the performance metrics satisfy the acceptance criteria, the computer proceeds to block 610 and accepts the motion profile. In some embodiments where the motion profile is implemented in AVI systems, the computer may then configure a controller of the AVI system (such as the controller 120) to implement the accepted motion profile. For embodiments where the motion profile is implemented in MVI systems, the computer may provide a set of movement instructions representative of the accepted motion profile to a workstation associated with the MVI process at which the movement instructions can be displayed to an operator of the MVI process. Alternatively, the feedback can be used by process owners to revise / optimize standard operating procedures (SOPs) and / or training for MVI inspectors to follow.
[0064] Additional considerations pertaining to this disclosure will now be addressed.
[0065] Some of the figures described herein illustrate example block diagrams having one or more functional components. It will be understood that such block diagrams are for illustrative purposes and the devices described and shown may have additional, fewer, or alternate components than those illustrated. Additionally, in various embodiments, the components (as well as the functionality provided by the respective components) may be associated with or otherwise integrated as part of any suitable components.
[0066] Embodiments of the disclosure relate to a non-transitory computer-readable storage medium having computer code thereon for performing various computer-implemented operations. The term “computer-readable storage medium” is used herein to include any medium that is capable of storing or encoding a sequence of instructions or computer codes for performing the operations, methodologies, and techniques described herein. The media and computer code may be those specially designed and constructed for the purposes of the embodiments of the disclosure, or they may be of the kind well known and available to those having skill in the computer software arts. Examples of computer-readable storage media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and holographic devices; magneto-optical media such as optical disks; and hardware devices that are specially configured to store and execute program code, such as ASICs, programmable logic devices (“PLDs”), and ROM and RAM devices.
[0067] Examples of computer code include machine code, such as produced by a compiler, and files containing higher-level code that are executed by a computer using an interpreter or a compiler. For example, an embodiment of the disclosure may be implemented using Java, C++, or other object-oriented programming language and development tools. Additional examples of computer code include encrypted code and compressed code. Moreover, an embodiment of the disclosure may be downloaded as a computer program product, which may be transferred from a remote computer (e.g., a server computer) to a requesting computer (e.g., a client computer or a different server computer) via a transmission channel. Another embodiment of the disclosure may be implemented in hardwired circuitry in place of, or in combination with, machine-executable software instructions.
[0068] As used herein, the singular terms “a,” “an,” and “the” may include plural referents, unless the context clearly dictates otherwise.
[0069] As used herein, the terms “approximately,” “substantially,” “substantial” and “about” are used to describe and account for small variations. When used in conjunction with an event or circumstance, the terms can refer to instances in which the event or circumstance occurs precisely as well as instances in which the event or circumstance occurs to a close approximation. For example, when used in conjunction with a numerical value, the terms can refer to a range of variation less than or equal to ±10% of that numerical value, such as less than or equal to ±5%, less than or equal to ±4%, less than or equal to ±3%, less than or equal to ±2%, less than or equal to ±1%, less than or equal to ±0 5%, less than or equal to ±0 1%, or less than or equal to ±005%. For example, two numerical values can be deemed to be “substantially” the same if a difference between the values is less than or equal to ±10% of an average of the values, such as less than or equal to ±5%, less than or equal to ±4%, less than or equal to ±3%, less than or equal to ±2%, less than or equal to ±1%, less than or equal to ±0.5%, less than or equal to ±0.1%, or less than or equal to ±0.05%.
[0070] Additionally, amounts, ratios, and other numerical values are sometimes presented herein in a range format. It is to be understood that such range format is used for convenience and brevity and should be understood flexibly to include numerical values explicitly specified as limits of a range, but also to include all individual numerical values or sub-ranges encompassed within that range as if each numerical value and sub-range is explicitly specified.
[0071] While the present disclosure has been described and illustrated with reference to specific embodiments thereof, these descriptions and illustrations do not limit the present disclosure. It should be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the true spirit and scope of the present disclosure as defined by the appended claims. The illustrations are not necessarily drawn to scale. There may be distinctions between the artistic renditions in the present disclosure and the actual apparatus due to manufacturing processes, tolerances and / or other reasons. There may be other embodiments of the present disclosure which are not specifically illustrated. The specification (other than the claims) and drawings are to be regarded as illustrative rather than restrictive. Modifications may be made to adapt a particular situation, material, composition of matter, technique, or process to the objective, spirit and scope of the present disclosure All such modifications are intended to be within the scope of the claims appended hereto. While the techniques disclosed herein have been described with reference to particular operations performed in a particular order, it will be understood that these operations may be combined, sub-divided, or re-ordered to form an equivalent technique without departing from the teachings of the present disclosure Accordingly, unless specifically indicated herein, the order and grouping of the operations are not limitations of the present disclosure.
Claims
WHAT IS CLAIMED IS:
1. A method for optimizing a motion profile for agitating a sample in a container, the method comprising:(a) obtaining, by one or more processors, a motion profile associated with an agitation event of the container;(b) analyzing, by the one or more processors, the motion profile using a computational fluid dynamics (CFD) model to generate one or more performance metrics of the agitation event, wherein generating the performance metrics includes generating a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress;(c) comparing, by the one or more processors, the one or more performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile; and(d) based on the comparison, performing, by the one or more processors, one of: accepting the motion profile, or adjusting the motion profile and repeating steps (b)-(d) using the adjusted motion profile.
2. The method of claim 1, wherein the CFD model is configured to model characteristics of the sample, characteristics of the container, or characteristics of a liquid in the container.
3. The method of claim 1 or 2 wherein the motion profile indicates motion of the container at a plurality of different times during the agitation event.
4. The method of claim 3, wherein generating the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress comprises: applying, by the one or more processors, the CFD model to calculate the wall shear stress exerted upon the inner surface of the container at the plurality of different times; and generating, by the one or more processors, a map of wall shear stress exerted upon the inner surface of the container at the plurality of different times5 The method of claim 3, wherein generating the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress comprises: determining, by the one or more processors, a percentage of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress.
6. The method of claim 3, wherein generating the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress comprises: generating, by the one or more processors, a weighted coverage metric based upon an area of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress, wherein the weighted coverage metric assigns a higher weight to a lower portion of the container and a lower weight to a higher portion of the container.
7. The method of any one of claims 1 to 6, wherein the one or more performance metrics include a metric indicative of a presence of bubbling, a presence of foaming, or residual liquid being trapped in a neck of the container.
8. The method of any one of claims 1 to 7, wherein obtaining the motion profile comprises: obtaining, by the one or more processors, a first set of motion data associated with a first manual agitation of the container under a first set of movement instructions; and processing, by the one or more processors, the motion data to generate the adjusted motion profile9. The method of claim 8, wherein processing the motion data to generate the motion profile comprises: analyzing, by the one or more processors, the motion data to determine a rotation radius, a rotation speed, or an angle of rotation at a plurality of times during the agitation event.10 The method of claim 8 or 9, wherein adjusting the motion profile comprises: generating, by the one or more processors, a second set of movement instructions; obtaining, by the one or more processors, a second set of motion data associated with a second manual agitation of the container under the second set of movement instructions; and processing, by the one or more processors, the second set of motion data to generate the motion profile11 The method of any one of claims 1 to 10, wherein the motion profile is configured to control motion of a robotic holder arm of an automated visual inspection (AVI) system.12 The method of any one of claims 1 to 10, wherein the motion profile is configured to control motion of at least one of a carousel, motorized rotary table, or a starwheel of an AVI system.13 The method of claim 11 or 12, further comprising: configuring a controller of the AVI system to implement the accepted motion profile14 A system for optimizing a motion profile for agitating a sample in a container, the system comprising: one or more processors; and a memory storing non-transitory instructions that, when executed by the one or more processors, cause the system to:(a) obtain a motion profile associated with an agitation event of the container;(b) analyze the motion profile using a computational fluid dynamics (CFD) model to generate one or more performance metrics of the agitation event, wherein generating the performance metrics includes generating a coverage of an inner surface of the container that experienced a threshold amount of wall shear stress;(c) compare the one or more performance metrics to one or more respective acceptance criteria to determine an acceptability of the motion profile; and(d) based on the comparison, perform one of: accepting the motion profile, or adjusting the motion profile and repeating steps (b)-(d) using the adjusted motion profile.15 The system of claim 14, wherein the CFD model is configured to model characteristics of the sample, characteristics of the container, or characteristics of a liquid in the container.16 The system of claim 14 or 15 wherein the motion profile indicates motion of the container at a plurality of different times during the agitation event.17 The system of claim 16 wherein to generate the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress, the instructions, when executed, cause the system to: apply the CFD model to calculate the wall shear stress exerted upon the inner surface of the container at the plurality of different times; and generate a map of wall shear stress exerted upon the inner surface of the container at the plurality of different times.18 The system of claim 16, wherein to generate the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress, the instructions, when executed, cause the system to: determine a percentage of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress.19 The system of claim 16, wherein to generate the coverage of an inner surface of the container that experienced a threshold amount of wall shear stress, the instructions, when executed, cause the system to: generate a weighted coverage metric based upon an area of the inner surface associated with a maximum wall shear stress that exceeds the threshold amount of wall shear stress, wherein the weighted coverage metric assigns a higher weight to a lower portion of the container and a lower weight to a higher portion of the container20 The system of claim 14, wherein the one or more performance metrics include a metric indicative of a presence of bubbling, a presence of foaming, or residual liquid being trapped in a neck of the container.21 The system of any one of claims 14 to 20, wherein to obtain the motion profile, the instructions, when executed, cause the system to: obtain a first set of motion data associated with a first manual agitation of the container under a first set of movement instructions; and process the motion data to generate the motion profile.22 The system of claim 21, wherein to process the motion data to generate the motion profile, the instructions, when executed, cause the system to: analyze the motion data to determine a rotation radius, a rotation speed, or an angle of rotation at a plurality of times during the agitation event.23 The system of claim 21 or 22, wherein to adjust the motion profile, the instructions, when executed, cause the system to: generate a second set of movement instructions; obtain a second set of motion data associated with a second manual agitation of the container under the second set of movement instructions; and process the second set of motion data to generate the adjusted motion profile.24 The system of any one of claims 14 to 23, wherein the motion profile is configured to control motion of a robotic holder arm of an automated visual inspection (AVI) system.25 The system of any one of claims 14 to 23, wherein the motion profile is configured to control motion of at least one of a carousel, motorized rotary table, or a starwheel of an AVI system.26 The system of claim 24 or 25, wherein the instructions, when executed, cause the system to: configure a controller of the AVI system to implement the accepted motion profile.27 One or more non-transitory, computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 13.
Citation Information
Patent Citations
AU2019314196A1
AU2020378062A1
AU2016421905A1