下午打算計算驗證一下迴旋曲線公式,想偷個懶從網上down個**對比驗證,但未檢索到現成**。關於迴旋曲線離散點(x,y)的計算分析眾多,但介紹並不詳細,甚至公式和計算方法也都不同。為不枉費半天的查詢、驗證工作,也為方便同仁參考,本文介紹基礎的迴旋線計算過程及**,本次計算未涉及座標變換。
本部分可忽略不看,直接看第二部分『』迴旋線的計算『』。迴旋線的計算主要依照以下公式進行,主要在於清晰公式中的變數定義。
迴旋曲線上任意點座標計算公式:
式中,a就是曲率變化率,它可能是正數,也可能是負數。a的定義為:
a與a的關係滿足公式
為了說明a的符號,以及它與a的關係,請見下圖
在數學座標系下k0+000處的曲率為1/100(左轉為正),k0+150處的曲率為-1/50(右轉為負)。可知:
曲率變化率
(注意a為曲率關於迴旋線長度的變化率,及第一節中的dk/dl)。實際上,迴旋線的線長l為設計值,在建立一條迴旋線的時候手動設定。
根據公式,假定我們現在需要一條迴旋線,(1)起點位置的曲率為0,(2)終點位置的曲率為 1/rmin,rmin為終點位置的曲率半徑,(3)迴旋線的長度為2m。
則, a = (0 - (1/rmin)) / 2;
此時將a,l帶入公式得到是迴旋線最後乙個點的x,y值。如何得到整條迴旋線的x,y值呢?根據計算任意點的公式,我們將迴旋線長度l離散化。0~l之間均勻取若干個值,a不變,帶入計算公式即可得近似整條迴旋線的x,y值。
在matlab中實現的具體計算過程:
main.m
%% 呼叫 clothoid函式,並將終點位置的曲率半徑設定為 0.1:0.2:3
for i = 0.1:0.2:3
clothoid(i)
end
clothoid.m
%%%% 計算迴旋曲線,並繪圖
function = clothoid(rmin)
n = 100; %%
sk = 2; %% 曲線長
c = 1 / rmin / sk; %% 曲率變化率,即上文中的曲率變化率 a
x = zeros(1,n);
y = zeros(1,n);
for sk_i = sk / n : sk / n : sk
result_x = 0; %% 初始化x座標點的值
result_y = 0; %% 初始化y座標點的值
for i = 0 : n %% 計算x
result_x = result_x + ((-1) ^ i) * (c ^ (2 * i)) * (sk_i ^ (4 * i + 1)) / ((2 ^ (2 * i)) * (4 * i + 1) * fctorial(2 * i));
endx(int32(sk_i / sk * n)) = result_x;
for i = 0 : n %% 計算y
result_y = result_y + ((-1) ^ i) * (c ^ (2 * i + 1)) * (sk_i ^ (4 * i + 3)) / ((2 ^ (2 * i + 1)) * (4 * i + 3) * fctorial(2 * i + 1));
endy(int32(sk_i / sk * n)) = result_y;
endhold on;
plot(-x,-y);
hold on;
plot(-x(end),-y(end),'*'); %%迴旋曲線的最後乙個點
axis equal;
end
fctorial.m
%% 階乘函式
function y = fctorial(x)
n = 1;
for i = 1 : x
n = n * i;
endy = n ;
end
得到的結果為:
各螺旋線的線長相同(2m),曲率變化率不同。
如有幫助,請點贊哦。
基於迴旋曲線的平行泊車路徑規劃
python繪製緩和曲線 步進電機頻率緩和曲線
我正在寫一些控制五相步進電機的軟體。步進電機的速度由我傳送到電機控制器的脈衝頻率控制。我目前面臨的挑戰是,我想在運動中放鬆和放鬆。我實際上是在複製一些我沒有源 的舊軟體的行為。我對放鬆的邏輯有乙個理解,它的行為是這樣的 當結束 持續速度較慢時,緩解速度較慢 耗時較長 當結束 持續速度快時,緩解更快 ...
Occt的3D Geometry的曲線和曲面表示
cad 系統出於精度的要求,通常使用曲線和曲面對模型進行精確表示,因此曲線 曲面的幾何表示,就是比較基礎也比較重要的東西了。通常,曲線 曲面的表示有三種方式 顯示表示 形如 曲線的 y f x 隱式表示 行如 f x,y 0 引數表示,形如 x t u t y t v t 習慣上,選擇引數表示形式,...
函式的單調性和曲線的凹凸性
函式單調性是針對某乙個區間而言的,是乙個區域性性質。學習函式單調性時 針對函式定義和特定函式的性質進行判斷。單調性知識點概述 單調性改變的點為駐點或是極值點 駐點或極值點的求解方法 一階求導 判斷函式單調性的方法有很多,這邊推薦定義法和求導法。定義法 在區間d上,任取x1,x2,令x1求導法 如果函...