ODE event: Is there a counter ?
이전 댓글 표시
Hi, Is there a way to terminate after an event occurs a certain number of times? I am thinking of using a counter in the ODE event function. But I am not sure how to pass it as an argument to the event function.
Thank you,
Sid
채택된 답변
추가 답변 (1개)
Kiran Felix Robert
2021년 3월 22일
Hi Siddhartha,
You don’t have to pass the counter as an argument to the event function, you can define the count variable as a global variable (persistent) and increment/decrement it, while not terminating the integration, until the control arrives at a count to terminate the integration.
The following snippet can be used as an example, for 10 events.
function [value,isterminal,direction] = Eventsfcn(t,y)
persistent count;
if isempty(count)
count = 10;
end
if count > 1
% Your code here
count = count - 1;
isterminal = 0; % Do not stop the integration
else
% Your Code here
isterminal = 1; % Stop the integration
end
댓글 수: 2
Siddhartha Harsha Ommi
2021년 3월 28일
Siddhartha Harsha Ommi
2021년 3월 28일
편집: Siddhartha Harsha Ommi
2021년 3월 28일
카테고리
도움말 센터 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!