Event triggered control using ode45

9 ビュー (過去 30 日間)
Arnab
Arnab 2024 年 11 月 30 日
コメント済み: Arnab 2024 年 12 月 1 日
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 日
%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.
  1 件のコメント
Arnab
Arnab 2024 年 12 月 1 日
Thank you

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by