The present invention relates to sensing technology, and more particularly to methods and apparatus for improving accuracy of sensor readings.
Recent scientific research indicates that habitual exposure to certain environmental contaminants may have significant adverse effects on health. The incidence of such effects may depend sensitively on the level (for example concentration) of the component. Even below levels which are immediately toxic, some components may damage mental and physical health.
Environmental parameters such as temperature, and pressure, and the level of components in the atmosphere (such as humidity, CO2, excess O2, O3 and other contaminants) may be measured by a variety of techniques. Typically the technique which is chosen depends on the level of accuracy required.
As just one example, domestic carbon monoxide alarms are typically able to detect levels of carbon monoxide of a few hundred parts per million (ppm) and have an accuracy of about ±30 ppm. This level of accuracy may be acceptable when detecting immediately toxic levels of such a contaminant, but is of less use when dealing with levels which may be relevant in attempting to avoid and/or protect against harm caused by habitual exposure to much lower levels. It has been shown that long-term exposure to low levels of carbon monoxide can lead to neurological symptoms, such as difficulty thinking or concentrating and frequent emotional changes—for example, becoming easily irritated, depressed or making impulsive or irrational decisions.
The levels which have been found to give rise to such effects after long periods of habitual exposure may be far below the limit of detectability of many standard detectors. Indeed, the difference between safe and harmful levels may be less than the resolution limits of common detectors.
Providing sensors of increased sensitivity in every area which may be occupied or visited regularly would appear to be the natural answer. However this would require the provision of large numbers of highly accurate sensors. The cost of the units themselves, let alone their installation and maintenance, therefore is prohibitive. Carbon monoxide monitoring is just one example of measurement of an environmental parameter.
A calibration, e.g. a relation between the input and the output of a measuring system may be established by a calibration procedure. This procedure may involve applying a known value, or a series of known values, to a sensor for the purpose of observing its output. By the application of a range of such known values and observation of the sensor output, a calibration can be determined. Such a calibration procedure may improve accuracy of a sensor reading, but is generally time consuming and costly. Therefore, mass produced sensors are typically calibrated at point of production in a uniform fashion—all sensors of a particular type are assumed to have the same sensing characteristic. The alternative, individually calibrating each sensor, would add significant cost and inconvenience. In practice, it may therefore be preferable to simply buy a sensor which provides more accurate data.
Aspects and examples of the invention are set out in the appended claims and aim to address at least a part of the above described technical problem.
Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings in which:
In the drawings like reference numerals are used to indicate like elements.
When a particular sensor system 26 is first deployed, the server 10 illustrated in
The sensor systems 26, 28, 30 illustrated in
The sensor 29 is arranged to sense an environmental parameter, and to provide the sensed level of that parameter to the mobile communications apparatus 27. The sensor illustrated in
The mobile communications apparatus 27 is coupled to communicate with the sensor 29 to obtain data from the sensor 29 and to communicate that sensor data over the network to the server 10.
The server 10 shown in
The wide area communications interface 14 comprises a wired or wireless interface for communication over a packet switched network, such as the internet.
The data store 16 is operable to store data associated with one or more of the sensor systems 26, 28, 30. The information stored generally includes:
The controller 12 is configured to obtain items of this sensor data 18 from each of the sensor systems 26, 28, 30 and to record them in the data store 16.
It is also configured to determine a calibration for each sensor system 26 based on the sensor data collected from that sensor system 26 and the first calibration data 20 stored in the data store, and then to use these to select a calibration for that particular sensor.
The controller 12 is configured so that a selected condition may be used to determine whether to use the default calibration, or instead to switch to a more specific calibration for a selected sensor. One example of such a condition is described below with reference to
The controller 12 is also configured so that in the event that the condition for switching away from the default calibration is met, it determines the specific calibration which is to be used as a weighted combination of:
The controller 12 is configured to determine this second calibration data by selecting items of the sensor data, and then fitting a data model for the sensor type to those selected items of sensor data. The selected items of sensor data may comprise an estimate of the minimum sensor level observed at each value of the control variable. In addition, or as an alternative, the items of sensor data may be weighted in this fitting based on when they were obtained. For example, more recently obtained sensor data may be given a greater weighting than older data. For example, data sensed outside a selected time interval may be given a small or zero weighting—this may be achieved by only using sensor data that was selected during a recent interval of some selected length. The length of this interval may be chosen to tune the calibrations sensitivity to sensor drift.
The data model used by the controller to determine this second calibration data relates the control variable values to the sensor data values. Accordingly, the controller can use the model to determine a correction for systematic bias error (for example a zero error or offset) which may vary as a function of the control variable. The data model may also include further components such as variations in one or more other control variables, for example this may account for other specific environmental variables which have a bearing on the sensed data.
It will be appreciated in the context of the present disclosure that this may be applied in a variety of different ways according to the nature of the underlying data and the type of sensor. For example, if a type of sensor is known to exhibit a systematic offset which varies as a function of a particular control variable, then the second calibration data may be obtained by fitting a data model which reflects that function to the items of sensor data. For example, if the variation is known to be a linear one a first order polynomial model can be used, if exponential an exponential model, if a power series then a power series model, and so on. One example of this process is described below with reference to
The controller 12 is also configured to determine the weighting based on the data gathered from the particular sensor. This may be done by applying a weighting which is based on the number of samples of sensor data used to calculate the second calibration data (e.g. a simple count of the items of data used in the fit). More sophisticated approaches may also be used. For example, the count of data items may be restricted to those items which match a quality criterion.
This quality criterion may be a maximum deviation from an expected level. For example—the expected level may be based on the model fitted to the data items to determine the second calibration data, and outliers which deviate from that fit by more than some maximum threshold may not be taken into account when calculating the count of data items.
In addition to, or as an alternative to, using a weighting based on the count of the data items, the weighting may be based on known or expected characteristics of the calibration data for a particular sensor. For example—it may be known that the particular sensor has a monotonic calibration function, so the controller 12 may be configured to reduce the weighting applied to the second calibration data in the event that it deviates from monotonicity. As another example, the controller 12 may be configured to select the weighting based on the value of the 20 second calibration data, e.g. based on its value in a particular range of the control variable. In addition, or as an alternative, a similar approach may be applied using the gradient of the second calibration data. One such approach will be described below with reference to
Operation of the apparatus shown in
As illustrated in
The controller 12 can then store the first calibration data into the data store. Of course, if it has already been determined the first calibration data can simply be obtained 50 by retrieving it from the data store. Likewise, first calibration data stored in the data store 16 may be updated based on observations obtained from sensor systems 26, 28, 30. This may be done at intervals, e.g. periodically and/or in response to some trigger condition. The trigger condition may be an increase in the number of sensor systems of more than some threshold level—for example at least 5%, for example at least 10%.
Then, a plurality of items of second sensor data is obtained 56 over the wide area communications network 24 from a selected sensor system 26. Each such item of second sensor data indicates the level of an environmental parameter sensed by the selected sensor and a value of a control variable at the time that level was sensed.
Using this second sensor data and the first calibration data 20, the controller 12 of the server 10 can determine 58 a calibration for use in correcting sensor data collected by the selected sensor system. This may be done according to the approach described above with reference to
The calibration can be provided 66, over the network, to the sensor system 26—for example by being sent in a network message. The processor 32 of the sensor system 26 may store the calibration into the sensor system's data store 36—for example in the form of a data table or other stored association. To indicate the level of the parameter at the sensor, the processor 32 obtains a level of the sensed parameter from the sensor and obtains an associated value of the control variable. The processor 32 then uses the control variable value and the calibration to correct the sensed level value. This corrected level data can be provided to the user interface 34 at the sensor system 26 and/or it may be used to provide an indication of the level of the parameter at the location of that system. The server 10 may communicate with the set of sensor systems 26, 28, 30 and use the sensed level values at the location of each of the sensor systems 26, 28, 30 to assemble a map of the parameter level across a geographic area. In some embodiments the sensor system 26 may send the sensor data to the server, and the controller at the server can then use the control variable value associated with that sensor data and the calibration to correct the sensed level value at the server. The corrected level value can then be transmitted back to the sensor system.
In the examples described with reference to
As with those examples, when a particular sensor is deployed the calibration used for the sensor is based on first calibration data. This is, in effect a default calibration, which may have been calculated from sensor data obtained from a population of similar sensor systems 26, 28, 30. Over time, as data is obtained from that particular sensor, it transitions to a state in which the calibration is based on a weighted combination of the first calibration data and second calibration data learned from that particular sensor.
After a sensor is deployed, the method illustrated in
As it continues to operate, the sensor system 26 provides 70 items of sensor data to the server 10. These items of sensor data comprise a carbon monoxide level and a corresponding temperature indicating the temperature at which the CO level was sensed. The controller 12 of the server determines 72 a measure of the minimum level of carbon monoxide at any given temperature. This may be done by selecting a group of the lowest values at each temperature and determining the minimum level based on those selected values—for example it may be based on an average of those selected values such as the mean or median or some weighted combination of those selected values.
This provides an estimate of the zero level of the sensor at any given temperature—a floor level estimate. The items of data on which it is based, and the associated floor level estimate may be stored in the data store 16 at the server.
The controller 12 then determines 74 whether a sufficient number of items of sensor data (referred to as “second sensor data”) have been collected from the particular sensor system 26 for this estimate of the minimum level to be treated as reliable. It does this by determining whether a threshold number of carbon monoxide level readings have been collected at each of a set of selected temperature values. Based on this first condition, the controller determines whether to switch from the use of the default calibration alone toward a calibration based on the second sensor data. If at least a minimum count of items of second sensor data have been collected per value of the control variable (temperature in this case), it can switch and if not it may continue to use the default calibration until a sufficient number density of data points has been collected.
The items of second sensor data which count towards meeting this first condition are limited to those which meet an eligibility criterion. Items of sensor data which do not lie within a selected range of values may be rejected as ineligible. This range may be selected based on the physical characteristics of the device—for example non-physical or out of range values maybe disregarded. The selected range of values may be fixed, and/or it may be chosen based on fitting a data model to the second sensor data. For example, the controller 12 may also determine an eligibility criterion by fitting a data model (such as an exponential curve) to the second sensor data as a function of temperature and selecting a threshold deviation about this data model. Items of data which do not fall within this range are excluded from the second sensor data. These two eligibility criteria may be applied in combination—for example values outside a fixed range may be discarded before a data model is fitted to the remaining values, and then the outliers which exceed a threshold deviation from that fitted model can also be deemed ineligible.
In the event that the remaining (eligible) samples do not provide, for each of the set of discrete temperature values, the threshold number of carbon monoxide level readings the first condition is deemed not met and the sensor system 26 continues 76 to operate using a calibration based on the first calibration data alone.
In the alternative, in the event that the eligible items of second sensor data meet the first condition, the controller 12 determines 78 a new calibration for the sensor system 26 based on both the first calibration data and the eligible items of sensor data collected from that sensor system.
To calculate this combination the controller 12 fits an exponential curve to the first calibration data and the floor values of the second sensor data at each temperature. To determine this fit, the controller 12 weights the contribution of the second sensor data according to one or more of the following:
Once the weighting has been determined, the controller 12 determines the fit using the weighting to determine a calibration baseline which takes account of both the known characteristics of a population of similar sensors and the particular characteristics of the sensor itself. This calibration baseline can then be employed at the server 10 to correct sensor data obtained from that sensor. In addition, or as an alternative, the calibration can be provided 80 to the sensor system. The sensor system 26 can then use the calibration and a measure of the temperature to determine a correction for the sensed level.
If the sensor system 26 also provides location information, indicating its geographic location, to the server 10 the server 10 can assemble a map based on the sensor level values and this geographic information to provide a geographic map of the sensed level—e.g. by interpolating between locations at which sensors are deployed. The map may be updated in response to receiving new sensor data from the sensors.
The sensing devices 260-400 are configured to sense the level of an environmental parameter, such as a contaminant level. The sensing devices 260-400 are also configured to provide data indicating a value of at least one control variable associated with the sensed level values. The sensing devices are arranged to provide this data to the controller 500.
The controller 500 is coupled to communicate with each of the sensing devices 260-400 for obtaining sensor data. The controller is configured to store calibration data for each of the sensing devices—generally this calibration data comprises a relation between a control variable and a sensor signal level.
The controller 500 also stores an association between an identifier of each sensing device and location information indicating a location of that sensing device. In some cases, this information may be provided from the sensing devices to the controller 500 when they are deployed or at other intervals.
In operation, the controller 500 obtains first sensor data from each of the sensing devices, and uses this first sensor data to determine a calibration which accounts for a variation in at least one of the control variables. This may be done by fitting a selected data model to the sensor data using the associated control variable data. A further sensing device 400 is then deployed into the geographic area across which the other sensing devices are distributed. The controller obtains sensor data and associated control variable values from this further sensing device 400. This provides data indicative of the level of the environmental parameter at the geographic location of the selected sensor—this location of course may be different from the specific locations of the other individual sensing device.
The controller 500 then determines, based on the calibration data, the control variable values and the data from the further sensing device, the level of the environmental parameter at the geographic location of the further sensing device.
The calibration data generally comprises a combination of (a) the first set of calibration data, determined based on data collected from the group of sensing devices already deployed in the geographic area; and (b) a further (or second) calibration data determined based on sensor data obtained just from the further sensing device that has been deployed into the area. The two types of calibration data can be combined using a weighting of the second calibration data which increases with a count of the items of the second sensor data. This count may be restricted to items which meet some eligibility criterion as explained elsewhere herein.
In addition, this architecture may be used to implement the methods described above with reference to
It will be appreciated in the context of the present disclosure that the sensing devices described with reference to
The mobile telecommunications handset 27 comprises a processor 32, a data store 36, a communications interface 40 and a user interface.
The processor 32 is coupled to the data store 36 for reading and writing data, and is arranged for communicating via the communications interface 40. The user interface 34 comprises a display controlled by the processor 32 and an input device for receiving operator commands.
The communications interface comprises at least one local channel, such as a short range radio (for example Bluetooth®) for communicating with the sensor and a wide area channel for communicating over a wide area communications network 24 such as a cellular telephone network and/or the internet.
The sensor is configured to sense a level of an environmental parameter and a control variable and comprises machine readable identifier data. The sensor is operable to communicate via the local channel for providing the sensed level and control variable data to the handset. The handset is also able to obtain the identifier data from the sensor. This may also be done by the local channel or by the handset otherwise reading the identifier data from the sensor—for example it may be read using a barcode reader or QR code reader, or using optical character recognition software.
In operation, the handset obtains this identifier from the sensor, and operates the communication interface to transmit the unique identifier over a wide area communications network 24 from the handset to a remote device—for example to a server 10 such as that illustrated in
In the first instance this calibration is based solely on a set of first calibration data. This first calibration data having been determined based on first sensor data obtained from each of a plurality of similar sensors configured to sense the level of the environmental parameter. It will be appreciated in the context of the present disclosure that the remote device may have selected this first calibration data based on the unique identifier—for example by identifying the type of sensor and then selecting from amongst one of a set of stored calibrations.
The sensor at the handset then senses a plurality of items of second sensor data indicating the level of the environmental parameter, and optionally also the level of a control variable. The processor 32 of the handset then provides an indication of the level of the parameter at the handset based on the calibration and this second sensor data.
The handset may also transmit the plurality of items of second sensor data to the remote device. In response the remote device may determine a revised calibration based on this second sensor data. This revised calibration can then be used to update the calibration used at the handset for indicating the level of the parameter. This revised, updated, calibration takes account of the first calibration data and also the second sensor data—this may be done based on the second sensor data itself, or using a calibration curve fitted to that data which can then be combined with the first calibration data. This may be done using a weighting such as any one or more of the weightings described herein.
Although
The first calibration data may be calculated as part of the methods described herein, for example by sampling sensor data from a population of similar sensor systems and estimating the baseline or other systematic correction for a particular control variable based on the sensor data collected from that population. Accordingly, in some embodiments of the disclosure the first calibration data is updated at intervals based on measurements collected from the population of sensors. In some embodiments however the first calibration data may be fixed, for example it may comprise a stored data value which need not be updated.
Where a calibration is determined based on the combination of the first calibration data and data learned from a particular sensor it may be determined by weighting the combination of the sensor data itself with the first calibration data, or by first fitting a data model to the sensor data to obtain second calibration data (the fit of the model to that sensor data) and then determining a weighted combination of this fit with the first calibration data.
The example described with reference to
The control variable values may be provided by a component of the sensor, or by any other device arranged to determine their value. For example, a separate or integrated device may be provided at or in the vicinity of the sensor system. The control variable values and/or the sensor data may be provided with an identifier of the sensor with which they are associated.
The calibration described with reference to
In the example described with reference to
The calibration described with reference to
The fitting procedures described herein may comprise linear regression, or may be based on non-linear merit functions. In some embodiments log-linear fitting is used. The nature of the fitting procedure and/or the merit function employed in any particular instance is selected based on the data model which is to be fitted to the sensor data. Examples of suitable fitting procedures may be found in Numerical Recipes in C; The Art of Scientific Computing; Second Edition Published 2002 by the Press Syndicate of the University of Cambridge, The Pitt Building, Trumpington Street, Cambridge CB2 1RP.
The wide area network described herein may be provided by any geographically dispersed telecommunications network. It may be packet switched and may comprise, at least in part, a cellular telecommunications network. The wide area communications interfaces described herein comprise any interface operable to communicate over such a network. Examples of such interfaces comprise modems for communication over packet switched networks, which may comprise wired and/or wireless components. Such interfaces may also comprise GSM, GPRS, 3GPP, LTE and other mobile communications interfaces.
The mobile telecommunications device illustrated in
With reference to the drawings in general, it will be appreciated that schematic functional block diagrams are used to indicate functionality of systems and apparatus described herein. It will be appreciated however that the functionality need not be divided in this way, and should not be taken to imply any particular structure of hardware other than that described and claimed below. The function of one or more of the elements shown in the drawings may be further subdivided, and/or distributed throughout apparatus of the disclosure. In some embodiments the function of one or more elements shown in the drawings may be integrated into a single functional unit. For example the functionality of the sensor and mobile telecommunications apparatus in the sensor system may be integrated into a single apparatus, or differently subdivided between two or more separable devices.
The above embodiments are to be understood as illustrative examples. Further embodiments are envisaged. For example, in an embodiment the disclosure provides a method of controlling a sensor system, the method comprising: obtaining, from each of a plurality of sensors, first sensor data indicative of a level of an environmental contaminant at each of the plurality of sensors; determining first calibration data based on the first sensor data; obtaining, over a wide area communications network from a selected sensor, a plurality of items of second sensor data each indicative of the level of the environmental contaminant sensed by the selected sensor; determining a calibration for the selected sensor based on the second sensor data and the first calibration data; and providing an indication of the level of the contaminant at the selected sensor, wherein the indication is corrected using the calibration. Providing the indication may comprise sending the calibration over the wide area communications network to the sensor system which comprises the selected sensor so that the processor of the sensor system can determine the correction. Alternatively, providing the indication may comprise sending the sensor data over the wide area communications network to the server so the server can apply the calibration to correct the sensor data. This corrected sensor data may, optionally, be sent back to the sensor system. It is to be understood that any feature described in relation to any one embodiment (such as those described in this paragraph) may be used alone, or in combination with other features described elsewhere herein, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
In some embodiments the sensor may be provided with an indication of its sensitivity characteristics. This may be carried by the sensor itself, for example in the form of a machine readable marker. Embodiments of the disclosure may comprise obtaining this indication and using it to select the first calibration data from a set of stored sensitivity characteristics. This can enable the first calibration data to provide a better starting point for the calibration for any given sensor.
Having read the present disclosure it will however be appreciated that the method disclosed herein can be implemented without knowing details of the sensor—i.e. there is no need for the server to know that a CO sensor is being used or to know that that sensor has a certain sensitivity.
It will also be appreciated in the context of the present disclosure that where reference is made to values of a control variable this may relate to discrete values, or to ranges of such values such as histogram bins. For example, the first condition used to determine whether a sufficient number of sensor data values have been observed could be based on the number of data values in each of a series of bins—e.g. bins 3-5, 5-7, 7-9 instead of 4,6,8. The bins could overlap i.e. 3-5, 4-6, 5-7 etc. These numeric values and the bin widths are of course merely exemplary—other values and ranges can be used.
In some examples, one or more memory elements can store data and/or program instructions used to implement the operations described herein. Embodiments of the disclosure provide tangible, non-transitory storage media comprising program instructions operable to program a processor to perform any one or more of the methods described and/or claimed herein and/or to provide data processing apparatus as described and/or claimed herein. The data stores described herein may comprise volatile and/or non-volatile memory for storing computer readable data and instructions.
The processors and controllers described herein (and the activities they perform) may be implemented with fixed logic such as assemblies of logic gates or programmable logic such as software and/or computer program instructions executed by a processor. Other kinds of programmable logic include programmable processors, programmable digital logic (e.g., a field programmable gate array (FPGA), an erasable programmable read only memory (EPROM), an electrically erasable programmable read only memory (EEPROM)), an application specific integrated circuit, ASIC, or any other kind of digital logic, software, code, electronic instructions, flash memory, optical disks, CD-ROMs, DVD ROMs, magnetic or optical cards, other types of machine-readable mediums suitable for storing electronic instructions, or any suitable combination thereof.
Number | Date | Country | Kind |
---|---|---|---|
1611154.4 | Jun 2016 | GB | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/GB2017/051871 | 6/27/2017 | WO | 00 |