变形和积分问题[SCILAB]

时间:2018-03-18 17:17:45

标签: scilab integral derived

我正在研究一个计算速度导数和加速度积分的项目。 我的问题是我有很多加速点和速度随着时间的推移而无法找到合适的程序。

示例:

  • 在5秒内从0 km / h加速到40 km / h
  • 从5到10秒,速度恒定为40km / h;
  • 从10到17秒,减速度从40 km / h到20 km / h

所以dv / dt =(v2-v1)/(t2-t1)但我不知道如何为v1 v2 t1 t2声明多个变量

function a=acc(v1,v2,t1,t2)
     a= (v2-v1)/(t2-t1)
endfunction
v1=
v2=
t1=
t2=
disp(acc(v1,v2,t1,t2),'acc = ')

和(dv / dt)* dt

的积分相同

请帮帮我们

2 个答案:

答案 0 :(得分:0)

V(1:5) = linspace(0,40,5);
V(6:10) = 40;
V(11:17) = linspace(40,20,7);

Acc = diff(V);

首先,我们使用您的速度值填充数组V

然后我们使用Acc创建一个数组diff,加速度为a秒,因为两个V值之间只有1。

另一种基于你所写内容的解决方案

function a=acc_2(v1,v2,t1,t2)
  a= (v2-v1)./(t2-t1) // since v,t are vectors, we need './' and not '/' !
endfunction
V(1:5) = linspace(0,40,5);
V(6:10) = 40;
V(11:17) = linspace(40,20,7);

v1 = V(1:$-1); 
v2 = V(2:$);
t1 = 1:length(V)-1;
t2 = 2:length(V);
Acc_2 = acc_2(v1,v2,t1,t2)

如果您想h(x) = int_t0^x dv/dt dt,请使用cumsum

H = cumsum(Acc)

答案 1 :(得分:0)

我把这段代码

V(1:5) = linspace(0,40,5); 
V(6:10) = 40; 
V(11:17) = linspace(40,20,7); 
function a = acc(V) 
      a=diff(V) 
endfunction 

function aa = acc_2(v1,v2,t1,t2) 
      aa = (v2-v1)/(t2-t1) 
endfunction 

v1 = V(1:$-1); 
v2 = V(2:$); 
t1 = 1:length(V)-1; 
t2 = 2:length(V); 
Acc_2 = acc_2(v1,v2,t1,t2)

但是他给了我一个Acc_2变量的结果?