Слияние кода завершено, страница обновится автоматически
%三角形加速度曲线
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;
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )