IP Library Granted Patent US 12668057
Granted Patent B2
US 12668057 · App. 17/913,562 · Granted Jun 30, 2026

Controlling precision systems using free topology waveforms

Inventors: Sidlgata V. Sreenivasan (Austin, TX); Brent Snyder (Austin, TX); Shrawan Singhal (Austin, TX)
Assignee: Board of Regents, The University of Texas System
B41J2/04588B41J2/04516B41J2/04558G05B13/021B41J2029/3935
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12668057
App. No.
17/913,562
Granted
Jun 30, 2026
Kind
B2
Abstract

A method, computer program product and system for precision inkjet printing. A control variable vector of actuation parameters associated with an inkjet waveform is determined. A printhead is then actuated to eject a grid of droplets from an inkjet onto a substrate based on the inkjet waveform. An image of the grid of droplets on the substrate is acquired. The acquired image is then processed to calculate a fitness function of the inkjet waveform that includes a function of sensed output variables associated with printing characteristics. The control variable vector is then adjusted by updating its topology based on the fitness function to obtain an optimized control variable vector associated with an optimized inkjet waveform.

Claims (56)

1 . A computer-implemented method for controlling a system, the method comprising:

defining a control variable vector by a topology and a set of scalar values associated with said topology, wherein said control variable vector corresponds to a set of one or more control variables, wherein said control variables are inputs to said system that are optimized and allow said system to be controlled, wherein said topology corresponds to a number of control variables present in said control variable vector;

determining an initial value for said control variable vector that activates said system to create an initial set of sensed output variables, wherein said initial value for said control variable vector corresponds to a set of chromosomes;

calculating a fitness function comprising said initial set of sensed output variables, wherein said fitness function defines a desired behavior of said system;

creating an optimized control variable vector using said fitness function by updating and adjusting said topology of said control variable vector based on minimizing a difference between a value of said fitness function of said optimized control variable vector and a value of a target fitness function, wherein a multi-level index is used to update and adjust said topology of said control variable vector to address a problem when different genes of said set of chromosomes are represented by a different number of bits by creating said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene; and

controlling said system using said created optimized control variable vector.

2 . The method as recited in claim 1 further comprising:

receiving a set of fixed system parameters.

3 . The method as recited in claim 1 , wherein said optimized control variable vector is created using free topology optimization.

4 . The method as recited in claim 1 , wherein said optimized control variable vector is created in response to an algorithm being executed until said fitness function reaches a maximum value.

5 . The method as recited in claim 4 , wherein said optimized control variable vector comprises an optimum topology and a set of optimal parameters for said optimum topology.

6 . The method as recited in claim 1 , wherein said system is an inkjet system, wherein said control variable vector defines an inkjet waveform, wherein said initial set of sensed output variables comprise one or more of the following: a volume, a drop placement accuracy, a velocity, satellites of inkjetted drops, missing drops, and transient faults in inkjetted drops.

7 . A computer program product for controlling a system, the computer program product comprising one or more computer readable storage mediums having program code embodied therewith, the program code comprising programming instructions for;

defining a control variable vector by a topology and a set of scalar values associated with said topology, wherein said control variable vector corresponds to a set of one or more control variables, wherein said control variables are inputs to said system that are optimized and allow said system to be controlled, wherein said topology corresponds to a number of control variables present in said control variable vector;

determining an initial value for said control variable vector that activates said system to create an initial set of sensed output variables, wherein said initial value for said control variable vector corresponds to a set of chromosomes;

calculating a fitness function comprising said initial set of sensed output variables, wherein said fitness function defines a desired behavior of said system;

creating an optimized control variable vector using said fitness function by updating and adjusting said topology of said control variable vector based on minimizing a difference between a value of said fitness function of said optimized control variable vector and a value of a target fitness function, wherein a multi-level index is used to update and adjust said topology of said control variable vector to address a problem when different genes of said set of chromosomes are represented by a different number of bits by creating said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene; and

controlling said system using said created optimized control variable vector.

8 . A controller, comprising:

a memory for storing a computer program for controlling a system; and

a processor connected to said memory, wherein said processor is configured to execute program instructions of the computer program comprising:

defining a control variable vector by a topology and a set of scalar values associated with said topology, wherein said control variable vector corresponds to a set of one or more control variables, wherein said control variables are inputs to said system that are optimized and allow said system to be controlled, wherein said topology corresponds to a number of control variables present in said control variable vector;

determining an initial value for said control variable vector that activates said system to create an initial set of sensed output variables, wherein said initial value for said control variable vector corresponds to a set of chromosomes;

calculating a fitness function comprising said initial set of sensed output variables, wherein said fitness function defines a desired behavior of said system;

creating an optimized control variable vector using said fitness function by updating and adjusting said topology of said control variable vector based on minimizing a difference between a value of said fitness function of said optimized control variable vector and a value of a target fitness function, wherein a multi-level index is used to update and adjust said topology of said control variable vector to address a problem when different genes of said set of chromosomes are represented by a different number of bits by creating said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene; and

controlling said system using said created optimized control variable vector.

9 . A computer-implemented method for performing inkjet printing, the method comprising:

determining a control variable vector of actuation parameters associated with an inkjet waveform, wherein said inkjet waveform is represented as a variable-length chromosome in a genetic algorithm;

actuating a printhead to eject a grid of droplets from an inkjet onto a substrate based on said inkjet waveform;

acquiring an image of said grid of droplets on said substrate;

processing said acquired image to calculate a fitness function of said inkjet waveform comprising a function of sensed output variables associated with printing characteristics, wherein said fitness function defines a desired behavior of an inkjet system; and

adjusting said control variable vector by updating its topology based on said fitness function of said inkjet waveform to obtain an optimized control variable vector associated with an optimized inkjet waveform based on minimizing a difference between a value of said fitness function of said inkjet waveform and a value of a target fitness function, wherein said topology corresponds to a number of control variables present in said control variable vector, wherein a multi-level index is used to adjust said control variable vector to address a problem when different genes of a set of chromosomes are represented by a different number of bits by obtaining said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene.

10 . The method as recited in claim 9 , wherein said optimized control variable vector comprises an optimum topology and a set of optimal parameters for said optimum topology.

11 . The method as recited in claim 9 , wherein said printing characteristics comprise one or more of the following: drop volume uniformity, mean drop volume, drop placement accuracy, presence of transient faults, number of satellite drops, number of missing drops, and presence of debris.

12 . The method as recited in claim 9 , wherein said adjustment of said control variable vector comprises calculating an error between said fitness function of said inkjet waveform and said target fitness function.

13 . The method as recited in claim 12 further comprising:

optimizing said error using a free topology evolutionary algorithm.

14 . The method as recited in claim 9 , wherein said waveform has more than 20 parameters.

15 . The method as recited in claim 9 , wherein said waveform has more than 3 parameters.

16 . The method as recited in claim 9 further comprising:

controlling a plurality of nozzles to eject a plurality of droplets, wherein each of said plurality of nozzles is independently controlled.

17 . The method as recited in claim 9 , wherein said printhead is configured to dispense a plurality of fluids, wherein one of said plurality of fluids has a different rheological property than another one of said plurality of fluids.

18 . A computer program product for performing inkjet printing, the computer program product comprising one or more computer readable storage mediums having program code embodied therewith, the program code comprising programming instructions for:

determining a control variable vector of actuation parameters associated with an inkjet waveform, wherein said inkjet waveform is represented as a variable-length chromosome in a genetic algorithm;

actuating a printhead to eject a grid of droplets from an inkjet onto a substrate based on said inkjet waveform;

acquiring an image of said grid of droplets on said substrate;

processing said acquired image to calculate a fitness function of said inkjet waveform comprising a function of sensed output variables associated with printing characteristics, wherein said fitness function defines a desired behavior of an inkjet system; and

adjusting said control variable vector by updating its topology based on said fitness function of said inkjet waveform to obtain an optimized control variable vector associated with an optimized inkjet waveform based on minimizing a difference between a value of said fitness function of said inkjet waveform and a value of a target fitness function, wherein said topology corresponds to a number of control variables present in said control variable vector, wherein a multi-level index is used to adjust said control variable vector to address a problem when different genes of a set of chromosomes are represented by a different number of bits by obtaining said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene.

19 . A system, comprising:

a memory for storing a computer program for performing inkjet printing; and

a processor connected to said memory, wherein said processor is configured to execute program instructions of the computer program comprising:

determining a control variable vector of actuation parameters associated with an inkjet waveform, wherein said inkjet waveform is represented as a variable-length chromosome in a genetic algorithm;

actuating a printhead to eject a grid of droplets from an inkjet onto a substrate based on said inkjet waveform;

acquiring an image of said grid of droplets on said substrate;

processing said acquired image to calculate a fitness function of said inkjet waveform comprising a function of sensed output variables associated with printing characteristics, wherein said fitness function defines a desired behavior of an inkjet system; and

adjusting said control variable vector by updating its topology based on said fitness function of said inkjet waveform to obtain an optimized control variable vector associated with an optimized inkjet waveform based on minimizing a difference between a value of said fitness function of said inkjet waveform and a value of a target fitness function, wherein said topology corresponds to a number of control variables present in said control variable vector, wherein a multi-level index is used to adjust said control variable vector to address a problem when different genes of a set of chromosomes are represented by a different number of bits by obtaining said optimized control variable vector that ensures a probability of a crossover happening inside a gene is the same for all genes regardless of their size, wherein an outer index of said multi-level index is used to select a gene to be used for said crossover, wherein an inner index of said multi-level index is used to select a specific bit within said selected gene.