Na ausĂªncia dos stepstests:
1 - Filtrar dados com PID manual do treinamento dos modelos;
2 - Trabalhar com SP, sempre que possĂvel, ou tentar uma transformaĂ§Ă£o.
##
## 2 3 6
## 669 75 176
nomes_X_SP = c(
'Velocidade do Classificador (SP)', # Inversor
'Damper 01 (SP)', #damper
"PressĂ£o de entrada do moinho (SP)", #PID ### Se automĂ¡tico IA pode funcionar ou nĂ£o
'AlimentaĂ§Ă£o Total (SP)', ### balança
"Temperatura de saĂda (SP)", #PID
"PressĂ£o grade (SP)", ### unidade hidr
'InjeĂ§Ă£o de Ă¡gua (SP)' ### inversor
)
# PV vs SP
# Inversor: erro prĂ³ximo de 0
# Damper: erro até 3%
# PID: erro depende do processo e PID (filtrar no treinamento dos modelos).
# Balança: erro depende da umidade e erro da propria balança
# Unidade Hidraulica: Erro aproximadamente 0.3 Mpa.
nomes_X_PV = c(
'Velocidade do Classificador (PV)',
'Damper 01 (PV)',
"PressĂ£o de entrada do moinho (PV)",
'AlimentaĂ§Ă£o Total (PV)',
"Temperatura de saĂda (PV)",
"PressĂ£o grade (PV)",
'InjeĂ§Ă£o de Ă¡gua (PV)'
)
tag_X_PV = c('CM2_PV_CLA01_SPEED',
'CM2_PV_DA01_POSITION',
"CM2_PV_VRM01_IN_PRESS",
'CM2_PV_RB01_TOTAL_FEED',
"CM2_PV_VRM01_OUTLET_TEMPERATURE",
"CM2_PV_HYS01_PRESSURE",
'CM2_PV_WI01_WATER_INJECTION'
)
tag_X_SP = c('CM2_SP_CLA01_SPEED',
'CM2_SP_DA01_POSITION',
'CM2_SP_PRESS_AUTO',
'CM2_SP_RB01_TOTAL_FEED',
'CM2_SP_VRM01_TEMP_AUTO',
"CM2_SP_VRM01_PRESS_GRIDING_1_3",
'CM2_SP_WI01_WATER_INJECTION'
)
Por se tratar de um inversor, nĂ£o existe diferença entre PV e SP.
## [1] "Dados filtrados"
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## 5.663e-12 1.000e+00
Damper: erro até 3%.
i=2
B1_SPS = df_type[ which(names(df_type) == tag_X_SP[i])]
B1_PVS = df_type[ which(names(df_type) == tag_X_PV[i])]
dados = na.omit(cbind(B1_PVS[1],B1_SPS[1]))
dados = na.omit(cbind(dados[1],dados[2]))
print("Dados filtrados")
## [1] "Dados filtrados"
dados$index = seq(1,nrow(dados))
names(dados) = c("y", "x")
dados$index = seq(1,nrow(dados))
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "PV")) +
geom_line(aes(y = y, colour = "SP"))+
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
theme_minimal() +
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
model = lm(dados[,1] ~ dados[,2])
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## 2.6484 0.9588
e100 = abs((dados[,1] - dados[,2])/dados[,1])*100
dados$e100 = e100
ggplot(dados, aes( y = e100, x = index)) +
geom_point() +
theme_minimal() +
labs(y= "Erro em porcentagem" ,x= nomes_X_SP[i])
O erro depende do processo e do PID em questĂ£o. Deve-se filtrar os dados para usar o PID ativo no treinamento dos modelos.
Os cĂ³digos do PID mode sĂ£o: ativado = 0, manual = 1, e controlado por ia = 7.
Significando assim que temos que remover os dados quando o PID estĂ¡ em manual (cĂ³digo 1).
As TAGs do CM1 sĂ£o: CM1_SP_PRESS_MODE e CM1_SP_VRM01_TEMP_MODE.
As TAGs do CM2 sĂ£o: CM2_SP_PRESS_MODE e CM2_SP_VRM01_TEMP_MODE
i=3
B1_SPS = df_type[ which(names(df_type) == tag_X_SP[i])]
B1_PVS = df_type[ which(names(df_type) == tag_X_PV[i])]
dados = na.omit(cbind(B1_PVS[1],B1_SPS[1]))
dados = na.omit(cbind(dados[1],dados[2]))
print("Dados filtrados")
## [1] "Dados filtrados"
dados$index = seq(1,nrow(dados))
names(dados) = c("y", "x")
dados$index = seq(1,nrow(dados))
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "PV")) +
geom_line(aes(y = y, colour = "SP"))+
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
theme_minimal() +
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
model = lm(dados[,1] ~ dados[,2])
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## -1.6478 0.7024
e100 = abs((dados[,1] - dados[,2])/dados[,1])*100
dados$e100 = e100
ggplot(dados, aes( y = e100, x = index)) +
geom_point() +
theme_minimal() +
labs(y= "Erro em porcentagem" ,x= nomes_X_SP[i])
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "SP")) +
geom_line(aes(y = y, colour = "PV"))
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## -1.6478 0.7024
i=4
B1_SPS = df_type[ which(names(df_type) == tag_X_SP[i])]
B1_PVS = df_type[ which(names(df_type) == tag_X_PV[i])]
plot(B1_SPS[,1],B1_PVS[,1], ylab=nomes_X_PV[i] , xlab=nomes_X_SP[i] )
dados = na.omit(cbind(B1_PVS[1],B1_SPS[1]))
dados[1][dados[1] < 40]= NA
dados[1][dados[1] > 200]= NA
dados[2][dados[2] < 40]= NA
dados[2][dados[2] > 200]= NA
dados = na.omit(cbind(dados[1],dados[2]))
print("Dados filtrados")
## [1] "Dados filtrados"
dados$index = seq(1,nrow(dados))
names(dados) = c("y", "x")
dados$index = seq(1,nrow(dados))
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "PV")) +
geom_line(aes(y = y, colour = "SP"))+
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
theme_minimal() +
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
model = lm(dados[,1] ~ dados[,2])
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## 12.6197 0.8213
e100 = abs((dados[,1] - dados[,2])/dados[,1])*100
dados$e100 = e100
ggplot(dados, aes( y = e100, x = index)) +
geom_point() +
theme_minimal() +
labs(y= "Erro em porcentagem" ,x= nomes_X_SP[i])
i=5
B1_SPS = df_type[ which(names(df_type) == tag_X_SP[i])]
B1_PVS = df_type[ which(names(df_type) == tag_X_PV[i])]
plot(B1_SPS[,1],B1_PVS[,1], ylab=nomes_X_PV[i] , xlab=nomes_X_SP[i] )
dados = na.omit(cbind(B1_PVS[1],B1_SPS[1]))
dados[1][dados[1] < 40]= NA
dados[1][dados[1] > 200]= NA
dados[2][dados[2] < 40]= NA
dados[2][dados[2] > 200]= NA
dados = na.omit(cbind(dados[1],dados[2]))
print("Dados filtrados")
## [1] "Dados filtrados"
dados$index = seq(1,nrow(dados))
names(dados) = c("y", "x")
dados$index = seq(1,nrow(dados))
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "PV")) +
geom_line(aes(y = y, colour = "SP"))+
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
theme_minimal() +
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
model = lm(dados[,1] ~ dados[,2])
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## -11.72 1.12
e100 = abs((dados[,1] - dados[,2])/dados[,1])*100
dados$e100 = e100
ggplot(dados, aes( y = e100, x = index)) +
geom_point() +
theme_minimal() +
labs(y= "Erro em porcentagem" ,x= nomes_X_SP[i])
i=6
B1_SPS = df_type[ which(names(df_type) == tag_X_SP[i])]
B1_PVS = df_type[ which(names(df_type) == tag_X_PV[i])]
plot(B1_SPS[,1],B1_PVS[,1], ylab=nomes_X_PV[i] , xlab=nomes_X_SP[i] )
dados = na.omit(cbind(B1_PVS[1],B1_SPS[1]))
dados = na.omit(cbind(dados[1],dados[2]))
print("Dados filtrados")
## [1] "Dados filtrados"
dados$index = seq(1,nrow(dados))
names(dados) = c("y", "x")
dados$index = seq(1,nrow(dados))
ggplot(dados, aes(index)) +
geom_line(aes(y = x, colour = "PV")) +
geom_line(aes(y = y, colour = "SP"))+
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
ggplot(dados, aes(x = x, y = y)) +
geom_point() +
theme_minimal() +
labs(y= nomes_X_PV[i] ,x= nomes_X_SP[i])
model = lm(dados[,1] ~ dados[,2])
lm(dados,formula= y ~x)
##
## Call:
## lm(formula = y ~ x, data = dados)
##
## Coefficients:
## (Intercept) x
## 1.0964 0.8064
e100 = abs((dados[,1] - dados[,2])/dados[,1])*100
dados$e100 = e100
ggplot(dados, aes( y = e100, x = index)) +
geom_point() +
theme_minimal() +
labs(y= "Erro em porcentagem" ,x= nomes_X_SP[i])