At line [gnum4,gden4]=series(gnum3,gden3,numK,denK); I have an error called transfer function not proper and I can not figure out why this error is occuring
조회 수: 2 (최근 30일)
이전 댓글 표시
for kd = 0:1:10;
for kp = 0:1:10;
m = 0.01;
g = 9.81;
k = 1;
mu = 0.05;
mum = 0.2;
J = 100;
gnum1 = [m*g];
gden1 = [m mu mum];
gnum2 = [k];
gden2 = [J 0 0];
numK=[kd kp];
denK=1;
[gnum3,gden3]=series(gnum1,gden1,gnum2,gden2);
[gnum4,gden4]=series(gnum3,gden3,numK,denK);
[numcl,dencl]=feedback(gnum4,gden4,1,1,-1);
sys = tf(dencl, numcl)
rlocus(sys);
hold on
pause(0.5)
end
end
댓글 수: 0
답변 (1개)
cdawg
2023년 6월 29일
This is happening because your numerator numK has more degrees than your denominator denK, making it not proper. I think you may have these variables switched. You can also check if your system is proper by using isproper.
Also, I'm not sure if you're doing this on purpose, but tf takes the inputs tf(numerator, denominator). Right now, you have tf(den,num).
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Simulink Supported Hardware에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!