|
|
@@ -1,34 +1,93 @@
|
|
|
xdel(winsid())
|
|
|
clear;
|
|
|
|
|
|
-t = [0:0.01:20];
|
|
|
-a = 0.5;
|
|
|
-b = 0.6;
|
|
|
+t = linspace(-2,20,2000);
|
|
|
+a = 0.4;
|
|
|
+b = 0.45;
|
|
|
k = 1;
|
|
|
|
|
|
+magnitude = 100;
|
|
|
+offset = 24
|
|
|
+
|
|
|
+// Generera självaste pulsformen
|
|
|
y = k*(exp(-a*t) - exp(-b*t) );
|
|
|
-ymax = max(y)*ones(1,length(y));
|
|
|
|
|
|
-//y = [zeros(1,500) y];
|
|
|
+// Fyll på med lite platt mark före t=0
|
|
|
+y(y<0) = 0;
|
|
|
+
|
|
|
+// Normalisera till 1 och multiplicera med magnituden
|
|
|
+y = y/max(y)*magnitude;
|
|
|
+
|
|
|
+// Hitta index för första passagen av 10%
|
|
|
+x10r = 0;
|
|
|
+for i = [1:length(y)]
|
|
|
+ if(y(i) > 0.1*magnitude)
|
|
|
+ if((y(i)-0.1*magnitude) < (0.1*magnitude-y(x10r)))
|
|
|
+ x10r = i;
|
|
|
+ end;
|
|
|
+ break;
|
|
|
+ end;
|
|
|
+ x10r = i;
|
|
|
+end
|
|
|
+
|
|
|
+// Hitta index för första passagen av 90%
|
|
|
+x90r = 0;
|
|
|
+for i = [1:length(y)]
|
|
|
+ if(y(i) > 0.9*magnitude)
|
|
|
+ if((y(i)-0.9*magnitude) < (0.9*magnitude-y(x90r)))
|
|
|
+ x90r = i;
|
|
|
+ end;
|
|
|
+ break;
|
|
|
+ end;
|
|
|
+ x90r = i;
|
|
|
+end
|
|
|
+
|
|
|
+// Hitta index för första passagen av 10%
|
|
|
+x10f = 0;
|
|
|
+for i = [length(y):-1:1]
|
|
|
+ if(y(i) > 0.1*magnitude)
|
|
|
+ if((y(i)-0.1*magnitude) < (0.1*magnitude-y(x10f)))
|
|
|
+ x10f = i;
|
|
|
+ end;
|
|
|
+ break;
|
|
|
+ end;
|
|
|
+ x10f = i;
|
|
|
+end
|
|
|
|
|
|
+// Lägg på ett offset
|
|
|
+y = y+offset;
|
|
|
+
|
|
|
+
|
|
|
+//Generera vertikala linjer
|
|
|
xpts = [1 1];
|
|
|
-ypts = [0 max(y)];
|
|
|
-plot(xpts*0.07, ypts, '--');
|
|
|
-plot(xpts*1.1, ypts, '--');
|
|
|
-plot(xpts*8.96, ypts, '--');
|
|
|
+ypts = [-100 max(y)*2];
|
|
|
+//plot(xpts*0, ypts, '-black'); // Vertikalt streck på x =
|
|
|
+plot(xpts*t(x10r), ypts, ':');
|
|
|
+plot(xpts*t(x90r), ypts, ':');
|
|
|
+plot(xpts*t(x10f), ypts, '-.');
|
|
|
|
|
|
-plot(t,y, 'black');
|
|
|
-plot(t,ymax.*0.1, '--');
|
|
|
-plot(t,ymax.*0.9, '--');
|
|
|
+// Generera horisontella linjer
|
|
|
+plot(t, y, "black");
|
|
|
+hline = ones(1,length(y));
|
|
|
+plot(t,hline.*y(x10r), ':');
|
|
|
+p = get("hdl");
|
|
|
+p = p.children;
|
|
|
+p.line_style = 7;
|
|
|
+plot(t,hline.*y(x90r), ':');
|
|
|
|
|
|
// titletxt = ['$y = k(e^{-\alpha t} - e^{-\beta t})$' ; strcat(['$k=', string(k), ', \alpha=', string(a), ', \beta=', string(b), '$']) ];
|
|
|
|
|
|
//titletxt = '$u(t) = k(e^{-\alpha t} - e^{-\beta t})$';
|
|
|
//title(titletxt , 'fontsize', 8);
|
|
|
-xlabel('t (s)', 'fontsize', 7);
|
|
|
-ylabel('U (V)', 'fontsize', 7, 'rotation', 0);
|
|
|
+//xlabel('t (s)', 'fontsize', 7);
|
|
|
+//ylabel('U (V)', 'fontsize', 7, 'rotation', 0);
|
|
|
|
|
|
a = get("current_axes");
|
|
|
-a.axes_visible = "off";
|
|
|
-a.data_bounds = [0,-0.01;20,0.07];
|
|
|
+//a.axes_visible = "off";
|
|
|
+// Rita axlarna i 0
|
|
|
+//a.x_location = "origin";
|
|
|
+//a.y_location = "origin";
|
|
|
+
|
|
|
+
|
|
|
+a.data_bounds = [min(t),-0.02;max(t),200];
|
|
|
|