Texto

(1)

Tópicos Especiais em Mecatrônica II

Luís Oscar Henriques

(2)

Introdução

Para iniciarmos o nosso estudo de programação avançada para engenharia vamos rever como devemos proceder no processo de resolução de problemas computacionais.

1.1 - Processo de Resolução de Problemas

O processo de resolução de problemas para um problema computacional pode ser resumida da seguinte forma:

1. Definir o problema.

2. Criar um modelo matemático.

3. Desenvolver um método computacional para resolver o problema.

4. Implementar o método computacional.

5. testar e avaliar a solução.

As delimitações entre estes passos podem ser tênues e para problemas

específicos um ou dois passos podem ser mais importantes do que outros. No entanto, tendo esta abordagem e estratégia em mente ajudará a concentrar os nossos esforços de como resolver problemas.

(3)

1. Definir o problema

Os primeiros passos na resolução de problemas incluem:

• Reconhecer e definir o problema precisamente, explorando-o completamente (pode ser a parte mais dificil)

•Determinar quais questões do problema devem ser respondidas e quais saídas ou resultados devem ser produzidos.

• Determinar qual o conhecimento teórico e pratico pode ser aplicado.

• Determinar quais informações de entrada ou de dados está disponível.

Muitos problemas acadêmicos que você pode ser solicitado a resolver, será apresentado pelo professor;instrutor. Por exemplo: Se o seu

instrutor te pedir para resolver uma equação algébrica quadrática e fornece-lhe com todos os coeficientes da equação, o problema foi completamente definido antes que seja dado a você e pouca dúvida permanece sobre o que é o problema.

(4)

1. Definir o problema ( cont.)

Se o problema não é bem definido, um cosniderável esforço deve ser gasto no início para estudar o problema, eliminando as coisas que não são importantes, e focando na raiz do problema.

O esforço nesta etapa é bem valioso, pois ao eliminar ou reduzido faltas tentativas, isto encurta o tempo necessário para concluir as etapas posteriores.

Tendo definido o problema:

• Colete todos os dados e informações sobre o problema.

• Verifique a precisão dos dados e informações.

• Determine quais informações você deve achar: resultados e dados intermédios podem ser necessarios antes da resposta final.

(5)

2. Modelo Matemático

Para criar um modelo matemático do problema a ser resolvido:

• Determine quais são os princípios fundamentais que são aplicáveis.

• Desenhe rascupnhos ou diagramas de blocos para entender melhor o problema.

• De fina as variáveis necessárias e quais notações devem atribuir.

• Reduza se possivel o problema previsto a uma expressão com termos puramente matemática.

• Aplicar conhecimentos matemáticos para extrair o essencial a partir da descrição física subjacente do problema.

• Simplificar o problema apenas o suficiente para permitir que as informações e os resultados necessária para ser obtida.

• Identificar e justificar as premissas e restrições inerentes a este modelo.

(6)

3.Método computacional

•Gerar um método computacional para a solução do problema que está sendo desenvolvido, com base no modelo matemático.

• Extraia um conjunto de equações que permitem o cálculo dos parâmetros e variáveis desejadas.

• desenvolver um algoritmo, ou passo-a-passo do método de avaliar as equações envolvidas na solução.

• Descreva o algoritmo em termos matemáticos e em seguida, implementa-lo como um programa de computador.

• Analise cuidadosamente a solução proposta, com o pensamento voltado a busca de outras abordagens alternativas.

(7)

4. Implementação do método computacional

Depois de um método computacional ter sido identificada, o próximo passo é desenvolver o metodo com um computador.

Algumas coisas a considerar nesta implementação:

• Avaliar o poder computacional necessário, pois uma implementação aceitável pode ser feita a mão ou com um a calculadora de bolso.

• Se um programa de computador é necessário, uma variedade de linguagens de programação, cada uma com propriedades diferentes podem estar disponíveis.

• Uma variedade de computadores, que vão desde os computadores domésticos mais básicos até os mais rápidos supercomputadores paralelos, está disponíveis.

• A capacidade de escolher a combinação adequada de linguagem de programação e do computador e usá-los para criar e executar uma implementação eficiente do metodo computacional, exige tanto conhecimento e experiência.

(8)

4. Implementação do método computacional ( cont.)

O algoritmo matemático desenvolvido na etapa anterior deve ser traduzido em um algoritmo computacional e, em seguida,

implementado como um programa de computador.

Os passos principais do algoritmo devem primeiro delineado e depois decomposto em etapas menores, que podem ser traduzidos em

comandos de programação.

Um dos pontos fortes do Matlab é que seus comandos correspondem muito de perto com os passos que são utilizados para resolver

problemas de engenharia. Assim, o processo de determinação dos passos de resolver o problema também determina os comandos do Matlab.

Além disso, Matlab inclui um extenso toolbox de análise numérica, de modo que nele o esforço de programação muitas vezes envolve a

implementação do modelo matemático, a caracterização dos dados de entrada, e aplicando os algoritmos numéricos disponíveis.

(9)

5. Teste e Avaliação da Solução:

O passo final é para testar e avaliar a solução. Em muitos aspectos, a avaliação é o mais aberto e difícil dos cinco etapas envolvidas na resolução de

problemas computacionais.

A solução numérica deve ser verificada com cuidado:

• Uma versão simplificada do problema deve ser conferida a mão.

• O programa deve ser executado em dados de ensaio obtidos ou calculados para o qual a resposta ou solução sejam conhecidos ou que podem ser obtidos por meios independentes, como a mão ou o cálculo com calculadora.

• Os valores intermédios devem ser comparados com os resultados esperados e as variações estimadas. Quando os valores desviam dos esperados mais do que foi estimado, a fonte do desvio deve ser determinado e o programa

modificado conforme necessário.

• Uma "verificação da realidade" deve ser realizada sobre a solução para determinar se faz sentido.

• As suposições feitas na criação do modelo matemático do problema devem ser verificadas em relação à solução.

(10)

1.2 – Exercícios Propostos

Dentro deste curso, vamos focar diversas situações que deverão ser analisadas à luz do item 1.1. Algumas destas situações terão seu embasamento teórico apresentado juntamente com o problema proposto.

(11)

Exercicios Propostos

2.1 - Exercício 1: lançamento obliquo

Como um exemplo do processo de resolução de problemas, considerar o seguinte problema:

Um pequeno objeto é lançado do chão apra o espaço a uma

velocidade de 50 milhas/hora com um angulo de 30° sobre um terreno plano. Determine o tempo de voo e a distância percorrida quando a bola regressa ao chão. Projete um gráfico com a trajetoria do objeto.

Dados: 1 milha = 1,60934 quilometros

(12)

2.2 - Exercício 2: relações de trigonometria

Considere o problema de estimar a altura de um edifício, tal como ilustrado na Figura abaixo. Se o observador está a uma distância D a partir da construção, o ângulo do observador para a parte superior do edifício é θ, e a altura do observador é H. Qual é a altura de construção?

Se h = 2 metros, D = 50 metros, e θ é de 60 graus

(13)

2.3 - Exercício 3: Formas de geração de gráficos de números complexos.

Temos 3 formas de representação de números complexos no Matlab/octave: forma retangular, forma vetorial e forma polar.

Representemos e plotemos os números abaixo nas 3 formas:

z1 = 1.5 + 0.5j;

z2 = 0.5 + 1.5j;

z3 = z1 + z2;

z4 = z1 * z2;

z5 = conj(z1);

z6 = j * z2;

z7 = z2/z1;

(14)

2.4- Exercício 4: simulação de geração de ruídos.

(Noisy signal simulation)

Muitos sensores, que convertem sinais físicos em sinais eléctricos, podem produzir erros de medição, resultando no que é conhecido como ruidos de sinal.

Se houver a necessidade de gerarmos um modelo bem preciso destes erros, podemos usar números aleatórios gaussianos aditivos. Eles são muitas vezes um modelo preciso destes erros.

O modelo que devemos usar seria:

X = S + N, em que S é o sinal livre de ruído de interesse, o símbolo N representa o erro gaussiano de medição, e X é o ruido de sinal.

Uma medida da qualidade do sinal é a relação sinal-ruído (SNR), definido pela equação:

𝑆𝑁𝑅 = 10 log10 𝜎𝜎𝑆2

𝑛2 = 20 log10 𝜎𝜎𝑆

𝑛,

onde σs é o desvio padrão do sinal e σn é o desvio padrão do ruído.

Considere a simulação de um sinal ruidoso que consiste de uma onda senoidal com a adição de um sinal gaussiano de ruido.

(15)

A variância de uma onda sinusoidal pode ser demonstrado como:

𝜎𝑆2 = 𝐴2, em que A é a amplitude sinusoidal.

Como exemplo:

Para A = 1 e ruído Gaussian desvio padrão σn = 0,1. O SNR é

𝑆𝑁𝑅 = 10 log10 0.5

0.12 = 10 log10 50 = 17

Crie um script que simule este sinal ruidoso. No próximo exercicio iremos tratar de métodos para reduzir o efeito deste ruido.

(16)

2.5- Exercício 5: Filtragem de ruídos (Signal Filtering)

O uso de rotina de repetição é aplicável ao metodologia de filtragem e tratamento de sinais para redução de componentes ruidosas. Será

baseado nestas rotinas que faremos este exercicio.

Como descrito no exercicio anterior, o ruído é muitas vezes modelado como um erro de medição aleatória. O ruido pode ser reduzido por uma média de várias amostras de sinal sucessivos. Denotando uma amostra de sinal de entrada ruidoso por x (k) e uma amostra do sinal de saída filtrado por y (k), um filtro de média móvel é representado por:

𝑦 𝑘 = 1

3 𝑥 𝑘 + 𝑥 𝑘 − 1 + 𝑥(𝑘 − 2)

A amostra do sinal de saída no índice k é a média das amostras do sinal de entrada no Índice k e os dois índices anteriores.

(17)

2.5- Exercício 5: Filtragem de ruídos (Signal Filtering) ( cont.)

Para testar este método de filtragem, utilize o sinal gerado no exercicio anterior e implemente esta filtragem.

Vale notar que no cálculo das duas primeiras amostras de sinais filtrados, duas amostras de sinal de entrada anteriores não ficam disponíveis. O uso de valores médios inevitávelmente irá reduzir o tamnhao do sinal de saida.

A qualidade de sinal é medido pela relação sinal-ruído (SNR), em que o ruído que permanece no sinal filtrado é a diferença entre o sinal filtrado e o sinal sem ruído original.

A melhoria no sinal deverá ser aparente. Segundo meus calculos a melhoria é de cerca de 4.3 dB.

(18)

2.6- Exercício 6: projeto de custo mínimo de um tanque

Um tanque cilíndrico com uma parte superior semiesférica, como mostrado na figura abaixo é para ser fabricada para que tenha a capacidade de armazenar 5*105 Litros quando cheio. Devemos determinar a altura H e o Raio R do tanque de forma a minimizar o custo dele.

Dados: custo da parte cilíndrica US $300/ m2 e custos da parte hemisférica US $ 400/m2.

Modelo matemático:

volume do cilindro: 𝑉𝑐 = 𝜋𝑅2𝐻

Volume do hemisfério: 𝑉 = 23𝜋3 Superfície do cilindro: 𝐴𝑐 = 2𝜋𝑅𝐻 Superfície do Hemisfério: 𝐴 = 2𝜋𝑅2

(19)

2.6- Exercício 6: projeto de custo mínimo de um tanque ( cont.)

Premissas:

Tanque não contém nenhum espaço de ar morto.

Laje de concreto com vedação hermética é fornecido para a base.

Custo da base não muda sensivelmente com as dimensões do tanque.

Método computacional:

Volume total expresso em metros cúbicos (nota: 1m3 = 1000L) como uma função da altura e raio

𝑉𝑡𝑎𝑛𝑘 = 𝑉𝑐 + 𝑉 Para Vtank = 5 × 105L = 500m3:

500 = 𝜋𝑅2𝐻 + 2

3𝜋𝑅3 Resolvendo para H:

𝐻 = 500

𝜋𝑅2 − 2𝑅 3

O Custo em dolares será a relação de vlaores de Raio e Altura 𝐶 = 300𝐴𝑐 + 400𝐴

(20)

2.6- Exercício 6: projeto de custo mínimo de um tanque ( cont.)

Métodologia:

Calcular H e depois C, durante um intervalo de valores de R, então encontrar o valor mínimo de C e os correspondentes valores de R e H.

Para determinar a faixa de R a ser usada, faça uma aproximação ao assumir que H = R.

𝑉𝑡𝑎𝑛𝑘 = 500 = 𝜋𝑅3 + 2

3 𝜋𝑅3 = 5

3 𝜋𝑅3 Resolvendo para R:

𝑅 = 300 𝜋

13

Isto dá 4,5708. Portanto, vamos investigar R na faixa entre 3 e 7 metros.

(21)

2.8- Exercício 8: Braço Robótico

A figura abaixo apresenta um braço robótico com duas ligações conectado por duas juntas: uma base ou ombro, uma junta e um cotovelo. Há um motor em cada junta e os ângulos

articulares são θ1 e θ2. As coordenadas da mão que fica na extremidade do braço (x1, x2) é dada pelas equações abaixo:

𝑥1 = 𝐿1 cos 𝜃1 + 𝐿2 cos(𝜃1 + 𝜃2) 𝑥2 = 𝐿1 sin 𝜃1 + 𝐿2 sin(𝜃1 + 𝜃2)

onde 𝐿1 e 𝐿2 são os comprimentos das ligações.

(22)

2.8- Exercício 8: Braço Robótico ( cont.)

(23)

2.8- Exercício 8: Braço Robótico (cont.)

O problema é determinar como controlar os ângulos articulares pelos motores para mover a mão de uma posição para outra. O braço deve partir do repouso em uma posição conhecida e passar para outra poisção desejada.

Deve iniciar e parar com zero de velocidade e aceleração.

A seguir apresentamos as expressões polinomiais a serem utilizadas para controlar o movimento através da geração de comandos para serem enviados para os controladores do conjunto de motores.

𝜃1 𝑡 = 𝜃1 0 + 𝑎1𝑡5 + 𝑎2𝑡4 + 𝑎3𝑡3 + 𝑎4𝑡2 + 𝑎5𝑡

𝜃2 𝑡 = 𝜃2 0 + 𝑏1𝑡5 + 𝑏2𝑡4 + 𝑏3𝑡3 + 𝑏4𝑡2 + 𝑏5𝑡

(24)

2.8- Exercício 8: Braço Robótico ( cont.)

Onde θ1 0 e θ2 0 são os ângulos iniciais em t=0s e os coeficientes do 𝑎𝑛 e 𝑏𝑛

A escolha do grau dos polinômios será explicado como as equações de movimento são descritos.

Os valores de 𝜃1 0 , 𝜃2 0 , 𝜃1 𝑡𝑓 e 𝜃2 𝑡𝑓 devem ser encontrados através derelações trigonométicas.

Para valores dados de 𝜃1 0 , 𝜃1 𝑡𝑓 e 𝑡𝑓, equações matriciais devem ser criadas e resolvidas para os coeficientes do vetor a

Da mesma forma, para valores dados de𝜃2 0 , 𝜃2 𝑡𝑓 e 𝑡𝑓, equações matriciais devem ser criadas e resolvidas para os coeficientes do vetor b Estes resultados devem ser utilizados para traçar o caminho da mão.

As restrições restantes no movimento do braço são de que a velocidade ea aceleração dos links devem ser zero no local de partida e de chegada

desejado. Isto implica que a velocidade angular e aceleração angular dos dois ângulos devem ser zero no tempo t = 0 e t = 𝑡𝑓.

(25)

2.8- Exercício 8: Braço Robótico ( cont.)

A velocidade angular do primeiro link no tempo t é a derivada do ângulo 𝜃1 t com respeito ao tempo

𝜃1(𝑡) = 5𝑎1𝑡4 + 4𝑎2𝑡3 + 3𝑎3𝑡2 + 2𝑎4𝑡 + 𝑎5

A velocidade em T=0 deve ser:

𝜃1 0 = 𝑎5 = 0

Assim, a5 = 0

A aceleração angular é a derivada segunda do ângulo θ1 t em função do tempo é:

𝜃1′′(𝑡) = 20𝑎1𝑡3 + 12𝑎2𝑡2 + 6𝑎3𝑡 + 2𝑎4

A aceleração em t=0 deve ser então igual a:

𝜃1′′ 0 = 2𝑎4 = 0

Da mesma forma: , a4 = 0

(26)

2.8- Exercício 8: Braço Robótico ( cont.)

Escrevendo as 3 restrições para o ângulo θ1 t e suas duas derivadas para t=tf no formato matricial

𝑡𝑓5 𝑡𝑓4 𝑡𝑓3

5𝑡𝑓4 4𝑡𝑓3 3𝑡𝑓2 20𝑡𝑓3 12𝑡𝑓2 6𝑡𝑓

𝑎1 𝑎2

𝑎3 = 𝜃1 𝑡𝑓 − 𝜃1 0 0

0

Similarmente para θ2 t :

𝑡𝑓5 𝑡𝑓4 𝑡𝑓3

5𝑡𝑓4 4𝑡𝑓3 3𝑡𝑓2 20𝑡𝑓3 12𝑡𝑓2 6𝑡𝑓

𝑏1 𝑏2

𝑏3 = 𝜃2 𝑡𝑓 − 𝜃2 0 0

0

Note-se que existem três equações e três incógnitas para cada ângulo e suas duas derivadas.

Esta é a razão para a escolha de um polinomio de quinto graus para controlar o movimento.

(27)

2.8- Exercício 8: Braço Robótico ( cont.)

Os graus mais baixos de três termos (t2, t1, t0) tem coeficientes com valor igual a zero para atender as restrições em t = 0. Nos sobrando, os outros tres termos de mais alto grau (t5, t4,t3) e os seus 3 coeficientes desconhecidos.

Assumindo os seguintes valores de comprimento dos braços e angulos iniciais e finais:

tf = 2s

θ1 (0) = -19°

θ2 (0) = 44°

θ1 (tf) = 43°

θ2 (tf) = 151°

L1 = 4 pés L2 = 3 pés

que correspondem a um local de partida inicial (6.5,0) e um local de parada em (0, 2).

Façamos um programa que calcule os coeficientes das equações tratadas anteriormente o controle de movimento e que trace o caminho da mão.

(28)

2.9- Exercício9: Principio de Torricelli

O teorema de Torricelli é uma aplicação do princípio de Bernoulli e estuda o fluxo de um líquido contido em um recipiente, através de um pequeno orificio, sob a ação da gravidade.

Ele afirma que o volume de vazão f de um líquido através uma

restrição, tal como uma abertura ou de uma válvula, é proporcional à raiz quadrada da queda de pressão P outro lado da restrição

𝑓 = 𝑐 𝑃

Onde c é uma constante.

Em muitas aplicações, o peso do líquido num tanque acima da válvula faz com que a pressão caia. Neste caso, a vazão é proporcional à raiz quadrada do volume V no tanque

𝑓 = 𝑅 𝑉

onde R é uma constante.

(29)

2.9- Exercício 9: Principio de Torricelli (cont.)

Esta expressão pode ser generalizada para 𝑓 = 𝑅𝑉𝑒

e um teste pode ser feito para verificar experimentalmente que e = 0,5 Consideremos a aplicação deste princípio ao fluxo de café para fora de um vasilha de café atraves de uma vávula.

Para reunir algumas medições experimentais, coloquemos uma vasilha de café com capacidade de 15 copos sob uma torneira de água e encha até o limite de 15 copos. Com a válvula de saída aberta, ajustar a taxa de fluxo através da torneira de modo a que o nível de água continua a ser constante a 15 copos, e devemos medir o tempo necessario para um copo fluir para fora do vasilhame. Repitamosr esta medição com o pote cheio para os níveis indicados na tabela seguinte:

Volume ( copos) Tempo (s)

15 6

12 7

9 8

6 9

(30)

2.9- Exercício 9: Principio de Torricelli (cont.)

Use esses dados para verificar o princípio de Torricelli para a vasilhaa e obter uma relação entre a taxa de fluxo eo número de copos no pote.

Informações suplementares:

O princípio de Torricelli é uma função de potência e se aplicarmos o logaritmo de base 10 para ambos os lados, obtemos

𝑙𝑜𝑔10𝑓 = e𝑙𝑜𝑔10𝑉 + 𝑙𝑜𝑔10𝑟 Esta equação tem o formato:

𝑦 = 𝑎1𝑥 + 𝑎2

Onde 𝑦 = 𝑙𝑜𝑔10𝑓, 𝑥 = 𝑙𝑜𝑔10𝑉 , 𝑎2 = 𝑒 e 𝑎2 = 𝑙𝑜𝑔10𝑟

Assim, se plotaramos 𝑙𝑜𝑔10𝑓 versus 𝑙𝑜𝑔10𝑉, devemos obter uma linha reta.

(31)

2.9- Exercício 9: Principio de Torricelli (cont.)

Os valores de f são obtidos a partir da relação fornecida, isto é: f = 1/t copos por segundo.

Podemos encontrar a função polinomial que se aproxima dos dados atraves do comando polyfit

a = polyfit(log10(V), log10(f), 1)

o primeiro elemento do vetor a obtido será e e o segundo elemento do vetor a obtido será 𝑙𝑜𝑔10𝑟

Podemos encontrar r como: 𝑟 = 10𝑎2

(32)

Resolução exercício 2.9

>% Modeling of hydraulic

resistance in a coffee pot

> %

> % Measured data

> vol = [6, 9, 12, 15]; % coffee pot volume (cups)

> time = [9, 8, 7, 6]; % time to fill one cup (seconds)

> flow = 1./time; % flow rate (cups/seconds)

> %

> % Fit a straight line to log transformed data

> a =

polyfit(log10(vol),log10(flow ),1);

> disp(’Exponent e’)

> e = a(1)

> disp(’Constant r’)

> r = 10^a(2)

> %

> % Plot the data and the fitted curve on loglog and

linear plots

> x = [6:0.01:40];

> y = r*x.^e;

> subplot(2,1,1),loglog(x,y,vol ,flow,’o’),grid,...

> xlabel(’Volume (cups- log scale)’),...

> ylabel(’Flow Rate (cups/sec - log scale)’),...

> axis([5 15 .1 .3]),

legend(’Model’,’Experimental’

)

> subplot(2,1,2),plot(x,y,vol,f low,’o’),grid,xlabel(’Volume (cups)’),...

> ylabel(’Flow Rate

(cups/sec)’),axis([5 15 .1 .3]),...

> legend(’Model’,’Experimental’

)

(33)

Resolução exercício 2.9 ( cont.)

Com estes dados podemos obter a relação inicial 𝑓 = 0.0499𝑉0.433

Devido ao indice da exponencial ser 0.433, e não 0.5, nosso modelo não coincide totalmente com o modelo proposto por Torricelli em seu principio.

Reparemos que os dados experimentais não batem totalmente com os calculados.

No experimento, temos a dificuldade de medir corretamente o tempo correto para encher um copo de café com a mesma exatidão de que se obtem resolvendo uma equação de segundo grau.

(34)

2.10- Exercício10: Eletrônica de Potência

A figura abaixo mostra um retificador trifásico de onda completa

alimentando uma carga CC. O circuito usa tiristores no lugar de diodos como elementos retificadores.

Perguntas que devemos responder:

A)Qual será a tensão de carga e seu ripple, se cada SCR é disparado assim que ele se polariza?

Com que angulo de fase o SCR deve ser disparado apra que ele opere desta forma? Esboçar ou traçar a tensão de saída para este caso.

B) Qual será a tensão de carga e seu ripple, se cada SCR é disparado em um ângulo de fase de 90 (isto é, a meio caminho através do meio ciclo em que é polarizado). Esboçar ou traçar a tensão de saída para este caso.

Assumir ω=377 rad/s, Amplitude das ondas (rms) =120 V

(35)

2.10- Exercício10: Eletrônica de Potência (cont.)

Usem os arquivos biphase_controller_ex10.m e ripple.m para solucionar o exercicio.

(36)

Solução 2.10 – função Biphase_controller

> function volts =

biphase_controller(wt,theta0,fir e)

> % Function to simulate the output of an ac phase

> % angle controller that operates symmetrically on

> % positive and negative half cycles. Assume a peak

> % voltage VM = 120 * SQRT(2) = 170 V for convenience.

> %

> % wt = Current phase in degrees

> % theta0 = Starting phase angle in degrees

> % fire = Firing angle in degrees

>

> % Degrees to radians conversion factor

> deg2rad = pi / 180;

>

> % Remove phase ambiguities: 0 <=

wt < 360 deg

> ang = wt + theta0;

> while ang >= 360

> ang = ang - 360;

> end

> while ang < 0

> ang = ang + 360;

> end

>

> % Simulate the output of the phase angle controller.

> if (ang >= fire & ang <= 180)

> volts = 170 * sin(ang * deg2rad);

> elseif (ang >= (fire+180) & ang

<= 360)

> volts = 170 * sin(ang * deg2rad);

> else

> volts = 0

> end

(37)

Solução 2.10 – função ripple.m

> % M-file: ripple.m

> % M-file to calculate and plot the three phase

voltages

> % when each SCR in a three-phase full-wave rectifier

> % triggers at a phase angle of 90 degrees.

>

> % Calculate the waveforms for times from 0 to 1/30 s

> t = (0:1/21600:1/30);

> deg = zeros(size(t));

> rms = zeros(size(t));

> va = zeros(size(t));

> vb = zeros(size(t));

> vc = zeros(size(t));

> out = zeros(size(t));

> for ii = 1:length(t)

>

> % Get equivalent angle

in degrees. Note that

> % 1/60 s = 360 degrees for a 60 Hz waveform!

> theta = 21600 * t(ii);

>

> % Calculate the voltage in each phase at each

> % angle.

> va(ii) =

biphase_controller(theta,0 ,90);

> vb(ii) =

biphase_controller(theta,- 120,90);

> vc(ii) =

biphase_controller(theta,1 20,90);

>

> end

>

>% Calculate the output voltage of the rectifier

>for ii = 1:length(t)

(38)

Solução 2.10 – função ripple.m ( continuação)

> vals = [ va(ii) vb(ii) vc(ii) ];

> out(ii) = max( vals ) - min(

vals );

> end

> % Calculate and display the ripple

> disp( ['The ripple is ' num2str(ripple(out))] );

> % Plot the voltages versus time

> figure(1)

> plot(t,va,'b','Linewidth',2.0);

> hold on;

> plot(t,vb,'r:','Linewidth',2.0);

> plot(t,vc,'k--','Linewidth',2.0);

> title('\bfPhase Voltages');

> xlabel('\bfTime (s)');

> ylabel('\bfVoltage (V)');

> grid on;

> legend('Phase a','Phase b','Phase c');

> hold off;

> % Plot the output voltages versus time

> figure(2)

> plot(t,out,'b','Linewidth',2.0);

> title('\bfOutput Voltage');

> xlabel('\bfTime (s)');

> ylabel('\bfVoltage (V)');

> axis( [0 1/30 0 260]);

> grid on;

> hold off;

(39)

2.11- Exercício11: PWM

Escreva um programa, que imite o funcionamento do circuito PWM (Pulse-Width Modulation) conforme mostrado na figura abaixo e responda às seguintes perguntas.

(40)

2.11- Exercício11: PWM ( cont.)

(41)

2.11- Exercício11: PWM ( cont.)

Suponha que a comparação tensões vx(t) e vy(t) têm amplitudes de pico de 10 V e uma frequência de 500 Hz. Traçar a tensão de saída quando a tensão de entrada é: 𝑉𝑖𝑛 𝑡 = 10 sin 2𝜋𝑓𝑡 𝑉 e 𝑓 = 50 Hz.

Solução: (A) Para escrever uma simulação no MATLAB deste circuito, devemos notar o seguinte:

Se 𝑉𝑖𝑛 > 𝑉𝑥, então: 𝑉𝑢 = 𝑉𝐷𝐶 e se 𝑉𝑖𝑛 < 𝑉𝑥, então: 𝑉𝑢 = 0

Da mesma forma, Se 𝑉𝑖𝑛 > 𝑉𝑦, então: 𝑉𝑣 = 0e se 𝑉𝑖𝑛 < 𝑉𝑦, então:

𝑉𝑣 = 𝑉𝐷𝐶

A tensão de saida será então: 𝑉𝑜𝑢𝑡 = 𝑉𝑣 − 𝑉𝑢

Abaixo apresentamos uma rotina que executa estes calculos. (Note que esta função assume arbitrariamente que a DC V = 100 V. Este valor

pode ser mudao a qualquer tempo, se desejar.)

(42)

2.12- Exercício12: Campo magnetico no estator de um motor trifásico.

Vamos modelar no matlab o calculo do campo magnético em um motor trifásico.

Dados: Campo máximo normalizado em 1 Frequencia = 60Hz

(43)

Resolução exercício 2.12

> % M-file: mag_field2.m

> % M-file to calculate the net magetic field produced by a three-phase stator.

>

> % Set up the basic conditions

> bmax = 1; % Normalize bmax to 1

> freq = 60; % 60 Hz

> w = 2*pi*freq; % angluar velocity (rad/s)

>

> % First, generate the three component magnetic fields

> t = 0:1/6000:1/60;

> Baa = sin(w*t) .* (cos(0) + j*sin(0));

> Bbb = sin(w*t+2*pi/3) .* (cos(2*pi/3) + j*sin(2*pi/3));

> Bcc =sin(w*t-2*pi/3) .* (cos(-2*pi/3) + j*sin(-2*pi/3));

>

> % Calculate Bnet

> Bnet = Baa + Bbb + Bcc;

>

> % Calculate a circle representing the expected maximum

> % value of Bnet

> circle = 1.5 * (cos(w*t) + j*sin(w*t));

(44)

Resolução exercício 2.12 (cont.)

> % Plot the magnitude and direction of the resulting magnetic

> % fields. Note that Baa is black, Bbb is blue, Bcc is

> % magenta, and Bnet is red.

> for ii = 1:length(t)

>

> % Plot the reference circle

> plot(circle,'k');

> hold on;

>

> % Plot the four magnetic fields

> plot([0 real(Baa(ii))],[0 imag(Baa(ii))],'k','LineWidth',2);

> plot([0 real(Bbb(ii))],[0 imag(Bbb(ii))],'b','LineWidth',2);

plot([0 real(Bcc(ii))],[0 imag(Bcc(ii))],'m','LineWidth',2);

> plot([0 real(Bnet(ii))],[0 imag(Bnet(ii))],'r','LineWidth',3);

> axis square;

> axis([-2 2 -2 2]);

> drawnow;

> hold off;

>

> end

(45)

2.13- Exercício13: Iluminação de um quarto

Suponha que temos de decidir onde colocar luminárias no teto de uma sala medindo 10 metros de largura por 4 metros de comprimento e 3 metros de altura, a fim de melhor iluminá-lo.

Por razões estéticas, somos solicitados a usar um pequeno número de lâmpadas incandescentes. Queremos que as lâmpadas tenham no

máximo 300 watts.

Como devem ser colocadas estas lampadas para maximizar a intensidade da luz na parte mais escura da sala?

Nós também gostariamos de ver o quanto de melhoria existe se tivermos:

uma lâmpada de 300 watts duas lâmpadas de 150 watts três lâmpadas de 100 watts.

Para manter as coisas simples, vamos supor que não há móveis no quarto e que a luz refletida a partir das paredes é insignificante em comparação com a luz direta das lâmpadas.

(46)

Situação para 1 lampada de 300 Watts

Se houver apenas uma lâmpada, então queremos colocar a lâmpada no centro do teto. Vamos obter uma imagem que traduzirá o quão bem o chão é

iluminado. Introduzimos coordenadas X variando de 0 a 10 metros na direção do comprimento da sala e Y variando de 0 a 4 metros na direção da largura. A intensidade num dado ponto, medido em watts por metro quadrado, é a

potência da lâmpada, 300, dividido pela 4π vezes o quadrado da distância da lâmpada. Uma vez que a lâmpada está 3 metros acima do ponto (5, 2) no chão, podemos expressar a intensidade de cada ponto (x, y) no chão da seguinte forma:

syms x y; illum = 300/(4*pi*((x - 5)ˆ2 + (y - 2)ˆ2 + 3ˆ2)) illum = 75/pi/((x-5)ˆ2+(y-2)ˆ2+9)

We can use ezcontourf to plot this expression over the entire floor. We use colormap to arrange for a color gradation that helps us to see the illumination.

(See the online help for graph3d for more colormap options.)

Podemos usar ezcontourf para traçar essa expressão ao longo de todo o chão.

Usamos colormap para organizar uma gradação de cores que nos ajuda a ver a iluminação.

(47)

ezcontourf(illum,[0 10 0 4]); colormap(gray);

axis equal tight

As partes mais escuras do chão são os cantos. Vamos achar a intensidade da luz nos cantos, e no centro da sala.

subs(illum, {x, y}, {0, 0}) subs(illum, {x, y}, {5, 2})

ans = 0.6282 ans = 2.6526

(48)

O centro da sala, a nível do chão, é cerca de 4 vezes mais brilhante que os cantos quando existe apenas uma lâmpada no teto. Nosso objetivo é iluminar o quarto mais uniformemente usando mais lâmpadas com a mesma quantidade total de energia. Antes de prosseguir para lidar

com várias lâmpadas, observa-se que o uso de ezcontourf é pouco detalhado, uma vez que não nos permitem controlar o número de

contornos em nossas imagens. Esse controle será útil em ver com mais detalhamento a intensidade da luz; portanto, vamos traçar

numéricamente o contorno ao invés de simbolicamente; ou seja, usaremos contourf vez de ezcontourf.

(49)

Duas lampadas de 150 Watt

Neste caso temos de decidir onde colocar as duas lâmpadas. O senso comum diz-nos para organizar as lâmpadas simetricamente ao longo de uma linha no centro do quarto ao longo do comprimento, isto é, ao longo da linha y = 2. Definiremos uma função que dá a intensidade da luz num ponto (x, y) no chão devido a uma lampada de 150 watts na posição (d, 2) no teto.

> function luz=light2(x,y,d)

>luz=150./(4*pi*((x - d).^2 + (y - 2).^2 + 3^2))

Vamos ter uma idéia do padrão de iluminação, se colocarmos uma luz no d = 3 e outro na d =7. Nós especificar o desenho de 20 contornos neste e nos graficos posteriores.

(50)

Duas lampadas de 150 Watt (cont.)

[X,Y] = meshgrid(0:0.1:10, 0:0.1:4);

contourf(light2(X, Y, 3)

+ light2(X, Y, 7), 20); axis equal tight

(51)

Duas lampadas de 150 Watt (cont.)

O chão é mais uniformemente iluminado do que com uma lâmpada, mas parece que as lâmpadas estão mais próximos do que deveriam ser. Se deixarmos as

lâmpadas mais afastadas, o centro da sala vai ficar obscurecido mas os cantos terá mas brilho. Vamos mudar a localização das luzes para d = 2 e d = 8.

contourf(light2(X, Y, 2) + light2(X, Y, 8), 20);

axis equal tight

(52)

Duas lampadas de 150 Watt (cont.)

Esta é uma melhoria. Os cantos são ainda os lugares mais escuros do quarto, embora a intensidade da luz ao longo das paredes em direção ao meio da sala (perto de x = 5) está diminuindo à medida que

avançamos as lâmpadas mais distantes. Para clarear melhor estas regiões podemos continuar a separar as lampadas.

Vamos tentar luzes em d = 1 e d = 9.

>contourf(light2(X, Y, 1) + light2(X, Y, 9), 20);

>axis equal tight

(53)

Duas lampadas de 150 Watt ( cont.)

Olhando ao longo das paredes longas, o quarto está agora mais escuro no meio do que nos cantos. Isso indica que não podemos espalhar as luzes demais.

Poderíamos continuar gerando gráficos de contorno, mas em vez disso vamos ser sistemáticos na forma de encontrar a melhor posição para as luzes. Em geral, podemos colocar uma luz em x = d e o outro de forma simétrica em x = 10-d, variando d entre 0 e 5. A julgar pelos

exemplos acima, as manchas mais escuras serão ou nos cantos ou nos pontos médios das duas longas paredes. Por simetria, a intensidade irá ser a mesma em todos os quatro cantos, de modo que reresentemos graficamente a intensidade de um dos cantos (0, 0) como uma função de d.

(54)

Duas lampadas de 150 Watt ( cont.)

> d = 0:0.1:5; plot(d, light2(0, 0, d) + light2(0, 0, 10 - d))

Como esperado, o d é menor, quanto mais brilhante são os cantos. Em contraste, o gráfico da intensidade, no ponto médio (5, 0) da uma parede longa (mais uma vez por simetria que não importa qual dos dois longas paredes que escolhemos) deve crescer à medida que d aumenta até 5.

(55)

Duas lampadas de 150 Watt ( cont.)

> plot(d, light2(5, 0, d) + light2(5, 0, 10 - d))

Procuramos assim os menores valores de d nos dois graficos acima (correspondente ao ponto mais escuro no quarto) é tão alta quanto possível. Nós podemos achar esse valor, mostrando ambas as curvas em um gráfico.

> hold on; plot(d, light2(0, 0, d) + light2(0, 0, 10 - d));

> hold off

(56)

Duas lampadas de 150 Watt ( cont.)

O valor ótimo de d é, no ponto de interseção, próximo de 1,4, com

intensidade mínima um pouco menor que 1. Para obter o melhor valor de d, nós devemos achar exatamente onde as duas curvas se cruzam.

>syms d;

>eqn = inline(char(light2(0, 0, d) + light2(0, 0, 10 - d) - light2(5, 0, d) - light2(5, 0, 10 - d)))

>fzero(eqn, [0 5])

(57)

Duas lampadas de 150 watts ( cont.)

Então, as luzes devem ser colocados cerca de 1,44 metros das paredes curtas. Para esta configuração, a intensidade aproximada nos pontos mais escuros no chão é como se segue:

>light2(0, 0, 1.441) + light2(0, 0, 10 - 1.441)

As manchas mais escuras na sala têm intensidade em torno de 0.93, em oposição a 0,63 para uma única lâmpada. Isto representa uma melhoria de cerca de 50%.

(58)

Três lampadas de 100 watts

Fazer agora o mesmo para três Lâmpadas de 100 Watt.

Primeiro redefiniremos a função para lâmpadas de 100 watt

Assumiremos que colocaremos uma lâmpada no centro da sala e duas

lâmpadas simetricamente como no caso anterior. A seguir apresentamos a iluminação quando estas lâmpadas estão a 1 metro da paredes menores.

> [X,Y] = meshgrid(0:0.1:10, 0:0.1:4);

contourf(light3(X, Y, 1)+ light3(X, Y, 5) + light3(X, Y, 9), 20);

>axis equal tight

(59)

2.14- Exercício14: O pendulo 360°

Normalmente pensamos de um pêndulo como um peso suspenso por uma corda flexível ou cabo, de modo que ele pode balançar para trás e para frente. Outro tipo de pêndulo consiste de um peso ligado por uma leve haste (porém inflexível) a um eixo, de modo que pode oscilar

através de ângulos maiores, inclusive fazendo uma rotação de 360 se for dada velocidade suficiente.

Embora não seja precisamente correto, na prática, muitas vezes

assumimos que a magnitude das forças de atrito que, eventualmente vão retardar o pêndulo para que ele pare, são proporcionais à

velocidade do pêndulo.

Façamos um exemplo assumindo que o comprimento do pêndulo é de 1 metro, o peso na extremidade do pêndulo tem massa de 1 kg, e o coeficiente de fricção é de 0.5.

(60)

2.14- Exercício14: O pendulo 360° ( cont.)

Nesse caso, as equações de movimento para o pêndulo são

𝑥 𝑡 = 𝑦 𝑡 ,

𝑦 𝑡 = −0.5𝑦 𝑡 − 9.81sin (𝑥 𝑡 )

em que t representa o tempo em segundos, x representa o ângulo do pêndulo em relação à vertical em radianos (sendo x = 0 a posição de descanso), y representa a velocidade do pêndulo em radianos por segundo, e 9,81 é aproximadamente a aceleração devido à gravidade em metros por segundo ao quadrado.

(61)

2.14- Exercício14: O pendulo 360° ( cont.)

Façamos a situação em que : a posição inicial x (0) = 0 e a velocidade inicial y (0) = 5.

O grafico desta situação de t variando de 0 a 20s.

>g = inline(’[x(2); -0.5*x(2) - 9.81*sin(x(1))]’,

’t’, ’x’);

>[t, xa] = ode45(g, [0 20], [0 5]);

>plot(xa(:, 1), xa(:, 2))

Lembremos que a coordenada x corresponde ao ângulo do pêndulo e a coordenada y

corresponde à sua velocidade.

A partir dos valores inciais (0, 5), e com t

variando até 20s, temos a curva espiral acima.

O ângulo oscila para trás e para frente, e em cada balanço a oscilação fica menor até que o pêndulo é chega praticamente ao repouso por tempo t = 20s.

(62)

2.14- Exercício14: O pendulo 360° ( cont.)

Aumentemos agora a velocidade para 10

> [t, xa] = ode45(g, [0 20], [0 10]);

>plot(xa(:, 1), xa(:, 2))

Desta vez, o ângulo aumenta para mais de 14 radianos antes de as espirais começarem a se fechar.

Vejam que com esta velocidade o pêndulo oscilou em cima e fez duas voltas completas antes de iniciar sua oscilação amortecida para a sua posição de repouso.

A velocidade incialmente diminui, mas devido a posição incial, ele ganha momento e há uma aumento da velocidade. O pêndulo ainda tem força para balançar novamente na posição vertical antes de entrarar na espiral que leva o pendulo ao repouso.

(63)

2.14- Exercício14: O pendulo 360° ( cont.)

Agora, suponha que queremos achar, para dentro de 0,1, a velocidade inicial mínima exigida para fazer o pêndulo, a partir de sua posição de repouso, oscile somente uma vez. Será útil ser capaz de ver as soluções possiveis para estas várias velociadades

Façamos para v variando de 5 a 10

>hold on

>for a = 5:10

>[t, xa] = ode45(g, [0 20], [0 a]);

>plot(xa(:, 1), xa(:, 2))

>end

>hold off

(64)

2.14- Exercício14: O pendulo 360° ( cont.)

As velocidades iniciais 5, 6, 7 não são grandes o suficiente para o ângulo oscilar e os valores de velocidadeiniciais 8, 9, 10 são grande para passar do ponto.

Vamos ver o que acontece entre 7 e 8.

>hold on

>for a = 7.0:0.2:8.0

>[t, xa] = ode45(g, [0 20], [0 a]);

>plot(xa(:, 1), xa(:, 2))

>end

>hold off

(65)

2.14- Exercício14: O pendulo 360° ( cont.)

Vemos que o corte é algo entre 7,2 e 7,4. Vamos fazer mais um refinamento.

>hold on

>for a = 7.2:0.05:7.4

>[t, xa] = ode45(g, [0 20], [0 a]);

>

>plot(xa(:, 1), xa(:, 2))

>end

>hold off

Conclui-se que a velocidade mínima necessária situa-se entre 7,25 e 7.3.

(66)

2.15- Exercício15: Pendulo aplicado ao Simulink

Fazer o problema 14 dentro do simulink, com as condições inciais sendo:

x(0)=0 e x’(0)=10.

(67)

2.16- Exercício16: Circuito RL

Fazer as curvas de corrente e tensão de um circuito RL cujas variáveis são: V=10, I=5 e defasagem entre elas igual a 60°.

(68)

2.17- Exercício17: Conversor A/D de 3 bits

Um conversor A/D de 3 bits é representado pelas seguintes equações:

Escreva um programa MATLAB para converter sinal analógico x para um sinal digital y

Teste o programa usando um sinal analógico com as seguintes amplitudes: -1.25, 2.57 e 6.

(69)

2.18- Exercício18: Circuitos CA com fontes de correntes

Baseado no circuito abaixo e usando as leis de kirchhoff encontre V1,V2 e V3

(70)

2.19- Exercício19: Máxima Transferência de Potência

Dado o circuito abaixo encontre a curva de máxima transferência de energia na carga RL se ela varia de 0 a 10kΩ

(71)

A máxima potencia ocorre para 10000.00 Ohms A máxima Potencia dissipada é: 0.0025 Watts

(72)

2.20- Exercício20: Circuito RLC

Para o circuito abaixo, temos a função de transferência

𝐻 𝑠 = 𝑉0(𝑠)

𝑉𝑖(𝑠) = 𝑠 𝑅 𝐿 𝑠2 + 𝑠𝑅

𝐿 + 1 𝐿𝐶

Faça o gráfico de resposta em frequência se L=5H,C=1.12μF e R=10000Ω.

O que acontece se mudarmos R para 100 Ω e deixarmos L e C inalterados?

(73)

Resposta exercício 20

> % Frequency response of RLC filter

> l = 5;

> c = 1.25e-6;

> r1 = 10000;

> r2 = 100;

>

> num1 = [r1/l 0];

> den1 = [1 r1/l 1/(l*c)];

>

> w = logspace(1,4);

> h1 = freqs(num1,den1,w);

>

> f = w/(2*pi);

> mag1 = abs(h1);

> phase1 = angle(h1)*180/pi;

>

> num2 = [r2/l 0];

> den2 = [1 r2/l 1/(l*c)];

> h2 = freqs(num2,den2,w);

> mag2 = abs(h2);

> phase2 = angle(h2)*180/pi;

>

> % Plot the response

>

> subplot(221), loglog(f, mag1,'.')

> title('magnitude response R=10K')

> ylabel('magnitude')

>

> subplot(222), loglog(f,mag2,'.')

> title('magnitude response R=.1K')

> ylabel('magnitude')

> subplot(223), semilogx(f, phase1,'.')

> title('phase response R=10K'),...

> xlabel('Frequency, Hz'), ylabel('angle in degrees')

>

> subplot(224), semilogx(f, phase2,'.')

> title('phase response R=.1K'),...

> xlabel('Frequency, Hz'), ylabel('angle in degrees')

(74)

À medida que a resistência é diminuída de 10 mil a 100 Ohms, a largura de banda da resposta de frequência diminui e o fator de qualidade do circuito aumenta.

Imagem

Referências

temas relacionados :