In my spare time, I love exploring the world and working on my home culinary abilities, including pasta making and home brewing.

By day, I am a Senior Application Engineer at the MathWorks with a background in power systems and controls engineering. I travel to work with our customers on modeling/simulation applications and predictive maintenance.

Professional Interests: Controls, estimation, machine learning, mobile robotics, energy storage technologies, batteries, power systems

Submitted

Microgrid Energy Management System (EMS) using Optimization

Online optimization of energy storage actions in a microgrid given system constraints and pricing

4 months ago | 125 downloads |

Submitted

Grid Code Compliance for Renewable Resource Integration

Use MATLAB/Simulink to evaluate Grid Code Compliance, such as IEEE 1547

11 months ago | 26 downloads |

Answered

How do I combine multiple plots in a for loop?

Add “hold on” prior to your for-loop. Adding a "hold on" command means that anything that you plot will not clear the existing...

How do I combine multiple plots in a for loop?

Add “hold on” prior to your for-loop. Adding a "hold on" command means that anything that you plot will not clear the existing...

1 year ago | 4

| accepted

Submitted

Systems-Level Microgrid Simulation from Simple One-Line Diagram

Example simple Microgrid with library of PQ-based Renewables and Diesel GenSets.

2 years ago | 132 downloads |

Submitted

Drawworks Electro-Mechanical Simulation for Oil/Gas Applications

Includes two model fidelities for simulating a drawworks system for drilling applications.

2 years ago | 4 downloads |

Submitted

Analyzing the Sun's Path

Solar Position Tracking and the Analemma Phenomenon

4 years ago | 19 downloads |

Answered

op-amp inverter on simulink

I took a look at the example model that you attached to your question. I saw what you mean by the square pulse does not start at...

op-amp inverter on simulink

I took a look at the example model that you attached to your question. I saw what you mean by the square pulse does not start at...

5 years ago | 1

Answered

Help on gmdistributionfit toolbox

When you plot the |gmdistribution| fit results, did you remember to pass in both the x and y arguments to the |plot| function? ...

Help on gmdistributionfit toolbox

When you plot the |gmdistribution| fit results, did you remember to pass in both the x and y arguments to the |plot| function? ...

6 years ago | 0

Answered

why am I getting this linprog error ?

You should check the dimensions of both your 'f' vector and your 'Aeq' matrix. Both of these values are multiplied with the vect...

why am I getting this linprog error ?

You should check the dimensions of both your 'f' vector and your 'Aeq' matrix. Both of these values are multiplied with the vect...

6 years ago | 0

Answered

The Integration of Gaussian PDF to obtain the CDF why don’t I get the correct answer?

After reviewing your code, I was able to figure out what was troubling you. The flow of your code and equations are all correct,...

The Integration of Gaussian PDF to obtain the CDF why don’t I get the correct answer?

After reviewing your code, I was able to figure out what was troubling you. The flow of your code and equations are all correct,...

6 years ago | 1

| accepted

Answered

How do I pass variables from one GUI to another

You can use the |<http://www.mathworks.com/help/matlab/ref/setappdata.html setappdata>| and |<http://www.mathworks.com/help/matl...

How do I pass variables from one GUI to another

You can use the |<http://www.mathworks.com/help/matlab/ref/setappdata.html setappdata>| and |<http://www.mathworks.com/help/matl...

6 years ago | 11

| accepted

Answered

Look-up table with changing table

From what you are describing as requirements, you are correct that you need to use the <http://www.mathworks.com/help/simulink/s...

Look-up table with changing table

From what you are describing as requirements, you are correct that you need to use the <http://www.mathworks.com/help/simulink/s...

6 years ago | 1

| accepted

Answered

to find rise time, settling time, overshoot, steady-state error by a model generated in Simulink ?

I am assuming that you're already providing a step input to your Simulink model via the <http://www.mathworks.com/help/simulink/...

to find rise time, settling time, overshoot, steady-state error by a model generated in Simulink ?

I am assuming that you're already providing a step input to your Simulink model via the <http://www.mathworks.com/help/simulink/...

6 years ago | 0

Answered

Fitting exponential function, coefficients and errors

You have quite a few options that you might want to check out to improve your exponential fit! As an option within the |fit| fun...

Fitting exponential function, coefficients and errors

You have quite a few options that you might want to check out to improve your exponential fit! As an option within the |fit| fun...

6 years ago | 0

| accepted

Answered

How can i open SimPowersystems library in R2013b?

The Simulink component library, SimPowerSystems, is an additional package for use in the Simscape environment. You can check the...

How can i open SimPowersystems library in R2013b?

The Simulink component library, SimPowerSystems, is an additional package for use in the Simscape environment. You can check the...

6 years ago | 0

Answered

Need help using ODE45 and eulers function

It looks to me that you're nearly there! I found a couple of small mistakes that seems to be holding you back. Changes to you...

Need help using ODE45 and eulers function

It looks to me that you're nearly there! I found a couple of small mistakes that seems to be holding you back. Changes to you...

6 years ago | 1

Answered

how to update the value of a transfer function block during run time of simulation

Here is a link to some documentation that details several different methods in Simulink to achieve what you're looking for: *...

how to update the value of a transfer function block during run time of simulation

Here is a link to some documentation that details several different methods in Simulink to achieve what you're looking for: *...

6 years ago | 0

Answered

Find Triggered subsystem in a simulink model

One potential method would be to generate a list of all the blocks in your Simulink model, and then find blocks which are of the...

Find Triggered subsystem in a simulink model

One potential method would be to generate a list of all the blocks in your Simulink model, and then find blocks which are of the...

6 years ago | 0

| accepted

Answered

How to set y-axes intercept

You can set the limits of the x-axis directly using the |<http://www.mathworks.com/help/matlab/ref/xlim.html xlim>| function. If...

How to set y-axes intercept

You can set the limits of the x-axis directly using the |<http://www.mathworks.com/help/matlab/ref/xlim.html xlim>| function. If...

6 years ago | 0

| accepted

Answered

How can I perform a K-means cluster analysis of the data inside a cell array?

The documentation of the |<http://www.mathworks.com/help/stats/kmeans.html kmeans>| function that you are trying to use requires...

How can I perform a K-means cluster analysis of the data inside a cell array?

The documentation of the |<http://www.mathworks.com/help/stats/kmeans.html kmeans>| function that you are trying to use requires...

6 years ago | 0

| accepted

Answered

Define colormap according to certain variable.

You can define a colormap using the |<http://www.mathworks.com/help/matlab/ref/colormap.html hsv>| function and then define the ...

Define colormap according to certain variable.

You can define a colormap using the |<http://www.mathworks.com/help/matlab/ref/colormap.html hsv>| function and then define the ...

6 years ago | 0

Answered

Comparison between two stairs graphs

Since you're interested in the values of the empirical CDF curves, you could use the |ecdf| function as opposed to |cdfplot|. Th...

Comparison between two stairs graphs

Since you're interested in the values of the empirical CDF curves, you could use the |ecdf| function as opposed to |cdfplot|. Th...

6 years ago | 0

Answered

Estimation of parameters for a non-linear model

If you're using MATLAB 2011b or newer, you likely have access to the <http://www.mathworks.com/help/curvefit/interactive-curve-a...

Estimation of parameters for a non-linear model

If you're using MATLAB 2011b or newer, you likely have access to the <http://www.mathworks.com/help/curvefit/interactive-curve-a...

6 years ago | 0

| accepted

Answered

How to put a title on a colorbar?

Using the handle for the colorbar (in your case, the variable hcb), you can locate the colorbar handle title using the |get| fun...

How to put a title on a colorbar?

Using the handle for the colorbar (in your case, the variable hcb), you can locate the colorbar handle title using the |get| fun...

6 years ago | 2

| accepted

Solved

Find the two most distant points

Given a collection of points, return the indices of the rows that contain the two points most distant from one another. The inpu...

6 years ago

Solved

Indexed Probability Table

This question was inspired by a Stack Overflow question forwarded to me by Matt Simoneau. Given a vector x, make an indexed pro...

6 years ago

Answered

Poker bar graph, probability

An interesting problem for sure, as there are many methods through which you could tackle this problem. If you're relatively new...

Poker bar graph, probability

An interesting problem for sure, as there are many methods through which you could tackle this problem. If you're relatively new...

6 years ago | 1

| accepted

Solved

Sums with Excluded Digits

Add all the integers from 1 to n in which the digit m does not appear. m will always be a single digit integer from 0 to 9. no...

6 years ago

Solved

Remove all the words that end with "ain"

Given the string s1, return the string s2 with the target characters removed. For example, given s1 = 'the main event' your ...

6 years ago

Solved

Extract leading non-zero digit

<http://en.wikipedia.org/wiki/Benford%27s_law Benford's Law> states that the distribution of leading digits is not random. This...

6 years ago