domingo, 26 de agosto de 2018

Mecânica e engranagens

Engrenagens


    As engrenagens podem ser de vários tipos e formas. Como tive dificuldade em encontrar as explicações básicas, apresento aqui tudo o que pude aprender sobre elas.

Coroa e Pinhão

     Engrenagens estão sempre associadas com outras, na transmissão de movimento.
    Uma engrenagem básica é um disco com eixo rotativo no cento, geralmente metálico ou de plástico, com borda lateral dentada que permite rotação e torque à outra engrenagem aumentando ou deduzindo potência.
    Quando duas engrenagens engrenam, poderá haver diferenças de tamanho entre elas. Assim:

    A engrenagem maior é chamada de: coroa
    A engrenagem menor é chamada de: pinhão

    Se a força motriz vier da  coroa, haverá aumento da velocidade de rotação em relação ao pinhão.
    Se a força motriz vier do pinhão, haverá redução da velocidade de rotação em relação a coroa.


Tipos de Engrenagens

Quanto a disposição dos dentes eles podem ter os formatos:


    Retos: Quando estão dispostos de forma paralelo entre si e o eixo. Podem não ser suaves e ser barulhentas.

    Transversais: Quando os dentes são paralelos e estão em diagonal em relação ao eixo e ao disco.

   Helicoidais ou espirais: Estão dispostos de forma espiral em relação ao eixo (como uma hélice). Ideal para suavidade e redução de barulho. Podem ser duplas.



Quanto a disposição dos eixos:


    Eixo paralelo: Os eixos estão virtualmente no mesmo sentido.

   Eixo cruzado: Variação de engrenagens onde os eixos não são paralelos e possuem um ponto virtual de encontro. Comum em roscas sem fim. As bordas laterais das duas engrenagens engrenam.

   Hipoide: Variação de engrenagens onde os eixos não são paralelos. A borda de uma das engrenagens engrenam na face de outra engrenagem. Comum em variações de engrenagens cônicas.



Quanto ao formato e posicionamento dos dentes das engrenagens:


    Cremalheira:
        Engrenagem na forma de barra reta (ou trilho) dentado, que transforma o movimento circular em retilíneo. No caso do uso com pinhão, substitui a cora, pois pode ser bem comprida.

    Cilíndrico ou em disco reto:
     Quando os dentes estão nas bordas laterais. Somente é possível construir uma dupla de engrenagens em disco que se cruzem: se os dentes forem helicoidais. É possível construir uma dupla de engrenagens em paralelo com dentes retos ou helicoidais.
        Rosca sem fim:
        Variação de engrenagem cilíndrica ou de disco. É um cilindro com dentes helicoidais que lembra um parafuso. Geralmente é a fonte motriz para uma coroa ou cremalheira.

    Cônica:
       Quando os dentes estão nas laterais de um cone.

   Interna:
       Sistema de engrenagens onde uma funciona dentro de outra. Exemplo: Encontrado nos motores wankel. Roda do calendário Maia Tzolkin.
        Planetária:
      Quando um conjunto de engrenagens está dentro de um anel dentado lembrando um sistema planetário
        Exemplo: Encontrado nas turbinas eólicas. Maquinas de lavar (tanquinho).

   Catraca (ou roda de escape) ancora (ou alavanca):
        Engrenagem que somente permite a liberação do movimento de acordo com um tempo determinado pela liberação de uma âncora.

   Leque ou Setor:
        Semelhante a engrenagem em disco, mas ao invés de possuir dentes por todo o perímetro de 360° do disco, possui dentes em um ângulos menores que 360°. Muitas delas lembram um disco partido ou leque.

    Correia e polia | Corrente e coroa:
        A vantagem no uso destes elementos é a redução do peso e a distância alcançada para a transmissão do movimento.
        Correia e polia:         
            Lisas: Apenas para transmitir o movimento, sem intenção em sincronização
                Exemplos encontrados em: Motores de carro, lixadeiras, tornos
            Dentadas: Quando é importante a sincronização do movimento
                Exemplos encontrados em: impressoras
            Custo alto para substituição, alta flexibilidade e durabilidade
        Corrente e coroa:
        Quando é importante a sincronização do movimento. Baixa perda de potencia e baixa flexibilidade. Necessitam de manutenção constante. Custo baixo. Exemplos encontrados em: motocicletas, bicicletas


Biela:


    Transforma o movimento retilíneo alternado em movimento circular. Exemplos encontrados em: Pistão e biela dos motores de combustão, motor Stirling, maquinas a vapor e locomotivas antigas
 

Volante:


     Motores de combustão 4 tempos: admissão do gás, compressão do gás, explosão e escape do gás.       As pressões internas dos gazes momento da compressão do combustível nos interiores das câmaras de combustão tem potencial para parar o funcionamento do motor. Para impedir essa parada do motor é necessário uma força inercial que dê continuidade ao ciclo de admissão, compressão, explosão e escape. A peça fundamental para isso é o volante que estando em rotação possui energia inercial que é transferida às bielas do motor, permitindo que o movimento supere a pressão contrária da compressão do combustível.

Questão: teoria dos números (Primos)

<pre>


se limite_x tende a infinito,

note que para a posição 13567
13567 + | maior = 2*3*5*7*11*13*17*19*31*41*43* | menor = 23*29*37* res = 530117182249.

O número 17659 obtido na posição 13608 é mais de 30 milhões de vezes menor que o maior número anterior (13567)
530117182249 / 17659 = 30019660.357268248

13608 - | maior = 7*13*23*31*41*43* | menor = 2*3*5*11*17*19*29*37* res = 17659.

É possível obter os números primos 19,23,43,53,59,61,71,79,83,109,113,127,137...?

<script>

    var limite_x=3;

    function getVal()
    {

        p = new Array();
        p.push(2)
        prime=true;
   
        while(limite_x<200000)
        {
            for(var i=0; i<p.length; i++)
            {
                prime=true;
                if( limite_x%p[i]==0 )
                {
                    prime=false;
                    break
                }
            }
            if( prime )
            {
                p.push(limite_x);
            }
            limite_x++;
        }


        var dentro_p = new Array()
        var fora_p = new Array()


        for(var k=1; k<p.length; k++)
        {
            resp = parseInt( k >>> 0 ).toString( 2 );

            resp = resp.split("").reverse().join("");

            var n_maior=1;
            var n_menor=1;
            var s_m1=""
            var s_m2=""

            for(var i=0; i<resp.length; i++)
            {
                n_maior *= (resp[i]=="1"?p[i]:1)
                if(resp[i]=="1")
                s_m1 += p[i]+"*"

                n_menor *= (resp[i]=="0"?p[i]:1)
                if(resp[i]=="0")
                s_m2 +=p[i]+"*"
            }

            if(n_maior>n_menor)
            {
                document.write( k + " - | maior = " + s_m1 + " | "  + "menor = "+ s_m2 + " res = "  + (n_maior-n_menor)+"." );
                document.write( "</br>" );
                document.write( k + " + | maior = " + s_m1 + " | "  + "menor = "+ s_m2 + " res = "  + (n_maior+n_menor)+"." );
                document.write( "</br>" );


                dentro_p.push(n_maior-n_menor)
                dentro_p.push(n_maior+n_menor)
            }
        }



        for(var j=0; j<p.length; j++ )
        {
            var fora=true;
            for(var k=0; k<dentro_p.length; k++)
            {
                if(dentro_p[k]==p[j])
                {
                    fora=false;
                    break
                }
            }
            if(fora)
            {
                fora_p.push(p[j])
            }
        }
        document.write( "</br>" );
        document.write( fora_p );


    }   
    getVal();

</script>
</pre>

quinta-feira, 16 de agosto de 2018

Indecidivel problema generalizado de Collatz


Lendo sobre matemática na coluna do Sr. Marcelo Viana encontrei um quebra cabeça que ainda está em aberto:
https://www1.folha.uol.com.br/colunas/marceloviana/2018/08/problemas-matematicos-o-facil-pode-ser-muito-dificil.shtml

Outra fonte:
http://people.cs.uchicago.edu/~simon/RES/collatz.pdf

1)

Brincando e observando o problema, pude perceber que para descobrir se NÃO é válido para todos os números, precisamos saber se existe algum número que retorna a ele mesmo após várias interações repetidas de:

multiplicar por 3 e somar 1
dividir por 2





2)

Supondo que um número pudesse crescer indefinidamente e por ultimo ter uma redução dividindo por 2, que consideraremos como estado final, encontrei uma pirâmide de soluções baseadas na seguinte formula:
sendo k a posição da construção, variando de zero a infinito de um em um:

2k+1 → (gera) 3k+2

2k+1 3k+2

Assim, se temos um k=3 significa que para o número 2*3+1, que é 7, pode-se obter, pela formulação de Collatz o numero 11:
Assim, a partir de 7, que é impar, temos (3*7+1)/2 que é 11

Partindo dessa formula, percebi que é possível construir uma pirâmide com a seguinte estrutura:

0

1, 2
3, 5, 8
7, 11, 17, 26
15, 23, 35, 53, 80
31, 47, 71, 107, 161, 242

.
.
.

O primeiro numero de cada linha é obtido a partir  das potencias de 2 subtraídas de um: 1, 2, 4, 8, 16...
Os números seguintes a estes primeiros é obtido a partir da soma dos primeiros pelo seu imediatamente acima somado de um. Por exemplo, para 35 gerar 53, pega-se 35 + (17+1) = 53

Aparentemente, a partir dos números já criados na pirâmide, é possível construir os números mais a frente pela formula

2k+1 3k+2

Assim, se o k = 8, que aparece no final da linha 3, temos que:
(2*8+1 = 17
) → (3*8+2 = 26)

Desconsiderei todos os outros números que não aparecem, pois eles são redutíveis a qualquer outro número que possa aparecer na pirâmide. Seja pela divisão de 2 ou seja pela multiplicação de 3 soma um. 



<html>
<script>
    function getVal()
    {
        var p=0;
        velho = new Array();
        velho.push(0);
        while(p<16)
        {
            novo = new Array();
            document.write(" k = " + p + " ... " );
            novo.push(Math.pow(2,p)-1 );
            document.write("  " + novo[0] );
            for(var i=0; i<p; i++)
            {
                novo.push(novo[i] + velho[i] +1 );
                document.write(" - " + novo[i+1] );
            }
            velho = novo;
            document.write("</br>");
            p++;
        }
    }   
    getVal();   
</script>
</html>