代码拉取完成,页面将自动刷新
%三角形加速度曲线
if exist('ini') == 0
disp ('未加载配置ini文件');
return;
end
InitVars; %初始化变量
%计算过程的中间变量
Acc0 = 0; %起步的加速度 hz/ms
dAcc = TriangleAccSlope(MinFreq, MaxFreq, (SpeedUpTime)/2); %变加速度系数,hz/ms2
Freq = MinFreq; %最小步开始计算
Acc=Acc0;
t=0;
MidTime = SpeedUpTime/2 - StepTime/2;
%加速度增大阶段
while t <= MidTime %前半段时间,加速度递增
Period = 1e3 / Freq; %当前频率换算到周期
Steps = round(StepTime * Freq / 1e3); %一个时间段里的步数,取整
Cnt = Cnt+1; %计数
A(Cnt,FREQ)=Freq;
A(Cnt,STEPS)=Steps;
if Cnt == 1
A(Cnt,STEP_SUM)=Steps;
A(Cnt, T_SUM) = Period*Steps;
else
A(Cnt,STEP_SUM)=A(Cnt-1,STEP_SUM) + Steps;
A(Cnt, T_SUM) = A(Cnt-1, T_SUM) + Period*Steps;
end
A(Cnt, ACC) = Acc;
t = A(Cnt, T_SUM);
Acc = Acc + dAcc * Period*Steps; %下一步的加速度
Freq = Freq + (Period*Steps) * Acc; %next freq
end
%加速度减小阶段
while Acc > 0
Period = 1e3 / Freq; %当前频率换算到周期
Steps = round(StepTime / Period); %一个时间段里的步数,取整
Cnt = Cnt+1; %计数
A(Cnt,FREQ)=Freq;
A(Cnt,STEPS)=Steps;
A(Cnt,STEP_SUM)=A(Cnt-1,STEP_SUM) + Steps;
A(Cnt, T_SUM) = A(Cnt-1, T_SUM) + Period*Steps;
A(Cnt, ACC) = Acc;
Acc = Acc - dAcc * Period*Steps; %下一步的加速度
Freq = Freq + (Period*Steps) * Acc; %next freq
end
%绘结果图
PlotResult;
SaveResult;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。