library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)

3.Plotagem da Curvas I-V:

-Usando os dados coletados, monte a curvas I-V do painel solar em um grafico, onde o eixo vertical representa a corrente (I) e o eixo horizontal represental a tensão (V).
-Observe como a curva se parece e identifique os valores de Voc, Isc e Pmax a partir do grafico.

Os dados de tensão (V) e corrente (A) são definidos nos vetores tensaoe corrente.

# Defina os dados de tensão e corrente
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)

# Crie um gráfico de dispersão I-V
plot(tensao, corrente, type = "b", pch = 19, col = "blue", xlab = "Tensão (V)", ylab = "Corrente (A)")

# Adicione uma linha para melhor visualização da curva
lines(tensao, corrente, type = "b", col = "red")

4.Plotagem da curva I-V:

-usando os dados coletados, monte a curvas P-V do painel solar em um gráfico, onde o eixo vertical representa a potencia (P) e o eixo horizontal representa a tensão (V) . -Marque o ponto de máxima potencia (MMP)

# Dados
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)
corrente_total <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19, 3.31, 5.19, 6.80)

# Calcular a potência (P = V * I)
potencia <- tensao * corrente

# Encontrar o ponto de máxima potência (MMP)
indice_mmp <- which.max(potencia)
mmp_tensao <- tensao[indice_mmp]
mmp_potencia <- potencia[indice_mmp]

# Criar um data frame com os dados
dados <- data.frame(Tensao = tensao, Potencia = potencia)

# Criar o gráfico da curva P-V
ggplot(dados, aes(x = Tensao, y = Potencia)) +
  geom_line(color = "blue") +
  geom_point(data = dados[indice_mmp, ], aes(x = mmp_tensao, y = mmp_potencia, color = "red", size = 3)) +
  labs(x = "Tensão (V)", y = "Potência (W)", title = "Curva P-V do Painel Solar") +
  scale_color_manual(values = c("blue" = "blue", "red" = "red")) +
  theme_minimal()

# Dados
# Dados
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)

# Criar um data frame com os dados
dados <- data.frame(Tensao = tensao, Corrente = corrente)

# Encontrar os valores de Voc, Isc e Pmax
Voc <- max(dados$Tensao)
Isc <- max(dados$Corrente)
Pmax <- max(dados$Tensao * dados$Corrente)

# Criar o gráfico da curva I-V
ggplot(dados, aes(x = Tensao, y = Corrente)) +
  geom_line(color = "blue") +
  geom_point(aes(x = Voc, y = Isc), color = "red", size = 3) +
  labs(x = "Tensão (V)", y = "Corrente (A)", title = "Curva I-V do Painel Solar") +
  annotate("text", x = Voc, y = Isc, label = paste("Voc =", round(Voc, 2), "V\nIsc =", round(Isc, 2), "A"), vjust = -1) +
  geom_text(aes(x = Voc, y = Pmax), label = paste("Pmax =", round(Pmax, 2), "W"), vjust = -1, hjust = -0.2, color = "orange") +
  scale_color_manual(values = c("blue" = "blue", "red" = "red")) +
  theme_minimal() +
  coord_cartesian(ylim = c(0, max(corrente) * 1.1))

# Dados
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)

# Calcular a potência (P = V * I)
potencia <- tensao * corrente

# Encontrar o ponto de máxima potência (MMP)
indice_mmp <- which.max(potencia)
mmp_tensao <- tensao[indice_mmp]
mmp_potencia <- potencia[indice_mmp]

# Criar um data frame com os dados
dados <- data.frame(Tensao = tensao, Potencia = potencia)

# Criar o gráfico de dispersão da curva P-V
ggplot(dados, aes(x = Tensao, y = Potencia)) +
  geom_point(color = "blue", size = 3) +
  geom_point(data = dados[indice_mmp, ], aes(x = mmp_tensao, y = mmp_potencia), color = "red", size = 3) +
  labs(x = "Tensão (V)", y = "Potência (W)", title = "Curva P-V do Painel Solar") +
  theme_minimal()

5. Discussão e conclusão:

-Análise as curvas I-V e P-V plotadas e mostre o ponto de máxima potencia (MMP). -Conclua a aula destacando os pontos importantes da curvas I-V (Voc, Isc, Vmp e Imp).

tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19, 3.31, 5.19, 6.80)

# Criar um data frame com os dados
dados <- data.frame(Tensao = rep(tensao, each = length(corrente)),
                    Corrente = rep(corrente, times = length(tensao)))

# Calcular a potência (P = V * I)
dados <- dados %>% mutate(Potencia = Tensao * Corrente)

# Encontrar o ponto de máxima potência (MMP)
mmp <- dados %>% slice(which.max(Potencia))

# Criar o gráfico I-V e P-V no mesmo gráfico
ggplot(dados, aes(x = Tensao, y = Corrente, color = "I-V")) +
  geom_line() +
  geom_point(data = mmp, aes(x = Tensao, y = Corrente, color = "MMP"), size = 3) +
  geom_line(aes(x = Tensao, y = Potencia / Corrente, color = "P-V"), linetype = 2) +
  labs(x = "Tensão (V)", y = "Corrente (A)", title = "Curvas I-V e P-V") +
  scale_color_manual(values = c("I-V" = "blue", "MMP" = "red", "P-V" = "green")) +
  theme_minimal()

# Carregar a biblioteca ggplot2
library(ggplot2)

# Dados fictícios para ilustração
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)

# Criar um data frame com os dados
dados <- data.frame(Tensao = tensao, Corrente = corrente)

# Criar o gráfico com estilo personalizado
ggplot(dados, aes(x = Tensao, y = Corrente)) +
  geom_line(color = "blue") +  # Linha azul
  geom_point(color = "red", size = 3) +  # Ponto vermelho
  labs(
    x = "Tensão (V)",  # Rótulo do eixo X
    y = "Corrente (A)",  # Rótulo do eixo Y
    title = "[Dimensionamento de Sistemas Fotovoltaicos]",  # Título do gráfico
    subtitle = "Curva I-V do Painel Solar" # Nota de rodapé
  )

# Dados
tensao <- c(20.36, 20.40, 20.03, 20.00, 20.02, 19.01, 17.90)
corrente <- c(0.59, 0.66, 0.77, 0.90, 1.16, 1.56, 2.19)

# Criar um data frame com os dados
dados <- data.frame(Tensao = tensao, Corrente = corrente)

# Calcular a potência (P = V * I)
dados <- dados %>% mutate(Potencia = Tensao * Corrente)

# Encontrar o ponto de máxima potência (MMP)
mmp <- dados %>% slice(which.max(Potencia))

# Criar o gráfico I-V e P-V no mesmo gráfico
ggplot(dados, aes(x = Tensao)) +
  geom_line(aes(y = Corrente, color = "Curva I-V"), size = 1) +
  geom_line(aes(y = Potencia, color = "Curva P-V"), size = 1, linetype = 2) +
  geom_point(data = mmp, aes(y = Corrente, color = "MMP"), size = 3) +
  labs(
    x = "Tensão (V)",  # Rótulo do eixo X
    y = "Corrente (A) / Potência (W)",  # Rótulo do eixo Y
    title = "Curvas I-V e P-V do Painel Solar",  # Título do gráfico
    caption = "Fonte: Dados coletados"  # Nota de rodapé
  ) +
  scale_color_manual(values = c("Curva I-V" = "blue", "Curva P-V" = "green", "MMP" = "red")) +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.