I'm converting the simulink diagram found in this paper to C code. I'm not familiar with matlab/simulink(too expensive) so need help interpreting the diagram. The problem I experience is that once a value like $\theta$, or $x_1$ becomes zero, zero is propagated everywhere due to the multiplication. The paper states that the integrators are initialized to zero, so I don't see how the system works.
Any ideas?
Below is the simulink diagram and my C code:
The block diagram is found in the paper above as Figure 1 and Figure 2 :
typedef struct { float zeta,gamma;} PARAM_ANFfloat;
typedef struct { float err,regressor,x1,theta;} STATE_ANFfloat;
typedef struct {PARAM_ANFfloat p;STATE_ANFfloat s;} ANFfloat;
void dspANFfloat_perform(ANFfloat *anf, float y)
{
anf->s.err = y - anf->s.regressor;
anf->s.theta = -anf->p.gamma * anf->s.x1 * anf->s.theta * anf->s.err;
anf->s.x1 = anf->s.theta * anf->s.err * 2 * anf->p.zeta - anf->s.x1 * - anf->s.theta * anf->s.theta;
anf->s.regressor = anf->s.x1;
}