Showing results for 
Search instead for 
Did you mean: 

Question about PID in FPGA

Go to solution

Hello guys,


Now I use PID function in FPGA to control the feedback value of my system. I only need PI, so I set D to 0. Now there is problem that after running a long time using PID, the system will be out of control. I think the reason might be the integration works from the start and keeps integrating errors, and if there is a shift for the feedback value, the integration still use the integrated value from past to now to do the control and it might get messed up? Then I try a way: reset the control output every certain time. This will prevent the integration accumulate too much, but it will cause a sudden change to the feedback value.


So now I really don't know how to deal with this.





0 Kudos
Message 1 of 4
Accepted by zyb1003

Hi zyb1003,


It sounds to me like your system isn't tuned correctly and that it is going unstable under certain input conditions. Rather than resetting the integration value, I would recommend reevaluating your tuning parameters. A few methods of evaluating the tuning parameters are addressed in the tuning section of this whitepaper: 


PID Theory Explained



Message 2 of 4

Hello, thanks for the reply!


I tried many groups of parameters but still does not work. I checked the system feedback value without the controller, and I find that the value does not stay that stable, so is it possible that the reason is the system changes too fast that the controller cannot follow it? 

0 Kudos
Message 3 of 4

Hi zyb1003,


It seems to me that the feedback should be changing if your system is changing. How quickly is the system changing? And how quickly is the control loop running? This will help us determine if the controller should be able to handle the system speed. 

0 Kudos
Message 4 of 4