Advertisement
Ostu

Untitled

Jun 17th, 2022
1,397
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.80 KB | None | 0 0
  1. function y = fcn(u)
  2.  
  3. %% Zdefiniowanie zwenetrznych funkcji, ktorych ten blok natwynie nie obsluguje
  4. % wynika to z faktu, ze nie sa to funkcje codera simulinka, z tego powodu
  5. % wykonaywane sa one z poziomu silnika Matlaba
  6. coder.extrinsic('lqry');
  7. coder.extrinsic('ss');
  8.  
  9. %% Sygnały wpadające do funkcji
  10. x1 = u(3);
  11. x2 = u(4);
  12. x3 = u(5);
  13. x4 = u(6);
  14. x5 = u(7);
  15. x6 = u(8);
  16.  
  17. %% Parametry wykorzystwane w równaniach stanu
  18. % potrzebne do macierzy powstalych po linearyzacji
  19. kzz = 0.25;
  20. a = kzz^2 + 0.0431;
  21. a4 = 0.132;
  22. b4 = 0.958;
  23. k4 = b4;
  24. c4 = 0.088;
  25. a5 = 1.402;
  26. a6 = 2.443;
  27. b5 = 0.544;
  28. k5 = b5;
  29. b6 = 7.235;
  30. d5 = 0.037;
  31. d6 = 1.534;
  32. k6 = 9.470;
  33.  
  34. %% Macierze powstale po linearyzacji
  35. % sa one niezbedne do strzowenia macierzy modelu i wyznacznia macierzy F dla lokowania biegunow
  36. A = [0 0 -x5*cos(x3)-x4*sin(x3) cos(x3) -sin(x3) 0;
  37.     0 0 x4*cos(x3)-x5*sin(x3) sin(x3) cos(x3) 0;
  38.     0 0 0 0 0 1;
  39.     0 0 0 -a4*sqrt(x4^2+x5^2)-(a4*x4^2)/sqrt(x4^2+x5^2) -((a*x4*x5)/sqrt(x4^2+x5^2))+b4*x6+c4*2*x5 b4*x5;
  40.     0 0 0 (-a5*x4*x5/sqrt(x4^2+x5^2))-(b5*x6)+((x5^3*x4)/((sqrt(x4^2+x5^2)*(x4^2+x5^2)))) (-a5*(2*x5^2+x4^2)/sqrt(x4^2+x5^2))-(((3*x5^2 * x4^2)+2*x5^4)/((sqrt(x4^2+x5^2)*(x4^2+x5^2)))) -b5*x4+2*x6*d5;
  41.     0 0 0 ((a6*x4*x5)/sqrt(x4^2+x5^2))-b6*x5 (-a6*(2*x5^2+x4^2)/sqrt(x4^2+x5^2))-b6*x4 -d6*2*x6];
  42. B = [0 0 0; 0 0 0; 0 0 0; k4 0 0; 0 k5 0; 0 0 k6];
  43. C = [1 0 0 0 0 0; 0 1 0 0 0 0; 0 0 1 0 0 0];
  44. D = [0 0 0; 0 0 0; 0 0 0];
  45.  
  46. %% Obiekt/model
  47. xn = [x1, x2, x3, x4, x5, x6];
  48. y = zeros(1,3);
  49. M = ss(A,B,C,D); % stworzy obiekt w przestrzeni stanu, omija to tworzenie obiektu/modelu na pojedynczych blokach Gain itp. w simulinku tak jak na zajeciach z SOIM
  50.  
  51. %% Bieguny
  52. PSI = eye(3,3);
  53. FI = eye(3,3);
  54. [F,P,p] = lqry(M,PSI,FI);
  55.  
  56. %% Wyjscie funkcji
  57. % dodanie macierzy F do naszego obiektu
  58.  
  59. y = xn*F';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement