Advertisement
Ostu

Untitled

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