国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解S型加減速曲線規(guī)劃算法總結(jié)

strongerHuang ? 來源:小麥大叔 ? 作者:小麥大叔 ? 2021-04-09 17:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

做過運動控制的小伙伴都知道,S曲線很重要,下面一張動圖對比一下,你就知道S曲線的好處:

f9d22f2c-9910-11eb-8b86-12bb97331649.gif

下面分享一下S曲線的內(nèi)容:

1 前言

S形加減速的最重要特征是該算法的加速度/減速度曲線的形狀如字母 S。S形加減速的速度曲線平滑 ,從而能夠減少對控制過程中的沖擊,并使插補過程具有柔性 [^1]。由于T形曲線在加速到勻速的切換過程中,實際中存在較大過沖,因此這里對比一下T曲線和7段S曲線的實際過程;

T形:加速 -》 勻速 -》 減速

S形:加加速() -》 勻加速() -》 減加速()-》 勻速()-》 加減速()-》 勻減速()-》 減減速()

上文在加速這塊的文字描述可能讀起來起來有點繞,下面看圖:

fa688bf2-9910-11eb-8b86-12bb97331649.png

2 理論

分析由于S曲線在加減速的過程中,其加速度是變化的,因此這里引入了新的一個變量 ,即加加速度。

因此對應上圖的7段S速度曲線中,規(guī)定最大加速為,最小加速度為,則加速度的關(guān)系;

加加速():逐漸增大;

此時

勻加速():達到最大;

此時

減加速():逐漸減小;

此時

勻速():不變化;

此時

加減速(): 逐漸增大;

此時

勻減速(): 達到最大;

此時

減減速(): 逐漸減小;

此時

“為加速度的絕對值;其中

所以通常需要確定三個最基本的系統(tǒng)參數(shù) :系統(tǒng)最大速度 ,最大加速度a_{max} ,加加速度,就可以可確定整個運行過程[^2] ;

最大速度:反映了系統(tǒng)的最大運行能力 ;

最大加速度:反映了系統(tǒng)的最大加減速能力 ;

加加速度:反映了系統(tǒng)的柔性;

柔性越大,過沖越大,運行時間越短;

柔性越小,過沖越小,運行時間越長;

2.1 加速度時間關(guān)系方程

整個加速度變化的過程具體如下圖所示;

fd6f8756-9910-11eb-8b86-12bb97331649.png

再次強調(diào)一下 和 的關(guān)系,另外這里再引入變量 ,

比如,當前時刻 ,即 位于區(qū)間 ,則如果將 作為初始點,則 為 相對于時刻的時間,則有:

下面可以得到加速度與時間的關(guān)系函數(shù),具體如下:

根據(jù) ① 式,將 代入 ② 式可以得到:

上式中 ;

2.2 速度時間關(guān)系方程

速度和加速度滿足 ;加加速度和速度的關(guān)系滿足:

結(jié)合加速度時間關(guān)系并結(jié)合② 式可以得到速度曲線關(guān)系,具體關(guān)系如下圖所示;

fd8a7a20-9910-11eb-8b86-12bb97331649.png

進一步簡化可以得到:

fdd9a776-9910-11eb-8b86-12bb97331649.png

2.3 位移時間關(guān)系方程

位移 和加加速度 直接滿足關(guān)系如下:

簡單推導

因此可以得到:

“積分忘的差不多了,回去再復習一下;

最終位移的方程如下所示;

fdfa85f4-9910-11eb-8b86-12bb97331649.png

3 程序?qū)崿F(xiàn)的思路

正如前面所提到的,S曲線規(guī)劃需要確定三個最基本的系統(tǒng)參數(shù) :系統(tǒng)最大速度 ,最大加速度a_{max} ,加加速度,這樣就可以確定這個運行過程。這里有一個隱性的條件,就是在運行的過程中可以達到最大速度,這樣才是完整的7段S曲線,另外這里還有一些中間參數(shù):

,因此有 ;

加加速度 ;

,用戶給定整個運行過程所需要的時間;

但是通常實際過程中關(guān)心,,;

3.1 推導

理想狀態(tài)假設(shè)存在 和,則推導過程如下:

因此可以得到:

簡化之后得到:

根據(jù)②式可知:

最終得到:

下面可以根據(jù)位移時間關(guān)系方程進行離散化的程序編寫。

假設(shè)可以到達最大速度,且用戶給定了整個過程運行時間,則 的推導如下:

簡化上式可以得到:

根據(jù) 代入上式可得:

3.2 的推導

這時候還剩下需要計算,通過已量 可以推導出來;首先位移之間滿足關(guān)系如下:

其中加速區(qū)長度為 ;其中減速區(qū)長度為 ;

具體推導;[^2]前面提到過,,因此在=0的時候,則

這里簡單推導一下:

根據(jù)④,⑤最終簡化得到:

“:為運行的總時間:為運行的總路程

詳細推導過程如下:

因為:

因為:

所以,簡化得到:

所以可以得到:

因為:

將其代入可以得到:

簡化得到最終結(jié)果:

4 matlab

程序matlab程序親測可以運行,做了簡單的修改,因為這里直接給定了整個運行過程的時間,所以需要在SCurvePara函數(shù)中求出加加速度 的值,路程為 1:

SCurvePara

function [Tf1,V,A,J,T] = SCurvePara(Tf, v, a)

T = zeros(1,7);

for i=1:1000

% 加加速度 J

J = (a^2 * v) / (Tf*v*a - v^2 - a);

% Tk

T(1) = a / J;

T(2) = v / a - a / J; % t2 = v / a - t1;

T(3) = T(1);

T(4) = Tf - 2 * a / J - 2 * v / a; % t4 = Tf - 4*t1 - 2*t2;

T(5) = T(3);

T(6) = T(2);

T(7) = T(1);

% 根據(jù)T2和T4判斷S曲線的類型

if T(2) 《 -1e-6

a = sqrt(v*J);

display(‘t2《0’);

elseif T(4) 《 -1e-6

v = Tf*a/2 - a*a/J;

display(‘t4《0’);

elseif J 《 -1e-6

Tf = (v^2 + a) / (v*a) + 1e-1;

display(‘J《0’);

else

break;

end

end

A = a;

V = v;

Tf1 = Tf;

end

SCurveScaling

function s = SCurveScaling(t,V,A,J,T,Tf)

% J = (A^2 * V) / (Tf*V*A - V^2 - A);

% T(1) = A / J;

% T(2) = V / A - A / J; % T(2) = V / A - T(1);

% T(3) = T(1);

% T(4) = Tf - 2 * A / J - 2 * V / A; % T(4) = Tf - 4*T(1) - 2*T(2);

% T(5) = T(3);

% T(6) = T(2);

% T(7) = T(1);

%%

if (t 》= 0 && t 《= T(1))

s = 1/6 * J * t^3;

elseif ( t 》 T(1) && t 《= T(1)+T(2) )

dt = t - T(1);

s = 1/2 * A * dt^2 + A^2/(2*J) * dt.。.

+ A^3/(6*J^2);

elseif ( t 》 T(1)+T(2) && t 《= T(1)+T(2)+T(3) )

dt = t - T(1) - T(2);

s = -1/6*J*dt^3 + 1/2*A*dt^2 + (A*T(2) + A^2/(2*J))*dt 。..

+ 1/2*A*T(2)^2 + A^2/(2*J)*T(2) + A^3/(6*J^2);

elseif ( t 》 T(1)+T(2)+T(3) && t 《= T(1)+T(2)+T(3)+T(4) )

dt = t - T(1) - T(2) - T(3);

s = V*dt 。..

+ (-1/6*J*T(3)^3) + 1/2*A*T(3)^2 + (A*T(2) + A^2/(2*J))*T(3) + 1/2*A*T(2)^2 + A^2/(2*J)*T(2) + A^3/(6*J^2);

elseif ( t 》 T(1)+T(2)+T(3)+T(4) && t 《= T(1)+T(2)+T(3)+T(4)+T(5) )

t_temp = Tf - t;

dt = t_temp - T(1) - T(2);

s = -1/6*J*dt^3 + 1/2*A*dt^2 + (A*T(2) + A^2/(2*J))*dt 。..

+ 1/2*A*T(2)^2 + A^2/(2*J)*T(2) + A^3/(6*J^2);

s = 1 - s;

elseif ( t 》 T(1)+T(2)+T(3)+T(4)+T(5) && t 《= T(1)+T(2)+T(3)+T(4)+T(5)+T(6) )

t_temp = Tf - t;

dt = t_temp - T(1);

s = 1/2 * A * dt^2 + A^2/(2*J) * dt + A^3/(6*J^2);

s = 1 - s;

elseif ( t 》 T(1)+T(2)+T(3)+T(4)+T(5)+T(6) && t 《= T(1)+T(2)+T(3)+T(4)+T(5)+T(6)+T(7) + 1e5 )

t_temp = Tf - t;

s = 1/6 * J * t_temp^3;

s = 1 - s;

end

end

測試的代碼如下:TEST

%%

N = 500;

ThetaStart = 0; %起始位置

ThetaEnd = 90; %最終位置

VTheta = 90; %1 速度

ATheta = 135; %1.5 加速度

Tf = 1.8; % 總行程時間

v = VTheta/(ThetaEnd - ThetaStart);

a = ATheta/(ThetaEnd - ThetaStart);

v = abs(v);

a = abs(a);

Theta = zeros(1,N);

s = zeros(1,N);

sd = zeros(1,N);

sdd = zeros(1,N);

[TF,V,A,J,T] = SCurvePara(Tf, v, a);

display(J, ‘J:’);

display(TF,‘Tf:’);

display(V,‘v:’);

display(A, ‘da:’);

display(TF-Tf,‘dTf:’);

display(V-v,‘dv:’);

display(A-a, ‘da:’);

t=linspace(0,TF,N);

dt = t(2) - t(1);

for i = 1:N

if i == N

a = a;

end

s(i) = SCurveScaling(t(i),V,A,J,T,TF);

Theta(i) = ThetaStart + s(i) * (ThetaEnd - ThetaStart);

if i》1

sd(i-1) = (s(i) - s(i-1)) / dt;

end

if i》2

sdd(i-2) = (sd(i-1) - sd(i-2)) / dt;

end

end

subplot(3,1,1);

legend(‘Theta’);

xlabel(‘t’);

subplot(3,1,1);

plot(t,s)

legend(‘位移’);

xlabel(‘t’);

title(‘位置曲線’);

subplot(3,1,2);

plot(t,sd);

legend(‘速度’);

xlabel(‘t’);

title(‘速度曲線’);

subplot(3,1,3);

plot(t,sdd);

legend(‘加速度’);

xlabel(‘t’);

title(‘加速度曲線’);

看到最終仿真結(jié)果和預期相同;

fe0f71da-9910-11eb-8b86-12bb97331649.jpg

最后再看一下T形和S形速度曲線規(guī)劃的效果對比:

5 總結(jié)

本文只對7段的S曲線規(guī)劃做了詳細的推導和介紹,matlab中的程序?qū)τ?段和5段都有做實現(xiàn),很多是在理想情況下進行推導的,初始速度默認為0,終止速度也為0,并且假設(shè)加減速區(qū)域相互對稱。最終運行結(jié)果符合預期效果。

“文中難免有錯誤和紕漏之處,請大佬們不吝賜教創(chuàng)作不易,如果本文幫到了您;

6 參考

[^1]:陳友東 魏洪興 王琦魁。數(shù)控系統(tǒng)的直線和 S 形加減速離散算法[D]。北京:中國機械工程,2010.

[^2]:郭新貴 李從心 S 曲線加減速算法研究 上海交通大學國家模具 CAD 工程研究中心 , 200030
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    189

    文章

    3025

    瀏覽量

    238703
  • 運動控制
    +關(guān)注

    關(guān)注

    5

    文章

    821

    瀏覽量

    34537

原文標題:硬核 | S速度曲線規(guī)劃算法總結(jié)

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    減速機與變頻器區(qū)別,在哪種情況下可以互換?

    嚙合實現(xiàn)速比轉(zhuǎn)換,典型結(jié)構(gòu)包含行星輪系和擺線針輪。 轉(zhuǎn)矩放大特性:輸出轉(zhuǎn)速降低時轉(zhuǎn)矩呈線性增長,如1:10減速比可使轉(zhuǎn)矩放大至10倍。 效率曲線:機械效率通常在85%-95%之間,高負載時效率保持穩(wěn)定。 2. 變頻器(以矢量控制
    的頭像 發(fā)表于 02-13 07:38 ?66次閱讀
    <b class='flag-5'>減速</b>機與變頻器區(qū)別,在哪種情況下可以互換?

    TMCM-1316:S 加減速 + 256 微步 步進控制更精準

    一款在運動控制細節(jié)上表現(xiàn)突出的模塊——TMCM-1316StepRocker,看看它是如何通過S加減速曲線與最高256微步細分技術(shù),讓步進電機的運動控制邁向新臺
    的頭像 發(fā)表于 02-09 16:45 ?776次閱讀
    TMCM-1316:<b class='flag-5'>S</b> <b class='flag-5'>型</b><b class='flag-5'>加減速</b> + 256 微步 步進控制更精準

    【社區(qū)之星】向愨——通過文檔來梳理自己的思路,讓自己思維更細致,更規(guī)范

    控制手柄開發(fā) 各式小車運動控制算法,兩輪差速,90度全向三輪,90度全向四輪,麥克拉姆輪,汽車轉(zhuǎn)向底盤控制 算法類,運動路徑規(guī)劃算法,基于小車運動定位算法,紅外熱成像標定
    發(fā)表于 12-19 10:35

    蚊子翅膀不用噴金也能看?聊聊掃描電鏡用“鏡筒內(nèi)加減速”死磕低電壓成像

    問題進行了底層優(yōu)化。今天,我們就從技術(shù)角度,拆解一下這次升級的含金量。 1、鏡筒內(nèi)加減速:低電壓下的無損觀測 這是本次升級最大的亮點之一。我們在鏡筒設(shè)計上引入了鏡筒內(nèi)加減速技術(shù),并配合復合透鏡設(shè)計。簡單
    發(fā)表于 12-09 17:42

    三坐標測量機路徑規(guī)劃與補償技術(shù):核心算法解析

    三坐標測量的微米級精度背后,是精密的路徑規(guī)劃算法與實時補償技術(shù)在保駕護航。三坐標測量機的智能避撞算法保障了測量的安全與高效;溫度補償技術(shù)消除了環(huán)境的無形干擾;點云智能處理則讓海量數(shù)據(jù)蛻變?yōu)榫珳实墓こ?/div>
    的頭像 發(fā)表于 08-01 14:15 ?1593次閱讀
    三坐標測量機路徑<b class='flag-5'>規(guī)劃</b>與補償技術(shù):核心<b class='flag-5'>算法</b>解析

    只是加減速和轉(zhuǎn)彎,為啥自動駕駛這么難實現(xiàn)?

    并不是那么容易?自動駕駛汽車為何發(fā)展這么多年,還是沒有實現(xiàn)L5?今天智駕最前沿就來和大家聊聊這個話題。 車輛的運行軌跡看似簡單,但并不是簡單地“往前跑”或“停下來”那么簡單。任何一次加減速,都與車輛的質(zhì)量、輪胎與
    的頭像 發(fā)表于 06-27 12:20 ?623次閱讀
    只是<b class='flag-5'>加減速</b>和轉(zhuǎn)彎,為啥自動駕駛這么難實現(xiàn)?

    AGV小車中的動態(tài)路徑規(guī)劃算法揭秘

    并非一成不變時,動態(tài)路徑規(guī)劃能力就顯得至關(guān)重要。本文將深入探討幾種主流的動態(tài)路徑規(guī)劃算法(如A、Dijkstra、RRT等),并解析它們?nèi)绾卧贏GV行業(yè)中大顯身手。 為何需要動態(tài)路徑規(guī)劃? 1.簡介 傳統(tǒng)的靜態(tài)路徑
    的頭像 發(fā)表于 06-17 15:54 ?1695次閱讀
    AGV小車中的動態(tài)路徑<b class='flag-5'>規(guī)劃算法</b>揭秘

    升降速曲線對直線電機系統(tǒng)性能影響的研究

    摘要:對一次速度曲線升降速,二次速度曲線升降速,三次速度曲線升降速以及三角函數(shù)速度曲線升降速曲線進行了分析,并對后3種升降速
    發(fā)表于 06-17 08:48

    時源芯微 PCB 布線規(guī)詳解

    PCB 布線規(guī)詳解 走線方向控制規(guī)則 相鄰布線層的走線方向應采用正交結(jié)構(gòu),避免不同信號線在相鄰層沿同一方向走線,以此降低不必要的層間串擾。若因 PCB 板結(jié)構(gòu)限制(例如部分背板)難以避免該情況
    的頭像 發(fā)表于 05-20 16:28 ?911次閱讀

    實時生成步進電機速度曲線

    一種用于步進電機加速度的新算法可以實現(xiàn)速度曲線的實時參數(shù)化和計算。該算法可以在低端微控制器上運行,只使用簡單的定點算術(shù)運算并且不使用數(shù)據(jù)表。它以恒定的加速度和減速度形成線性斜坡時間的準
    發(fā)表于 05-14 15:09

    線性模組為什么會限定一個加減速時間?

    在工業(yè)自動化領(lǐng)域,線性模組作為精密傳動系統(tǒng)的核心部件,其加減速時間的設(shè)定直接影響設(shè)備性能與壽命。通過對運動控制原理的深入分析可以發(fā)現(xiàn),加減速時間的限定是機械結(jié)構(gòu)強度、電機特性、運動精度、能耗管理等
    的頭像 發(fā)表于 05-11 17:04 ?1141次閱讀
    線性模組為什么會限定一個<b class='flag-5'>加減速</b>時間?

    如何避免變頻器受負載沖擊?

    為避免變頻器受負載沖擊,可以采取以下措施: 1. 保證充足的加減速時間: ? ? 變頻器在開機或升速時具有軟起動功能,關(guān)機或減速時具有軟關(guān)斷功能。在設(shè)備允許的范圍內(nèi),應盡量增加加減速
    的頭像 發(fā)表于 04-21 18:10 ?1055次閱讀
    如何避免變頻器受負載沖擊?

    具身智能工業(yè)機器人路徑規(guī)劃算法成為破局關(guān)鍵

    在工業(yè)4.0與智能制造深度融合的今天,傳統(tǒng)路徑規(guī)劃算法已難以滿足動態(tài)生產(chǎn)環(huán)境的需求。面對復雜場景下的高精度避障、實時決策與多任務協(xié)同挑戰(zhàn),具身智能工業(yè)機器人路徑規(guī)劃算法成為破局關(guān)鍵。作為具身智能領(lǐng)域
    的頭像 發(fā)表于 03-28 15:01 ?1051次閱讀

    SVPWM的原理及法則推導和控制算法詳解

    ,而且使直流母線電壓的利用率有了很大提高,且更易于實現(xiàn)數(shù)字化。下面將對該算法進行詳細分析闡述。 文章過長,請點擊下方可查閱*附件:SVPWM的原理及法則推導和控制算法詳解.pdf
    發(fā)表于 03-14 14:51

    MCSDK位置控制S形軌跡規(guī)劃q軸電流存在沖擊怎么解決?

    工程師您好,我用MCSDK生成了FOC位置控制的代碼,在實際運行中發(fā)現(xiàn),每隔t0時間q軸電流出現(xiàn)一次沖擊(t0為S形軌跡規(guī)劃9段時間的一段),如下圖所示: 綠色線是用STM32CUBEMONITOR觀察到q軸電流。 下圖是S
    發(fā)表于 03-11 06:51