MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: NDSolve and hybrid dynamics (Differential Algebraic Equation DAE)

  • To: mathgroup at smc.vnet.net
  • Subject: [mg113544] Re: NDSolve and hybrid dynamics (Differential Algebraic Equation DAE)
  • From: Ravi Balasubramanian <ravi.balasubramanian at yale.edu>
  • Date: Tue, 2 Nov 2010 05:00:38 -0500 (EST)

Hello Oliver,

Thanks for your suggestion.

Unfortunately, a smoothing function would not be useful, since the 
system has binary states.

I figured a way to do this is to include the f[x] function into the 
x'[t] equation such as

x'[t] == f[x[t]] + Sin[t]

(f[x] has only two states and no smoothing)

and use NDSolve to solve for x[t].  This works.  And then I can evaluate 
f[x[t]] using the NDSolve solution.

Just to summarize this discussion: NDSolve does not support binary 
variables as part of the state?

Ravi

Oliver Ruebenkoenig wrote:
> 
> 
> Ravi,
> 
> would a smoothing function be useful?
> 
> f[x_] := Which[
>    x <= -1, 0,
>    -1 < x < 1, 1/2 + x (15/16 - x^2 (5/8 - 3/16 x^2)),
>    x >= 1, 1] + 1
> 
> Plot[f[(x - 0.1)/0.001], {x, -0.2, 0.2}]
> 
> eqns = {x'[t] == y[t] + Sin[t], y[t] == f[t], x[-\[Pi]] == 1/2};
> sol = NDSolve[eqns, {x[t], y[t]}, {t, -5, 5}]
> 
> Hope this helps,
> 
> Oliver
> 
> On Mon, 1 Nov 2010, Ravi Balasubramanian wrote:
> 
>> Friends,
>>
>> I am trying to solve a hybrid dynamics problem using NDSolve.
>>
>> I am aware that I could use the event locator methods in NDSolve and
>> manually take care of the transitions (set initial conditions etc).  But
>> my system is complicated, and I would have to do a lot of book-keeping.
>>
>> The following represents a simplified version of the problem.
>>
>> eqns = {x'[t] == y[t] + Sin[t], y[t] == If[t < 0.1, 1, 2],
>>    x[-Pi] == 1/2};
>> sol = NDSolve[eqns, {x[t], y[t]}, {t, -5, 5}]
>>
>> It is a first order differential equation in x[t], but it includes a
>> y[t] variable that is discontinuous.  There should be solution for this
>> problem, but I get the following error message from NDSolve.
>>
>> LinearSolve::"nosol" : "Linear equation encountered that has no solution.
>>
>> The error is probably arising from the "If" condition.
>>
>> FYI, in my real system the y[t] variable is a Lagrange multiplier that
>> is enforcing a constraint.  Under certain conditions, that constraint is
>> broken and the system transitions into another state.  It will be great
>> if this problem can be solved with NDSolve keeping track of the y[t]
>> variable for me.  Any suggestions greatly appreciated.
>>
>> Thanks!
>>
>> Ravi Balasubramanian
>> Yale University
>>
>>


  • Prev by Date: Re: NDSolve and hybrid dynamics (Differential Algebraic Equation DAE)
  • Next by Date: Re: Balance point of a solid
  • Previous by thread: Re: NDSolve and hybrid dynamics (Differential Algebraic Equation DAE)
  • Next by thread: Re: NDSolve and hybrid dynamics (Differential Algebraic Equation DAE)