示例#1
0
    def __init__(self,
                 nav_data,
                 div=5,
                 dx=0.0,
                 dy=1.6757135024103853,
                 dth=0.0,
                 pc1=1 / 3,
                 pc2=9 / 24,
                 ph=0.2):
        """Cria objeto navio, com os parametros passados. Os valores pc1, pc2 e
        ph indicam o inicio da curvatura e dos chanfros"""
        self.div = div
        self.t = np.arange(self.div) / self.div
        self.L = nav_data.loc['Loa']
        self.H = nav_data.loc['B']
        self.T = nav_data.loc['T']
        self.dx = dx
        self.dy = dy
        self.dth = dth
        self.c1 = self.L * pc1
        self.c2 = self.L * pc2
        self.h2 = self.H * ph
        self.Rz = rotation.matrix([0, 0, 1], dth)

        self.LWT = 0.50 * nav_data.loc['Delta_m']
        self.Md = nav_data.loc['Delta_m']  #self.LWT + self.DWT
        self.D = nav_data.loc['De']
        self.G = self.T - self.D
        self.z = nav_data.loc['KG'] - self.D
示例#2
0
    def at_a(self, dx, dy, dth):
        """atualiza os pontos de amarracao no navio em funcao do cg e de uma matriz de rotacao"""
        self.xa = self.a[0] - self.cg_ant[0]
        self.ya = self.a[1] - self.cg_ant[1]
        self.za = self.a[2]
        self.Rz = rotation.matrix([0, 0, 1], dth)

        self.aux = np.array([self.xa, self.ya, self.za])
        self.aux = np.dot(self.Rz, self.aux)

        self.aux[0] = self.aux[0] + self.cg_ant[0] + dx
        self.aux[1] = self.aux[1] + self.cg_ant[1] + dy

        self.a = np.array([self.aux[0], self.aux[1], self.aux[2]])
示例#3
0
    def coordnav(self, dx, dy, dth):
        """Atualiza as coordenadas obtidas na funcao pontos aplicando deslocamentos
        dx, dy e dth (rotacao)"""
        self.cg_ant = np.array(self.cg)
        self.coord[0] = self.coord[0] - self.cg[0]
        self.coord[1] = self.coord[1] - self.cg[1]
        self.Rz = rotation.matrix([0, 0, 1], dth)
        self.coord = np.dot(self.Rz, self.coord)

        self.coord[0] = self.coord[0] + self.cg[0] + dx
        self.coord[1] = self.coord[1] + self.cg[1] + dy

        self.px = self.coord[:, self.px_index]
        self.Bx = self.px - self.cg
        self.basex = self.Bx / math.sqrt(np.dot(self.Bx, self.Bx))