def generate_mopso_velocity(self, timer, finalwaypoints, num, TMAX, wstart, wend): vel = [0, 0, 0] R1 = (random.randrange(0,100,10)/100) R2 = (random.randrange(0,100,10)/100) R3 = (random.randrange(0,100,10)/100) w = (wstart - (wstart - wend)*((timer / TMAX)**2)) if self.__gbestloc[0] and not self.__bestlocation[0]: vel[0] = w*(self.__velocity[0]) + R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]) + R2*1000*(self.__gbestloc[0]-self.get_pos()[0]) vel[2]=0 vel[1] = w*(self.__velocity[1]) + R3*1000*(finalwaypoints[self.id-1][1]-self.get_pos()[1]) + R2*1000*(self.__gbestloc[1]-self.get_pos()[1]) elif not self.__gbestloc[0] and not self.__bestlocation[0]: #print(R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]),R2*1000*(self.__gbest[0]-self.get_pos()[0]),R1*1000*(self.__bestlocation[1]-self.get_pos()[1]) ) vel[0] = w*(self.__velocity[0]) + R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]) + R1*1000*(self.__bestlocation[0]-self.get_pos()[0]) vel[2]=0 vel[1] = w*(self.__velocity[1]) + R3*1000*(finalwaypoints[self.id-1][1]-self.get_pos()[1]) + R1*1000*(self.__bestlocation[1]-self.get_pos()[1]) elif not self.__bestlocation[0] and not self.__gbestloc[0]: vel[0] = w*(self.__velocity[0]) + R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]) vel[2]=0 vel[1] = w*(self.__velocity[1]) + R3*1000*(finalwaypoints[self.id-1][1]-self.get_pos()[1]) else: vel[0] = w*(self.__velocity[0]) + R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]) + R2*1000*(self.__gbest[0]-self.get_pos()[0]) + R1*1000*(self.__bestlocation[0]-self.get_pos()[0]) vel[2]=0 vel[1] = w*(self.__velocity[1]) + R3*1000*(finalwaypoints[self.id-1][1]-self.get_pos()[1]) + R2*1000*(self.__gbestloc[1]-self.get_pos()[1]) + R1*1000*(self.__bestlocation[1]-self.get_pos()[1]) vel = self.inter_uav_collsion(vel) v_mopso = inside_circle(vel) return vmopso
def generate_mopso_velocity(self, timer, finalwaypoints, num, TMAX, wstart, wend, GlobalUavData): vel = [0, 0, 0] print("generating velocity,,,") print("...") R1 = (random.randrange(0, 100, 10) / 100) R2 = (random.randrange(0, 100, 10) / 100) R3 = (random.randrange(0, 100, 10) / 100) w = (wstart - (wstart - wend) * ((timer / TMAX)**2)) if self.__gbestloc[0] and not self.__bestlocation[0]: print("gbest something and best location nothing") vel[0] = w * (self.__velocity[0]) + R3 * 1000 * ( finalwaypoints[self.id - 1][0] - self.get_pos()[0] ) + R2 * 1000 * (self.__gbestloc[0] - self.get_pos()[0]) vel[2] = 0 vel[1] = w * (self.__velocity[1]) + R3 * 1000 * ( finalwaypoints[self.id - 1][1] - self.get_pos()[1] ) + R2 * 1000 * (self.__gbestloc[1] - self.get_pos()[1]) elif not self.__gbestloc[0] and self.__bestlocation[0]: #print(R3*1000*(finalwaypoints[self.id-1][0]-self.get_pos()[0]),R2*1000*(self.__gbest[0]-self.get_pos()[0]),R1*1000*(self.__bestlocation[1]-self.get_pos()[1]) ) print("both nothiung") vel[0] = w * (self.__velocity[0]) + R3 * 1000 * ( finalwaypoints[self.id - 1][0] - self.get_pos()[0] ) + R1 * 1000 * (self.__bestlocation[0] - self.get_pos()[0]) vel[2] = 0 vel[1] = w * (self.__velocity[1]) + R3 * 1000 * ( finalwaypoints[self.id - 1][1] - self.get_pos()[1] ) + R1 * 1000 * (self.__bestlocation[1] - self.get_pos()[1]) elif not self.__bestlocation[0] and not self.__gbestloc[0]: print("gbest nothing and best location something") vel[0] = w * (self.__velocity[0]) + R3 * 1000 * ( finalwaypoints[self.id - 1][0] - self.get_pos()[0]) vel[2] = 0 vel[1] = w * (self.__velocity[1]) + R3 * 1000 * ( finalwaypoints[self.id - 1][1] - self.get_pos()[1]) else: print("gbest something and best location nothing") vel[0] = w * (self.__velocity[0]) + R3 * 1000 * (finalwaypoints[ self.id - 1][0] - self.get_pos()[0]) + R2 * 1000 * ( self.__gbestloc[0] - self.get_pos()[0]) + R1 * 1000 * ( self.__bestlocation[0] - self.get_pos()[0]) vel[2] = 0 vel[1] = w * (self.__velocity[1]) + R3 * 1000 * (finalwaypoints[ self.id - 1][1] - self.get_pos()[1]) + R2 * 1000 * ( self.__gbestloc[1] - self.get_pos()[1]) + R1 * 1000 * ( self.__bestlocation[1] - self.get_pos()[1]) vel = self.inter_uav_collsion(vel, GlobalUavData) v_mopso = inside_circle(vel) return v_mopso
def velocity_post_drop(self): """ """ vel = [0,0,0] curr_vel = self.__velocity vel[0] = 100000*(self.__droplocation[0]-(vehicle[j].get_pos()[0])) vel[1] = 100000*((self.__droplocation[1])-(vehicle[j].get_pos()[1])) vel[2] = 0 vel = self.inter_uav_collsion(j,n,vel) vc = inside_circle(vel) return vc
def velocity_post_drop(self, GlobalUavData): """ """ vel = [0, 0, 0] curr_vel = self.__velocity vel[0] = 100000 * (self.__droplocation[0] - (self.get_pos()[0])) vel[1] = 100000 * ((self.__droplocation[1]) - (self.get_pos()[1])) vel[2] = 0 vel = self.inter_uav_collsion(vel, GlobalUavData) vc = inside_circle(vel) return vc