James P Houghton

# How to Hold a Match 2 - Models

19 Dec 2012

In our last post on this topic we explained how a person holding a match performs a feedback process on the angle of the match to keep the size of the flame constant. In this post we'll create a model of the system to better explore the feedback processes.

As in the last post, we'll track the front and rear of the flame. The flame front will be the stock we are primarily interested in, and the rear of the flame will be simply a delay on the flame front, consistent with our assumption that any part of the match burns for a constant amount of time. We set the initial value of the flame front position to be 0 inches. The size of the flame is just the difference between the two values:

The equations describing this section of the model are:
Burn Time = 5
Units: seconds

Flame Front Position = INTEG (Igniting,0)
Units: inches

Flame Rear Position = DELAY FIXED(Flame Front Position, Burn Time, 0)
Units: inches

Flame Size = Flame Front Position-Flame Rear Position
Units: inches

The angle at which the match is held is modified in response to the difference between the observed flame size and the desired flame size. The angle is limited to the range from 0 to 180 degrees, as you can't tilt the match down any further than straight down, and this constraint is built into the 'Tilting' decision algorithm.
This model assumes a 'proportional' controller in which the angle adjustment is proportional to the difference between the desired flame size and the actual flame size, with no consideration of the past size of the flame. The gain is then in units of degrees of increased tilt per second, per inch of difference between the desired and actual flame size. We set the initial value of the angle to 90 degrees. Equations for this part of the model follow:

Angle = INTEG (Tilting, 90)
Units: degrees [0,180]

Desired Flame Size = 3/8
Units: inches

Gain = 10
Units: degrees/Second/inch

Tilting = IF THEN ELSE((Angle<180):AND:(Angle>0), Gain*(Desired Flame Size-Flame Size),
IF THEN ELSE( (Angle>=180), MIN(Gain*(Desired Flame Size-Flame Size), 0),
IF THEN ELSE((Angle<=0), MAX(Gain*(Desired Flame Size-Flame Size), 0), 0)))
Units: degrees/Second

The last part of these equations account for the fact that the match angle should not be increased beyond 180 degrees or decreased below 0 degrees.

The last and most complex component of the model is the equations describing ignition, or the rate at which new wood begins to burn. We worked out the relationships that describe the flame advance rate in the last post, and conducted experiments to approximate the Advance Constant, the Angle Offset, and the Minimum Flame Size. To these we need to add conditions for the extreme ends of the match - how it behaves when it is first lit, and when the flame reaches the end of the match.
The equations which describe the process are below. We specify that the flame front should not advance if it has reached the end of the match, as there is no room to expand; or if the flame size falls below the minimum, as it would have gone out. If the flame front is less than the minimum distance from the tip then we assume that the flame is maintained by whatever source is in the process of igniting the match, either another match or the head itself.

Units: inches/Second

Angle Offset = 20
Units: degrees

Match Length = 1.5
Units: inches

Minimum Flame Size = 3/16
Units: inches

Igniting = IF THEN ELSE(((Flame Size >= Minimum Flame Size):OR:
(Flame Front Position <= Minimum Flame Size)):AND:
(Flame Front Position < Match Length),
Units: inches/Second

Altogether the system creates a balancing feedback loop:
We can now simulate the experimental cases. To simulate a case in which the match is held by vice-grips, we just set the gain to 0 degrees/second/inch to break the feedback loop. Setting the initial angle to 60, 90, 125 and 180 then fixes that angle throughout the simulation. Through trial and error, we adjust the experimentally approximated parameter of Advance constant from .025 to .0325, which in our model gives behaviors approximating the observed behavior of the actual system:

I've shifted some of the graphs horizontally, as we weren't very precise about determining the start time of our experimental charts, to help show similarity between the experiment and the model. The first case is the least well performing, as our model predicts that the front of the flame should stop advancing as soon as it is no longer supported by the initial source of flame, and that doesn't quite appear to be the case. The remainder of the cases show rather close similarity between the model runs and experiments, considering the accuracy of our measurement and some likely variation in Advance Constant along the length of the matches due to material composition.

With gain set to zero we can solve for the optimal angle to maximize the total burn time for the full match. As is to be expected this occurs at the angle just above that at which the match extinguishes itself, and for our model turns out to be about 63 degrees, which lets the match burn for a total of 45 seconds:
Now of course, if there is any variance in the Advance Constant along the length of the match (as our experiments assure us there is) then the match will go out. In the next post we'll include this variance into our model and show how in that case active feedback is essential to maintaining a stable flame size.