Universidade Federal de Ouro Preto - UFOP
Departamento de Computação - DECOM
Programação de Computadores I – BCC701
www.decom.ufop.br/moodle
No circuito abaixo, temos uma fonte de voltagem V=120V,
com uma resistência interna Rs=50Ω, suprindo uma carga de
resistência RL. Qual é o valor da resistência que resulta na
potência máxima fornecida pela fonte para a carga? Qual é a
potência fornecida nesse caso?
1
Precisamos variar a resistência de carga RL e
computar o valor da potência, para a cada
valor de RL. A potência fornecida para a
resistência de carga é dada pela equação:
PL = I2 RL
onde I é a corrente fornecida para a carga,
calculada, conforme a lei de Ohm, como:
I = V/(RS+RL)
2
Os valores para a resistência de carga RL
devem variar de 1Ω até 100Ω, de 1 em 1Ω.
Como podemos construir uma tabela dos
possíveis valores para a resistência RL?
Como podemos computar o valor da potência
para a cada valor de RL?
3
4
1
cria uma matriz 1x3,
contendo os valores
23.6 44 e 78.5, e
atribui essa matriz à
variável de nome
massa
--> pesos = [ 23.6 44 78.5 ]
pesos =
23.6
44.
78.5
--> notas = [ 8, 7, 10 ]
elementos em uma
mesma linha da matriz
notas =
podem ser escritos
separados por espaços
8.
7.
10.
em branco ou por
vírgulas.
--> massa(1)
ans =
20.6
elementos individuais de
-->notas(3)
uma matriz são
identificados pelo nome da
ans =
10.
matriz e pelo índice da linha
A unidade básica de dados em Scilab é uma matriz.
Uma matriz é uma coleção de valores, organizados
em linhas e colunas, tal como uma tabela.
Exemplos:
a= 1562
12
b= 34
56
é uma matriz de dimensão1x4
é uma matriz de dimensão 3x2
e da coluna em que ele
ocorre na matriz
5
cria uma matriz 2x4
e atribui essa matriz
à variável a
--> a = [1,3,5,7; 2,4,6,8 ]
a =
as linhas da matriz são
1. 3. 5. 7.
separadas por ;
2. 4. 6. 8.
--> a(1,3)
elementos individuais de
ans =
uma matriz são identificados
5.
pelo nome da matriz e pelo
índice da linha e da coluna
--> a(2,1)
em
que ele ocorre na matriz
ans =
2.
6
--> b = [10;30;50+4]
a =
10.
30.
54.
--> a(2,1) = b(3,1)+10
a =
1. 3. 5. 7.
64. 4. 6. 8.
7
cria uma matriz 3x1 e atribui
essa matriz à variável b
um elemento de uma matriz
pode ser uma expressão
podemos atribuir valores a
elementos individuais de
uma matriz
8
2
Seja M a matriz criada pelo seguinte comando:
--> M = [1,3;2,4;5,7]
É fácil criar uma matriz listando explicitamente seus
elementos:
elementos:
--> M = [1,3;2,4;5,7]
Qual é a dimensão da matriz M? 3x2
Qual seria o resultado da execução de da
seguinte sequência de comandos Scilab?
Scilab?
--> x = M(2,1)*3
x = 6
error 21 – Invalid index
--> y = M(1,3)
--> M(2,1) = M(1,2)+10 M =
1.
Mas, e se a matriz contiver centenas ou milhares de
elementos?
elementos?
2.
1.
13.
5.
3.
4.
7.
valor inicial
valor final
--> X = [1:2:10]
incremento
X =
1. 3. 5. 7. 9.
9
10
valor inicial
Também podemos usar a notação
<valorInicial>:<incremento>:<valorFinal>
para criar matrizes de mais de uma dimensão:
valor final
--> A = [1:4]
A =
1. 2. 3.
--> M = [1:1:3; 10:10:30; 2:2:6]
M =
1. 2. 3.
10. 20. 30.
2. 4. 6.
4.
--> B = [1:4]*5
B =
5. 10. 15. 20.
11
se o incremento for omitido,
ele é considerado igual a 1
multiplicação de matrizes: o valor
5 é visto como uma matriz 1x1
12
3
--> F = [1:3]
F =
1. 2. 3.
--> H = [F F]
H =
1. 2. 3. 1. 2. 3.
O valor tensão na fonte é 120V e o valor da resistência
interna Rs é 50 Ω.
--> G = [1:3]’
G =
1.
operador de
2.
transposição
de matriz
3.
--> I = [G G]
I =
1. 1.
matrizes podem
ser criadas a
2. 2.
partir de outras
3. 3.
matrizes
Como podemos construir uma tabela dos possíveis valores
para a resistência RL?
Os valores para a resistência de carga RL devem variar de
1Ω até 100Ω, de 1 em 1Ω.
V = 120
// voltagem da fonte (Volts)
RS = 50
// resistência interna (Ohms)
RL = [1:100] // resistência de carga(Ohms)
13
Agora queremos calcular o valor da corrente
para cada possível valor da resistência de
carga RL, sendo o valor da corrente dado por:
14
Todos os operadores aritméticos se aplicam
também sobre matrizes:
A + B
soma/subtração de matrizes
A e B devem ser de mesma dimensão
A - B
I = V/(RS+RL)
C * D
C / D
Como podemos fazer isso?
produto/divisão de matrizes:
C e D devem ter dimensões (nxm
nxm) e (mxp)
xp)
o resultado é uma matriz de dimensão (nxp)
nxp)
Veremos mais sobre essas operações futuramente
15
16
4
No nosso problema, o que queremos é aplicar
uma determinada operação a todos os
elementos da matriz RL, obtendo uma matriz
dos resultados correspondentes:
I = V/(RS+RL)
Ia = V ./ (Rs + Rl) // corrente (Amperes)
o resultado é uma
matriz de mesma
dimensão que RL
Ia = V ./ (Rs + Rl) // corrente (Amperes)
soma o valor de RS a cada elemento de RL
17
P = (Ia .^ 2) .* Rl) // potência (Watts)
eleva ao quadrado cada
elemento da matriz I
divide o valor de V por cada
elemento da matriz resultante
Agora queremos calcular a potência na resistência
de carga RL para cada possível valor da corrente e
da resistência:
P = I2 RL
Como podemos calcular a matriz de potências?
Como podemos fazer isso?
divide o valor de V por cada
elemento da matriz resultante
soma o valor de RS a cada elemento de RL
18
V = 120
// voltagem da fonte (Volts)
RS = 50
// resistência interna (Ohms)
RL = [1:100] // resistência de carga(Ohms)
Ia = V ./ (Rs .+ Rl) // corrente (Amperes)
P = (Ia .^ 2) .* Rl) // potência (Watts)
multiplica cada elemento da matriz
resultante pelo elemento
correspondente na matriz RL
Para encontrar o valor da potência máxima,
vamos plotar o gráfico Potência X Resistência
de carga
19
20
5
// gráfico da potência versus resistência
plot (Rl,P) // resistência interna (Ohms)
title(“Potência versus Resistência)
xlabel(“Resistência de carga (ohms)”)
ylabel(“Potência (watts)”)
21
Estude o capítulo 2 do livro:
Stephen J. Chapman: Programação em
Podemos obter o valor da resistência de carga
para a qual a potência é máxima inspecionando o
gráfico de Potência versus Resistência de carga.
Mas podemos também usar funções pre-definidas
em Scilab para obter este valor:
MathLab para Engenheiros
A seção 2.14 contém um resumo do
capítulo e uma relação de operadores e
funções pre-definidos em Scilab
Procure fazer os exercícios desse capítulo
[Pmax,i] = max(P) // potência máxima
Rmax = Rl(i)
o valor da resistência para a
qual a potência é máxima
pode ser obtida na posição
correspondente na matriz RL
22
a função max,aplicada a uma matriz,
retorna dois valores:
1) o valor máximo contido na matriz
2) o índice da posição em que esse
valor máximo ocorre na matriz
23
24
6
Download

Precisamos variar a resistência de carga RL e - ICEB