I’m not a morning person. Well, that’s not entirely true: I am not particularly a morning person, but relative to my wife, Amy, I seem awfully crusty and curmudgeonly for about an hour after waking up. She, on the other hand, is definitely of the “up and at ‘em” variety. As such, I would like to credit coffee with contributing significantly to our happy marriage these last five years.

With so many data points I can now reliably say that it is in everyone’s best interest for me to wake up first, or for us to wake up at the same time. If Amy gets up first, by the time I wake up she is reciting lists of “things I’d like to do today” as I groggily attempt to get that first double espresso to my lips. This is where something interesting happens: If I don’t perk up, Amy gets extra happy in an attempt to cheer me up (just give me time to wake up!). This implicitly suggests that she is using her mood as a forcing function to my mood. If I still don’t perk up, then things turn ugly as I am clearly being insensitive to her generous efforts to cheer me up, and her mood drops. Conversely, if I do perk up, whether from the coffee or her cheerfulness, all is well.

As a confirmed nerd, I couldn’t help thinking that my wife’s morning time-constant was simply faster than mine and there were some feedback loops that were causing mood oscillation. The good news is that she’s an engineer, too, so I don’t get laughed at for ideas like this. I thought about how I could make an analytical model of each of us and the feedback loops that affect our moods. I wanted the model to be the same for both of us but with different parameters to account for different behaviours. The model I came up with seemed to track reality pretty well.

Before proceeding, I find it necessary to define a unit of mood, mainly to enjoy the ridiculous compound units that result. I therefore present my model which outputs moods in units of GoodTimes (GTs). Therefore 0 GT is a neutral mood, 1 GT is a positive mood, and -1 GT is actually one bad time (note that 1 GT = -1 BT by the Glass Half-Full Lemma). Since Amy and I are both positive people, I assume that 1 GT is our normal waking mood and 0 GT is sleep.

The resulting model for an individual’s mood is shown as a subsystem in Figure 1. The input on the left represents external stimuli. For example, waking up could be a positive step function, and a crying baby could be a negative ramp. The low-pass filter represents how quickly the person’s mood responds to this input. In the subsequent examples this is used to represent how quickly someone wakes up. I set Amy’s response time to 15 min and mine to 90 min. The port on the bottom connects to the other person’s mood, and is subtracted from this person’s mood by the feedback component, F1. This mood difference is then integrated into GoodTime seconds (GT·s) because the consequence for a mood difference increases with time. The integrator gain is a constant that represents how much someone notices the difference in moods. The gain feedback component, G1, takes this cumulative mood difference and feeds it back into the person’s own mood. That is, if this gain is positive, you try to be more up if the other person is down and vice versa. Finally, the PID controller tries to minimize the mood difference and represents the tendency for two people to reach some equilibrium. Without this controller one person tends to get really mad and the other gets really happy.

After estimating these parameters for each of us, I was able to set up some test cases. The simple case of waking up together is shown in Figure 2, where the step, S1, goes from 0 to 1 GT at t = 5 min. The results for eight hours together are shown in Figure 3, and I think this is about right. To be fair, we don’t usually spend eight straight hours together because of work, baby, etc., but when we do this is usually the result. Amy notices that I have less GoodTimes than her, and tries to make my happier by becoming more cheerful herself. This has some positive effect on me, but then she gets irritated that I’m still not having as many GoodTimes as she is. This causes some oscillation in her mood which does not appear in my mood because it takes me so long to respond. One might say that she just cares too much.

I have noticed that if I get up before Amy, it seems to help. Sure enough, as Figure 4 shows, if I get up 20 minutes before Amy, then we both have a good morning. This time seemed to be optimal, minimizing her mood undershoot and preventing mood oscillations. I have also explored the impact of coffee on our morning routine and bad nights due to crying babies, both in the model and in reality, which seem to match quite well.

In conclusion, next time our morning feels off I can simply fire up MapleSim, diagnose the problem, and suggest a compensating input. However, I haven’t accounted for the effect of using engineering software to diagnose Amy’s mood. I can’t possibly image why this could be perceived as upsetting, but maybe I should make a model just to be sure.

 Figure 1 – The mood model for an individual.
 

 Figure 2 – The top level of the MapleSim mood model.
 

Figure 3 – Eight hours in the Wright household.
 

 Figure 4 – I should wake up 20 min before Amy, and then we both have a good morning.

Please Wait...