Problem solving a non linear equation using fsolve
显示 更早的评论
I want solve this equation to find Vcp value, and i am expecting Vcp value to be around 80 for the given constants.
options = optimoptions('fsolve');
options.MaxIterations = 1000;
options.MaxFunctionEvaluations = 500;
Po = 1000; % constants
Vin = 90;
Vo = 500;
n = 2;
fsw = 100e3;
Lr = 10e-6;
Cr = 35.29e-9;
Iin = Po/Vin;
Zr = sqrt(Lr/Cr);
Rfl= Vo^2/Po;
fr = 1/(2*pi*sqrt(Lr*Cr));
wr=2*pi*fr;
%% solve for Vcp
eqn = @(Vcp) -2*Vcp + ((Vo/(2*n)) +Vcp)* (1+ sqrt(1-(Iin*Zr/((Vo/(2*n))+Vcp))^2))+ (Iin/Cr)*( (0.5/fsw)- (1/wr)*(pi-asin((Iin*Zr)/((Vo/(2*n))+Vcp))) );
x = fsolve(@(Vcp) eqn(Vcp),80, options);
By using this code, without using options it says the iterations have reached maximum limit.
And if include "options" then NO SOLUTION FOUND.
( fsolve stopped because the relative size of the current step is less than the default value of the step size tolerance squared, but the vector of function values is not near zero as measured by the default value of the function tolerance.)
Could anyone suggest what can i chnage in my code to get the correct result. Any help would be deeply appreciated.
Thanks in advance!
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!