File Exchange

image thumbnail


version 1.0 (1.77 KB) by

Calculate time derivative as a function of state and input variables of a (nonlinear) dynamic system

1 Download


View License

function ddt(of, n, state,dstate,f,u)

of: the symbolic function you want the derivative of (e.g. x2)
n: n'th order derivative
state: a column vector denoting the names of the state, e.g. [x1;x2]
dstate: the names of the states plus a d in front of them, e.g. [dx1; dx2]
f: symbolic expression for the derivative of the state, e.g. [x2, sin(u1) ]
u: a list of inputs, e.g. [u1]

Suppose we have the following (nonlinear) dynamic system:

d/ / x1 \ / 2 * cos(x2) + u1 \
dt \ x2 / = \ - x1^2 + x1*u2 / , y = x2 + x1 + u2

where x1, x2 are time-dependent states and u1/u2 are time-dependent inputs
and we are interested (for some reason) in the second time derivative of
y, expressed in terms of the state [x1;x2] and the inputs and its
derivatives ([u1;u2], [du1;du2], [d2u1; d2u2]). We calculate this as

syms x1 x2 dx1 dx2 u1 u2;
eqn = [ 2*cos(x2) + u1; -x1^2 + x1*u2];
y = x2 + x1 + u2;
ddy = ddt ( y, 2, [x1;x2], [dx1;dx2], eqn, [u1;u2])

ddy =

Note: This function needs the function 'fulldiff' by Tim Jorris, which
can be downloaded from Matlab's File Exchange.

Comments and Ratings (1)

amr wasfy

MATLAB Release
MATLAB 7.0.4 (R14SP2)

Inspired by: fulldiff.m

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video