Advertisement
Ostu

Untitled

May 25th, 2021
390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.38 KB | None | 0 0
  1. %% wartosci z projektu 1
  2. z=tf('z')
  3. kz=0.778
  4. Tz=11.5
  5. tauz=26.3
  6. Ts=1.6
  7. w0=0.4*kz
  8. n1=7;
  9. n2=9;
  10. k=n1/n2
  11. m1=n1
  12. m2=4*n2
  13. tt=2*n1+10
  14. obiekt=tf([k],[1,m2,m1,1],'IODelay',tt)
  15. dysk.Variable = 'z^-1';
  16. dysk=c2d(obiekt,Ts)
  17. C=(1-0.25*z)/1
  18. %% Dane do równania diofantycznego
  19. Num = dysk.num{1}
  20. Den = dysk.den{1}
  21. NumC=C.num{1}
  22. dA=numel(Den)-1
  23. dB=numel(Num)-2
  24. dC=numel(NumC)-1
  25. d=15
  26. dF=15-1
  27. dG=max(dA-1, dC-15)
  28. %% Elementy f i g
  29. for i = 0:dF
  30.  eval(['syms f', num2str(i)])
  31. end
  32. for i = 0:dG
  33.  eval(['syms g', num2str(i)])
  34. end
  35. %% Równanie diofantyczne
  36. a0=Den(1)
  37. a1=Den(2)
  38. a2=Den(3)
  39. a3=Den(4)
  40. c0=0
  41. c1=0
  42. c2=NumC(1)
  43. c3=NumC(2)
  44.  
  45. eqns = [
  46.  c2 == f1*a0 + a1
  47.  c3 == f2*a0 + f1*a1 + a2
  48.  0 == f3*a0 + f2*a1 + f1*a2 + a3
  49.  0 == f4*a0 + f3*a1 + f2*a2 + f1*a3
  50.  0 == f5*a0 + f4*a1 + f3*a2 + f2*a3
  51.  0 == f6*a0 + f5*a1 + f4*a2 + f3*a3
  52.  0 == f7*a0 + f6*a1 + f5*a2 + f4*a3
  53.  0 == f8*a0 + f7*a1 + f6*a2 + f5*a3
  54.  0 == f9*a0 + f8*a1 + f7*a2 + f6*a3
  55.  0 == f10*a0 + f9*a1 + f8*a2 + f7*a3
  56.  0 == f11*a0 + f10*a1 + f9*a2 + f8*a3
  57.  0 == f12*a0 + f11*a1 + f10*a2 + f9*a3
  58.  0 == f13*a0 + f12*a1 + f11*a2 + f10*a3
  59.  0 == f14*a0 + f13*a1 + f12*a2 + f11*a3
  60.  0 == f14*a1 + f13*a2 + f12*a3 + g0
  61.  0 == f14*a2 + f13*a3 + g1
  62.  0 == f14*a3 + g2];
  63.  
  64. R=solve(eqns)
  65. F(1) = 1;
  66. for i = 1:dF
  67.  F(i+1) = eval(['double(R.f',num2str(i),')']);
  68. end
  69. for i = 0:dG
  70.  G(i+1) = eval(['double(R.g',num2str(i),')']);
  71. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement