Machine learning stabilization of gas sensor output
By combining machine learning and secondary sensor technology, the problem of mass-based ultrasonic gas sensors being susceptible to noise, especially drift noise, is solved, and more accurate and stable gas sensing is achieved.
Patent Information
- Application Number
- CN202010564267.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-06-19
- Filing Date
- 2020-06-19
- Publication Date
- 2025-03-28
- Estimated Expiration
- 2040-06-19
AI Technical Summary
Mass-based ultrasonic gas sensors are susceptible to noise, especially drift noise, which leads to inaccurate sensor readings.
By combining machine learning techniques, secondary sensors such as temperature and humidity sensors are used to compensate for ambient noise and reduce their impact on sensor output by modeling drift noise as regular expressions.
Effectively reduce the impact of noise on gas sensor readings and improve the accuracy and stability of the sensor, especially when dealing with drift noise.
Smart Images

Figure CN112114032B_ABST
Abstract
Description
Background Art
[0001] Gas sensors can be used to measure the concentration of various gases. Humidity, the amount of water in the atmosphere, is an example of what a gas sensor measures. Atmospheric carbon dioxide is useful in a variety of environments including smoke detectors, greenhouses, etc. Radon and carbon monoxide detectors are similarly useful for detecting potential hazards in buildings. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] The accompanying drawings illustrate various examples of the principles described herein and are a part of the specification. The illustrated examples do not limit the scope of the claims.
[0003] Figure 1 A system for stabilizing sensor readings consistent with the present description is shown.
[0004] Figure 2 A system for measuring gas using a vibration sensor consistent with the present description is shown.
[0005] Figure 3 A flow chart illustrating a method of compensating for drift in a sensor consistent with the present description is shown.
[0006] Figure 4 A flow chart illustrating a method of compensating for drift in a sensor consistent with the present description is shown.
[0007] Figure 5A shows the raw sensor data during increasing gas concentrations and Figure 5B The same sensor data is shown after being processed in a manner consistent with the present description.
[0008] Throughout the drawings, the same reference numerals denote similar, but not necessarily identical, elements. The drawings are not necessarily to scale, and the sizes of some parts may be exaggerated or minimized to more clearly illustrate the examples shown. The drawings provide examples and / or implementations consistent with the specification. However, the description is not limited to the examples and / or implementations shown in the drawings. DETAILED DESCRIPTION
[0009] Ultrasonic mass-based gas sensors are susceptible to various types of noise. Failure to account for the noise may produce results that are not accurate enough for the purpose of the sensor. Some types of noise, such as ambient noise, can be compensated for by using secondary sensors coupled with machine learning, such as temperature and / or humidity sensors. U.S. Patent Application 15 / 750,448, also available as PCT / US18 / 15734, describes an example of this method of minimizing noise from the output of an ultrasonic, mass-based gas sensor.
[0010] However, not all noise sources are easily addressed with secondary sensors that measure the noise source.The present specification describes systems and methods for addressing such noise, which is referred to herein as drift.
[0011] Generally, drift has two manifestations. The first is a spike that appears over a short time frame and quickly returns to the baseline. The second is a random movement of the baseline in either direction and with a varying step size.
[0012] Mass-based ultrasonic gas sensors operate by vibrating an oscillator and counting the number of oscillations compared to a control value measured from a control oscillator. The absorption of gas onto the oscillator changes the frequency. As more mass is absorbed, the oscillator slows down. When mass is released, the oscillator speeds up. The system is very sensitive and is able to detect low masses of atoms / molecules absorbed onto the surface of the oscillator. In many examples, the control and measurement oscillators have different surface chemistries to provide preferential absorption of gas onto the surface of one oscillator relative to another oscillator. The small size and low energy requirements of the oscillators facilitate the use of multiple oscillators and / or arrays of oscillators to collect data.
[0013] In addition, since the oscillator vibrates at a megahertz frequency, it is possible to obtain measurements at kilohertz or lower frequencies while still using independent counts for sequential measurements. However, most gas signals do not change rapidly over kilohertz and / or megahertz time spans. Therefore, it is possible to filter both spikes and drifts from the results using knowledge of the gas profile and changes in gas concentration. Specific examples will be discussed below, but changes in gas concentration measurements with respect to time can be filtered to address both very fast changes and very slow changes based on the expected use of the sensor. This produces an intermediate band of changes that can be accepted as actual changes in gas concentration. This approach has the advantage of limiting the need for processing power and model complexity, facilitating the use of small sensors and sensor processing systems, such as those used with portable devices.
[0014] For example, for gas detection used for mold inspection, there are diffusion properties of the measured gas(es) that limit the rate of change depending on the speed of the sensor. Thus, this secondary information can be used to correct for noise detected by the sensor, but does not indicate changes in gas concentration because the rate of change is too fast or too slow.
[0015] As used in this specification and the associated claims, a computer-readable storage medium may be a tangible device that holds and stores instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device such as a punch card or a raised structure in a groove on which instructions are recorded, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium should not be interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0016] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.
[0017] The computer-readable program instructions for performing the operation of the present invention may be assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as "C" programming language or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer and partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider via the Internet). In some embodiments, in order to perform various aspects of the present invention, an electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) may execute computer-readable program instructions to personalize the electronic circuit by utilizing the state information of the computer-readable program instructions.
[0018] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, devices (systems) and computer program products according to embodiments of the present invention. It should be understood that each block of the flowchart illustration and / or block diagram and the combination of blocks in the flowchart illustration and / or block diagram can be implemented by computer-readable program instructions.
[0019] These computer-readable program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide the computer, programmable data processing device, and / or other equipment to operate in a specific manner, so that the computer-readable storage medium in which the instructions are stored includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0020] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the flowchart and / or block diagram.
[0021] The flow chart and block diagram in the accompanying drawings show the possible architecture, functionality and operation of the system, method and computer program product according to various embodiments of the present invention.In this regard, each frame in the flow chart or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing (one or more) specified logical functions.In some alternative implementations, the functions mentioned in the frame may not occur in the order mentioned in the figure.For example, the two frames shown in succession can actually be performed substantially at the same time, or the frame can sometimes be performed in reverse order, depending on the functionality involved.It should also be noted that each frame of the block diagram and / or flow chart illustration and the combination of the frames in the block diagram and / or flow chart illustration can be realized by a dedicated hardware-based system that performs a specified function or action or performs a combination of special hardware and computer instructions.
[0022] Among other examples, the specification describes a portable system for stabilizing sensor readings. The system includes a processor, a memory communicatively coupled to the processor, a receiver that receives measurements and environmental parameters from a sensing device, and a machine learning engine executed on the processor. The machine learning engine receives as input: environmental parameters, measurements, and control parameters calculated based on control measurements taken at time points before and after the measurements.
[0023] A system for measuring gas using a gas sensor is also described. The system includes a gas sensor having a first mass sensitive oscillator, a second mass sensitive oscillator having a different surface chemical property than the first mass sensitive oscillator, a register for accumulating counts of the first and second oscillators, an environmental sensor, and a transmitter. The system also includes a controller including a processor, a memory that stores a set of measurements of the gas sensor and associated measurements of the environmental sensor, and is communicatively coupled to the processor, a receiver that receives information from the transmitter, a model generation engine that models drift as a regular expression, and a machine learning (ML) engine that receives the measurement of the regular expression, and the output of the environmental sensor and t0 to generate an output value.
[0024] The specification also describes a method for compensating for drift in a sensor. The method includes identifying a time series of measurements from the sensor, identifying a plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor, evaluating a residual error at a first time, evaluating the residual error at a second time, modeling the residual error as a polynomial expression based on the residual error at the first time and the residual error at the second time, and providing the polynomial expression, the time series of measurements, and the values of the plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor to a machine learning (ML) system to reduce the effect of drift defined by the residual error on an output of the machine learning system.
[0025] The specification also describes a method of compensating for drift in a sensor output of a sensor. The method includes identifying a series of sensor outputs from a sensor; identifying a plurality of sensor outputs where a true value of the sensor is available; for each sensor output where a true value is available, calculating a residual offset of the sensor at that point; for each pair of sequential sensor outputs where a true value is available, creating a linear model of the residual offset; and for each sensor output, identifying a linear model of the residual offset from a pair of sequential sensor outputs where a true value of the sensor outputs is bracketed is available, and subtracting a value from the linear model from a value of the sensor output to produce a drift-compensated sensor output value.
[0026] Now turning to the attached figure, Figure 1 A system (100) for stabilizing sensor readings consistent with the present specification is shown, which may be portable. In general, the system (100) includes: a processor (120); a memory (122) communicatively coupled to the processor (120); a receiver (124) receiving measurements (132) and environmental parameters (134) from a sensor (130); a machine learning engine (140) executed on the processor (120), wherein the machine learning engine receives as input: environmental parameters (134); measurements (132); and control parameters calculated based on control measurements taken at time points (138) before and after the measurements (132).
[0027] The system (100) may operate in a portable unit with minimal communication bandwidth. In some examples, the system (100) may operate without a lookup table.
[0028] The system (100) may include a battery to provide power to the system (100). In some examples, the system (100) lacks a direct power connection during use. In other examples, the system (100) may be plugged into an external power source. The battery may be charged between uses. The battery may also be charged during use. As used in this specification and the associated claims, the term battery indicates a power source that can operate without being attached to a power grid. Examples of batteries include chemical batteries as well as solar cells, generators, fuel cells, and / or other non-grid-based power sources.
[0029] The processor (120) may be a single processor. The processor (120) may be a group of processors (120) working together. The processor (120) may be part of a general purpose computer. The processor (120) may be a special purpose machine, such as an application specific integrated circuit (ASIC).
[0030] The memory (122) may be a local memory, such as a hard drive, a flash drive, and / or the like. The memory (122) may also be a cloud-based memory.
[0031] The system also includes a receiver (124) to receive information from the sensor (130). The receiver (124) can provide the information to the memory (122) for storage. The information can then be processed. The information can be processed in real time. In some examples, the information can be accumulated and then processed after a set amount of information is received. In an example, the system (100) can delay processing until a registration process is completed and / or some other control operation is performed.
[0032] The sensor (130) provides a signal to be processed. In some examples, the sensor (130) may be a mass-based oscillator to detect gas concentration. Although specific reference is made to a particular type of sensor, the sensor (130) may be another type of sensor (130) that is subject to drift.
[0033] The measurement (132) is an output of the sensor (130). The measurement (132) may be subjected to preprocessing. The measurement (132) may be subjected to smoothing in a variety of ways. For example, the measurement (132) may be subjected to smoothing in a physical dimension. Before processing the measurement, smoothing in a temporal and / or physical dimension may be performed. After processing the measurement, smoothing in a temporal and / or physical dimension may be performed.
[0034] Environmental parameters (134) are measurements made with secondary sensors, i.e., sensors other than sensor (130). Environmental parameters include factors that may affect the output of sensor (130). Examples of environmental parameters (134) include, but are not limited to: temperature, humidity, pressure, secondary gas measurements, distance, vibration, speed, etc. Thus, the secondary sensor may be any sensor that measures these environmental parameters (134).
[0035] A control parameter is a parameter that models an actual value. For example, a control parameter may be a linear model of a gas concentration. A control parameter may be represented as a series of values, for example, as a polynomial series. A control parameter may include exponentials, periods, and / or other non-polynomial factors. In practice, the use of first order and / or second order polynomial series may be sufficient to provide the desired accuracy without excessive overhead that may increase processing requirements, memory requirements, power consumption, and / or other resources.
[0036] In an example, the control parameter (136) is a linear interpolation between a time point before the measurement (132) and a time point after the measurement (132). The control parameter may be a polynomial. For example, the polynomial may be a second order polynomial.
[0037] The control parameter is determined based on the measurement (132) at the time point. The time point may be before, during and / or after the measurement (132) of interest. For example, the sensor (130) may measure the control region before and after taking the measurement of the region of interest. The true value in the control region may be static. This allows drift to be calculated from the measurement before the region of interest and after the measurement (132) of the region of interest.
[0038] The time points (138) may include time points (138-1) before the measurement (132). The time points may include time points (138-2) after the measurement (132). The time points (138) may include time points (138-3) interspersed with the measurement (132). In an example, the time points (138-1) before the measurement and the time points (138-2) after the measurement are used to form a linear control parameter (136), i.e., a slope and / or an offset. In an example, the time points (138-1) before the measurement (132), the time points (138-2) after the measurement, and the time points (138-3) interspersed with the measurement (132) are used to calculate the control parameter (136) as a second order polynomial.
[0039] In some examples, the previous time point (138-1) and the next time point (138-2) are taken at the same physical location. For example, the previous time point (138-1) and the next time point (138-2) can be taken at a registration location. The registration location can have a constant expected signal level. For example, the registration location can have a constant gas composition for a gas sensor.
[0040] In some examples, the system (100) filters transients with an absolute value of d[concentration] / dt greater than a threshold. A transient is a short-term, unexplained deviation of a measured value from a baseline. For example, the filtered transients may be those with a concentration change per unit time greater than a threshold, which represents the maximum rate of change of the physical system being evaluated. For example, due to the presence of a diffuse distribution around a source / sink of the gas, the movement of the sensor may limit the rate of change of the gas concentration. In addition, short-term, high-speed transients may return to a similar baseline after a relatively short period of time. Therefore, they may be filtered out.
[0041] Figure 2 A system (200) for measuring gas consistent with the present specification is shown. The system (200) includes: a first gas sensor (240-1) including: a first mass sensitive oscillator (242-1); a second gas sensor (240-2) including: a second mass sensitive oscillator (242-2) having a different surface chemistry than the first mass sensitive oscillator (242-1); a register (244) for accumulating counts of the first and second oscillators (242), an environmental sensor (246), and a transmitter (226); a controller (100) including: a processor (120) , a memory (122) communicatively coupled to a processor (120), comprising a set of measurements (132) of a gas sensor (240) and associated measurements (132) of an environmental sensor (246); a receiver (124) receiving information from a transmitter (226); a model generation engine (250) modeling drift as a regular expression; and a machine learning (ML) engine (140) receiving the set of measurements (132), the value of the regular expression, and the output of the environmental sensor (246), and generating an output value.
[0042] The system (200) includes both a sensor (240) and a controller (100). The sensor includes a transmitter (226) that transmits information from an oscillator (242) to a receiver (124) associated with the controller (100). The controller (100) includes a processor (120), a memory (122), a model generation engine (250), and a machine learning engine (260). Both engines (250, 260) use the processor (120) to perform their operations.
[0043] The transmitter (226) transmits the output of the gas sensor (240) to the receiver (124). The receiver (124) then provides the results to the model generation engine (250) and the machine learning engine (260) to form a model of drift and calculate output values, respectively. The transmitter (226) and the receiver (124) can use any specific communication method suitable for the system (200). In some examples, short-range wireless protocols are preferred. In an example, the Bluetooth (tm) protocol is used. In another example, the IEEE 802.11 WIFI protocol is used. Other protocols such as IEEE 8016 and / or IEEE 802.15.4 can be used.
[0044] The gas sensor (240) includes an oscillator (242) having different surface chemistries. The different surface chemistries allow for different behaviors with respect to molecules interacting with one of the surface chemistries. In an example, the surface chemistries have differential interactions with CO2, water, and / or some other molecule to be detected. Although Figure 2 Two gas sensors (240) are depicted, but the system (200) may include more than two gas sensors (240).
[0045] In an example, the gas sensor (240) includes an array of oscillators (242). The array of oscillators (242) may include replicas. The array of oscillators (242) may include multiple species-specific surface chemistries. The array of oscillators (242) may operate at multiple frequencies to provide additional differentiation. For example, two oscillators (242) may operate at a first frequency and two oscillators (242) may operate at a second frequency. The first and second frequencies may be related to each other. In an example, the second frequency is a harmonic of the first frequency.
[0046] Each register (244) can accumulate a count of oscillations of an oscillator (242). In an example, the register accumulates the difference between two oscillators (242), where the first oscillator (242-1) increments the register (244) and the second oscillator (242-2) decrements the register (244).
[0047] The environmental sensor (246) measures environmental properties and reports the environmental properties. The environmental sensor (246) may measure temperature, humidity, light, proximity, etc. The environmental property measurements are used as input to a machine learning (ML) engine (260) to calculate the actual output of the gas sensor (240).
[0048] The receiver (124) is associated with the processor (120) and the memory (122). The processor (120) also supports two engines (250, 260). The processor (120) supports the model generation engine (250) to model the drift as a regular expression. The processor (120) supports the machine learning (ML) engine (260) to receive the measurement (132), the value of the regular expression, and the output of the environmental sensor (246), and generate an output value.
[0049] The model generation engine (250) models the drift. The model can be a polynomial model. The model can include exponential terms, derivative terms, periodic terms, etc. It has been found that first-order and / or second-order polynomial models can provide adequate modeling of drift over a relevant time range. This provides the advantage of a compact model characterized by a small number of factors, such as slope and / or slope and offset. The use of first-order and second-order models allows for reduced complexity of the machine learning portion of the calculations performed by the machine learning engine (260). For example, the use of linear models can be compensated before providing values to the machine learning engine (260). This can decouple the problem of drift from other calculations that limit processing power requirements, consumed memory resources, and / or other resource consumption.
[0050] The model generation engine (250) can format the model in a regular expression. In an example, the regular expression is a polynomial expansion. The polynomial expansion can be a first order expansion. The polynomial expansion can be a second order expansion. The polynomial expansion can be a third order or higher order expansion. The model generation engine (250) can use least squares fitting and / or similar techniques to estimate the drift at various time points of the model. In an example, the model generation engine (250) identifies a first time point with a first known gas concentration and a second time point with a second known gas concentration, and generates a linear model between the first time point and the second time point. In some examples, the first and second known gas concentrations are the same gas concentration, for example, the gas concentration at a reference and / or control location.
[0051] The approach may also circumvent the need for lookup tables and / or similar data storage requirements. Instead, modeled drift is compensated directly without reference to an additional machine learning model with its overhead and communication requirements.
[0052] The machine learning engine (260) takes the measurements, model variables, and environmental variables and calculates the gas concentration. In some examples, as described above, the model variables are used to modify the measurement(s) before processing by the machine learning engine (260). In other examples, the machine learning engine also receives and processes the model variables.
[0053] In some examples, inputs to the machine learning model are limited to measurements, values of regular expressions, and outputs from multiple environmental sensors.
[0054] The system (200) may not include a lookup table. For example, the system may have limited or no communication to an external network. As a specific example, the system (200) may be a stand-alone system. The controller (100) may be a portable device that operates on a power source, such as a battery. The controller (100) may be able to removably power itself to a network, such as for recharging. The controller (100) may be static during use and / or may be movable during use. In an example, the controller (100) includes a cellular phone, a laptop computer, a tablet computer, and / or a similar processor with an associated module. The module may include an ASIC. The module may include a memory. The controller (100) may include a user interface to allow control of the sensor (130).
[0055] In some examples, the system (100) is defined in part by the excluded components. Excluding these components can reduce costs. Excluding these components can reduce network requirements. In an example, the system (100) does not include a lookup table. The system (100) may not have a network connection. The system (100) may not have a power connection to a power source other than an onboard battery.
[0056] Figure 3 A flow chart of a method (300) for compensating for drift in a sensor consistent with the present specification is shown. The method (300) includes: identifying (370) a time series of measurements from a sensor; identifying (372) a plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor; evaluating (374) a residual at a first time; evaluating (376) the residual at a second time; modeling (378) the residual as a polynomial expression based on the residual at the first time and the residual at the second time; and providing (380) the polynomial expression, the time series of measurements, and the values of the plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor to a machine learning (ML) system to reduce the effect of drift defined by the residual on an output of the machine learning system.
[0057] The method (300) includes identifying (370) a time series of measurements from a sensor. The time series of measurements includes measurements where the residual is zero and / or constant. For example, the true value of the gas concentration may be known. In another example, the gas concentration at a location such as a control location may be constant, rather than zero, at multiple points in time. The sensor (130) may be placed at the control location before and after measurements at other locations. The sensor (130) may be periodically placed at the control location through the time series of measurements. These periods may then be used to control drift using the method (300).
[0058] The method (300) includes identifying (372) a plurality of environmental measurements associated with each measurement in a time series of measurements from a sensor. The method includes measuring the environmental measurements using at least one environmental sensor, such as temperature, pressure, humidity, distance, proximity, and / or other sensors. The environmental measurements are provided to a machine learning engine (140) to generate an output.
[0059] The method (300) includes evaluating (374) a residual at a first time. The residual may be baselined (tare) to zero. The residual may be determined and subtracted from future measurements.
[0060] The method (300) includes evaluating (376) the residual at a second time. The first and second times may be combined with times at which other measurements are made. For example, the first time may be before a measurement in the time series is made. The second time may be after a measurement in the time series is made. The first and / or second time may be during the time series of measurements. Preferably, the first and second times are close to the time of the time series in which the measurements are made to reduce the effect of drift on the final value.
[0061] The method (300) includes modeling (378) the residual as a polynomial expression based on the residual at a first time and the residual at a second time. The polynomial expression can be a regular expression. The polynomial expression can be first order, second order, third order, etc. The polynomial expression can be expressed as Drift ~ = A + B (t) + C (t^2) + D (t^3), where A, B, C and D are constants and t is the time index (time index) of the time series used for measurement. Then, A, B, C and D are provided as input to the machine learning engine (140). Polynomial expressions of different orders can have different numbers of constants to provide to the machine learning engine (140).
[0062] The method (300) includes providing (380) a polynomial expression, a time series of measurements, and values of a plurality of environmental measurements associated with each measurement in the time series of measurements from a sensor to a machine learning (ML) (140) system to reduce the effect of drift defined by a residual on an output of the machine learning system.
[0063] The method (300) may also include additional actions. The method (300) may be performed without certain additional actions. For example, the method (300) may be performed without retrieving data from a lookup table.
[0064] In an example, modeling the residual as a polynomial expression includes a linear regression of the residual at the first time and the residual at the second time based on the residual at the first time and the residual at the second time.
[0065] The method (300) may include identifying a plurality of measurements taken at a time point between a first time and a second time, wherein modeling the residual as a polynomial expression based on the residual at the first time and the residual at the second time includes a least squares fit between the calculated residuals of the plurality of measurements taken at the time point between the first time and the second time. In an example, the plurality of measurements taken at the time point between the first time and the second time have a shared value, and the residual may be determined based on the shared value and the measurements. The shared value may be zero. The shared value may also be non-zero.
[0066] Figure 4 A flow chart of a method (400) for compensating for drift in a sensor output of a sensor consistent with the present specification is shown. The method (400) includes: identifying (480) a series of measurements (132) from a sensor (130); identifying (482) a plurality of sensor outputs where the true value of the sensor is known; for each sensor output where the true value is known, calculating (484) a residual offset of the sensor at that point; for each pair of sequential sensor outputs where the true value is known, creating (486) a linear model of the residual offset; for each sensor output, identifying (488) a linear model of the residual offset from a pair of sequential sensor outputs where the true value of the sensor outputs taken together is known; and subtracting (490) a value from the linear model from a value of the sensor output to produce a drift compensated sensor output value.
[0067] The method (400) includes identifying (480) a series of sensor outputs, namely measurements (132) from a sensor (130). The series of measurements (132) may be a time series of measurements. The series of measurements (132) may be a position series. The series of measurements (132) may be equally spaced. The series of measurements (132) may be unequally spaced in space and / or time.
[0068] The method (400) includes identifying (482) a plurality of measurements (132) where the true value of the sensor (130) is known. The control values may be provided by controlling inputs to the sensor. For example, a known gas concentration may be passed over the sensor (130). A known ambient gas concentration may be measured.
[0069] The method (400) includes, for each measurement (132) where the true value is known, calculating (484) a residual offset of the sensor (130) at that point. The residual is the difference between the known value and the calculated value. The residual offset may also be referred to as a residual error.
[0070] The method (400) includes, for each pair of sequential sensor outputs where the true value is known, creating (486) a linear model of the residual offset. Using sequential pairs allows the use of information that is closely related to the measurements in time and / or space. This can reduce the effect of time on drift, reducing the amount of drift that needs to be accounted for.
[0071] The method (400) includes, for each measurement (132), identifying (488) a linear model of the residual offset from a pair of sequential sensor outputs where the true value of the sensor outputs combined together is known. The linear model of the residual offset may be a first order polynomial model of the residual offset.
[0072] The method (400) includes subtracting (490) a value from the linear model from the value of the sensor output to produce a drift compensated sensor output value. This may be performed before providing the value to the machine learning engine (140) and / or after providing the value to the machine learning engine (140). Pre-processing by subtracting the calculated residual at each point has the advantage of reducing the complexity of the system modeled by the machine learning engine (140), which in turn increases the effectiveness of the machine learning engine (140).
[0073] Figure 5A shows raw sensor data during increasing gas concentrations, and Figure 5B The same sensor data is shown after processing in a manner consistent with the present specification. The horizontal axis is the actual value of the test gas in parts per million (ppm). The vertical axis is the measurement from the ultrasound based gas sensor. Figure 5A is the uncorrected data and Figure 5B is the data after processing using the method described in this specification. As can be seen, Figure 5B compared to, Figure 5A The value changes in are larger. Figure 5BAlso shown is a greater linearity than actual values.
[0074] It should be understood that there are numerous variations within the principles described in this specification. It should also be understood that the examples described are only examples and are not intended to limit the scope, applicability or interpretation (construction) of the claims in any way.
Claims
1. A system for stabilizing sensor readings, the system comprising: processor; a memory communicatively coupled to the processor; a receiver that receives measurements and environmental parameters from the sensing device; A machine learning engine executed on the processor, wherein the machine learning engine receives as input: Environmental parameters; Measurement; as well as control parameters calculated based on control measurements taken at time points before, between, and after the measurements, wherein the control parameters are parameters that model actual values; The control parameter is a linear interpolation between the time point before the measurement and the time point after the measurement.
2. The system according to claim 1, wherein: The control parameters are polynomial models.
3. The system according to claim 2, wherein: The polynomial model is a second-order polynomial model.
4. The system according to claim 1, wherein: The measurements are subject to smoothing in the physical dimension.
5. The system according to claim 1, wherein: The system operates without a lookup table.
6. The system according to claim 1, wherein: Control measurements are taken at the same geometrical position and at the same expected signal level.
7. The system according to claim 1, wherein: The system filters transients with an absolute value of d[concentration] / dt greater than a threshold.
8. A system for measuring gas, the system comprising: Gas sensors, including: a first mass sensitive oscillator; a second mass sensitive oscillator having a different surface chemistry than the first mass sensitive oscillator; a register for accumulating counts of the first and second oscillators; Environmental sensors; and Transmitter; Controller, including: processor; a memory, communicatively coupled to the processor, the memory for storing a set of gas sensor measurements and associated measurements of the environmental sensor; The receiver receives information from the transmitter; A model generation engine that models drift as a regular expression; and A machine learning (ML) engine receives measurements, values of regular expressions, and outputs of environmental sensors and generates output values.
9. The system according to claim 8, wherein: Regular expressions are polynomial expressions.
10. The system according to claim 9, wherein: The polynomial expression is a third-order polynomial expression.
11. The system according to claim 8, wherein: The input to the machine learning model consists of just the measurements, the values of the regular expressions, and the outputs from multiple environmental sensors.
12. The system according to claim 8, wherein: The system does not include a lookup table.
13. A method of compensating for drift in a sensor, comprising: identifying a time series of measurements from a sensor; identifying a plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor; Evaluate the residuals at the first time; evaluating the residual at a second time; modeling the residual as a polynomial expression based on the residual at the first time and the residual at the second time; as well as The polynomial expression, the time series of measurements, and values of a plurality of environmental measurements associated with each measurement in the time series of measurements from the sensor are provided to a machine learning (ML) system to reduce the effect of drift defined by the residual on an output of the machine learning system.
14. The method according to claim 13, wherein: The method does not include retrieving data from a lookup table.
15. The method according to claim 13, wherein: Modeling the residual as a polynomial expression based on the residual at the first time and the residual at the second time includes performing a linear regression between the residual at the first time and the residual at the second time.
16. The method according to claim 13 also includes identifying multiple measurements taken at time points between a first time and a second time, wherein modeling the residuals as a polynomial expression based on the residuals at the first time and the residuals at the second time includes performing a least squares fit between the calculated residuals of the multiple measurements taken at the time points between the first time and the second time.
17. The method according to claim 16, wherein: A plurality of measurements taken at points in time between the first time and the second time have shared values, and residuals are determined based on the shared values and the measurements.
18. The method according to claim 17, wherein: The shared value is zero.
19. The method according to claim 17, wherein: The shared value is non-zero.
Citation Information
Patent Citations
Ultrasound gas sensor system using machine learning
US11215586B2
Multi-phase Coriolis flowmeter
US20050193832A1