필터 지우기
필터 지우기

solving system of 2 equations with complex components

조회 수: 1 (최근 30일)
Patxi
Patxi 2021년 2월 18일
댓글: Patxi 2021년 2월 18일
Hello,
I'm trying to solve a complex equation which it is proposed in two, separately, taking the module (1) and the angle (2). The solution must be ki=242.1123 and kp=5.7424, but unfortunatelly it is not be able to solve it. Can somebody help me?
Thanks!
-------
% Original complex equation, Open Loop Transfer Function, OLTF(s)=Gpi(s)*G(s)=(kp·s+ki)/s · Kt/(J·s+Bv),
% -> s=jw for frequency domain (Bode)-->OLTF(jw)=OLTF(w*1i)=Kt*(kp*w*1i+ki)/(Bv*w*1i-J*w^2)
syms ki kp
J=0.057;Bv=0.015;w=300;PM=82*pi/180;Kt=2.9489;
eqns=[abs(Kt*(kp*w*1i+ki)/(Bv*w*1i-J*w^2))==1,angle(Kt*(kp*w*1i+ki)/(Bv*w*1i-J*w^2))==PM-pi]; % eq(1),eq(2)
S=vpasolve(eqns,[ki kp])
% no solution
S.ki
ans =
Empty sym: 0-by-1
S.kp
ans =
Empty sym: 0-by-1
-------

채택된 답변

Alan Stevens
Alan Stevens 2021년 2월 18일
Here's a non-symbolic way to solve your equations
ki0 = 200; kp0 = 10;
k0 = [ki0, kp0];
k = fminsearch(@search,k0);
ki = k(1); kp = k(2);
disp(k)
function F = search(k)
J=0.057;Bv=0.015;w=300;PM=82*pi/180;Kt=2.9489;
ki = k(1); kp = k(2);
d1 = abs(Kt*(kp*w*1i+ki)/(Bv*w*1i-J*w^2))-1;
d2 = angle(Kt*(kp*w*1i+ki)/(Bv*w*1i-J*w^2))-(PM-pi);
F = norm(d1)+norm(d2);
end
  댓글 수: 1
Patxi
Patxi 2021년 2월 18일
thank you very much for your help. I'm very grateful for that!
Regards,
Patxi

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Calculus에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by