Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 1.25 KB | None | 0 0
  1. function q=euler(b)
  2.   zadana = 10
  3.   histereza =b
  4.   g_gorna = zadana + histereza/2;
  5.   g_dolna = zadana -histereza/2;
  6.   dt = 0.1;
  7.   x= 0:dt:10;
  8.   y = zeros(size(x));
  9.   y(1)=0;
  10.   q = zeros(size(x));
  11.   q(1)=0;
  12.   e = zeros(size(x));
  13.   e(1)=zadana -y(1);
  14.  
  15.   for i=1:length(x)-1
  16.     if(y(i)>g_gorna)
  17.       u =0;
  18.     end
  19.     if(y(i) < g_dolna)
  20.       u= zadana *3;
  21.     end
  22.     y(i+1)=1/3*(u-2*y(i))*dt+y(i);
  23.     e(i+1)=zadana - y(i+1);
  24.     q(i+1) = abs(zadana - y(i+1));
  25.   end
  26.   q=trapz(x,q);
  27.   plot(x,e);
  28.  
  29. endfunction
  30.  
  31. function jakoscQ()
  32.   h=0:1:8;
  33.   q= size(h);
  34.   i=1;
  35.  
  36.   for b=0:1:8
  37.     q(i)=eulerz(b);
  38.     i=i+1;
  39.   end
  40.   plot(h,q);
  41.   endfunction
  42.  
  43.  
  44. function eulertrzyhist()
  45.  
  46. zadana = 20;
  47.  u = zadana*2;
  48.  
  49. histereza = 10;
  50.  
  51. granica_g = zadana + histereza / 2;
  52. granica_d = zadana - histereza / 2;
  53.  
  54. dt = 0.1;
  55.  
  56. t = 0 : dt : 25;
  57. y= zeros(size(t));
  58. y(1) = 0;
  59.  
  60.  
  61. e(1)=zadana-y(1);
  62.  
  63. for i=1 :1: length(t) - 1
  64.  
  65.    if (y(i) > granica_g)
  66.        u = 0;
  67.    
  68.    elseif (y(i) < granica_d)
  69.        u = zadana* 4.5;
  70.  
  71.    elseif(y(i)>granica_d && u == zadana*4.5)
  72.        u = zadana * 4;
  73.    end
  74.    y(i + 1) = 1/2 * dt * (u - 3*y(i)) + y(i);
  75.  
  76.    e(i + 1) = zadana - y(i + 1);
  77.    
  78. end
  79.  
  80. plot(t,e);
  81. endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement