Somewhat unrelated but heres another issue.
as I said earlier, duty adjustment means adjusting inverter duty.
Now I am keeping voltage at a Vmp point.So the output voltage never goes above 350vac.since duty determines output voltage.
I am not sure how to explain this better
The power drawn by a pump depends on both voltage and current. With everything else being equal, increasing duty will increase voltage and decrease current, keeping the total power the same (equal to the power produced by the panel less inverter losses). So, voltage alone cannot tell you if it's more or less power. The power cannot disappear (unless something is overheating), so the more power at the panel the more power at the pump.
Also, every day is different and 10-15% variation in solar power depending on the atmospheric condition is normal. I sometimes get up to 7kW from my array, but other day, with seemingly full sun, it may be as low as 5kW.
The important thing is to make sure that you get max power from the panel. Do you have a provision for disabling the slow part of the algorithm and setting the target panel voltage manually. If you do, try to increase/decrease it and see if you get better power at a different voltage. If you do, there's probably a coding bug somewhere.
On my previous post. Mediocre performance in varying conditions is an inherent flow of P&O algorithm because it assumes constant conditions. By keeping its rate slow, compared to the time between measurements, you partly alleviate this problem. It might work fine, but if it doesn't, you can introduce some tweaks. For example, you can alternate the sampling order. Say, you do higher voltage first then lower one, but for next perturbation you do it in reverse order. Or, you can do multiple perturbations and see if you get consistent directional signal before you decide to change your target voltage - it's better to be slow with changes than wonder away from the good point. But I wouldn't worry about this unless there's a problem.