module: feedback_filter
description: 
parameters:  double r1, double c1
             double rz
inputs:  double in double fb double reset
outputs:  double out
classes:  
  Filter filt_in("1","1+s","Ts",Ts)
  Filter filt_out("1","1+s","Ts",Ts)
static_variables:  
init:  
  double rsum;

  rsum = r1+rz;
  filt_in.set("1+rz*c1*s","1+rsum*c1*s","rz,c1,rsum,Ts",rz,c1,rsum,Ts);
  filt_out.set("r1*c1*s","1+rsum*c1*s","r1,c1,rsum,Ts",r1,c1,rsum,Ts);

code:  

  if (reset > 0.0)
  {
    filt_in.reset(0.0);
    filt_out.reset(0.0);
  }
  else
  {
    filt_in.inp(in);
    filt_out.inp(fb);   
  }
  out = filt_in.out+filt_out.out;