I'm having a problem with the statements inside a for-loop somehow being read in a different way than outside the loop.
I've defined some functions earlier, and then I need to perform an integration using these functions, while I change one variable a little for each loop of the for-loop.
The problem is that IN the for-loop, I get the same value from my integration for all loops. But when I execute the exsact same code OUTSIDE of the loop, I get the correct values, which are changing whenever i change the one variable.
Here is the loop:
for i from 0 to 42 do
rotorshift := evalf(2*((1/180)* i *Pi*((1/2)*Ø[gap]))/N[m]-1/2*(tau[p]-tau[s]));
PMmmf_func := x-> proc (x) if type(x-rotorshift, nonnegative) then if type(trunc((x-rotorshift)/tau[p]), odd) = true then -H[c]*l[m] else H[c]*l[m] end if else if type(trunc((x-rotorshift)/tau[p]), odd) = true then H[c]*l[m] else -H[c]*l[m] end if end if end proc
B[g] := proc (x) -> 1000*mu*(PMmmf_func(x)+MMF_func(x))/d[eff, stator](x) end proc;
Flux(i+1) := (int(B[g](x), 0 .. tau[s])+int(B[g](x), 3*tau[s] .. 4*tau[s])+int(B[g](x), 6*tau[s] .. 7*tau[s])+int(B[g](x), 9*tau[s] .. 10*tau[s]))*10^(-3)*L[ro];
And for all the values in the "Flux" vector, I get the same value. But when I remove the loop, and change the value of i manually, I get the correct (changing) values of flux!!
Any ideas why this may be? This is really dricing me nuts. I've spent the beter part of the day on this, and I just can't seem to find a workaround, much less a reason for this behaviour.