Beispiel #1
0
def setLimites(U0):
    #-----------------------------------------------------------
    #variáveis globais
    #----------------------------------------------------------
    glob = GlobalVariables()
    thetaM = glob.getThetaM()
    phiM = glob.getPhiM()
    KM = glob.getKM()
    BSSM = glob.getBSSM()
    #global thetaM, phiM, KM, BSSM
    #-----------------------------------------------------------
    #Separar as variaveis de controle
    #----------------------------------------------------------
    u1 = U0[0, 0]
    u2 = U0[1, 0]
    u3 = U0[2, 0]
    u4 = U0[3, 0]
    u5 = U0[4, 0]
    #-----------------------------------------------------------
    #tratar os dados da variável de controle - theta
    #-----------------------------------------------------------
    if u1 < 0:
        u1 = 0

    if u1 > thetaM:
        u1 = thetaM

#-----------------------------------------------------------
#tratar os dados da variável de controle - phi
#-----------------------------------------------------------
    if u2 < 0:
        u2 = 0

    if u2 > phiM:
        u2 = phiM

#-----------------------------------------------------------
#tratar os dados da variável de controle - K
#-----------------------------------------------------------
    if u3 < 0:
        u3 = 0

    if u3 > KM:
        u3 = KM
#-----------------------------------------------------------
#tratar os dados da variável de controle - BSS
#-----------------------------------------------------------
    if u4 < 0:
        u4 = 0

    if u4 > BSSM:
        u4 = BSSM

#-----------------------------------------------------------
#retorno da função
#vetor corrigido
#-----------------------------------------------------------
    U = np.array([[u1], [u2], [u3], [u4], [u5]])

    return U
Beispiel #2
0
zod = 0.22  #0.244 #z inicial (muito pequeno apens alguns centimetros)
dxod = 0.24  #velocidade desejada no MS
dyod = 0.00  #condição de balanço
dzod = 0.00  #velocidade em z (igual a zero condição necessaria)

#-----------------------------------------------------------
#Tamanho do passo (não sendo usado ainda estudar como incorporar
#esse dado)
#-----------------------------------------------------------
lstep = 0.5 + 0.1 * (dxod - 1)
#-----------------------------------------------------------
#valores máximos das variáveis de controle
#reduzir o espaço de busca
#-----------------------------------------------------------
thetaM = glob.getThetaM()
phiM = glob.getPhiM()
KM = glob.getKM()
expK = glob.getExpK()  #ordem de grandeza da constante massa-mola
BSSM = glob.getBSSM()
#params = [thetaM;phiM;KM;expK;BSSM];
#-----------------------------------------------------------
#variavel de controle inicial
#modificar os valores obtidos aqui
#Geralmente na literatura são usados x para variável de estado
#e u para a variável de controle sendo usados essas letras
#em maiusculo para representação
#-----------------------------------------------------------

#phi = 0.5000000000
#theta = 0.3801423352
#k = 19611.4821640244