• Nenhum resultado encontrado

Implementação de objetos CIM

Devido à abrangência da especificação CIM, uma implementação completa iria consumir muito tempo e não seria o mais adequado para o protótipo. Fez-se um trabalho de redução das classes originais para o estritamente necessário de modo a modelar a subestação definida na seção 5.2. Com a exclusão das classes, muitos pacotes também não tiveram representação, sendo eliminados. A Figura 14 mostra o diagrama de classes completo do modelo reduzido gerado para o protótipo. Foi ocultada a classe Core.Naming do diagrama para evitar a poluição visual, pois ela é a superclasse de todas as demais do modelo que precisam de identificação por nome.

A implementação do CIM reduzido foi feita na forma de objetos criados estaticamente. Não foi usado banco de dados nem persistência para esses objetos.

Nem todas as classes do modelo reduzido foram necessárias. A lista de todos os objetos presentes na aplicação Java executada na subestação estão na Tabela 2.

Os comentários na linha das medidas significam que outros atributos do objeto foram preenchidos. O número entre parênteses identifica o valor considerado normal para a medida. A letra n representa a faixa de variação considerada normal.

Foi implementado apenas um sensor (MeasurementValue) por medida (Measurement).

Apesar de haver no modelo a classe para definição do transformador, seus enrolamentos e comutador de taps, eles ainda não foram utilizados na implementação.

58

Breaker (from Wires) Connector

(from Wires) Version : Logical View::jav a::lang::String = "cim10_030501"

LastUpdate : Logical View::jav a::lang::String = "11/05/2006"

CimVersionREDUZIDO()

BusbarSection (from Wires)

PowerTransf ormer (from Wires) EquipmentContainer

(from Core)

Equipment (from Core) 0..1

0..n 0..1

+Contains_Equipments 0..n

ConductingEquipment (from Core)

Limit (from Meas)

PowerSy stemResource (from Core)

Terminal (from Core)

0..n

1 +Terminals

0..n

+ConductingEquipment

1 Measurement

Value (from Meas)

LimitSet (from Meas)

1 0..n

+LimitSet 1

+Limits 0..n ValueToAlias

(from Meas)

Measurement (from Meas)

0..1

0..n

+MemberOf _PSR

0..1

+Contains_Measurements 0..n

0..n

0..1 +Measurements

0..n

+Terminal

0..1 1..n

1

+Contain_MeasurementValues 1..n

+MemberOf _Measurement 1

0..n

0..n

+Measurements0..n

+LimitSets 0..n ValueAliasSet

(from Meas) 1

1..n

+ValueAliasSet 1

+Values 1..n

0..n 0..1

+Measurements 0..n +ValueAliasSet

0..1

Unit (from Core)

0..n

1

+Measurements 0..n

+Unit 1 Control

(from Meas) 0..1

+ControlledBy _Control 0..1 0..1

+MeasuredBy _Measurement 0..n 0..1

0..1 +Controls

0..n

+ValueAliasSet 0..1

1 0..n

+Unit 1

+Controls 0..n

Switch (from Wires) Substation

(from Core) SubControl

Area (from Core)

0..1 1..n

+Contain_Substations

1..n +MemberOf _SubControlArea

0..1

Line (from Wires)

ACLineSegment (from Wires)

+Contains_ACLineSegments[]

Conductor (from Wires)

Figura 14 - Modelo CIM reduzido para o protótipo.

Classe CIM Objeto atributo.name atributo.aliasName Outros atributos Substation SE "ARC" "SE Araucaria"

SubControlArea AreaControle "COE_CCO" "COE Campo Comprido"

Terminal[3] TerminalConexao

TerminalConexao[0] "T_BARRA" "Terminal Barramento"

TerminalConexao[1] "T_CIRC_1" "Terminal Circuito 1"

TerminalConexao[2] "T_CIRC_2" "Terminal Circuito 2"

Breaker[3] Disjuntor

Disjuntor[0] "DJ_P" "DJ Principal"

Disjuntor[1] "DJ_1" "DJ Circuito 1"

Disjuntor[2] "DJ_2" "DJ Circuito 2"

BusbarSection Barra "BP" "Barra Principal"

Line Linha "LF" "Linha Fonte"

ACLineSegment[2] Circuito

Circuito[0] "C1" "Circuito 1"

Circuito[1] "C2" "Circuito 2"

Control[3] Controle

Controle[0] "C_DJ_P" "Controle Disjuntor Principal"

Controle[1] "C_DJ_1" "Controle Disjuntor Circuito 1"

Controle[2] "C_DJ_2" "Controle Disjuntor Circuito 2"

Measurement[9] Medida

Medida[0] "M_VB" "Tensao barramento" 10 < n(13.8) < 14 Medida[1] "M_FB" "Frequencia barramento" 55 < n(60) < 65 Medida[2] "M_I1" "Corrente Circuito 1" 0 < n(300) < 350 Medida[3] "M_P1" "Potencia Circuito 1" 0 < n(4) < 4.8 Medida[4] "M_I2" "Corrente Circuito 2" 0 < n(15) < 175 Medida[5] "M_P2" "Potencia Circuito 2" 0 < n(2) < 2.4 Medida[6] "M_DJ_P" "Estado DJ Principal"

Medida[7] "M_DJ_1" "Estado DJ Circuito 1"

Medida[8] "M_DJ_2" "Estado DJ Circuito 2"

MeasurementValue[9] ValorMedida

ValorMedida[0] "S_VB" "Sensor Tensao Barramento" double; sensor satura +30% do normal ValorMedida[1] "S_FB" "Sensor Frequencia Barramento" double; sensor satura +8,33% do normal ValorMedida[2] "S_I1" "Sensor Corrente Circuito 1" double; sensor satura +30% do normal ValorMedida[3] "S_P1" "Sensor Potencia Circuito 1" double; sensor satura +30% do normal ValorMedida[4] "S_I2" "Sensor Corrente Circuito 2" double; sensor satura +30% do normal ValorMedida[5] "S_P2" "Sensor Potencia Circuito 2" double; sensor satura +30% do normal ValorMedida[6] "S_E_DJ_P" "Sensor Estado DJ Principal" boolean; registro de timestamp ValorMedida[7] "S_E_DJ_1" Sensor Estado DJ Circuito 1 boolean; registro de timestamp ValorMedida[8] "S_E_DJ_2" "Sensor Estado DJ Circuito 2" boolean; registro de timestamp

LimitSet[1] CjtoLimitesVB Modelado apenas limites para a medida

M_VB CjtoLimitesVB[0] "CJ_LIM_N_VB" "Conjunto de Limites Normais da

VB" apenas um conjunto de limites normais

Limit[2] LimiteNormal

LimiteNormal[0] "LIM_N_VB_SUP" "Limite Superior VB para

ALarme" definido com o valor 14

LimiteNormal[1] "LIM_N_VB_INF" "Limite Inferior VB para ALarme" definido com o valor 13

Unit[5] Unidade

Unidade[0] "kV"

Unidade[1] "Hz"

Unidade[2] "MW"

Unidade[3] "A"

Unidade[4] "DIGITAL"

ValueAliasSet[1] DicionarioValores DicionarioValores[0]

Para o prototipo, há apenas um dicionario de valores para associar em todas as medidas / controles necessários ValueToAlias[2] Verbete

Verbete[0] "ABERTO" booleano definido como falso

Verbete[1] "FECHADO" booleano definido como verdadeiro

Tabela 2 - Objetos CIM para subestação do protótipo.

A Figura 15 identifica no diagrama unifilar da subestação os elementos que foram modelados em objetos CIM. Os retângulos representam os objetos dos

sensores. São os sensores que fornecem ao sistema o valor das medidas analógicas e digitais. As setas identificam as associações entre os objetos, conforme o diagrama de classes do CIM apresentado na Figura 14.

Figura 15 – Identificação dos objetos CIM sobre o unifilar.

As seguintes associações foram realizadas:

• A medida de tensão no barramento M_VB se associa com um conjunto

de limites CJ_LIM_N_VB. Este conjunto contém dois objetos de limites identificados na geração de alarmes para ultrapassagem de nível alto e nível baixo;

• Os disjuntores DJ_P, DJ_1, DJ_2 se associam respectivamente com as medidas M_DJ_P, M_DJ_1, M_DJ_2;

• As medidas M_DJ_P, M_DJ_1, M_DJ_2 se associam com os respectivos controles C_DJ_P, C_DJ_1, C_DJ_2;

COE_CCO ARC

T_BARRA

T_CIRC_1 T_CIRC_2

DJ_P

DJ_1 DJ_2

S_VB LF

C1 C2

C_DJ_P

C_DJ_1 C_DJ_2

M_P1

M_VB

M_I1

M_FB

M_P2 M_I2

M_DJ_P

M_DJ_1 M_DJ_2

S_FB

BP

S_I1 S_P1 S_I2 S_P2

S_E_DJ_1

S_E_DJ_P

S_E_DJ_2 CJ_LIM_N_VB

LIM_N_VB_SUP LIM_N_VB_INF

• As medidas M_DJ_P, M_DJ_1, M_DJ_2 se associam com seus respectivos sensores S_E_DJ_P, S_E_DJ_1, S_E_DJ_2;

• Todos os sensores se associam com as suas respectivas medidas;

• A barra BP se associa ao terminal T_BARRA;

• O terminal de conexão T_BARRA se associa com as medidas M_VB e M_FB;

• As medidas M_VB e M_FB se associam com seus respectivos sensores S_VB e S_FB;

• Os circuitos C1 e C2 se associam aos respectivos terminais de conexão T_CIRC_1 e T_CIRC_2;

• O terminal T_CIRC_1 se associa com as medidas M_I1 e M_P1 e estas aos seus sensores S_I1 e S_P1;

• O terminal T_CIRC_2 se associa com as medidas M_I2 e M_P2 e estas aos seus sensores S_I2 e S_P2;

• Todas as medidas se associam obrigatoriamente com um objeto de identificação da unidade de grandeza sendo medida;

• Todos os controles se associam a uma unidade também;

• As medidas digitais M_DJ_P, M_DJ_1, M_DJ_2 se associam a um

dicionário de valores para identificar o que significa cada estado digital;

Exemplo: Para uma medida digital, os estados verdadeiro/falso significam abertura/fechamento do equipamento, respectivamente. Para outra medida, os mesmos estados significam operação normal/falha.

• Os controles digitais C_DJ_P, C_DJ_1, C_DJ_2 também se associam

ao mesmo dicionário de valores;

Por enquanto, não há associação de linhas com elementos da subestação e nem de modelagem do transformador.

O terminal (terminal de conexão) serve como ponto de junção entre um barramento ou circuito e seus respectivos pontos de medição de valores.

O breaker (disjuntor) é um equipamento do sistema elétrico (derivado da classe PowerSystemResource) para efetuar comando e para ler medidas digitais.

As atualizações a seguir foram necessárias para adaptar as classes do modelo CIM à ontologia do JADE:

• Core.Naming

o Implementação da interface jade.content.Concept. Para que uma

classe do modelo possa ser mapeada num esquema de ontologia do JADE como um conceito, ela precisa implementar esta interface. Para facilitar, a implementação foi feita uma única vez diretamente na superclasse do CIM para objetos que utilizam atributos de nome;

o Inclusão dos métodos setters/getters para acesso aos atributos.

Conforme documentação do JADE [JadeOnto04], classes ontológicas (classes associadas a um esquema de ontologia por reflexão) devem fornecer esses métodos de acesso a atributos.

• Domain.Numeric

o Implementação da interface jade.content.Concept. Pelo mesmo

motivo usado nas classes nomeadas, a classe que define um tipo numérico de dado também será usada como um conceito na ontologia do protótipo;

o Implementação dos setter/getters para os atributos. Classes

ontológicas devem implementar métodos de acesso padronizados para seus atributos;

o Inicialização dos atributos atualmente utilizados (INT_TYPE = 0, DOUBLE_TYPE = 0, BOOLEAN_TYPE = false).

• Meas.MeasurementValue

o Implementação dos setter/getters para os atributos.

As classes abaixo foram removidas do modelo por possuírem correspondentes na linguagem Java:

Domain.Boolean;

Domain.Integer;

Domain.Double;

Domain.Short.

Documentos relacionados