This application generally relates to adaptively controlling a heating apparatus based on a load's thermal properties.
Cooking appliances, such as microwave ovens, kitchen ranges such as gas or electric ranges, toaster ovens, and air fryers, all cook according to fixed or preset controls of cooking variables (e.g., time, power) for the cooking process. For example, a microwave oven may require the user to input a time setting (e.g., how long to cook the food) and a power setting, while a range may require the user to input a temperature setting and then independently monitor the length of cooking time. A cooking appliance may also permit users to select a preset entry, which corresponds to preset time and power settings. For example, a user may select a preset type of food and a weight or quantity of the food, and then the cooking appliance looks up corresponding power and time values to control the cooking process. Based on the user's inputs, the cooking appliance cooks according to the predetermined values for time, power, and/or temperature.
Fixed or preset control of cooking variables often results in suboptimal cooking (such as over-cooking or under-cooking food), in part due to the wide variability of the food (ingredients, density, etc.). These kinds of controls also require user intervention (e.g. the user has to check a pizza multiple times to avoid it getting burned) to monitor the cooking process. For example, in a microwave oven, a user may stop the microwave because the user notices food splatter while reheating leftovers. In another scenario, a user may have to add more time because the leftovers were too cold after the initial heating time finished. In another scenario, a frozen food item may be partially cooked and partially frozen because the preset controls cooked both too hot and for not enough time.
Uneven heating is a common issue in both consumer and commercial thermal processing systems such as a cooking apparatus. Multiple factors impact temperature heterogeneity within a load (i.e., the food): these factors include geometry and thermal properties of the load, as well as design features and operational constraints of the apparatus. As an example, sharp corners in food tend to overheat during microwave heating due to internal reflections and focusing of the RF energy, and the inherent standing-wave pattern set up in a microwave oven further contributes to uneven heating. Thawing of frozen foods in microwave ovens is one example of this problem: the corners or edges of the food can easily be overheated or parcooked before the bulk of the food is fully thawed.
In particular embodiments, the temperature map may be accessed by a computing device (e.g., a processor and memory) integrated with the cooking apparatus. In particular embodiments, the temperature map may be accessed from a separate computing device, such as for example from a client computing device (e.g., a smartphone, laptop, etc.) or from a server device. In particular embodiments, accessing a temperature map includes creating the temperature map. This disclosure contemplates any suitable approach for creating a temperature map of a food item in a cooking apparatus. For example, a temperature map may be created by one or more thermal images from one or more thermal cameras with a field of view that includes the interior of the cooking apparatus, such as a thermal camera that is integrated within the cooking apparatus. In particular embodiments, a temperature map may be a two-dimensional temperature map, such as for example a surface map of the food item. In particular embodiments, a temperature map may include three-dimensional information, such as for example temperature measurements from the surface of the food item and temperature measurements from the interior of the food item.
In particular embodiments, the regions of the food item that are associated with a temperature may be each pixel in a thermal image of the food item. As illustrated in this example, a temperature may be associated with each of the smallest discernable unit of food item, according to the technique used to generate the temperature map. In particular embodiments, a region may be a larger size, such as for example a collection of pixels in thermal image. Each region is associated with a particular temperature, and in most cooking scenarios, the temperature of a food item is not homogenous during the cooking process. For example,
In the example of
Step 120 of the example method of
While step 120 of the example of
In particular embodiments, the value of a predetermined constraint may be based on one or more of a cooking procedure, the goals for the cooking procedure, or user inputs regarding the cooking procedure. For example, if the predetermined temperature constraint is a maximum temperature, a “sear” setting (e.g., associated with an oven or grill) may be associated with a higher predetermined temperature than a “boil” setting (e.g., associated with a microwave), which may be associated with a higher predetermined temperature than a “warm” setting, which may be associated with a higher predetermined temperature than a “defrost” setting. In particular embodiments, the value of a predetermined thermal constraint may be based on an identification of a food item, for example based on the volume, weight, or type of food item. In particular embodiments, a user may specify or adjust the value of a predetermined thermal constraint. For example, a user may specify a value of a thermal constraint for a “warm” or “defrost” setting based on the user's cooking preferences.
Step 130 of the example method of
In particular embodiments, a process of adaptively and automatically controlling a cooking apparatus based on a food item's thermal properties, such as the example method of
At step 505, the example of
Step 515 of the example of
Step 520 of the example of
If the determinations in step 525 are negative, then at step 532 in the example of
If a determination in step 525 is positive, then at step 530 the example of
Step 535 of the example of
In particular embodiments, such as the example of
In the example of
In particular embodiments, the heating process may be modeled using optimal control with a desired cost functional. For example, temperature or other operational constraints are incorporated as equality or inequality constraints within the solution of a thermal diffusion partial differential equation (PDE). A solution of this PDE yields spatial and temporal temperature profiles of the load (i.e., at least the food item, in this example, or another object to be heated in other thermal applications). Time-variable parameters that can be controlled in real time (such as heat influx) are specified as control variables. Relevant load-specific parameters may include load geometry, specific heat, thermal conductivity, density, state of matter, etc. As explained herein, unknown geometric and thermal properties of the load may be estimated or determined from visual, thermometric, weight, and other available measurements. Such measurements can be made during a cooking process. As explained below, parameter estimations can be made so that the techniques disclosed herein can be implemented on even low-power, low-cost computing devices. Then, combining the optimal control solution with the estimated immutable parameters results in an adaptive control algorithm (e.g., an optimal heating technique) to be implemented by the cooking apparatus.
As mentioned above, particular embodiments include estimation techniques that enable computers with limited computing power to utilize the techniques disclosed herein. For example, particular embodiments may use one or more heuristic or analytically-derived heat-source control strategies that are time-optimal or near-optimal in food processing applications. As another example, particular embodiments may discretize the thermal diffusion PDE and therefore reduce the complexity of both resource estimation and that of identifying optimal control strategy. As another example, particular embodiments may use a “heat exchanger” model that adequately describe the evolution of aggregate process parameters (such as, without limitation, minimum and maximum load temperatures) and allow efficient implementation on minimal process-control hardware.
Particular embodiments deterministically control certain heating parameters and measure temperature rise of the load to estimate its physical characteristics, then use those estimations when calculating a solution to the thermal diffusion PDE, yielding a predicted thermal evolution of the load. Optimization can then be used to calculate a control-parameter sequence that minimizes or maximizes a quantity of interest to the user, such as the total heating time or consumed energy. The results of the thermal diffusion model, predicated on the estimated physical properties of the load and presuming the optimal control sequence already calculated, yield an estimated time to completion that can be conveyed to the user, in particular embodiments. In particular embodiments, a simplified heat-exchanger model can be implemented in lieu of a full solution to the thermal diffusion equation to perform the determinations and estimations discussed in this paragraph.
To determine thermal properties of a load, particular embodiments use a time-dependent temperature distribution T≡T(t, x, y, z). To simplify the discussion herein, this disclosure discusses examples where the distribution is calculated based on a surface map, e.g., T≡T(t, x, y), that is governed by the following thermal diffusion PDE (equivalently, “heat equation”):
When using Eq. (1), any thickness variations of the load can be absorbed into the coefficients. Temperature distribution T=T(t, x, y) can be considered to be a “state variable,” while the energy source q=q(t, x, y) is a “control variable.” This energy source is time-dependent because we presume to have control over the input energy at any moment in the process, but the spatial dependence may be due to the immutable parameters of the load or of the cooking apparatus's design (e.g., regions of the food that heat up more quickly in the microwave, or RF inhomogeneity due to the standing-wave pattern). ∇T indicates the two-dimensional spatial gradient of the temperature distribution, and functions ρ(T, x, y), cp(T, x, y), k(T, x, y) are density, specific heat, and thermal conductivity, respectively. Note that particular embodiments allow for temperature dependence of the load's thermal parameters, which is generally the case in the problem of interest. For example, heat conductivity of ice is greater than that of water, and both phases are relevant to food processing applications.
Particular embodiments seek solutions T=T(t, x, y) to Eq. (1) in a two-dimensional (in this example) domain ⊂
2 (e.g., as delineated by boundary C) that satisfy initial and boundary-value conditions:
T(0,x,y)=T0(x,y),(x,y)∈, (2)
∇T(t,x,y),
=0,(x,y)∈
=∂
, (3)
where equation (2) describes initial temperature distribution, and equation (3) describes zero heat flow along the boundary, and ⊥
is the unit normal to the domain boundary. In particular embodiments, the boundary
may be a dish or plate in contact with the food item, and then equation (3) means that the heat flow between e.g., a microwave turntable or an oven dish and the surrounding air is significantly less than the heat flow between the turntable and the load or the dish and the load. Any suitable boundary conditions such as alternative Dirichlet, Neumann, or other local or non-local boundary conditions can be used as well or in the alternative.
Equations (1-3) represent a general physical description of thermal diffusion within a load given some observed initial conditions. The temperature distribution will follow these equations; the only approximations made to this point are the treatment of the food as two-dimensional and the presumption of no significant heat flow between the load and the air.
Particular embodiments introduce a cost function (sometimes called a “penalty function”) that the system or a user may wish to minimize. Examples include overall heating time, maximum deviation of the temperature from a target set point, total energy consumed, or entropy (which is akin to achieving a specific non-uniform temperature profile.) This disclosure contemplates that any function that the user or system wishes to maximize can be written as a complementary function to be minimized.
Particular embodiments minimize a cost function:
J=∫
0
t
∫∫F(T(t,x,y),q(t,x,y),ρ(T,x,y),cp(T,x,y),k(T,x,y),x,y,t)dxdy dt (4)
for an arbitrary function F, by controlling the energy source/drain q (t, x, y) subject to state variable (e.g., temperature) constraints:
Tmin(t,x,y)≤T(t,x,y)≤Tmax(t,x,y),t∈[0,tmax]) (5a)
T′min(x,y)≤T(tmax,x,y)≤T′max(x,y) (5b)
and control variable constraints:
qmin(t,x,y)≤q(t,x,y)≤qmax(t,x,y),t∈[0,tmax], (6)
where t is time and T is temperature. In Eqs. (4-6) tmax is the maximum modeling time, and could be either fixed or unknown. Inequality (5a) expresses a constraint on the temperature profile for all times. As one simple example, this could simply be a constraint that no portion of the load exceeds a certain temperature Tmax at any point in the heating process. Inequality (5b) expresses the termination criterion for the heating process—basically, at the end of the process, the temperature profile must fall within some desired constraint. As an example, this could simply express that the final temperature of the load should everywhere be within 1° C. of a uniform predetermined target temperature. Finally, inequality (6) expresses the limits of the heating that can be applied to the load over the course of the process. In particular embodiments qmin may be zero, because the controller can completely turn off the heat source. The maximum heating qmax that can be applied is constrained by the cooking apparatus. Equation (4) describes the optimization problem used by particular embodiments, and Equations (5-6) describe the temperature and power constraints applied when finding the optimal control sequence.
Particular embodiments identify any parameters in equation (1) that can be known a priori and are independent of the load (for example, thermal and geometric properties of an oven or grill rack or turntable ). Particular embodiments collect measurements of the initial conditions (2), then start operation of the apparatus, continuously or periodically measuring T(t, x, y). Particular embodiments vary the control q(t, x, y) within the constraints (6) to probe the boundary conditions (5), adaptively changing the control when the constraints (5) become active (e.g., become equality constraints). Once sufficient datapoints for T=T(t, x, y) have been collected, particular embodiments solve parameter estimation (“inverse”) problem for estimating a combination of ρ(T, x, y), cp(T, x, y), k(T, x, y) for the load (e.g., the food item). When all parameters in (1) except the control are known or thus estimated, particular embodiments solve the optimal control problem (1-6) with respect to q(t, x, y) with updated initial conditions. Particular embodiments may optionally stop operation of the cooking apparatus while the solution is in progress.
Once the desired control q(t, x, y) has been identified, particular embodiments solve equation (1) until the terminal conditions in (5) are satisfied, then report the resulting estimate of thermal conditions, such as J and/or tmax, to the user. Operation of the cooking apparatus then continues under the control q(t, x, y).
Particular embodiments that use this approach rely on finding an exact or approximate solution to the thermal diffusion equation. There are many ways to achieve this, ranging from a full analytical solution to numerical computation. However, for many real-world applications, finding a full analytical solution or even a suitable analytical approximation would be intractable. Numerical computation approaches also span a range of feasibility depending on the approach taken and the computational resources available.
As an example of a brute-force numerical approach, it would be possible to use finite element analysis software (e.g., COMSOL Multiphysics, Ansys, or SolidWorks) to numerically solve the thermal diffusion PDE on a fine 3D mesh and perform mathematical optimization. However, this approach requires a great deal of computing power, and even then the computation time would likely exceed the heating process time, meaning that it could not be performed in real-time during a cooking process. Thus, aspects of this disclosure describe approaches that simplify the solutions so that they can be performed in real time, and even on low-cost computing hardware. For instance, identifying parameters a priori may not require high spatial resolution and may be conducted numerically over a sparse grid. As another example, simplification can be obtained by using approximate parameter inference when solving the inverse problem described above. Identification of an optimal control function q(t, x, y) can be simplified by a particular form of the cost function (4) to be derived analytically or approximated heuristically, avoiding potentially numerically intensive application of variational calculus, Pontryagin Principle, or Dynamic Programming.
In particular embodiments of this disclosure, equations (1-6) are discretized on a sparse regular or irregular spatial grid at a series of discrete times. Spatial gradients of the temperature can be approximated as finite differences between the temperatures at adjacent grid points, and evolution of the temperature at each grid point from one time step to the next is calculated according to the thermal diffusion equation using this discretized form of the spatial operators. Spatially varying parameters of the load are discretized as well. For example, evolution of the spatially discretized temperature Tij on the spatial grid xi, yj ∈, i=1, . . . , Nx, j=1, . . . , Ny, may be calculated as:
T
ij
l+1
−T
ij
l
=Δt([ρijl,cijl,kijl]
)ij+Δt{tilde over (q)}ijl+1 (7)
where l=0,1, . . . is a time stepping index, the finite-difference operator L is a discretization of the differential operator
with finite-difference coefficients as explicitly known functions of the discretized thermal properties
ρijl=ρ(T)(lΔt,xi,yj),cjl=cp(T(lΔt,xi,yj),xi,yj),kijl=k(T(lΔt,xi,yj),xi,yj), (9)
and with the discretized source divided by the volumetric heat capacity:
For example, but without limitation, the finite difference operator can be defined as a scaled discretized Laplacian operator
over a uniform grid, where ∀i, j: Δ=xi+1−xi=yj+1−yj=const. The first fraction in the right-hand side of (11) is the coefficient of thermal diffusivity, and all thermal properties may be assumed to vary sufficiently slowly to ignore their spatial derivatives. However, subsequent discussions are equally applicable to other or higher-order discretizations of operator (8). Thus, the above equations 7-11 show one example of how the thermal diffusion PDE Eq. (1) can be discretized and calculated over a sparse grid for numerical computation.
As discussed above, particular embodiments identify any of the parameters of equation (1) that can be known a priori and then measure the initial temperature distribution T(0, xi, yj). As illustrated in step 515 of the example of
If a temperature maximum Tmax is not reached before the load temperature exceeds a user-specified temperature minimum Tmin, particular embodiments continue operating the apparatus with the maximum energy influx until the desired temperature profile T′min(x, y)≥T(tmax, x, y)≤T′max(x, y), such as the stopping condition in step 532 of the example of
If Tmax is reached before the load temperature exceeds Tmin, this may represent an over-heating scenario and the cooking apparatus adopts a new, optimal heating technique, e.g., q(t, x, y)=qmin=const (e.g., 0). In the case that the maximum temperature is reached and the controller must reduce the heat influx, the evolution of the temperature profile within the load will be influenced strongly by thermal diffusion, and then thermal properties of the load are determined (e.g., as in step 540 of the example of
When the heat influx is reduced or paused, particular embodiments utilize collected temperature measurements Tijl=T(lΔt, xi, yj), l=0.1, . . . to estimate the unknown parameters of equation (1) using (for example) regularized least-squares or any other appropriate method of statistical estimation:
where σijl+1 is a measured or estimated standard deviation of thermometric noise. For example,
ρijl=ρij+ρ′ijTijl;cijl=cij−c′ijTijl;kijl=kij−k′ijTijl. (13)
Instead of the specific representations of (13) that assume a linear dependence on the temperature, particular embodiments utilize alternative parametrized analytical, tabulated, or other empirical functional dependencies of thermal properties on the temperature as well as any other measurable or estimated parameters, properties, or process settings.
The last term in (12) is a linear combination of regularization operators such as, without limitation, minimum norm, Tikhonov, or total-variation regularization of each of the unknowns, that statistically represent prior knowledge of spatial smoothness or variability of properties (9). This regularization term may be included in order to address the possibility that the problem may be ill-posed. Equations (13) express linear variability of thermal properties with temperature, but the approaches described herein apply equally to other forms of thermal variability as well as to temperature-independent properties (e.g., when the primed variables equal 0 in (13)).
Equations (12) and (13) describe in the broad terms the optimization problem that must be solved to infer an estimate of the load's thermal properties from the observed heating rates in the initial phase of the heating process.
For discretization (11), in particular embodiments it is sufficient to estimate only certain combinations of thermal properties: the coefficient of thermal conductivity and volumetric specific heat (see equations (10,11)). At this point, all the coefficients of (7) have been identified, and the optimal control procedure can be commenced. In particular embodiments, the optimal control problem (1-6) is first reduced to the standard form that does not include the continuous state-variable constraints (inequality 5(a)). Particular embodiments introduce a new unknown g=g(x, y) that satisfies the following equation:
(where is the Heaviside function) that is discretized over the temporal-spatial grid lΔt, xi, yj. Equation (14) is supplemented with the 0 boundary conditions:
g(0,x,y)=g(tmax,x,y)=0, (15)
and the state-variable constraints 5(a) and 5(b) are replaced with the terminal-time constraints:
T′min(x,y)≤T(tmax,x,y)≤T′max(x,y). (16)
Equations (14-16) provide a parallel constraint on the temperature T (t, x, y) in the solution of the optimization equation (4), which finds the optimal heating control strategy. They ensure that the solution keeps the temperature within the prescribed bounds. Note that the right-hand side of Eq. (14) is non-negative, so given the boundary conditions in Eq. (15), g (x, y)=0 by necessity throughout the process. In this manner, particular embodiments assume that tmax is unknown and q(t, x, y) is the control variable, and optimize the cost functional (4) under the constraints in equations (1), (2), (3), (14), (15), (16). This optimal solution to Eq. (4) can be derived from techniques such as Potryagin Principle or Dynamic Programming. The functional (4) and all constraints discretize over the temporal-spatial grid lΔt, xi, yj.
In particular embodiments, solving the optimal control problem implies solving for the unknown total heating time tmax, optimal heat input q(t, x, y)=qopt(t, x, y), and predicted load temperature distribution T(t, x, y)=Tpred(t, x, y). The result is converted to an ETC and reported to the user in real time. As illustrated in the example of
In particular embodiments, state-variable (load temperature) constraints (16) are of the form:
T(t,x,y)≤Tmax=const,t∈[0,tmax);T(tmax,x,y)≥T′min=const (17)
equivalent to:
These constraints express the requirement that the load temperature is not to exceed a certain maximum temperature threshold (e.g., the temperature at which unintentional parcooking may occur), and that the final load temperature is everywhere above a certain minimum temperature threshold (e.g., as required for adequate thawing of a frozen load). In this and other embodiments where the state-variable constraints can be expressed in terms of spatially uniform quantities such as maximum, minimum, or average values, the optimal or near-optimal strategy q(t, x, y)=qopt(t, x, y) may be defined explicitly as an adaptive algorithm. For example, minimizing the total process time would specify function F in the cost functional Eq. (4) as follows:
=J=∫0t|
|−1·dxdy dt=tmax, (19)
where || is the area of the fixed domain
, under the state-variable (temperature) constraints (18). Particular embodiments may then use the following control strategy:
where Ton<Tmax is a user-specified or system-specified (e.g., as a percentage of Tmax) temperature that triggers switching the apparatus back to the “full power” mode. The control strategy described in (20) is a simple example of an on-off control strategy in which heat is applied until overheating is observed, at which point the heat influx is decreased to qmin (which may be zero) until the load cools sufficiently through thermal diffusion. In particular embodiments, as illustrated in the example of
may instead be qh if
where qh is a user-specified or system-specified heating value between the maximum and minimum possible heating values. Likewise, in particular embodiments, qmin if
may instead be qs if
where qs, is a user-specified or system-specified heating value between the maximum and minimum heating values, and qs<qh. In particular embodiments, the value of qh and/or qs may be based on a heating mode of the apparatus (e.g., defrost, cook, broil, sear, etc.). In particular embodiments, this approach does not solve Eq. (4) to find the optimal control sequence. Instead, it uses equation (20), which describes an “on-off” control: the input heat is qmax (or qh) as long as the load temperature is within bounds, and qmin (potentially zero, or qs) if any part of the load exceeds Tmax.
Particular embodiments may use a simplified heat-exchanger model for implementing aspects of this disclosure on minimal (e.g., microcontroller) hardware. In particular embodiments, predicting aggregate temperature measures such as minimum, maximum, or quantile temperatures may not require accurate solution of the full heat diffusion equation (1) or its discretization (7), even over a very sparse grid. Such embodiments may therefore use a heat exchanger model to simulate the evolution of such discrete measures. An example heat-exchanger model is illustrated in
T
1(t)≈T(t,x,y)dxdy,T2(t)≈
T(t,x,y)dxdy, T3(t)≈
T(t,x,y)dxdy,T4(t)≈
T(t,x,y)dxdy, (21)
where the areas of integration are specified by zones ,
,
, and
, where
and
are neighborhoods of the locations of maximum and minimum temperature readings,
represents the load, and
is the domain (e.g., a plate, turntable, rack, tray, etc.), which effectively acts as a thermal bath to the load. As such, in this example T1 represents the temperature averaged over the coldest region of the load, T2 the medium-temperature part of the load, T3 the hottest region of the load, and T4 is the average temperature of the surrounding plate or turntable. As a result, as the example of
T
i
l+1
−T
i
l=αi−1(Ti−1l+1−Til+1)+αi(Ti+1l+1−Til+1)+βi(Tn+1l+1−Til+1)+γiql+1, i+1,2, . . . , n; l=0, 1, . . . (22)
T
n+1
l+1
−T
n+1
l=Σi=1nβi(Til+1−Tn+1l+1)+γn+1ql+1, (23)
α0=αn=0,T:l=T:(lΔt), ql=q(lΔt). (24)
Equation (22) can be expressed in a vector form like (7):
T
i
l+1
−T
i
l=(′[α:, β:]T:l+1)i+γiql+1,i=1,2, . . . ,n+1, (25)
where the coefficients of operator ′ are linear combinations of αi, βi. The coefficients αi, βi, represent generalized “heat diffusion” coefficients multiplied by the time step—in other words, αi and βi correspond to the coefficient of thermal diffusivity in Eq. (11). More specifically, αii=1,2, n−1 describes heat exchange between the load elements described by Ti, Ti+1 in
Reparametrizing Eqs. (711) by “hyperparameters” αi, βi and γi may be necessary because the aggregate state variables Ti no longer represent temperatures measured at discrete spatial points. We cannot trivially calculate the change in temperature Ti within one region due to surrounding temperatures Ti−1, Ti+1, etc. according to the spatial discretization of Eq. (7), because we have eliminated spatial information from the problem. The different regions within the load are diffusively connected, but in a nontrivial way that will require observation of the temperature evolution and fitting of the hyperparameters based on the observed data.
The coefficients αi, βi, γi are unknown but can be estimated from thermometric
observations using, without limitation, a statistical inference approach like (12):
In (26), Til are aggregate measures derived from temperature measurements e.g., using domain segmentation and expressions (21), σil+1 is a measured or estimated standard deviation of the corresponding aggregate temperature measures, and the last term represents an optional regularization prior, such as a minimum vector norm. As in Eq. (12), the regularization prior is used to facilitate solution of an inverse problem that might otherwise be ill-posed. Note that problem (26) could be significantly easier to solve numerically than (12). For example, for n=3 we estimate only 9 parameters: α1,2, β1,2,3, γ1,2,3,4, whereas Eq. (12) is calculated over all discretized points within the field of view of the temperature measurement. Equation (26) therefore describes mathematically how the hyperparameters in Eqs. (22-25) are determined from observed data, in particular embodiments.
As one example, the 9 parameters α1,2, β1,2,3, γ1,2,3,4 may be estimated using least-squares fitting (26) (with σ1l=1, Reg=∈(||2+|
|2+|
|2) to the aggregate measures (21) computed for an initial time period (e.g., 200 seconds) of observations. Temporal smoothing may be applied to the data prior to the fitting.
In particular embodiments, a temperature map may be accessed or created periodically, e.g., every few seconds, or more or less, during a cooking process. In particular embodiments, updates to a heating technique or to thermal-property estimation or prediction, or any combination therefore, may be performed periodically, for example a few times a minute, or more or less.
Particular embodiments may repeat one or more steps of the methods of
This disclosure contemplates any suitable number of computer systems 700. This disclosure contemplates computer system 700 taking any suitable physical form. As example and not by way of limitation, computer system 700 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, a tablet computer system, or a combination of two or more of these. Where appropriate, computer system 700 may include one or more computer systems 700; be unitary or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 700 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example and not by way of limitation, one or more computer systems 700 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more computer systems 700 may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.
In particular embodiments, computer system 700 includes a processor 702, memory 704, storage 706, an input/output (I/O) interface 708, a communication interface 710, and a bus 712. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.
In particular embodiments, processor 702 includes hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor 702 may retrieve (or fetch) the instructions from an internal register, an internal cache, memory 704, or storage 706; decode and execute them; and then write one or more results to an internal register, an internal cache, memory 704, or storage 706. In particular embodiments, processor 702 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 702 including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor 702 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory 704 or storage 706, and the instruction caches may speed up retrieval of those instructions by processor 702. Data in the data caches may be copies of data in memory 704 or storage 706 for instructions executing at processor 702 to operate on; the results of previous instructions executed at processor 702 for access by subsequent instructions executing at processor 702 or for writing to memory 704 or storage 706; or other suitable data. The data caches may speed up read or write operations by processor 702. The TLBs may speed up virtual-address translation for processor 702. In particular embodiments, processor 702 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 702 including any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 702 may include one or more arithmetic logic units (ALUs); be a multi-core processor; or include one or more processors 702. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.
In particular embodiments, memory 704 includes main memory for storing instructions for processor 702 to execute or data for processor 702 to operate on. As an example and not by way of limitation, computer system 700 may load instructions from storage 706 or another source (such as, for example, another computer system 700) to memory 704. Processor 702 may then load the instructions from memory 704 to an internal register or internal cache. To execute the instructions, processor 702 may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions, processor 702 may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor 702 may then write one or more of those results to memory 704. In particular embodiments, processor 702 executes only instructions in one or more internal registers or internal caches or in memory 704 (as opposed to storage 706 or elsewhere) and operates only on data in one or more internal registers or internal caches or in memory 704 (as opposed to storage 706 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple processor 702 to memory 704. Bus 712 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between processor 702 and memory 704 and facilitate accesses to memory 704 requested by processor 702. In particular embodiments, memory 704 includes random access memory (RAM). This RAM may be volatile memory, where appropriate Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM. This disclosure contemplates any suitable RAM. Memory 704 may include one or more memories 704, where appropriate. Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.
In particular embodiments, storage 706 includes mass storage for data or instructions. As an example and not by way of limitation, storage 706 may include a hard disk drive (HDD), a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage 706 may include removable or non-removable (or fixed) media, where appropriate. Storage 706 may be internal or external to computer system 700, where appropriate. In particular embodiments, storage 706 is non-volatile, solid-state memory. In particular embodiments, storage 706 includes read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. This disclosure contemplates mass storage 706 taking any suitable physical form. Storage 706 may include one or more storage control units facilitating communication between processor 702 and storage 706, where appropriate. Where appropriate, storage 706 may include one or more storages 706. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.
In particular embodiments, I/O interface 708 includes hardware, software, or both, providing one or more interfaces for communication between computer system 700 and one or more I/O devices. Computer system 700 may include one or more of these I/O devices, where appropriate. One or more of these I/O devices may enable communication between a person and computer system 700. As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. This disclosure contemplates any suitable I/O devices and any suitable I/O interfaces 708 for them. Where appropriate, I/O interface 708 may include one or more device or software drivers enabling processor 702 to drive one or more of these I/O devices. I/O interface 708 may include one or more I/O interfaces 708, where appropriate. Although this disclosure describes and illustrates a particular I/O interface, this disclosure contemplates any suitable I/O interface.
In particular embodiments, communication interface 710 includes hardware, software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between computer system 700 and one or more other computer systems 700 or one or more networks. As an example and not by way of limitation, communication interface 710 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface 710 for it. As an example and not by way of limitation, computer system 700 may communicate with an ad hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the Internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system 700 may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAX network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or other suitable wireless network or a combination of two or more of these. Computer system 700 may include any suitable communication interface 710 for any of these networks, where appropriate. Communication interface 710 may include one or more communication interfaces 710, where appropriate. Although this disclosure describes and illustrates a particular communication interface, this disclosure contemplates any suitable communication interface.
In particular embodiments, bus 712 includes hardware, software, or both coupling components of computer system 700 to each other. As an example and not by way of limitation, bus 712 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus or a combination of two or more of these. Bus 712 may include one or more buses 712, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.
Herein, a computer-readable non-transitory storage medium or media may include one or more semiconductor-based or other integrated circuits (ICs) (such, as for example, field-programmable gate arrays (FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs), hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs), magneto-optical discs, magneto-optical drives, floppy diskettes, floppy disk drives (FDDs), magnetic tapes, solid-state drives (SSDs), RAM-drives, SECURE DIGITAL cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these, where appropriate. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.
Herein, “or” is inclusive and not exclusive, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A or B” means “A, B, or both,” unless expressly indicated otherwise or indicated otherwise by context. Moreover, “and” is both joint and several, unless expressly indicated otherwise or indicated otherwise by context. Therefore, herein, “A and B” means “A and B, jointly or severally,” unless expressly indicated otherwise or indicated otherwise by context.
The scope of this disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend. The scope of this disclosure is not limited to the example embodiments described or illustrated herein. Moreover, although this disclosure describes and illustrates respective embodiments herein as including particular components, elements, feature, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that a person having ordinary skill in the art would comprehend.