如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
#include#includestruct_pid{intpv;/*integerthatcontainstheprocessvalue*/intsp;/*integerthatcontainsthesetpoint*/floatintegral;floatpgain;floatigain;floatdgain;intdeadband;intlast_error;};struct_pidwarm,*pid;intprocess_point,set_point,dead_band;floatp_gain,i_gain,d_gain,integral_val,new_integ;;/*------------------------------------------------------------------------pid_initDESCRIPTIONThisfunctioninitializesthepointersinthe_pidstructuretotheprocessvariableandthesetpoint.*pvand*spareintegerpointers.------------------------------------------------------------------------*/voidpid_init(struct_pid*warm,intprocess_point,intset_point){struct_pid*pid;pid=warm;pid->pv=process_point;pid->sp=set_point;}/*------------------------------------------------------------------------pid_tuneDESCRIPTIONSetstheproportionalgain(p_gain),integralgain(i_gain),derivitivegain(d_gain),andthedeadband(dead_band)ofapidcontrolstructure_pid.------------------------------------------------------------------------*/voidpid_tune(struct_pid*pid,floatp_gain,floati_gain,floatd_gain,intdead_band){pid->pgain=p_gain;pid->igain=i_gain;pid->dgain=d_gain;pid->deadband=dead_band;pid->integral=integral_val;pid->last_error=0;}/*------------------------------------------------------------------------pid_setintegDESCRIPTIONSetanewvaluefortheintegraltermofthepidequation.Thisisusefulforsettingtheinitialoutputofthepidcontrolleratstartup.------------------------------------------------------------------------*/voidpid_setinteg(struct_pid*pid,floatnew_integ){pid->integral=new_integ;pid->last_error=0;}/*------------------------------------------------------------------------pid_bumplessDESCRIPTIONBumplesstransferalgorithim.Whensuddenlychangingsetpoints,orwhenrestartingthePIDequationafteranextendedpause,thederivativeoftheequationcancauseabumpinthecontrolleroutput.Thisfunctionwillhelpsmoothoutthatbump.Theprocessvaluein*pvshouldbetheupdatedjustbeforethisfunctionisused.---------------------------------------------------------