Sideways velocity control Model

Modelling sideways velocity control

Megachile willughbiella males are able to fly sideways in the direction perpendicular to the body axis. This behaviour is sometimes apparent as part of the chasing behaviour. Sideways velocity control has also been found with the hoverfly Syritta pipiens  (Collet and Land, 1975) and the solitary wasp Odynerus spinipes (Voss and Zeil, 1998).

Here the 2D model will be extended with sideways velocity control. The direction of the body, as a complex number, is given by exp(i.φ(k)). The direction perpendicular to the direction of the body is given by i* exp(i.φ(k)). For Syritta, the sideways velocity is approximately proportional to θe , defining the location of the female image on the male retina. This logical choice will be made here too.

The sideways velocity will be given by   exp(i.φ(k))*i*Kt*θefilt(k), here exp(i.φ(k)) is a unit vector in the direction of the body, exp(i.φ(k))*i  is a unit vector in the direction perpendicular to the body-axis. The magnitude of the sideways velocity is proportional to θe . Here a filtered version of θe will be used to simulate the neural delay

θefilt(k)=( exp(-T/τf))* θefilt(k-1)+(1- exp(-T/τf))* θe(k). (1)

The constant of proportionality is Kt. The expression for the sideways velocity will be added to the expression for calculating the velocity vM(k) via the filter with timeconstant τ.

vM(k) without sideways velocity control :

vM(k)=(exp(-T/τ))*vM(k-1)+(1- exp(-T/τ))*spfilt(k)*exp(i.φ(k))

vM(k) with sideways velocity control :

vM(k)=(exp(-T/τ))*vM(k-1)+(1- exp(-T/τ))*[spfilt(k)*exp(i.φ(k))+ exp(i.φ(k))*i*Kt*θefilt(k)]  (2)

The complete 2D algorithm with sideways velocity control :

Define startconditions for k=1

for k=2 to Nend

xM(k)=xM(k-1)+ vM(k-1)*T

r(k) = xF(k)-xM(k)


spfilt(k)=(exp(-T/τv))*spfilt(k-1)+(1- exp(-T/τv))*sp

φ(k)=φ(k-1)+ αfilt(k-1)*T


θefilt(k)=( exp(-T/τf))* θefilt(k-1)+(1- exp(-T/τf))* θe(k).

vM(k)=(exp(-T/τ))*vM(k-1)+(1- exp(-T/τ))*[spfilt(k)*exp(i.φ(k))+ exp(i.φ(k))*i*Kt*θefilt(k)]

d θe(k)=( θe(k)- θe(k-1))/T

α(k)=KrB*sin(θe(k))+KdB*d θe(k)

αfilt(k)=( exp(-T/τf))* αfilt(k-1)+(1- exp(-T/τf))*α(k)


Change over to a small reference distance to initiate a chase.

Collision detection



Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.