Delay Differential Equations and the Lambert W Function Continued…

In order to get a more firm grasp on the Lambert W function and how it can be used to solve delay differential equations, let’s consider a system with a scalar state and a delay on the input to the system.

\dot{x}\left(t\right) = ax\left(t\right) + a_{d}u\left(t-\tau\right)

In this case u\left(t\right) is the system input. In traditional differential equation language, this is a non-homogeneous delay differential equation (similar to the first post but this time there is also a non-delay term). So, let’s have the state be fed back into the system (state-feedback system), so that

u\left(t\right) = x\left(t\right)

Thus, the original equation becomes

\dot{x}\left(t\right) = ax\left(t\right) + a_{d}x\left(t-\tau\right)

If we assume a solution of the form x\left(t\right) = Ce^{st}, the equation becomes

Cse^{st} = aCe^{st} + a_{d}Ce^{s\left(t-\tau\right)}

Collecting terms and dividing out C

e^{st}\left(s - a - a_{d}e^{-s\tau}\right) = 0

Clearly e^{st} cannot equal zero, thus the portion of the equation in the parentheses must equal zero. Thus, after re-arranging,

s-a = a_{d}e^{-s\tau}

\left(s-a\right)e^{s\tau} = a_{d}

\left(s-a\right)\tau e^{\left(s-a\right)\tau} = a_{d}\tau e^{-a\tau}

Thus, using the Lambert W function,

\left(s-a\right)\tau = W_{k}\left(a_{d}\tau e^{-a\tau}\right)

Stability of the differential equation is thus determined by using the principal branch of the Lambert W function.

s = \dfrac{1}{\tau}W_{0}\left(a_{d}\tau e^{-a\tau}\right) + a

The Lambert W function for a scalar can be evaluated in Matlab with the following commands.

lambertw(k,expression), or in this case,

s = \dfrac{1}{\tau}\mbox{lambertw}\left(0,a_{d}\tau e^{-a\tau}\right) + a

This process for a system of delay differential equations is the same as that for a scalar delay differential equation (as shown in the first Lambert W post). However, the difference lies in the evaluation of the Lambert W function for a matrix as opposed to a scalar. More on the DDE systems in the next post.

About Jordan Jameson

I am a PhD mechanical engineering student at the University of Maryland College Park. I am performing research at the Center for Advanced Life Cycle Engineering (CALCE) in the area of Prognostics and Health Management (PHM) and physics of failure (POF). I enjoy science and discovery, especially the applications to engineering. Follow me on Twitter @NJordanJameson.

Posted on June 21, 2012, in Engineering, Mathematics. Bookmark the permalink. 9 Comments.

  1. Dear Jordan Jameson, I am Tanmay Pal from India. I am also exploring the Lambert W approach for solving DDE. I found one book on this topic(http://www-personal.umich.edu/~ulsoy/TDS_Book.htm), may be you have seen his. The thing is, they have given MATLAB code for finding roots and coefficients. I was wondering, whether you have used those codes to solve a problem, because this code can evaluate the roots properly, but it can not evaluate coefficients properly.(as given in the book-P-17).
    Regards
    Tanmay Pal

    • Tanmay,
      Yes I have read much of the literature from Ulsoy and his other colleagues at the University of Michigan. The software is very effective for scalar delay differential equations, but not very effective for systems of DDEs. There has been much research in the field by some colleagues of Dr. Ulsoy. If you would like to read some of this research, Dr. Sun Yi was an important researcher at UM in this area. From the work that I did in evaluating some of his research papers, his results are too good to be true at this point. It is difficult to generalize his theories to large systems of DDEs (for some cases, the stability of even a 2 Degree of Freedom DDE system cannot be determined). Thus, while interesting, I have not yet seen anything genuinely applicable in this line of research. Hope this helps.

      -Jordan

      • Dear Jordan, thanks for your input. i have also reached to the same conclusion. I have asked some of the coworkers of Prof. Ulsoy about this matter, however, they had not replied yet. what i have understood that finding coefficient is theoretically possible but theory of finding roots is still not matured, because of the Q matrix. are you planning on going in this direction?

  2. Tanmay,
    I am not currently working in the area of delay differential equations. I am at the University of Maryland, working in the CALCE research group. I am studying prognostics and health management of dynamic systems. In particular, I am focused on diagnosing the health of computer cooling fans using vibration, electrical current, and acoustic emissions data. This is a new area of research and has much promise for future development. Once I am finished with my dissertation, I may spend some time working on DDEs again, because I find it very interesting and challenging.

    Are you currently working on research? If so, what field (math, physics, engineering, etc)?

  3. Dear Jordan,
    I am doing PhD in Electrical Engineering at IIT Kharagpur, India. I am working on Biomedical System. It is good to have conversation with you. There are lot of theorems on stability of DDE. however, this method is promising because this can show the poles directly on the complex plane and you can calculate the margins from there. Still this method requires development.
    my email id-tanmay.mec@gmail.com
    Hope I will hear from you soon.

  4. Dear Tanmay,
    i am niraj choudhary doing MTECH in electrical engineering from NIT Kurukshetra, Haryana, India. i am also working on solution of DDEs using Lambert W approach. can u please help me in computation of C_I coefficients using matlab. actually i have done this by using laplace approach but i am unable to solve this through Lambert. so if u can please help me. thanx in advance.

  5. Dear Jordan,
    I am a PhD student in economics and I am not very familiar with the lambert function. Thank you very much for providing these notes! For me, one step is not clear. Why don’t you write
    s = 1/tau * lambertw(0, a*tau*e^(-a*tau)) + a when implementing it into Matlab?

    Kind regards,
    Sam

    • You are correct. When implementing in Matlab, you only need to put the actual expression as the argument in the lambertw function. Thanks for catching this! I just corrected it.

  6. niraj choudhary

    Dear Jordan,
    I am niraj choudhary doing MTECH in electrical engineering from NIT Kurukshetra, Haryana, India. i am also working on solution of DDEs using Lambert W approach. can u please help me in computation of C_I coefficients using matlab. actually i have done this by using laplace approach but i am unable to solve this through Lambert. so if u can, please help me. Can you tell me how the plot of eigenspectrum can be obtained for time delay systems using Lambert W function. thanx in advance.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: