插補速度控制平滑處理控制小總結

2021-08-22 07:23:01 字數 2434 閱讀 2226

插補概念

在cnc數控車床中需要控制刀具沿著任意的曲線或者給定系列點走刀,而刀具很難沿著曲線行走,通常的做法是沒把曲線量化分割為直線線段圓弧線段兩種,這就涉及到直線插補,圓弧插補。所謂「插補」就是指在一條已知的起點o和終點a的曲線上進行資料點的密集化,插補的任務就是跟句給進速度要求,在起點o和終點a之間,計算曲線上的具體座標值。

clc;

clear;

pstart = [0,0];

pend = [8,14];

targetend = pend - pstart;

step = 0.2;

ndir = 0;

stepcount = 0;

xcurval=0;

ycurval=0;

stepmount = (abs(targetend(1)) + abs(targetend(2)))/step

output = zeros(stepmount,2);

ldevval=ycurval*targetend(1)-xcurval*targetend(2);

% 象限判斷

if targetend(1) > 0

if targetend(2) > 0

ndir = 1;

else

ndir = 4;

endelse

if targetend(2) > 0

ndir = 2;

else

ndir = 3;

endendndir

% for i = 1:setpmount

% end

while stepcount < stepmount

if ldevval>=0

% 偏差〉=0

switch ndir

case 1

xcurval = xcurval + step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 2

xcurval = xcurval - step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 3

xcurval = xcurval - step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 4

xcurval = xcurval + step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

otherwise

;end

ldevval = ldevval - targetend(2);

else

% 偏差<0

switch ndir

case 1

ycurval = ycurval + step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 2

ycurval = ycurval + step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 3

ycurval= ycurval - step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

case 4

ycurval= ycurval - step;

% insertpoint(xcurval,ycurval);

output(stepcount+1,:) = [xcurval,ycurval];

otherwise

;end

ldevval= ldevval + targetend(1);

endstepcount = stepcount + 1

endplot([0;targetend(1)],[0;targetend(2)])

hold on

plot(output(:,1),output(:,2))

執行效果,藍線為理想直線,紅線為刀具實際走過的線 

Heritrix控制抓取速度

heritrix通過三個引數來控制爬蟲抓取的速度,位於每個job的setting處,如圖 舉例來說,如果將delay factor設定為4,前一次抓取花費了500ms的時間,那麼要間隔 500ms 4 2s的時間才進行下一次的抓取 這個引數的好處在於它可以動態的控制抓取的速度,如果 繁忙,那麼自然每...

android gallery 滑動速度控制

gallery 畫廊 是android提供的乙個用於水平顯示的檢視控制項,但是預設的gallery滑動切換的時候,由於onfling的速度引數關係,一次會切換n多個,這樣的話互動性就不太友好了。那麼如何實現單屏切換呢,其實很簡單,寫乙個自定義的gallery類,該類繼承自gallery,然後重寫ga...

控制ScrollView滑動速度

農民伯伯 由於各個android平板觸控螢幕的材質不一樣,滑動效果會有一些區別,有的比較靈敏,有的比較遲鈍,這裡就遇到了要求控制滑動速度的需求.翻閱查詢scrollview的文件並搜尋了一下沒有發現直接設定的屬性和方法,這裡通過繼承來達到這一目的。public class slowscrollvie...