MATLAB Answers

Why a function can't get itself in Simulink after two consecutive differentiation and two integration operations?

조회 수: 19(최근 30일)
liqun fang
liqun fang 2021년 6월 21일
댓글: liqun fang 2021년 6월 23일
I want to implement the functionality described in the following figure.
So I build the Simulink model shown in the below figure.
The results are shown in the below figure. Both results are wrong. Why????

채택된 답변

Paul 2021년 6월 22일
For the top (continuous) branch, keep in mind that the Derivative block is a numerical approximation and it's output will be very dependent on the solver parameters. I was able to get the expected result by using a Fixed Step solver (ode2) with a Fixed step size of 0.002. Don't forget to the set the Initial condition of Integrator4 to 1. In general, using Derivative block is not recommended and using two in series with each other will likely be very problematic.
For the bottom (discrete) branch, change the Integrator method on both Discrete Time Integrators to Backward Euler. Place a Zero Order Hold block between the Sine Wave and the first Discrete Derivative and set its Sample time to what you want (I used 0.1). Then adjust the Intital Condition parameters on each Discrete Derivative and Discrete Time Integrator so that the output of each block has the desired value at T=0.
  댓글 수: 3
liqun fang
liqun fang 2021년 6월 23일
Thank you very much for your answer. My problem is solved. Your answer is very well.

댓글을 달려면 로그인하십시오.

추가 답변(0개)




Community Treasure Hunt

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

Start Hunting!

Translated by