Quantcast
Channel: MATLAB Central Newsreader Recent Posts
Viewing all articles
Browse latest Browse all 19628

Re: How to retrieve a parameter inside ode solver?

$
0
0
"Torsten" wrote in message <kb4a84$nsv$1@newscl01ah.mathworks.com>...
> "Qiming " <qzfyc@mst.edu> wrote in message <kb2p6s$kht$1@newscl01ah.mathworks.com>...
> > Hi:
> >
> > My question is how to retrieve a parameter value inside ode solver? Let's take the control system as an example. I write my own ODE function. Within the ODE function, I compute the control inputs as u=-K*x, where x is the system states and K is a constant matrix. x can be solved by calling ode solver, like ode45. But my question is, how can I get "u"?
> >
> > I know one solution is that after running the ode solver, then I can write a for loop, like:
> > for i = 1 : length(x)
> > u(i) = -K*x(i);
> > end
> >
> > Is there any way that I can retrieve u without using the for loop after running ode solver?
> >
> > Thanks.
>
> I'd do it the way you suggested (after running the ODE solver), except that you will have to put u=-K*x (the loop from above is incorrect).
>
> Best wishes
> Torsten.

Hi Torsten:

Thanks for your reply. I understand that's one way to retrieve the parameter inside ODE, however, for my real application, I generate a random value inside the ODEfunction. I cannot retrieve the parameter after running the ODE solver since I cannot get the exactly the same random value in my runfile.

I also tried using a counter inside the ODE solver. The weird thing is, the length of the counter is not the same as the length of the time step. How come this happens?

Thanks.

Viewing all articles
Browse latest Browse all 19628

Trending Articles