First, I would point out that you can read additional diode parameters **BV**, **Ibv** and **Cjo** directly from the LED datasheet as "Reverse Current" **Ir** (at **Vr**) and as "Capacitance" **C**. --- Adding to W5VO's great answer, I somewhat streamlined the process for myself the following way: 1. I used the graph type of **XY scatter plot** as **lines only** on OpenOffice (YMMV with Excel, etc.) and set the minima and maxima of the axes manually, e.g. (X,Y)=(1.4-4.0, 0.01-50.0). 2. After the first three columns of sampled datapoints **Vf_sampled**, **If_sampled** as well as the **If_estimate** with the Schokley diode equation, I added a *fourth* one for a calculated **Vf_estimate**. Remember, that **Rs** is a *series* resistance (see image at the bottom) and the **If_estimate** actually gives us the current to use here, so you can simply calculate the column cells as **Vf_estimate = Vf_sampled + (If_est * Rs)**. 3. I could now add a third curve, in which I used the new fourth column (**Vf_estimate**) **as the X coordinate** and the third column (**If_estimate**) as the Y coordinate, and which I could now easily match against the first curve (the data sampled from the graph on the datasheet). Note that I didn't want to simply replace the second curve since the straight line was quite helpful in my estimates. 4. I'm sure I'm somewhat repeating W5VO here, but it bares reminding of the role of the constants **Is**, **Rs** and **N** in terms of the curve shape (in our *log-lin* scale): - **Is** only affects the position of the curves (up/left or down/right). - **N** affects the curve slopes **as well as** the positions (since the curves always go through the origin, which is always outside the scale). - **Rs** defines the curvature (the progressive rightward sweep) of the new third curve (since it's a linear component). 5. Things I found that may be of use: - You may find that the second curve (the straight line) needs to be very sligthly steeper and to the up/left than it would seem from the sampled data, because the curvature due to **Rs** starts from the origin. - You can get fairly accurate sampling by zooming in to the datasheet (assuming PDF), taking a screencap and opening it in your favourite drawing program. You can then use e.g. the selection or straight-line tool to measure the distance in pixels between the interval lines and the distance of the datapoint to the lower-value interval line. For linear axes, that fraction translates to easy data values. - XY scatter plot allows you to use arbitrary datapoints. You can get away with less samples than with equidistant sampling. You can choose to only sample the data at the points where it is easiest and where strictly needed. For example, on a semilog scale you can sample at the interval lines of the logarithmic scale. If you need to, you can still have more points (lines) for the estimated curves. (At least OpenOffice graphs seem to ignore the points for which there is no Y-coordinate.) - Note the scale of the units you are estimating/graphing/trying to find (e.g. milliamperes) and remember that SPICE generally uses the bare units (amperes). - Check which metric prefixes (m, p, u, etc.) your SPICE simulator accepts. Using the E-notation (e.g. 1234E-12) may be simpler. - Editing the cell range for the graph seemed to always reset the (new) third curve so that I had to re-add the data range to X-coordinates and re-change the third column as its Y range. Take that into consideration when adding more points or modeling more LEDs - make such changes all at once. (Changing the data within the cells obviously didn't trigger the reset.) - Curved interpolation on the graph may lead you to astray. --- AFAIK, our model for the LED is essentially an **Rs** resistor and **Is**/**N** estimate diode in series: (-R->-D-) <!-- Begin schematic: In order to preserve an editable schematic, please don't edit this section directly. Click the "edit" link below the image in the preview instead. --> ![schematic](https://i.sstatic.net/9JeQ8.png) <!-- End schematic -->