I work in the PV Reliability and Performance group at the National Renewable Energy Laboratory studying the performance and reliability of solar photovoltaic power plants. My day-to-day hats are software developer, data scientist, and solar performance engineer.

I really like making plots – check out the plot gallery for some interesting plots and the code that generates them.

I’m enthusiastic about open source software, especially for scientific research. Here’s a heatmap of my GitHub activity over the last year:

# Blog posts¶

See the blog archives for the complete list.

• 2021-03-09 - Floating Point Fun

Computers must represent real numbers with some finite precision (ignoring symbolic algebra packages), and sometimes that precision limit ends up causing problems that you might not expect. Here are a couple examples.

The function \(f(x) = \exp(x) - 1\) is kind of fun – by subtracting one from the exponential, it removes the only constant term in the Maclaurin series of \(\exp(x)\):

• 2020-06-14 - Modeling copper losses in a boost converter

This post will work through a simple power electronics problem. An ideal boost converter uses only lossless components (L, C) and no lossy components (R). However, real inductors will have nonzero resistance in its wiring. This copper loss has a strong effect on the converter’s ability to boost voltage. This follows the approach of Chapter 3 of Fundamentals of Power Electronics, 2e by Erickson and Maksimović.

First let’s draw the boost converter we’ll be modeling. Note that in this context, the precise switching circuit (PWM driver, MOSFET, etc) is irrelevant and represented by an ideal switch.

• 2020-02-01 - PVWatts and PVUSA

I read a paper recently that turned on a lightbulb about why the PVUSA/ASTM E2848-13 equation is defined the way it is. To quote the paper 1:

The concept of modeling power by modeling current and voltage separately (other than IV-curve modeling, of course) is obvious in hindsight but had never occurred to me before… so let’s have some fun and try it out!