Ostu

Untitled

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