Event triggered control using ode45

I have to solve ODE given by:
dy/dt= y- (|y|^0.5)*signum(y).
And T1=2; is some given constant.
Where event points are generated by
s_(k+1)={ t >=t and t<T1_k: y(t)=e^-(t_k)}
where t_k= s_k+ r_k, r_k is the delay term . And at t=t_k, y(t) should update the initial condition as
y(t_k)=y((t_k)^)+ 0.5*|y(s_k)|/(1+0.5*)).
And for t>=T1 we should just solve the given ODE and there is event condition for t>=T1.
And we should plot t vs y(t) for 4 seconds.

 採用された回答

Walter Roberson
Walter Roberson 2024 年 12 月 1 日

0 投票

%assuming r_k is a row vector of delay intervals.
tspan = cumsum([0, r_k]).';
if tspan(end) == T1; tspan(end) = []; end
tspan = [tspan, [tspan(2:end); T1]];
and then run the for loop. Within the for loop, adjust the boundary condition after each ode45() call.

その他の回答 (0 件)

カテゴリ

タグ

質問済み:

2024 年 11 月 30 日

コメント済み:

2024 年 12 月 1 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by