The disclosure relates generally to calibration of sensor hardware and software related thereto, and more particularly to self-calibrating sensing hardware and software, especially gas sensors in shipping containers.
A gas sensor, such as a carbon dioxide sensor in a food shipping container, may be subjected to a variety of factors that could cause sensor instability over time, including frequent temperature cycling, marine atmosphere, shock, vibration, and corrosive gases. As a result, such a sensor will typically require recalibration from time to time, which can be facilitated by connecting the sensor to a container controller, such as via a MODBUS network. The container controller can initiate a sensor calibration, in which the sensor's output is measured under known conditions so that, if necessary, corrections may be made in processing the output. These corrections account for sensor instability, changes in the connection between the sensor and a device using its output, and other variables.
In many circumstances, it is also advantageous for a sensor to adjust its own output, effecting a self-calibration, in response to a signal, such as a trigger from a controller, detection of calibration conditions, a switch operated by a user, or the like. However, calibration and self-calibration may only be performed when conditions around the sensor are at particular, known, and/or standard values of, for example, temperature, humidity, concentration of various gases, and other conditions as may be appropriate and/or desired. If conditions and/or time for calibration are chosen poorly, additional errors may be created in the sensing element that could cause inaccuracies in system operation. Correct identification of conditions and time for self-calibration, therefore, may be important to ensure proper and/or more efficient and/or more accurate system performance.
Embodiments of the invention disclosed herein can take the form of a self-calibrating sensor having a sensing element configured to detect a first condition and a communication component configured to enable the sensor to send and receive information. A sensor controller may be configured to communicate with the first sensing element and to monitor for a predefined calibration condition, including acquiring any needed information with the communication component. When the predefined calibration condition is detected, the sensor controller may initiate calibration of the sensing element.
Another embodiment includes a self-calibrating sensor system having a first sensor configured for communication. The sensor may include a sensing element, a communication component, and a sensor controller configured to send data from the sensing element with the communication component and to receive data with the communication component. The sensor controller may monitor for a calibration condition, including using data from the communication component, and initiate calibration of at least its respective sensing element responsive to detecting a calibration condition.
Another embodiment includes a computer program product for enabling sensor self-calibration in a sensor system, the system including a first sensor with a sensing element, a sensor controller, and a storage device configured for communication with the sensor controller and to store the computer program product. The sensor controller may include a computing device configured to execute the computer program product, the computer program product comprising instructions in the form of computer executable program code that configures the sensor controller to send data from the sensing element and to receive data from a communication component, monitor for a calibration condition, and initiate calibration of at least its respective sensing element responsive to detecting a calibration condition.
Other aspects of the invention provide methods, systems, program products, and methods of using and generating each, which include and/or implement some or all of the actions described herein. The illustrative aspects of the invention are designed to solve one or more of the problems herein described and/or one or more other problems not discussed.
These and other features of the disclosure will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings that depict various aspects of the invention.
It is noted that the drawings may not be to scale. The drawings are intended to depict only typical aspects of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements between the drawings.
The detailed description explains embodiments of the invention, together with advantages and features, by way of example with reference to the drawings.
As indicated above, aspects of the invention provide a system, method, and computer program product for sensor self-calibration. As used herein, “sensor calibration” means adjusting sensor output and/or interpretation thereof at a known value of a variable the sensor is configured to measure, preferably at known values of a plurality of variables, such as by a logic component of a sensor adjusting its processing and/or output based on what a sensing element sends it at the known value(s). “Self-calibration” means that a sensor calibrates its output itself. Also as used herein, unless otherwise noted, the term “set” means one or more (i.e., at least one) and the phrase “any solution” means any now known or later developed solution. Similarly, where elements are described and/or recited in the singular, it should be recognized that multiple of such elements are included unless otherwise noted. Thus, “a” generally means “at least one” throughout the instant application, including the claims.
With reference to
While sensing element 110, sensor controller 120, and/or communication component 140 are shown as discrete elements in
With reference to
As seen in
Alternatively, as seen in
In operation of sensor system 300 and/or sensor system 400, output of a sensing element 110, 210 of a sensor unit 100, 200 may change in response to environmental conditions. Sensor controller 120, 220 of a sensor unit 100, 200 typically may engage in data acquisition and/or processing, acquiring and/or receiving a signal from sensing element 110, 210 and calculating a measured value based on such signal. Communication component 140, 240 may enable sensor unit 100, 200 to communicate to network 310, 410, which may include additional sensors 100, 200 and/or a master or network controller 420. Sensing element 110, 210, sensor controller 120, 220, and communication component 140, 240 may represent functions, not necessarily physical units, and some or all may be contained in a single physical unit. For example, an integrated temperature sensor may have all these components located on the same silicon die. In other embodiments, sensor controller 120, 220 and communication component 140, 240 may be functional blocks of firmware running on one computing device, such as a microcontroller, or other variations may be employed as desired and/or appropriate.
As has been suggested above, and with reference to
In other words, embodiments of the invention include a self-calibrating sensor system 300, 400 with one or more sensors 100, 200, each sensor 100, 200 being configured for connection to and communication over a common network 310, 410. Each sensor 100, 200 may include one or more sensing elements 110, 210-218 and a sensor controller 120, 220, each sensor controller 120, 220 being configured to send data from the sensing element(s) 110, 210-218 to and to receive data from common network 310, 410. Each sensor controller 120, 220 also may monitor for a signal (block 504), such as a signal from another controller indicating that a calibration condition has been achieved.
When a calibration condition is detected by a sensor controller 120, 220, (block 506), that sensor controller 120, 220 may initiate self-calibration of at least its respective sensing element 110, 210-218, (block 508). In addition, the sensor controller 120, 220 detecting the calibration condition may broadcast a signal over the network 310, 410 to cause another sensor controller 120, 220 of a sensor 100, 200 to detect a calibration condition (block 506).
The detection of a calibration condition may include using data received from the common network 310, 410 that the respective sensor 100, 200 does not itself detect and/or collect. For example, in embodiments the sensor 100, 200 may be a carbon dioxide sensor for which the calibration condition is detection of suitable pressure, temperature, and/or relative humidity. If the carbon dioxide sensor does not include sensing elements that provide information necessary to determine that calibration conditions have been reached, the sensor controller of the carbon dioxide sensor may use information from the common network. For example, if the carbon dioxide sensor includes a temperature sensing element, but does not include a relative humidity sensing element and/or pressure sensing element, the sensor controller may collect the missing information from the common network as supplied by another sensor(s) that includes the missing sensing element(s). This may be achieved without a master controller, instead relying on communication between sensor unit sensor controllers over the network.
However, as shown in
In a particular implementation, as seen in
Turning to
Computer system 710 is shown including a processing component or unit (PU) 712 (e.g., one or more processors), an input/output (I/O) component 714 (e.g., one or more I/O interfaces and/or devices), a storage component 716 (e.g., a storage hierarchy), and a communications pathway 717. In general, processing component 712 executes program code, such as sensor unit or system calibration program 720, which is at least partially fixed in storage component 716, which may include one or more computer readable storage medium or device. While executing program code, processing component 712 may process data, which may result in reading and/or writing transformed data from/to storage component 716 and/or I/O component 714 for further processing. Pathway 717 provides a communications link between each of the components in computer system 710. I/O component 714 may comprise one or more human I/O devices, which enable a human user to interact with computer system 710 and/or one or more communications devices to enable a system user to communicate with computer system 710 using any type of communications link. In embodiments, a communications arrangement 730, such as networking hardware/software, enables computing device 710 to communicate with other devices in and outside of a node in which it is installed. To this extent, sensor unit or system calibration program 720 may manage a set of interfaces (e.g., graphical user interface(s), application program interface, and/or the like) that enable human and/or system users to interact with sensor unit or system calibration program 720. Further, sensor unit or system calibration program 720 may manage (e.g., store, retrieve, create, manipulate, organize, present, etc.) data, such as sensor unit or system data 718, using any solution.
Computer system 710 may comprise one or more general purpose computing articles of manufacture (e.g., computing devices) capable of executing program code, such as sensor unit or system calibration program 720, installed thereon. As used herein, it is understood that “program code” means any collection of instructions, in any language, code or notation, that cause a computing device having an information processing capability to perform a particular action either directly or after any combination of the following: (a) conversion to another language, code or notation; (b) reproduction in a different material form; and/or (c) decompression. Additionally, computer code may include object code, source code, and/or executable code, and may form part of a computer program product when on at least one computer readable medium. It is understood that the term “computer readable medium” may comprise one or more of any type of tangible medium of expression, now known or later developed, from which a copy of the program code may be perceived, reproduced, or otherwise communicated by a computing device. For example, the computer readable medium may comprise: one or more portable storage articles of manufacture; one or more memory/storage components of a computing device; paper; and/or the like. Examples of memory/storage components include magnetic media (floppy diskettes, hard disc drives, tape, etc.), optical media (compact discs, digital versatile/video discs, magneto-optical discs, etc.), random access memory (RAM), read only memory (ROM), flash ROM, erasable programmable read only memory (EPROM), or any other computer readable storage medium now known and/or later developed and/or discovered on which the computer program code is stored and with which the computer program code can be loaded into and executed by a computer. When the computer executes the computer program code, it becomes an apparatus for practicing the invention, and on a general purpose microprocessor, specific logic circuits are created by configuration of the microprocessor with computer code segments. A technical effect of the executable instructions is to implement an automatic sensor self-calibration method and/or system and/or computer program product that initiates a self-calibration of a sensing element or sensor unit when a calibration condition is achieved and/or detected and/or occurs. Detecting a calibration condition may include detection of a predefined threshold value of an environmental condition, a predefined range of values of an environmental condition, a signal from another controller, and/or other criteria as may be desired and/or appropriate.
The computer program code may be written in computer instructions executable by the controller, such as in the form of software encoded in any programming language. Examples of suitable computer instruction and/or programming languages include, but are not limited to, assembly language, Verilog, Verilog HDL (Verilog Hardware Description Language), Very High Speed IC Hardware Description Language (VHSIC HDL or VHDL), FORTRAN (Formula Translation), C, C++, C#, Java, ALGOL (Algorithmic Language), BASIC (Beginner All-Purpose Symbolic Instruction Code), APL (A Programming Language), ActiveX, Python, Perl, php, Tcl (Tool Command Language), HTML (HyperText Markup Language), XML (eXtensible Markup Language), and any combination or derivative of one or more of these and/or others now known and/or later developed and/or discovered. To this extent, sensor unit or system calibration program 720 may be embodied as any combination of system software and/or application software.
Further, sensor unit or system calibration program 720 may be implemented using a set of modules 722. In this case, a module 722 may enable computer system 710 to perform a set of tasks used by sensor unit or system calibration program 720, and may be separately developed and/or implemented apart from other portions of sensor unit or system calibration program 720. As used herein, the term “component” means any configuration of hardware, with or without software, which implements the functionality described in conjunction therewith using any solution, while the term “module” means program code that enables a computer system 710 to implement the actions described in conjunction therewith using any solution. When fixed in a storage component 716 of a computer system 710 that includes a processing component 712, a module is a substantial portion of a component that implements the actions. Regardless, it is understood that two or more components, modules, and/or systems may share some/all of their respective hardware and/or software. Further, it is understood that some of the functionality discussed herein may not be implemented or additional functionality may be included as part of computer system 710.
When computer system 710 comprises multiple computing devices, each computing device may have only a portion of sensor unit or system calibration program 720 fixed thereon (e.g., one or more modules 722). However, it is understood that computer system 710 and sensor unit or system calibration program 720 are only representative of various possible equivalent computer systems that may perform a process described herein. To this extent, in other embodiments, the functionality provided by computer system 710 and sensor unit or system calibration program 720 may be at least partially implemented by one or more computing devices that include any combination of general and/or specific purpose hardware with or without program code. In each embodiment, the hardware and program code, if included, may be created using standard engineering and programming techniques, respectively.
Regardless, when computer system 710 includes multiple computing devices, the computing devices may communicate over any type of communications link. Further, while performing a process described herein, computer system 710 may communicate with one or more other computer systems using any type of communications link. In either case, the communications link may comprise any combination of various types of wired and/or wireless links; comprise any combination of one or more types of networks; and/or utilize any combination of various types of transmission techniques and protocols now known and/or later developed and/or discovered.
As discussed herein, sensor unit or system calibration program 720 enables computer system 710 to implement an automatic sensor self-calibration product and/or method, such as that shown schematically in
In another embodiment, the invention provides a method of providing a copy of program code, such as sensor unit or system calibration program 720 (
In still another embodiment, the invention provides a method of generating a system for implementing an automatic sensor self-calibration product and/or method. In this case, a computer system, such as computer system 710 (
It is understood that aspects of the invention can be implemented as part of a business method that performs a process described herein on a subscription, advertising, and/or fee basis. That is, a service provider could offer to implement an automatic sensor self-calibration product and/or method as described herein. In this case, the service provider can manage (e.g., create, maintain, support, etc.) a computer system, such as computer system 710 (
While the invention has been described in detail in connection with only a limited number of embodiments, it should be readily understood that the invention is not limited to such disclosed embodiments. Rather, the invention can be modified to incorporate any number of variations, alterations, substitutions or equivalent arrangements not heretofore described, but which are commensurate with the spirit and scope of the invention. Additionally, while various embodiments of the invention have been described, it is to be understood that aspects of the invention may include only some of the described embodiments. Accordingly, the invention is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.