Pesquisar neste blog

07/02/2021






a) Encontre H(Z), faça diagrama de polos e zeros e indique a RDC
Resolução:

1.a)
















































b) Encontre a resposta ao impulso do sistema
Resolução:


























c) Escreva a equação de diferença que caracteriza o sistema
Resolução:


















d) O sistema é estável e causal ?
Resolução:


2) A entrada de um sistema LIT causal é x[n]=u[-n-1]+(1/2)n u[n]. A transformada Z da saída desse sistema é 𝑌(𝑧) = 









a) Determine H(z) e sua RDC
b) Qual a RDC para Y(z) ?
c) Determine y[n].

Resolução:








2.b)


2.c)


3) : Um sistema LIT tem resposta ao impulso definida por: 








Determine y[n], numericamente e graficamente, para x[n]= u[n]-u[n-4].

Resolução:







































4)  Considere um sistema LIT que seja estável e para o qual H(z), a transformada Z da resposta ao impulso, seja dada por:







Suponha que x[n], a entrada do sistema, seja uma sequência degrau unitário.

a) Determine a saída y[n] calculando a convolução discreta de x[n] com h[n].
b) Determine a saída y[n] calculando a transformada inversa z de Y(z).
 
Resolução :

4.a)





















4.b)

























5)  Considere a figura abaixo onde se tem a associação em cascata de dois sistemas.

a) Esboce w[n] se x[n]=(-1)n u[n]. Determine também y[n].

b) b) Determine e esboce a resposta ao impulso total do sistema em cascata, isto é, faça um gráfico da saída y[n]=h[n] quando x[n]=δ[n].

c) Esboce w[n] para x[n]=2 δ[n]+4δ[n-4]-2δ[n-12].

















Resolução :

5.a)






































5.b)





































5.c)


12/01/2021

Mensagem automática no Google Planilhas do Excel VBA

function onEdit() {//função salva automática sempre que houver alguma alteração
  
  Browser.msgBox("Olá Mundo!")
  
}



 


03/01/2021

Proteção contra curto - circuito: Exercícios Resolvidos

Lista de atividades: Proteção

1) Dimensionamento do dispositivo de proteção contra curto-circuito para o motor trifásico de 5cv de alimentação (fase-fase) de 220V, fator de potência igual a 0,7. O rendimento do motor é de 0,6. A relação IP/IN = 5. O tempo de partida é 5 segundos. 

Determinar a corrente nominal e a corrente de partida dada pela Equação 1.1







Resolução:





2) Dimensionamento do dispositivo de proteção contra curto-circuito para o motor trifásico de 14cv de alimentação (fase-fase) de 380V, fator de potência igual a 0,9. O rendimento do motor é de 0,85. A relação IP/IN = 6. O tempo de partida é 5 segundos.

Determinar a corrente nominal e a corrente de partida dada pela Equação 1.2

 





Resolução:





3) Dimensionamento do dispositivo de proteção contra curto-circuito para o motor trifásico de 50 cv de alimentação (fase-fase) de 380V, fator de potência igual a 0,92. O rendimento do motor é de 0,85. A relação IP/IN = 6. O tempo de partida é 7 segundos.

 Determinar a corrente nominal e a corrente de partida dada pela Equação 1.3








Resolução:











































4)  Dimensionamento do dispositivo de proteção contra curto-circuito para o motor trifásico de 30 cv de alimentação (fase-fase) de 380V, fator de potência igual a 0,92. O rendimento do motor é de 0,85. A relação IP/IN = 7. O tempo de partida é 6 segundos.

Determinar a corrente nominal e a corrente de partida dada pela Equação 1.4

 






Resolução:









Dimensionamento de condutores pelo método da queda de tensão

Um motor indução trifásico de 20 cv com alimentação em 220V, 60 Hz, fator de potência 0,8 e rendimento 0,96. A corrente de partida é cinco vezes a nominal. Está instalado a cerca a 50 metros do CCM. A queda de tensão desejada é de 2%.

Resolução:

Cálculo da corrente nominal:

In = ( Potencia mecanica . 736 ) / ( 3 . V . cos(θ) . n ) = 20 . 736/(3 . 220 . 0,8 . 0,96)= 50,3 [A]

Seção = 100.√3.ρ .Σ.L.I / (μ .V) 

ρ= (1/56); 
L= 50m(distância); 
In= 50,3 A;
μ= 2%(quedade tensão);
V= 220V (tensão) 

Seção = 100.√3.(1/56) . 50 . 50,3 / (2 . 220) = 17,67mm² ( comercial de 25 mm²)

Jogo do Flappy Bird com HTML

Arquivo: flappy.css
* {
    box-sizingborder-box;
}

@font-face{
    font-family'Pixel';
    srcurl('../fonts/Pixel.ttf');/*importando fonte*/
}

[wm-flappy]{
    positionrelative;/*posição relativa*/
    border5px solid dodgerblue;/*borda 5 pixel*/
    height700px;
    width1200px;
    margin15px;/*margem*/
    background-colordarkslateblue/*cor */
    overflowhidden/*qualquer item fora definida nessa div não vai aparecer*/
}

.passaro{
    positionabsolute;
    width60px;
    leftcalc(50% - 30px); /*50% à esquerda menos 30 pixel*/
}

.par-de-barreiras {
    positionabsolute;
    top0;
    height100%;
    displayflex;
    flex-directioncolumn;/*organiza na vertical*/
    justify-contentspace-between/*um embaixo , outro em cima, ...*/
}

.barreira {
    displayflex;
    flex-directioncolumn;
    align-itemscenter;
}

.barreira .borda {
    height30px;
    width130px/*largura*/
    backgroundlinear-gradient(90deg#639301#A5E82E);
    border2px solid #000;
}

.barreira .corpo { /*corpo*/
    height150px;
    width110px;
    backgroundlinear-gradient(90deg#639301#A5E82E);
    border-left2px solid #000;
    border-right2px solid #000;
}

.progresso {
    positionabsolute;
    top10px/*no topo*/
    right10px/*alinhado 10 pixel a esquerdad*/
    font-family: Pixel;
    font-size70px;
    z-index100;
}


Arquivo: flappy.js
function novoElemento(tagNameclassName) {
    const elem = document.createElement(tagName)
    elem.className = className
    return elem
}

function Barreira(reversa = false) {
    this.elemento = novoElemento('div''barreira')

    const borda = novoElemento('div''borda')
    const corpo = novoElemento('div''corpo')
    this.elemento.appendChild(reversa ? corpo : borda)
    this.elemento.appendChild(reversa ? borda : corpo)

    this.setAltura = altura => corpo.style.height = `${altura}px`
}

// const b = new Barreira(true)
// b.setAltura(300)
// document.querySelector('[wm-flappy]').appendChild(b.elemento)

function ParDeBarreiras(alturaaberturax) {
    this.elemento = novoElemento('div''par-de-barreiras')

    this.superior = new Barreira(true)
    this.inferior = new Barreira(false)

    this.elemento.appendChild(this.superior.elemento)
    this.elemento.appendChild(this.inferior.elemento)

    this.sortearAbertura = () => {
        const alturaSuperior = Math.random() * (altura - abertura)
        const alturaInferior = altura - abertura - alturaSuperior
        this.superior.setAltura(alturaSuperior)
        this.inferior.setAltura(alturaInferior)
    }

    this.getX = () => parseInt(this.elemento.style.left.split('px')[0])
    this.setX = x => this.elemento.style.left = `${x}px`
    this.getLargura = () => this.elemento.clientWidth

    this.sortearAbertura()
    this.setX(x)
}

// const b = new ParDeBarreiras(700, 200, 800)
// document.querySelector('[wm-flappy]').appendChild(b.elemento)

function Barreiras(alturalarguraaberturaespaconotificarPonto) {
    this.pares = [
        new ParDeBarreiras(alturaaberturalargura),
        new ParDeBarreiras(alturaaberturalargura + espaco),
        new ParDeBarreiras(alturaaberturalargura + espaco * 2),
        new ParDeBarreiras(alturaaberturalargura + espaco * 3)
    ]

    const deslocamento = 3
    this.animar = () => {
        this.pares.forEach(par => {
            par.setX(par.getX() - deslocamento)

            // quando o elemento sair da área do jogo
            if (par.getX() < -par.getLargura()) {
                par.setX(par.getX() + espaco * this.pares.length)
                par.sortearAbertura()
            }

            const meio = largura / 2
            const cruzouOMeio = par.getX() + deslocamento >= meio
                && par.getX() < meio
            if(cruzouOMeionotificarPonto()
        })
    }
}

function Passaro(alturaJogo) {
    let voando = false

    this.elemento = novoElemento('img''passaro')
    this.elemento.src = 'imgs/passaro.png'

    this.getY = () => parseInt(this.elemento.style.bottom.split('px')[0])
    this.setY = y => this.elemento.style.bottom = `${y}px`

    window.onkeydown = e => voando = true
    window.onkeyup = e => voando = false

    this.animar = () => {
        const novoY = this.getY() + (voando ? 8 : -5)
        const alturaMaxima = alturaJogo - this.elemento.clientHeight

        if (novoY <= 0) {
            this.setY(0)
        } else if (novoY >= alturaMaxima) {
            this.setY(alturaMaxima)
        } else {
            this.setY(novoY)
        }
    }

    this.setY(alturaJogo / 2)
}



function Progresso() {
    this.elemento = novoElemento('span''progresso')
    this.atualizarPontos = pontos => {
        this.elemento.innerHTML = pontos
    }
    this.atualizarPontos(0)
}

// const barreiras = new Barreiras(700, 1200, 200, 400)
// const passaro = new Passaro(700)
// const areaDoJogo = document.querySelector('[wm-flappy]')
// areaDoJogo.appendChild(passaro.elemento)
// areaDoJogo.appendChild(new Progresso().elemento)
// barreiras.pares.forEach(par => areaDoJogo.appendChild(par.elemento))
// setInterval(() => {
//     barreiras.animar()
//     passaro.animar()
// }, 20)

function estaoSobrepostos(elementoAelementoB) {
    const a = elementoA.getBoundingClientRect()
    const b = elementoB.getBoundingClientRect()

    const horizontal = a.left + a.width >= b.left
        && b.left + b.width >= a.left
    const vertical = a.top + a.height >= b.top
        && b.top + b.height >= a.top
    return horizontal && vertical
}

function colidiu(passarobarreiras) {
    let colidiu = false
    barreiras.pares.forEach(parDeBarreiras => {
        if (!colidiu) {
            const superior = parDeBarreiras.superior.elemento
            const inferior = parDeBarreiras.inferior.elemento
            colidiu = estaoSobrepostos(passaro.elementosuperior)
                || estaoSobrepostos(passaro.elementoinferior)
        }
    })
    return colidiu
}

function FlappyBird() {
    let pontos = 0

    const areaDoJogo = document.querySelector('[wm-flappy]')
    const altura = areaDoJogo.clientHeight
    const largura = areaDoJogo.clientWidth

    const progresso = new Progresso()
    const barreiras = new Barreiras(alturalargura200400,
        () => progresso.atualizarPontos(++pontos))
    const passaro = new Passaro(altura)

    areaDoJogo.appendChild(progresso.elemento)
    areaDoJogo.appendChild(passaro.elemento)
    barreiras.pares.forEach(par => areaDoJogo.appendChild(par.elemento))

    this.start = () => {//inicia o jogo
        // loop do jogo
        const temporizador = setInterval(() => {
            barreiras.animar()
            passaro.animar()

            if (colidiu(passarobarreiras)) {
                clearInterval(temporizador)
            }
        }, 20)
    }
}

new FlappyBird().start()


Arquivo: flappy.html
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Flappy Bird</title>
    <link rel="stylesheet" href="css/estilo.css">
    <link rel="stylesheet" href="css/flappy.css">
</head>

<body class="conteudo">
    <h1>Flappy Bird</h1>
    <div wm-flappy></div>
    <script src="flappy.js"></script>
</body>

</html>





























Créditos para: Nilson Leitão










01/01/2021

Triângulo das potências - Exercícios Resolvidos

1) Encontre as potências faltantes no triângulo de potência.

a) 














Resolução:









b)













Resolução:












2) Calcule as potências ativas e reativas de um motor, sabendo que o fator de potência é igual 0,78. A potência Aparente é de 3KVA.

Resolução:



3) Determine a potência Aparante e Reativa de um motor, sabendo que o seu fator de potência é igual 0,85 e sua 1,47kW.

Resolução:


5) Sabendo que um motor de 5 cv e rendimento 70%, tem fator de potência 0,85. Determine as potências aparente, ativa e reativa do motor.

Resolução:


6) Sabendo que um motor de 12 cv e rendimento 85%, tem fator de potência 0,92, Determine as potências aparente, ativa e reativa do motor.

Resolução:



















31/12/2020

Projeto saldo de conta bancária em Linguagem MIPS Assembly

# PROJETO DO GERENCIADOR DE DEPÓSITOS E SAQUES

.data # diretiva de dados
sal: .asciiz "Informe o sado Inicial: "
menu: .asciiz "\n### MENU ###\n1 - Mostrar o saldo\n2 - Depositar\n3 - Efeturar o saque\n0 - Sair\nOpção: "
outsal: .asciiz "SALDO = "
outdep: .asciiz "Seu NOVO SALDO após o Depósito é: "
outdep2: .asciiz "Informe seu Depósito: "
outsaq: .asciiz "Seu NOVO SALDO após o Saque é: "
outsaq2: .asciiz "Informe seu Saque: "
out: .asciiz "Sistema Finalizado!\n"

.text # Diretiva de texto
.globl main # Diretiva global
main: # bloco main
li $v0, 4 # Imprimi uma string
la $a0, sal # Carrega sal no registrador a0
syscall
li $v0, 5 # le um número inteiro
syscall # Executa
move $t0, $v0 # Salva o número digitado em t0

rep: # bloco rep
li $v0, 4 # Imprimi uma string
la $a0, menu # Carrega o menu no registrador a0
syscall # executa
li $v0, 5 # le um numero inteiro
syscall
move $t1, $v0 # salv ao número digitado em t1
beq $t1, 0, sair # se t0 for 0, executa o bloco sair
jal opmenu # chama a função opmenu
j rep # cria o laço chamando rep

opmenu: # bloco menu
beq $t1, 1, saldo # se t1 for igual a 1, executa saldo
beq $t1, 2, deposito # se t1 for igual a 2, executado deposito
beq $t1, 3, saque # se t1 for igual a 3, execta saque

saldo: # bloco saldo
li $v0, 4 # Imprimi uma string
la $a0, outsal # Carrega outsal no registrador a0
syscall
li $v0, 1 # Imprimi um inteiro
move $a0, $t0 # Carrega a0 com o registrador t0
syscall
jr $ra # Volta para que o chamou (ja1)

deposito: # bloco deposito
li $v0, 4 # Imprimi uma string
la $a0, outdep2 # Carrega outdep2 no registrador a0
syscall
li $v0, 5 # le um número inteiro
syscall
move $t2, $v0 # Salva o número digitado em t2
add $t0, $t0, $t2 # SOMA t0 = t0 + t2
li $v0, 4 # Imprimi uma string
la $a0, outdep # Carrega otdep no registrador a0
syscall
li $v0, 1
move $a0, $t0 # Carrega o registrador a0 com t0
syscall
jr $ra # volta para que o chamou (ja1)

saque:
li $v0, 4 # Imprimi uma string
la $a0, outsaq2 # Carrega outdsaq2 no registrador a0
syscall
li $v0, 5 # le um número inteiro
syscall
move $t4, $v0 # Salva o número digitado em t4
sub $t0, $t0, $t4 # SUBTRAI t0 = t0 - t4
li $v0, 4 # Imprimi uma string
la $a0, outsaq # Carrega otdep no registrador a0
syscall
li $v0, 1
move $a0, $t0 # Carrega o registrador a0 com t0
syscall
jr $ra # volta para que o chamou

sair: # bloco sair
li $v0, 4
la $a0, out
syscall
li $v0, 10 # Sair do programa
syscall

Simulador: MARS 4.5


Calculadora em linguagem MIPS Assembly

.data
menu: .asciiz "***** MENU *****\n1 - Somar\n2 - Subtrair\n3 - Multiplicar\n4 - Dividir\n0 - SAIR\nOpção: "
n1: .asciiz "Entre com o primeiro número: "
n2: .asciiz "Entre com o segundo número: "
r: .asciiz "Resultado = "
pula: .asciiz "\n\n"

.macro pula_linha # Macro pula linha
li $v0, 4
la $a0, pula # Carrega a string de pula em $a0
li $v0, 4
la $a0, pula
syscall
.end_macro

.macro menu
li $v0, 4
la $a0, menu
syscall
li $v0, 5 # Prepara para ler um número inteiro
syscall
move $t0, $v0 # Salva o número digitado em $t0
.end_macro

.text # Diretiva de dados
.globl principal # Diretiva global

principal: # Função principal
menu # Chama a macro menu
# Condições
beq $t0, 1, somar # se $t0 for digitado 1 vai para o bloco somar
# Bloco somar
beq $t0, 2, subtrair
# bloco subtrair
beq $t0, 3, multiplicar
# bloco multiplicar
beq $t0, 4, dividir

beq $t0, 0, sair
# bloco sair

somar:
# pede o primeiro número
li $v0, 4
la $a0, n1 # Carrega n1 no registrador $a0
syscall
li $v0, 5
syscall
move $t1, $v0 
# pede o segundo número
li $v0, 4
la $a0, n2 # Carregga n2 no registrador
syscall
li $v0, 5
syscall
move $t2, $v0 # Salva o número digitado
add $t3, $t1 $t2 # SOMA: $t3 = t1 + t2
# Mostra o resultado na tela
li $v0, 4
la $a0, r # Carrega r no registrador $a0
syscall
li $v0, 1 # Imprimi m número
la $a0, ($t3) # Carrega o inteiro de $t3 em $a0
syscall
pula_linha # Executa a macro
j principal # Executa o bloco principal

subtrair: # Bloco subtrair
# pede o primeiro número
li $v0, 4 # Imprimi uma string
la $a0, n1 # Carrega n1 no registrador a0
syscall
li $v0, 5 # Lê um número inteiro
syscall
move $t1, $v0 # Salva o número digitado em $t1
# pede o segundo número
li $v0, 4 # Imprimir uma string
la $a0, n2 # Carrega n2 no registrador
syscall
li $v0, 5
syscall
move $t2, $v0 # Salva o número digitado em $t2
sub $t3, $t1, $t2 # SUBTRAI: t3 = t1 - t2
#MOSTRA o resultado na tela
li $v0, 4 # Imprimi uma string
la $a0, r # Carrega no registrador a0
syscall
li $v0, 1 # Imprimi um número
la $a0, ($t3) # Carrega o inteiro 
syscall
pula_linha # Executa a macro pula linha
j principal # Executa o bloco principal

multiplicar: # Bloco multiplicar:
# Pede o primeiro número
li $v0, 4 # Imprimi uma string
la $a0, n1 # Carrega n1 no registrador 
syscall
li $v0, 5 # Le um número inteiro
syscall
la $a0, ($t3) # Carrega o inteiro 
# Pede o segundo número
move $t1, $v0 # Salva o número digitado em $t1
la $a0, n2 # Carrega n2 no registrador 
syscall
li $v0, 5 # Lê um número inteiro
syscall
move $t2, $v0 # Salva o número digitado em $t2
mul $t3, $t1, $t2 # MULTIPLICA: t3 = t1 * t2
#Mostra o resultado na tela
li $v0, 4 # Imprimi uma string
la $a0, r # Carrega r no registrador $a0
syscall
li $v0, 1 # Imprimi um número inteiro
la $a0, ($t3) # Carrega o número inteiro de $t3 em $a0
syscall # Executa
pula_linha # Executa a macro pula_linha
j principal # Executa o bloco principal

dividir: # bloco dividir
# Pede o primeiro número
li $v0, 4 # Imprimi uma string
la $a0, n1 # Carrega n1 no registrador $a0
syscall
li $v0, 5 # Lê um número inteiro
syscall
move $t1, $v0 # Salva o número digitado em t1
# pede o segundo número
li $v0, 4 # Imprimi uma string
la $a0, n2 # Carrega n2 no registrador $a0
syscall
li $v0, 5 # Le um número inteiro
syscall
move $t2, $v0 # Salva o número digitado em t2
div $t3, $t1, $t2 # DIVIDE: t3 = t1 / t2
# Mostra o resultado
li $v0, 4 # Imprimi uma string
la $a0, r # Carrega no registrador a0
syscall
li $v0, 1 # Imprimi uma string
la $a0, ($t3) # Carrega um inteiro em a0
syscall
pula_linha
j principal
# bloco para sair
sair:
li $v0, 10
syscall



Simulador: MARS 4.5