Optimization of motion profiles using computational fluid dynamics
By optimizing the agitation motion profile through CFD modeling, the problem of particle adhesion during the agitation process of drug products was solved, improving the reliability of particle detection for automated and manual visual inspection, and ensuring the quality of drug products.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- AMGEN INC
- Filing Date
- 2024-12-13
- Publication Date
- 2026-07-14
AI Technical Summary
During the agitation process of existing drug products, particles tend to adhere to the inner surface of the container, leading to detection errors during visual inspection. The motion profile of automated visual inspection systems is difficult to adapt to the specificities of different manufacturing processes, affecting particle release and suspension effects.
Computational fluid dynamics (CFD) modeling techniques were used to optimize the agitation motion profile. By simulating the shear stress distribution inside the container, motion parameters were adjusted to ensure that high shear stress regions swept across the inner surface of the container, thereby reducing particle adhesion.
It improves the reliability of particle detection in automated and manual visual inspection systems, reduces errors caused by particles adhering to the container surface during agitation, and ensures the consistency of drug product quality.
Smart Images

Figure CN122396542A_ABST
Abstract
Description
Technical Field
[0001] This application generally relates to optimizing the visual inspection of pharmaceutical products, and more specifically to applying computational fluid dynamics (CFD) to optimize the motion profile of the pharmaceutical product implemented to agitate it during visual inspection. Background Technology
[0002] During the manufacture of pharmaceutical products (e.g., biotherapeutic proteins or small molecule therapeutics), the products can be inspected manually (i.e., by the human eye) or by an automated visual inspection (AVI) system to ensure that the products are free of defects. For products filled with liquids, the inspection process involves agitating the fluid to release and suspend any internal particles of the pharmaceutical product, allowing these particles to be reliably detected by a human inspector or by an automated system based on computer vision.
[0003] When performing agitation tests, particles tend to adhere to the inner surface of the container. For example, due to a combination of van der Waals forces, container geometry, and / or fluid volume, "dead zones" that are difficult to remove particles from may form on the inner surface. In some conventional systems where the container is a glass syringe, the inner surface may be coated with a lubricant. However, this lubricant may come into contact with the particles, potentially affecting the test results.
[0004] Generally, AVI systems can outperform manual visual inspection (MVI) because AVI systems can be controlled by motion profiles that consistently repeat a set of movements when inspecting large volumes of pharmaceutical products. Additionally, some AVI systems can achieve significantly higher pharmaceutical throughput than MVI systems. In some cases, MVI has been found to reliably agitate the fluid compared to AVI systems, inducing the release and suspension of pharmaceutical particles. Therefore, MVI can provide improved particle detectability during pharmaceutical product inspection. Furthermore, because each combination of pharmaceutical product, filling liquid, and container may behave differently during agitation, the motion profile during visual inspection should be adapted to the specific characteristics of the manufacturing process being inspected. Summary of the Invention
[0005] The systems and methods described herein generally utilize computational fluid dynamics (CFD) modeling techniques to optimize the motion profiles used for agitating pharmaceutical products during MVI or AVI processes. These techniques may include configuring a CFD modeling environment using the characteristics of the pharmaceutical product, the filling liquid, and the container holding both. These techniques then acquire the input motion profile under test to simulate the motion of the container during an agitation event in the MVI or AVI process. During the simulation, the CFD modeling environment models the resulting motion of the liquid solution, including the pharmaceutical product, throughout the agitation event. For systems that replicate the motion profiles of MVI agitation, these techniques may first parameterize sensor data indicating manual movement of the container into parameters that can be used to control the AVI system.
[0006] Experimental testing revealed that the wall shear stress applied to the inner surface of the container indicates whether particles of the pharmaceutical product will be removed and can withstand particle detection or tracking techniques implemented in many AVI and MVI systems. The use of CFD modeling techniques allows for the determination of the shear stress exhibited on the inner surface of the container throughout the agitation event (and other features of interest). Therefore, the techniques disclosed herein enable the analysis of simulation results to determine whether the motion profile will agitate the container in a manner that would remove particles of the pharmaceutical product when implemented in a real-world MVI or AVI system. Additionally, depending on certain aspects, denser particles (product-inherent, formed from debris from manufacturing equipment, fragments of major container components, or foreign contaminants) are more likely to settle on the lower surface of the container. Therefore, particular attention can be paid to ensuring that areas of high wall shear stress sweep across the lower surface of the container during agitation events driven by the motion profile.
[0007] If the CFD simulation of the motion profile does not produce sufficient motion to agitate the drug product, these techniques involve altering one or more parameters of the motion profile and performing additional simulations until the CFD simulation indicates that proper agitation of the drug product has occurred. Therefore, the techniques disclosed herein ensure that AVI and MVI systems properly agitate drug products, thereby reducing errors in the visual inspection of drug products associated with particles adhering to the container surface during agitation events.
[0008] In some aspects, the techniques described herein relate to a method for optimizing the motion profile of a sample in an agitated container. The method includes: (a) acquiring a motion profile associated with an agitation event of the container via one or more processors; (b) analyzing the motion profile using a computational fluid dynamics (CFD) model via the one or more processors to generate one or more performance metrics of the agitation event, wherein the performance metrics include coverage of wall shear stresses of an experienced threshold amount on the inner surface of the container; (c) comparing the one or more performance metrics with one or more corresponding acceptance criteria via the one or more processors to determine the acceptability of the motion profile; and (d) based on the comparison, performing one of the following via the one or more processors: (i) accepting the motion profile, or (ii) adjusting the motion profile, and repeating steps (b) through (d) using the adjusted motion profile.
[0009] In some respects, the techniques described herein relate to a system for optimizing the motion profile of a sample in an agitated container. The system includes: (i) one or more processors; and (ii) a memory storing non-transient instructions that, when executed by the one or more processors, cause the system to: (a) acquire 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 coverage of wall shear stresses of an experienced threshold amount on the inner surface of the container; (c) compare the one or more performance metrics with one or more corresponding acceptance criteria to determine the acceptability of the motion profile; and (d) based on the comparison, perform one of the following: (1) accept the motion profile, or (2) adjust the motion profile and repeat steps (b) through (d) using the adjusted motion profile.
[0010] In some respects, 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) acquire a motion profile associated with an agitation event of a 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 coverage of wall shear stress of an experienced threshold amount on the inner surface of the container; (c) compare the one or more performance metrics with one or more corresponding acceptance criteria to determine the acceptability of the motion profile; and (d) based on the comparison, perform one of the following: (1) accept the motion profile, or (2) adjust the motion profile and repeat steps (b) through (d) using the adjusted motion profile. Attached Figure Description
[0011] Those skilled in the art will understand that the accompanying drawings described herein are for illustrative purposes and not intended to limit the scope of this disclosure. The drawings are not necessarily drawn to scale, but rather focus on illustrating the principles of this disclosure. It should be understood that in some cases, various aspects of the described embodiments may be exaggerated or enlarged to aid in understanding the described embodiments. Throughout the drawings, similar reference numerals generally refer to components that are functionally similar and / or structurally similar.
[0012] Figure 1 An example inspection system 100 is shown, in which optimized motion profiles can be implemented.
[0013] Figure 2 It is used to optimize the use of in some embodiments by Figure 1 A simplified block diagram of an example system for inspecting the motion profiles implemented by the inspection system.
[0014] Figure 3 A model for parameterizing the motion of containers is described.
[0015] Figure 4 Example outputs from CFD simulations at multiple different times throughout the entire simulation execution of the motion profile are depicted. Outputs from a post-processing analysis of the cumulative wall shear stress distribution are also depicted.
[0016] Figure 5 This is the overall flow chart of the process 500 for optimizing the motion profile of the container used to agitate the sample.
[0017] Figure 6 A flowchart of an example method 600 for optimizing the motion profile of a sample in a stirring container is shown. Detailed Implementation
[0018] The various concepts described above and discussed in more detail below can be implemented in any of a variety of ways, and the described concepts are not limited to any particular implementation. Examples of implementations are provided for illustrative purposes.
[0019] Figure 1 An inspection system 100 according to an embodiment of this disclosure is shown. System 100 includes an agitator 102, which includes a robotic subsystem 104 and a spindle 106. Figure 1 As shown, the spindle 106 can be coupled to the robot subsystem 104. System 100 further includes: an illumination system 108, which includes one or more illuminators to illuminate a container held by agitator 102; and one or more imagers 110, which acquire images of the container as agitator 102 agitates the container.
[0020] The container may include the sample being examined (e.g., a pharmaceutical product) and can be any container that exhibits visual attributes or characteristics important to a particular application. In a pharmaceutical context, for example, the container being examined could be a syringe, vial, or other container holding a fluid containing a sample mixed therein.
[0021] As an overview, system 100 is configured to image a container while controlling agitator 102 according to a motion profile. Images can be acquired during any segment of the motion profile. In some embodiments, inspection system 100 analyzes images of the container to determine one or more characteristics of the container. For example, inspection system 100 may analyze images to detect particles present in the container, count the number of particles present in the container, determine the size of 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, inspection system 100 may analyze images to detect the presence of defects (e.g., cracks) in the container.
[0022] In some embodiments, spindle 106 includes a gripper rotated by a motor. The gripper can be configured to grip and securely hold a container. In some embodiments, the gripper is a pneumatic gripper, an electric gripper, or a vacuum gripper. In other embodiments, the gripper includes a plurality of fingers controlled by a controller to hold the container to spindle 106. The motor of spindle 106 can be a servo motor, a stepper motor, or other type of electric motor. The motor can be configured to rotate the container about the central axis of spindle 106. The rate at which the motor of spindle 106 rotates the container can be controlled by a motion profile.
[0023] In some embodiments, the robotic subsystem 104 is a pick-and-place robotic system including a robotic arm. Therefore, 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 may invert or shake the container. Therefore, the motion profile may include commands controlling the position of the robotic subsystem 104 relative to at least one degree of freedom.
[0024] Depending on certain aspects, the motion profile includes one or more motion segments. Each motion segment may include control commands for operating the robot subsystem 104 and / or the spindle 106, and the time for executing the control commands. For example, the motion profile may include: a first motion segment that may include one or more commands to be executed at time t1 of the motion profile; and a second motion segment that may include one or more commands to be executed at time t2 of the motion profile. The commands included in the motion segments may be higher-level commands (such as shaking, inverting, rotating, applying ultrasonic energy, applying acoustic energy, etc.), which are interpreted by the controller of the agitator 102 to generate control commands that change the position of the robot subsystem 104 and / or control the operation of the motors of the spindle 106.
[0025] By way of non-limiting example, in one or more embodiments, the motion profile includes: a first motion segment; followed by a sudden stop and stillness period in a second motion segment, in which the agitator 102 does not provide additional motion (e.g., interrupts 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, the second agitation period, or the third agitation period to determine one or more characteristics associated with the container. In such an embodiment, the first motion is a rotational motion, and the fluid within the container continues to rotate during the stillness period while the inspection system 100 acquires an image of the rotating 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 further visual inspection analyses of the container.
[0026] As shown in the figure, the illumination system 108 may include one or more illuminators arranged around the main axis 106 and / or the container. For example, the illumination system 108 may include one or more LEDs, lasers, fluorescent bulbs, incandescent bulbs, flashlights, or any other suitable illuminator or combination of suitable illuminators. A controller for 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 the brightness of the light emitted by the illumination system 108 (e.g., control to a fixed brightness and / or produce a strobe effect). Therefore, in these embodiments, the motion profile may include illumination control commands to configure the illumination system to support ongoing visual inspection analysis.
[0027] Imager 110 may include one or more imaging devices (e.g., complementary metal-oxide-semiconductor (CMOS) sensors or charge-coupled devices (CCDs)) and optical systems (e.g., one or more lenses, and possibly one or more mirrors, etc.), which are collectively configured to capture digital images of the container for visual inspection. Therefore, imager 110 can be configured to capture images of the container as agitator 102 performs motion contouring to agitate the container. Images captured by imager 110 can be transmitted to a controller for storage and analysis.
[0028] Figure 2 It is used to optimize the Figure 1 A simplified block diagram of an example optimization system 150 implemented by the inspection system 100 is shown. As illustrated, system 150 includes a controller 120 operatively coupled to... Figure 1 The inspection system 100 includes an imager 110 and agitator 102. Controller 120 is communicatively connected to computer 140 via network 160. Network 160 may be a single communication network or may include one or more 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 simultaneously controlling a stirrer according to a motion profile 134 that agitates the container in a manner that removes sample particles from the container walls, thereby reducing errors during the performance of the inspection analysis 136. Figure 2 As seen herein, controller 120 includes processing unit 122, network interface 124, and memory 126. Processing unit 122 includes one or more processors, each of which may be a programmable microprocessor that executes software instructions stored in memory 126 to perform some or all of the functions of controller 120 as described herein. Alternatively, one, some, or all of the processors in processing unit 122 may be other types of processors (e.g., application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), and the functions of controller 120 as described herein may alternatively be implemented in part or in whole in hardware.
[0030] 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 an Ethernet interface or may include an Ethernet interface to enable controller 120 to communicate with computer 140 via the Internet or intranet, etc. It should be understood that network interface 124 may include separate hardware and / or ports for communicating with computer 140 and interface with agitator 102 and imager 110.
[0031] Memory 126 may include one or more physical memory devices or units containing volatile and / or non-volatile memory. It may include any suitable type of memory, such as read-only memory (ROM), random access memory (RAM), flash memory, solid-state drive (SSD), hard disk drive (HDD), etc. Memory 126 may collectively store one or more software applications, data received / used by these applications, and data output / generated by these applications.
[0032] Memory 126 may store software instructions for control module 132, which, when executed by processing unit 122, causes control messages to be exchanged with agitator 102 and imager 110. Specifically, control module 132 may be generally configured to control agitator 102 and imager 110 according to motion profile 134, causing the container to be agitated in a controlled, repeatable manner that produces motion that removes sample particles from the container walls. Thus, control module 132 can cause imager 110 to capture / generate any number of images of each container, which are then received by controller 120. Controller 120 may initially store the received images in image memory 138, which may be any suitable type of temporary memory (e.g., RAM) that allows controller 120 to analyze each image before deleting it. For example, image memory 138 may be overwritten whenever a new image or set of images associated with a container arrives from imager 110.
[0033] As shown in the figure, memory 126 stores software instructions for one or more inspection analyses 136 that, when executed by processing unit 122, analyze image data stored in image memory 138 to detect one or more sample attributes or characteristics of the container and / or the sample contained therein. In some embodiments, one or more inspection analyses in inspection analyses 136 include a trained machine learning (ML) model that processes the image data to apply one or more classifiers to it. For example, one or more images of a fluid sample can be input into the ML model of inspection analysis 136, which can output a predicted number of particles in the fluid and / or the distribution type of particles or objects contained in the fluid sample after processing the image(s). It should be understood that if controller 120 implements motion profile 134 without removing all particles from the sample, the ML model may underestimate the number of particles in the fluid when predicting the number of sample particles contained in the container. Therefore, by optimizing motion profile 134 according to the techniques described below, prediction errors in the ML model implemented by inspection analysis 136 are reduced.
[0034] The ML model implemented by inspection analysis 136 can be any suitable type of machine learning model, such as a linear regression model, convolutional neural network, recurrent neural network, etc. Alternatively, inspection analysis 136 may include software instructions that perform classification functions without any training of a non-ML algorithm (i.e., visual analysis software). In some embodiments, inspection analysis also uses the output of one or more ML models(s) to determine whether a given sample should be rejected or accepted (or reserved for manual inspection, etc.). In alternative embodiments, the output of the ML model itself includes a classification that directly indicates whether a sample should be rejected or accepted (or reserved for further review, etc.), or the memory of memory 126 (or the memory of another computer in system 150) Figure 2 Another module in (not shown) determines whether to reject or accept the sample.
[0035] Similar to controller 120, computer 140 includes processing unit 142, network interface 144, and memory 146. Processing unit 142 includes one or more processors, each of which may be a programmable microprocessor that executes software instructions stored in memory 146 to perform some or all of the functions of computer 140, including the functions described in the flowcharts herein. Alternatively, one, some, or all of the processors in processing unit 142 may be other types of processors (e.g., application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), and the functions of computer 140 as described herein may alternatively be implemented in part or in whole in hardware.
[0036] 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 an Ethernet interface or may include an Ethernet interface to enable computer 140 to communicate with controller 120 via the Internet or intranet, etc.
[0037] Memory 146 may include one or more physical memory devices or cells containing volatile and / or non-volatile memory. It may include any suitable type of memory, such as read-only memory (ROM), random access memory (RAM), flash memory, solid-state drive (SSD), hard disk drive (HDD), etc. Memory 146 may collectively store one or more software applications, data received / used by these applications, and data output / generated by these applications.
[0038] Memory 146 may store software instructions for a computational fluid dynamics (CFD) simulator 147, which, when executed by processing unit 142, enables computer 140 to simulate the fluid dynamics that occur when the operation of agitator 102 is controlled in an agitation cycle using a measured motion profile. To configure the CFD simulation, CFD simulator 147 may acquire model data 148 stored in memory 146. Model data 148 may indicate various properties of agitator 102, a container held by agitator 102, the fluid within the container, and / or a sample mixed with the fluid. As a non-limiting example, model data 148 for agitator 102 may include the physical dimensions of robotic subsystem 104; model data 148 for the container may indicate the physical dimensions of the container and container material; model data 148 for the liquid may indicate the filling volume, viscosity, and surface tension; and model data 148 for the sample may indicate particle type and particle mass. In some embodiments, model data for multiple containers, liquids, and samples are maintained in an external database (not depicted). In these embodiments, a user of computer 140 may provide instructions via CFD simulator 147 for containers, liquids and / or samples to be used in the modeling process, which then retrieves the indicated model from an external database and loads the retrieved model into memory 146.
[0039] To establish a simulation, CFD simulator 147 can acquire model data 148 and create a virtual environment representing the visual inspection system 100 of the held container. CFD simulator 147 may include a physics engine that acts on virtual models of the agitator 102, container, liquid, and sample, replicating the physical properties of the modeled components within the virtual environment. Therefore, CFD simulator 147 can configure virtual objects representing the agitator 102, container, liquid, and sample based on the corresponding properties indicated by the model data 148. Thus, when CFD simulator 147 simulates the movement of the agitator 102, the physics engine of CFD simulator 147 can determine the physical forces and / or movement applied to the container, liquid, and / or sample.
[0040] Memory 146 also stores software instructions for a profile optimizer 149, configured to optimize a motion profile based on the results of a simulation performed by CFD simulator 147. For this purpose, CFD simulator 147 can be configured to output one or more performance metrics indicating the forces applied to the container, liquid, and sample during the execution of the motion profile. For example, CFD simulator 147 can be configured to output a map of the container indicating regions of high wall shear stress caused by the liquid pressing against the inner surface of the container. Profile optimizer 149 can be configured to determine whether the motion profile used during the simulation satisfies one or more acceptance criteria. If the motion profile satisfies the acceptance criteria, profile optimizer 149 can be configured to provide the motion profile to controller 120 for use as motion profile 134.
[0041] If the motion profile does not meet the acceptance criteria, the profile optimizer 149 can adjust one or more parameters of the motion profile and perform another simulation. The profile optimizer 149 can change the timing between motion segments, change the type of action performed during a motion segment, change the parameter values of the actions performed during a motion segment, and add or remove motion segments. In some embodiments, the profile optimizer 149 can implement a regression process (e.g., multiple regression analysis, linear regression analysis) that adjusts various features of the motion profile to maximize one or more parameters evaluated as part of the motion profile acceptance criteria.
[0042] It should be understood that, although the above text... Figure 1 and Figure 2The description outlines how the disclosed motion profile optimization technique can be implemented in AVI systems, including pick-and-place robot systems, but it can also be implemented in other AVI systems. For example, some high-throughput AVI systems include a turntable, star wheel, or rotary table via which multiple containers can be agitated simultaneously. In these embodiments, the motion profile can include commands controlling the direction and / or angular velocity / acceleration of the turntable, star wheel, or rotary table for multiple motion segments.
[0043] Furthermore, the aforementioned techniques can also be implemented in manual visual inspection (MVI). In an MVI embodiment, the tester manually agitates the container containing the sample being inspected. Therefore, in an MVI embodiment, system 100 does not include agitator 102. Instead, in an MVI embodiment, the motion profile can be a series of instructions executed by the tester while manually agitating the container. Therefore, in these embodiments, controller 120 may alternatively be configured to output the instructions included in the motion profile to a display unit (not depicted) at the test workstation.
[0044] In MVI embodiments, motion profiles can be derived from a set of motion data associated with a container being manually agitated. For example, motion data can be acquired from accelerometers and / or imagers. In some embodiments, the motion data is directly input into a CFD simulator 147, which then converts the motion data into virtual motion to simulate forces applied to the container, liquid, and / or sample. In other embodiments, memory 146 may include a parameterization module (not depicted) that converts the motion data into control parameters associated with the AVI system. Therefore, motion profiles optimized based on motion data acquired from the MVI process can also improve the AVI system.
[0045] Figure 3 A model 300 is depicted for parameterizing the motion of container 303, represented as at two different times t1 and t2. As shown, from time t1 to time t2, container 303 can rotate about two different angular axes. The first angular axis is associated with the rotation of container 303 in a circle or radius r and has an angular velocity w1. The second angular axis is associated with the rotation of the fluid within container 303 and has an angular velocity w2. In visual inspection system 100, motion about the first angular axis can be mapped to control commands of robot subsystem 104, and motion about the second angular axis can be mapped to control commands of master axis 106. Additionally, model 300 may include a vertical offset angle Θ of the container tilted relative to a vertical axis.
[0046] In model 300, the motion profile can indicate the values of w1, w2, r, and Θ multiple times. In some embodiments, these values can be derived from motion data acquired during the MVI process. In an AVI system, the parameter values can be converted into a control command format, which can be executed by an AVI device (e.g., agitator 102) before the optimized motion profile is provided to its controller (e.g., controller 120).
[0047] Figure 4 Example outputs 400 of the CFD simulation at multiple different times throughout the entire simulation execution of the motion profile are depicted. As described herein, one indicator that the container has been properly agitated is the coverage of the container's inner surface, which is associated with the substantial wall shear stresses at the fluid-air interface. Therefore, the CFD simulator 147 can be configured to output a map of the container multiple times throughout the simulation. This map can substantially correlate a three-dimensional mesh representing the cells of the container with the calculated shear stresses acting on said cells by the forward-simulation-based CFD model. In some embodiments, the three-dimensional mesh data is projected onto a two-dimensional image, and two-dimensional image processing techniques are used to analyze the two-dimensional image. Figure 4 As shown, the darker shaded areas form a map representing the distribution of high wall shear stress regions on the inner surface of the container, while the brighter shaded areas are associated with lower wall shear stress. In some embodiments, the CFD simulation can derive the wall shear stress value from the magnitude and / or direction of the fluid velocity vector at the corresponding cell in the container model.
[0048] In some embodiments, computer 140 may apply a thresholding technique to the output map to determine regions associated with coverage metrics exhibiting high levels of wall shear stress. As an example, the thresholding technique may apply a wall shear stress threshold to identify regions associated with stress levels exceeding the threshold. As an example of an ISO 6R glass vial filled with water, the wall shear stress threshold could be approximately 20 Pascals, approximately 25 Pascals, approximately 30 Pascals, etc. Depending on several aspects, a wider sweep of regions with high wall shear stress can increase the likelihood of removing sample particles from the inner surface of the container. Therefore, in this example, the thresholding technique may further include an area or size threshold for the high wall shear stress regions, and regions that do not meet the size threshold may be discarded.
[0049] Computer 140 can perform this thresholding technique on the output mapping at different times and combine the mappings to produce a composite binary mapping of the container. For example, the thresholding technique can be configured to set cells / pixels that meet one or more threshold conditions to 1 and cells / pixels that do not meet the threshold conditions to 0. The computer can then combine these mappings by performing an OR operation on the binary mappings cell by cell to produce a composite binary mapping of the container. The computer can then analyze the composite binary mapping to determine one or more performance metrics. For example, computer 140 can determine the percentage of coverage of the inner surface area of the container included in the binary mapping. Because sample particles tend to settle towards the bottom of the container, the percentage of coverage can be weighted along a gradient of the container height associated with each cell.
[0050] Additionally, computer 140 can use shape analysis and / or other analyses to analyze the mapping map to detect other conditions. For example, shape analysis can be performed to detect the presence of bubbles and / or foaming. Figure 4 As shown, the small cluster feature 404 at time 0.2 seconds can indicate the presence of bubbles. Because bubbles can confuse sample particles during particle tracking, the motion profile that generates bubbles may fail to meet the acceptance criteria. As another example, the mapping can indicate that a portion of the liquid may adhere to the neck of the container during the motion profile. Because this will prevent particles from moving freely in the liquid, this can also cause problems for the particle tracking algorithm and cause the motion profile to fail to meet the acceptance criteria.
[0051] Figure 5 This is a general flowchart of a process 500 for optimizing the motion profile of a container holding a sample for agitation. This process can be implemented in part by a computer (e.g., computer 140). In an embodiment where the motion profile is implemented in an AVI system, process 500 may begin at block 505, where the computer acquires a parameterized motion profile. The motion profile may be the motion profile currently used in the AVI system or the most probable motion profile manually configured by the user. In a scenario where the motion profile of the AVI system is optimized to replicate MVI motion, process 500 may alternatively begin at block 510, where the computer acquires measured motion data indicative of manual agitation of the container. In these scenarios, at block 505, the computer converts the measured motion data into a parameterized motion profile, which includes control commands and corresponding timings designed to replicate the manual agitation of the container as measured by the motion data.
[0052] Next, the computer can configure a CFD simulator (such as CFD simulator 147) to perform a CFD simulation. Therefore, at block 520, the computer can acquire physical parameters describing the sample, liquid, and / or container being modeled in the CFD simulation. In some embodiments, the CFD simulator includes an object library of objects that include physical parameters for various particles, liquids, and / or containers. Similarly, at block 525, the computer acquires CFD model parameters 525 representing the AVI or MVI system being modeled. The CFD model parameters may also include a mapping of motion profile parameters to corresponding physical dimensions and / or functional blocks in the modeled system. It should be understood that in MVI embodiments, the CFD simulator may alternatively accept motion data and perform internal parameterization reflecting the measured motion of the container.
[0053] In any scenario, at box 530, the computer can perform a CFD model simulation using physical and CFD model parameters and input motion profiles (or motion data) to produce output data 535 (e.g., a mapping of wall shear stress). At box 540, the computer analyzes the output data 535 to determine whether the simulated motion profiles (or motion data) meet one or more acceptance criteria. If so, process 500 proceeds to box 550, where the computer outputs the motion profiles for use with an AVI / MVI system. For AVI systems, the computer can transmit the motion profiles to the AVI system's controller (e.g., controller 120) or upload the motion profiles to a server for storage, allowing them to be downloaded to the controllers at a later time. For MVI systems, the computer can input approved motion profiles and / or motion data into a converter configured to generate a set of instructions that, when executed by the user, induce the desired movement of the container during manual agitation.
[0054] If the output data 535 does not meet the acceptance criteria, the computer proceeds to box 545, where it adjusts the motion profile parameters before performing another simulation. In some embodiments, the computer may perform a regression technique that adjusts the parameters based on whether previous modifications bring the output data 535 closer to meeting one or more performance metrics. Alternatively, the computer may analyze the output data 535 to identify time periods that cause the motion profile to fail to meet one or more performance metrics (e.g., by inducing bubbles or foaming), and adjust the motion profile parameters prior to this time period in a manner designed to prevent failure. The computer may continue iteratively adjusting the motion profile parameters at box 545 and performing additional CFD model simulations at box 530 until the motion profile meets one or more performance metrics.
[0055] Figure 6This is a flowchart of an example method 600 for optimizing the motion profile of a sample in a stirring container. The motion profile can be implemented in an AVI system (such as AVI system 100 including a robotic holder arm or an AVI system including one or more of a turntable, motorized rotary table, or star wheel) or an MVI system. Method 600 can be implemented by one or more processors of a computer (such as computer 140, such as the processor of processing unit 142). The computer can store one or more computer-executable instructions for implementing method 600 in memory (such as memory 146). The instructions can be distributed among one or more applications (such as CFD simulator 147 and profile optimizer 149) in memory.
[0056] Method 600 begins at block 602, where the computer acquires a motion profile associated with an agitation event of the container. As described herein, the motion profile can indicate the movement of the container at multiple different times during the agitation event. In embodiments of a motion profile-controlled AVI system, the indicated movement can be a control command that operates one or more components of an agitator (such as agitator 102) of the AVI system.
[0057] In some embodiments, motion profiles are obtained based on manual agitation of the container. In these embodiments, the computer may acquire a first set of motion data associated with a first manual agitation of the container under a first set of movement commands, and process the motion data to generate motion profiles. This processing may include parameterizing the motion data to control parameters of the AVI system. Thus, the computer may analyze the motion data to determine the radius of rotation, rotational speed, or rotational angle multiple times during the agitation event.
[0058] At box 604, the computer uses a computational fluid dynamics (CFD) model (such as the CFD model included in CFD simulator 147) to analyze motion profiles to generate one or more performance metrics of the agitation event. For example, the CFD model can be configured to model the properties of a sample, a container, or the liquid within the container.
[0059] As described herein, generating performance metrics includes generating a coverage of a threshold amount of wall shear stress on the inner surface of the container. In some embodiments, to generate the coverage metric, the computer may (i) apply a CFD model to calculate the wall shear stress applied to the inner surface of the container at multiple different times; and (ii) generate a mapping of the wall shear stress applied to the inner surface of the container at multiple different times (e.g., referencing...). Figure 4(The described mapping). Therefore, generating a coverage metric may include determining the percentage of the inner surface associated with the maximum wall shear stress exceeding a threshold amount. As mentioned above, because heavier particles in the sample tend to settle towards the bottom of the container, in some embodiments, the computer analyzes the mapping to generate a weighted coverage metric based on the area of the inner surface associated with the maximum wall shear stress exceeding a threshold amount, wherein the weighted coverage metric assigns a higher weight to the lower portion of the container and a lower weight to the higher portion of the container.
[0060] Performance metrics may also include other performance metrics. For example, performance metrics may include metrics indicating the presence of bubbles, foaming, or residual liquid trapped in the neck of the container.
[0061] At box 606, the computer compares the one or more performance metrics with one or more corresponding acceptance criteria to determine the acceptability of the motion profile. For example, an acceptance criterion associated with a coverage metric could be at least 80%, at least 90%, or at least 95% of the inner surface of the container. It should be understood that this percentage can be a raw percentage or a weighted coverage metric, i.e., normalized to a scale of 0 to 100% in some embodiments. As another example, an acceptance criterion could also be the absence of bubbles, foam, or residual liquid.
[0062] If the computer determines that the performance metric does not meet the acceptance criteria, the computer proceeds to box 608, where the computer adjusts the motion profile. As described herein, for the motion profile of the control AVI system, the computer can perform a regression analysis based on whether the performance metric is close to the acceptance criteria from a previous simulation of the previous motion profile using a CFD model to generate an adjusted motion profile with adjusted parameters. For the motion profile implemented in the MVI system, the computer can (1) generate a second set of motion commands; (2) acquire a second set of motion data associated with a second manual agitation of the container under the second set of motion commands; and (3) process the second set of motion data to generate the adjusted motion profile.
[0063] On the other hand, if the performance metrics meet the acceptance criteria, the computer proceeds to box 610 and accepts the motion profile. In some embodiments where the motion profile is implemented in an AVI system, the computer can then configure the AVI system's controller (e.g., controller 120) to implement the accepted motion profile. In embodiments where the motion profile is implemented in an MVI system, the computer can provide a set of motion instructions representing the accepted motion profile to a workstation associated with the MVI process, where the motion instructions can be displayed to the operator of the MVI process. Alternatively, the process owner can use feedback to revise / optimize standard operating procedures (SOPs) and / or training for MVI inspectors to follow.
[0064] We will now address any additional considerations relating to this disclosure.
[0065] Some of the figures described herein illustrate example block diagrams with one or more functional components. It will be understood that such block diagrams are for illustrative purposes, and the devices described and illustrated may have additional, fewer, or alternative components than those shown. Furthermore, in various embodiments, components (and the functionality provided by the respective components) may be associated with or otherwise integrated into any suitable component.
[0066] Embodiments of this disclosure relate to non-transitory computer-readable storage media having computer code on it for performing various computer-implemented operations. The term "computer-readable storage medium" is used herein to include any medium capable of storing or encoding a series of instructions or computer code for performing the operations, methods, and techniques described herein. The medium and computer code may be specifically designed and constructed for the purposes of embodiments of this disclosure, or the medium and computer code may be of a type known and available to those skilled in the art of computer software. Examples of computer-readable storage media include, but are not limited to: magnetic media such as hard disks, floppy disks, and magnetic tapes; optical media such as CD-ROMs and holographic devices; magneto-optical media such as optical discs; and hardware devices specifically 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 generated by a compiler, and files containing higher-level code that a computer executes using an interpreter or compiler. For example, embodiments of this disclosure can be implemented using Java, C++, or other object-oriented programming languages and development tools. Additional examples of computer code include encrypted and compressed code. Furthermore, embodiments of this disclosure can be downloaded as a computer program product that can be transmitted via a transmission channel from a remote computer (e.g., a server computer) to a requesting computer (e.g., a client computer or a different server computer). Another embodiment of this disclosure can be implemented using a hardwired circuit system instead of or in combination with machine-executable software instructions.
[0068] As used herein, unless the context clearly indicates otherwise, the singular terms “a”, “an”, and “the” may include plural references.
[0069] As used herein, the terms “approximately,” “substantially,” “basically,” and “about” are used to describe and explain small variations. When used in conjunction with an event or situation, these terms can refer to a situation where the event or situation occurs exactly or approximately. For example, when used in conjunction with a numerical value, these terms can refer to a range of variation where the value is less than or equal to ±10%, 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%. For example, if the difference between values is less than or equal to ±10% of the 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%, then the two values can be considered “substantially” the same.
[0070] Additionally, quantities, ratios, and other numerical values are sometimes presented in range format in this document. It should be understood that this range format is used for convenience and brevity, and should be flexibly interpreted to include values explicitly specified as range limits, but also to include all individual values and subranges covered within the range, as if each value or subrange were explicitly specified.
[0071] While this disclosure has been described and illustrated with reference to specific embodiments thereof, such descriptions and illustrations are not intended to limit the scope of this disclosure. Those skilled in the art will understand that various changes and substitutions may be made without departing from the true spirit and scope of this disclosure as defined by the appended claims. These illustrations are not necessarily drawn to scale. Differences may exist between artistic representations in this disclosure and actual installations due to manufacturing processes, tolerances, and / or other reasons. Other embodiments of this disclosure not specifically shown may exist. The specification (other than the claims) and drawings should be considered illustrative rather than restrictive. Modifications may be made to adapt particular circumstances, materials, composition, techniques, or processes to the purpose, spirit, and scope of this disclosure. All such modifications are intended to fall within the scope of the appended claims. While the techniques disclosed herein have been described with reference to specific operations performed in a particular order, it should be understood that these operations may be combined, subdivided, or reordered to form equivalent techniques without departing from the teachings of this disclosure. Therefore, unless specifically indicated herein, the order and grouping of operations are not a limitation of this disclosure.
Claims
1. A method for optimizing the motion profile of a sample in a stirring container, the method comprising: (a) Obtain the motion profile associated with the agitation event of the container through one or more processors; (b) The motion profile is analyzed using a computational fluid dynamics (CFD) model by the one or more processors to generate one or more performance metrics of the agitation event, wherein generating these performance metrics includes the coverage of wall shear stress of the experienced threshold amount generated on the inner surface of the container. (c) By comparing the one or more performance metrics with one or more corresponding acceptance criteria using the one or more processors, the acceptability of the motion profile is determined; and (d) Based on this comparison, perform one of the following via the one or more processors: Accept the motion profile, or Adjust the motion profile and repeat steps (b) to (d) using the adjusted motion profile.
2. The method as described in claim 1, wherein, The CFD model is configured to model the properties of the sample, the container, or the liquid in the container.
3. The method as described in claim 1 or 2, wherein, The motion profile indicates the movement of the container at multiple different times during the agitation event.
4. The method of claim 3, wherein, The coverage of wall shear stress at the threshold value generated on the inner surface of the container includes: The CFD model is applied through one or more processors to calculate the wall shear stress applied to the inner surface of the container at multiple different times; and The one or more processors generate a mapping of wall shear stresses applied to the inner surface of the container at multiple different times.
5. The method of claim 3, wherein, The coverage of wall shear stress at the threshold value generated on the inner surface of the container includes: The percentage of the inner surface associated with the maximum wall shear stress exceeding the threshold amount is determined by the one or more processors.
6. The method of claim 3, wherein, The coverage of wall shear stress at the threshold value generated on the inner surface of the container includes: The weighted coverage metric is generated by one or more processors based on the area of the inner surface associated with the maximum wall shear stress exceeding the threshold amount, wherein the weighted coverage metric assigns higher weights to the lower portion of the container and lower weights to the higher portion of the container.
7. The method according to any one of claims 1 to 6, wherein, The one or more performance metrics include measures indicating the presence of bubbles, foaming, or residual liquid trapped in the neck of the container.
8. The method according to any one of claims 1 to 7, wherein, Obtaining the motion profile includes: The processor acquires a first set of motion data associated with a first manual agitation of the container under a first set of movement commands; and The motion data is processed by one or more processors to generate the adjusted motion profile.
9. The method of claim 8, wherein, Processing the motion data to generate the motion profile includes: The motion data is analyzed by one or more processors to determine the radius of rotation, speed of rotation, or angle of rotation multiple times during the agitation event.
10. The method of claim 8 or 9, wherein, Adjusting the motion profile includes: The second set of movement instructions is generated by one or more processors; The processor acquires a second set of motion data associated with the second manual agitation of the container under the second set of movement commands; and The second set of motion data is processed by one or more processors to generate the motion profile.
11. The method according to any one of claims 1 to 10, wherein, The motion profile is configured to control the movement of the robotic holder arm of the Automated Visual Inspection (AVI) system.
12. The method according to any one of claims 1 to 10, wherein, The motion profile is configured to control the motion of at least one of the turntable, motorized rotary table, or star wheel of the AVI system.
13. The method of claim 11 or 12, further comprising: Configure the controller of the AVI system to implement the accepted motion profile.
14. A system for optimizing the motion profile of a sample in a stirring container, the system comprising: One or more processors; as well as The memory stores non-transitory instructions that, when executed by the one or more processors, enable the system to: (a) Obtain the motion profile associated with the 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 these performance metrics includes the coverage of wall shear stresses that generate the experienced threshold amount on the inner surface of the container. (c) Compare the one or more performance metrics with one or more corresponding acceptance criteria to determine the acceptability of the motion profile; and (d) Based on this comparison, perform one of the following: Accept the motion profile, or Adjust the motion profile and repeat steps (b) to (d) using the adjusted motion profile.
15. The system of claim 14, wherein, The CFD model is configured to model the properties of the sample, the container, or the liquid in the container.
16. The system as claimed in claim 14 or 15, wherein, The motion profile indicates the movement of the container at multiple different times during the agitation event.
17. The system of claim 16, wherein, In order to generate coverage of the wall shear stress on the inner surface of the container that experiences a threshold amount, these instructions, when executed, cause the system to: The CFD model was applied to calculate the wall shear stress applied to the inner surface of the container at multiple different times; and Generate a mapping of the wall shear stresses applied to the inner surface of the container at multiple different times.
18. The system of claim 16, wherein, In order to generate coverage of the wall shear stress on the inner surface of the container that experiences a threshold amount, these instructions, when executed, cause the system to: Determine the percentage of the inner surface associated with the maximum wall shear stress exceeding the threshold amount.
19. The system of claim 16, wherein, In order to generate coverage of the wall shear stress on the inner surface of the container that experiences a threshold amount, these instructions, when executed, cause the system to: A weighted coverage metric is generated based on the area of the inner surface associated with the maximum wall shear stress exceeding the threshold amount, wherein the weighted coverage metric assigns a higher weight to the lower portion of the container and a lower weight to the higher portion of the container.
20. The system of claim 14, wherein, The one or more performance metrics include measures indicating the presence of bubbles, foaming, or residual liquid trapped in the neck of the container.
21. The system as claimed in any one of claims 14 to 20, wherein, In order to obtain this motion profile, these instructions, when executed, cause the system to: Under the first set of movement commands, acquire the first set of motion data associated with the first manual agitation of the container; and The motion data is processed to generate the motion profile.
22. The system of claim 21, wherein, In order to process this motion data to generate the motion profile, these instructions, when executed, cause the system to: The motion data was analyzed to determine the rotation radius, rotation speed, or rotation angle multiple times during the agitation event.
23. The system as claimed in claim 21 or 22, wherein, In order to adjust the motion profile, these instructions, when executed, cause the system to: Generate the second set of movement instructions; Under the second set of motion commands, acquire a second set of motion data associated with the second manual agitation of the container; and The second set of motion data is processed to generate the adjusted motion profile.
24. The system as claimed in any one of claims 14 to 23, wherein, The motion profile is configured to control the movement of the robotic holder arm of the Automated Visual Inspection (AVI) system.
25. The system as claimed in any one of claims 14 to 23, wherein, The motion profile is configured to control the motion of at least one of the turntable, motorized rotary table, or star wheel of the AVI system.
26. The system as claimed in claim 24 or 25, wherein, These instructions, when executed, cause the system to: Configure the 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 as described in any one of claims 1 to 13.