How can I implement the following blocks and code in function block ?
조회 수: 1 (최근 30일)
이전 댓글 표시
I would use the following integral equation as function block in my simulation. I know I can do it as what I attached but I need a way to implement it by code inside function block.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/282742/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/282743/image.jpeg)
답변 (1개)
Mehmed Saad
2020년 4월 8일
편집: Mehmed Saad
2020년 4월 8일
This is an example of matlab given in integral help
% Without For loop
fun = @(x,c) 1./(x.^3-2*x-c);
q_f = integral(@(x)fun(x,5),0,2);
q_f = -0.4605
Now i just change the time of integration and sum them
% With For loop
t = 0:0.1:2;
q =0;
for i =2:length(t)
q =q+ integral(@(x)fun(x,5),t(i-1),t(i));
end
q = -0.4605
댓글 수: 6
Walter Roberson
2020년 4월 10일
With variable-step solvers, the block will be called at irregular intervals that might not match the interval that you want solutions at. The variable-step solvers can also go backwards in time (I encountered a case in which this really happened within the last few days.) ode45() invokes the function 6 times per step, using slightly different times and slightly different boundary conditions in order to make projections and check the error measurement.
In order to get results for a fixed time interval, because the function could be called for times spanning multiple intervals, you would have to emit a variable number of results -- and you would have to be prepared to have the values "revoked" if ode45 decided that the step was a failure. ode45 does not always go backwards in time when it decides that a step is a failure.
What is the reason that you are trying to replace those blocks with a MATLAB Function Block ? Are you trying to move to a discrete time system, using MATLAB Function Block to replace the ode45() work over a known interval?
참고 항목
카테고리
Help Center 및 File Exchange에서 General Applications에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!