Your model is overparameterized. You are trying to fit 5 parameters when the model only requires just 3 parameters. Why do I say that?
Here's your basic function:
f = gamma*(Abs[H0] Cos[Pi/180*(Phi - PhiH)] +
4 Pi Ms + 1/2 H1*(3 + Cos[Pi/180*4 Phi]) -
2 Hu (Cos[Pi/180*(Phi - Phiu)])^2)^0.5*
(Abs[H0] Cos[Pi/180*(Phi - PhiH)] + 2 H1 Cos[Pi/180*4 Phi] -
2 Hu Cos[Pi/180*2*(Phi - Phiu)])^0.5;
Now consider some substitutions:
constants = {Cos[Pi/180*(Phi - PhiH)] -> c1,
4 Ms \[Pi] + 1/2 H1 (3 + Cos[(Phi \[Pi])/45]) - 2 Hu Cos[1/180 (Phi - Phiu) \[Pi]]^2 -> c2,
2 H1 Cos[(Phi \[Pi])/45] - 2 Hu Cos[1/90 (Phi - Phiu) \[Pi]] -> c3};
Make those substitutions:
f//.constants
(* 0.002802 (c2 + c1 Abs[H0])^0.5 (c3 + c1 Abs[H0])^0.5 *)
We see that the model can be characterized by just 3 parameters. This has nothing to do with the data or NonlinearModelFit
.