Algebric Loop with FIR Filter in Simulink
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi, I have FIR filter and I put it in a feedback. It has some feed foward coefficient so it gives an Algebric Loop error. How i can solve it?
Regards,
댓글 수: 0
답변 (1개)
Ced
2016년 4월 11일
By feedforward, do you mean a feedthrough in your filter? Two possibilities I can think of:
1. Incorporate your feedforward as a gain, i.e. instead of having y = u + a*y, write y = u/(1-a). This is the exact solution.
2. As a quick fix, you can include a memory or delay element. This shifts everything by one time step though.
댓글 수: 5
Ced
2016년 4월 12일
I think it's still possible. Your system is something like y = (a0 + a1*z^(-1) + ... )*(r-y), where r is that signal coming from the left.
So, extracting the feedthrough term, taking it to the other side and then dividing the whole equation by (1+a0), you get
y = r*a0/(1+a0) + (r-y)*(a1*z^(-1) + ... )*a0/(1+a0)
Note that the a0/(1+a0) gain will be before the +- sign. The feedthrough of r doesn't have to be extracted if you don't want to, but this way, you only have one filter block. Otherwise, you need two blocks (one without feedthrough for y (in the feedback) and one with feedthrough for r).
Alternative: You could try and set an initial condition block on the feedback. Otherwise, even with discrete time, simulink arrives at your feedback point, but has no way of knowing what value to expect because nothing has been computed yet.
참고 항목
카테고리
Help Center 및 File Exchange에서 Adaptive Filters에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!