File Exchange

image thumbnail

ddt

version 1.0 (1.77 KB) by

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

0 Downloads

Updated

View License

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

Given:
  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]

Example:
  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
  follows:

    clear
    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])

  Output:
    ddy =
       (-2*x1+u2)*(2*cos(x2)+u1)-2*sin(x2)*(-x1^2+x1*u2)+du1+x1*du2+d2u2

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)
Acknowledgements

Inspired by: fulldiff.m

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

» Watch video