E.T.S. Ingeniería Informática -...

115
E.T.S. Ingeniería Informática TRABAJO FIN DE GRADO Grado en Ingeniería Informática – Mención TI DxPCs 2.0 - Ampliación de la plataforma para diagnosis basada en modelos Autor: D. Mario Matesanz Niño Tutores: Dr. J. Belarmino Pulido Junquera Dr. Carlos J. Alonso González

Transcript of E.T.S. Ingeniería Informática -...

E.T.S. Ingeniería Informática

TRABAJO FIN DE GRADO

Grado en Ingeniería Informática – Mención TI

DxPCs 2.0 - Ampliación de la plataforma para diagnosis basada en modelos

Autor: D. Mario Matesanz Niño

Tutores:

Dr. J. Belarmino Pulido Junquera Dr. Carlos J. Alonso González

II

III

AGRADECIMIENTOS

A mi tutor Belarmino por su

dedicación y apoyo al proyecto.

IV

V

RESUMEN EsteTFGtienecomoobjetivoelanálisisy lamejoradeunaherramientadediagnosisbasadaenmodelos conPosiblesConflictos, escritaenel lenguajede programación Java. La finalidad de la herramienta es detectar dónde ycuándo pueden producirse errores en un sistema mediante una diagnosiscompleta siguiendo el método de la Diagnosis Basada en Modelos conPosiblesConflictos.ParaelcálculodelosPCslaherramientaseapoyaenotradecálculodeCPCs.La versión existente de la herramienta que se va a mejorar sólo tiene lacapacidaddemodelar sistemascontinuos.Lamejoraconsistiráenañadir lacapacidada laherramientademodelarsistemashíbridos,pudiendorealizarasí una diagnosis completa sobre ambos tipos de sistemas. Además seintroduciránnuevosalgoritmosparamejorarlaeficienciadelaherramienta.

VI

SUMMARY ThisTFGaimstheanalysisandtheimprovementofamodel-baseddiagnostictool with Possible Conflicts, written in Java programming language. Thepurpose is todetectwhenandwhen faultsappear in thesystemthroughacomplete diagnostic process following the approach names Consistency-based diagnosis using Possible Conflicts. The tool relies upon the CPC orPossibleConflictJavacalculationtool.Thepreviousversionofthetoolthatisgoingtobeimprovedisonlycapabletoworkwith continuous systems. This TFGwill increase these capabilities,working with hybrid systems too. In addition new algorithms will beintroducedtoimprovetheefficiency.

VII

GLOSARIO

• ADE:EcuaciónAlgebraico-Diferencial,ADEeninglés.

• Candidato: es el elemento o conjunto de elementos del sistema en los cualesconsideramosquepuedeexistirunerror.

• CCEM:ConjuntodeCadenasEvaluablesMinimales.

• CEM:CadenaEvaluableMinimal,Sistemasobredeterminadoquenospermiterealizarla

estimación de un valor. La minimalidad indica que no existirá otra CEM que seasubconjuntopropiodelaprimera.

• CMEM:ConjuntodeModelosEvaluablesMinimales.

• Condición:esunaexpresión lógicaquedebecumplirseparapoderaplicar laecuación

quellevaasociadaaella.

• CPC:ConjuntodePosiblesConflictos.

• DBC:DiagnósticoBasadoenConsistencia.

• DBM:DiagnósticoBasadoenModelos.

• Interpretación:soncadaunadelaformasdelascualespuederesolverseunaecuación.

• MEM: Modelo Evaluable Minimal, Modelo de un subsistema que puede evaluarsemediante la resolución local de cada una de sus relaciones a partir de unasobservaciones. Laminimalidad indica que no hay un subconjunto propio que cumplaestascondiciones.

• MODELOE/S: ModeloEntrada/Salida.

• MVC: Modelo-Vista-Controlador.

• PC: Posible conflicto, conjunto de ecuaciones con redundancia analítica mínima, es

decir,cualquierCEMquerepresentealmenosunCEM.

• PFC:ProyectoFindeCarrera.

• Residuo:esladiscrepanciaquepuedeexistirentreelvalormedidodelsistemarealyelvalorobtenidoenelmodelo.

• Sistema Híbrido: es un sistema con múltiples modos de funcionamiento continuocomandadoporaccionesdiscretas.

• TFG:TrabajodeFindeGrado.

VIII

IX

TABLA DE CONTENIDOS

Agradecimientos………………………………………………………………………III Resumen………………………………………………………………………………..V Summary………………………………………………………………………………VI Glosario………………………………………………………………………………VII Tabla de contenidos…………………………………………………………………..IX Índice de figuras……………………………………………………………………...XV Introducción……………..……………………………………………………………...1

1.1 Contexto……………………………………………………………………...1

1.2 Introducción………………………………………………………………….1

1.3 Conceptos…………………………………………………………………….2

1.4 Herramientas……………………………………………………………………….4 Plan de desarrollo de software………………………………………………………...7 2.1 Introducción………………………………………………………………………...7 2.1.1 Propósito………………………………………………………………….7 2.1.2 Alcance……………………………………………………………………7 2.1.3 Definiciones, Acrónimos, Abreviaturas………………………………...7 2.1.4 Perspectiva General……………………………………………………...7 2.2 Perspectiva general del proyecto…………………………………………………..8 2.2.1 Propósito, alcance y objetivos…………………………………………...8 2.2.2 Suposiciones y restricciones……………………………………………..8 2.2.3 Entregables del proyecto………………………………………………...8 2.2.4 Evolución de plan de desarrollo………………………………………...9 2.3 Organización del proyecto…………………………………………………………9 2.3.1 Estructura organizativa…………………………………………………9

X

2.3.2 Interfaces externas……………………………………………………….9 2.3.3 Roles y Responsabilidades………………………………….………….10 2.4 Proceso de Gestión………………………………………………………………...10 2.4.1 Estimaciones de proyecto………………………………………………10 2.4.2 Plan de proyecto………………………………………………………...10 2.4.2.1 Plan de fases………………………………………………….10 2.4.2.2 Objetivos de las iteraciones………………………………….11 2.4.2.3 Versiones……………………………………………………...11 2.4.2.4 Planificación temporal……………………………………….12 2.4.2.5 Recursos del proyecto………………………………………..12 2.4.3 Monitorización y control del proyecto………………………………...12 2.4.3.1 Gestión de requisitos…………………………………………12 2.4.3.2 Control de calidad……………………………………………13 2.4.3.3 Gestión de riesgos…………………………………………….13 Requisitos……………………………………………………………………………...17 3.1 Introducción………………………………………………………………...17 3.1.1 Propósito………………………………………………………………...17 3.1.2 Alcance…………………………………………………………………..17 3.1.3 Definiciones, Acrónimos, Abreviaturas……………………………….17 3.1.4 Perspectiva General…………………………………………………….17 3.2 Objetivos…………………………………………………………………….17 3.3 Requisitos funcionales……………………………………………………….18 3.4 Requisitos de interfaz externo……………………………………………….19 3.4.1 Interfaces de usuario…………………………………………………...19 3.4.2 Interfaces de software………………………………………………….20 3.5 Requisitos de información…………………………………………………...20 3.6 Requisitos de diseño…………………………………………………………20

XI

3.7 Requisitos no funcionales……………………………………………………20 Modelo de Análisis…………………………………………………………………….23 4.1 Introducción………………………………………………………………...23 4.1.1 Propósito………………………………………………………………...23 4.1.2 Alcance…………………………………………………………………..23 4.1.3 Definiciones, Acrónimos, Abreviaturas……………………………….23 4.1.4 Perspectiva General…………………………………………………….23 4.2 Perspectiva general………………………………………………………….23 4.3 Modelo de casos de uso………………………………………………………24 4.3.1 Casos de uso de la herramienta………………………………………..24 4.3.2 Casos de uso del Conversor de Modelos E/S………………………….25 4.3.3 Casos de uso del Generador de Modelos de Simulación……………..26 4.3.4 Casos de uso del Generador de Experimentos………………………..28 4.3.5 Casos de uso de Diagnosis……………………………………………...30 4.4 Modelado estructural del sistema……………………………………………33 4.4.1 Diagrama de clases……………………………………………………..33 4.5 Modelo de comportamiento………………………………………………….36 4.6 Modelo de interacción……………………………………………………….36 4.6.1 Escenarios en la aplicación…………………………………………….37 4.6.1.1 Escenarios en la carga de información……………………..37 4.6.1.2 Escenarios en la ejecución de funciones……………………37 4.6.2 Diagramas de secuencia de la aplicación……………………………..38 Modelo de diseño……………………………………………………………………...41 5.1 Introducción………………………………………………………………...41 5.1.1 Propósito………………………………………………………………..41 5.1.2 Alcance………………………………………………………………….41 5.1.3 Definiciones, Acrónimos, Abreviaturas………………………………41

XII

5.1.4 Perspectiva General…………………………………………………....41 5.2 Arquitectura del sistema…………………………………………………….41 5.2.1 El patrón MVC…………………………………………………………42 5.3 Diseño de sistemas…………………………………………………………...42 5.3.1 Sistemas híbridos……………………………………………………….42 5.3.2 Modelo E/S……………………………………………………………...43 5.3.3 Modelos de Simulación…………………………………………………45 5.4 Realización de casos de uso………………………………………………….46 5.5 Diseño de las clases………………………………………………………….46 5.6 Modelo de interacción……………………………………………………….53 5.6.1 Escenarios en la aplicación…………………………………………….53 5.6.1.1 Escenarios en la carga de información……………………..53 5.6.1.2 Escenarios en la ejecución de funciones……………………54 5.6.2 Diagramas de secuencia de la aplicación……………………………..55 Modelo de implementación…………………………………………………………..61 6.1 Introducción………………………………………………………………...61 6.1.1 Propósito………………………………………………………………..61 6.1.2 Alcance………………………………………………………………….61 6.1.3 Definiciones, Acrónimos, Abreviaturas………………………………61 6.1.4 Perspectiva General……………………………………………………61 6.2 Descripción de las herramientas de trabajo…………………………………61 6.2.1 Lenguaje de programación Java……………………………………...61 6.2.2 Entorno de programación Netbeans…………………………………..61 6.2.3 Sistemas operativos Windows y OS X………………………………...62 6.3 Aportaciones a la herramienta………………………………………………62 6.3.1 Cambios en el almacenamiento de datos……………………………...62 6.3.2 Algoritmos nuevos……………………………………………………...63

XIII

6.3.2.1 Conversión de Modelos……………………………………...63 6.3.2.2 Conversión de forma infija a prefija………………………..64

6.3.2.3 Generación de Modelos de Simulación……………………..65 6.3.2.4 Fusión de Modelos de Simulación…………………………..66

6.3.3 Algoritmos modificados………………………………………………..68 6.3.3.1 Lectura y visualización de datos……………………………68 6.3.3.2 Conversor de Modelos……………………………………….69 6.3.3.3 Generador de Experimentos………………………………...69 6.3.3.4 Generador de Modelos de Simulación……………………...69 6.3.3.5 Diagnosis……………………………………………………...69 Plan de pruebas……………………………………………………………………….71

7.1 Introducción………………………………………………………………...71 7.1.1 Propósito………………………………………………………………..71 7.1.2 Alcance…………………………………………………………………..71 7.1.3 Definiciones, Acrónimos, Abreviaturas……………………………….71 7.1.4 Perspectiva General……………………………………………………71 7.2 Pruebas realizadas…………………………………………………………..71 7.2.1 Pruebas de la herramienta DxPCs 1.0………………………………...72 7.2.2 Pruebas de la herramienta DxPCs 2.0………………………………...73 7.2.2.1 Pruebas con sistemas continuos……………………………..73 7.2.2.2 Pruebas con sistemas híbridos………………………………77 Manual de instalación………………………………………………………………...87 Manual de usuario…………………………………………………………………….89 9.1 Tipos de ficheros. …………………………………………………………...89 9.2 Funcionalidad de la herramienta……………………………………………92 Conclusiones ………………………………………………………………………….97 Bibliografía……………………………………………………………………………99

XIV

XV

ÍNDICE DE FIGURAS Figura 1.1 : Sistema 4 tanques…………………………………………………………………5 Figura 2.1 : Diagrama de Gantt………………………………………………………………12 Figura 4.1 : Diagrama de casos de uso……………………………………………………….24 Figura 4.2 : Diagrama de clases………………………………………………………………34 Figura 4.3 : Diagrama de actividad…………………………………………………………..36 Figura 4.4 : Diagrama de secuencia ConvertirModelo……………………………………...38 Figura 4.5 : Diagrama de secuencia GenerarModeloSim…………………………………...38 Figura 4.6 : Diagrama de secuencia GenerarExperimento…………………………………39 Figura 4.7 : Diagrama de secuencia Diagnosis………………………………………………39 Figura 5.1 : Esquema del patrón MVC………………………………………………………42 Figura 5.2 : Diagrama de clases - Patrón MVC……………………………………………...47 Figura 5.3 : Diagrama de secuencia CargarModeloCM…………………………………….56 Figura 5.4 : Diagrama de secuencia CargarModeloGMS…………………………………..57 Figura 5.5 : Diagrama de secuencia ConvertirModelo……………………………………...58 Figura 5.6 : Diagrama de secuencia GenerarModeloSim…………………………………...59 Figura 5.7 : Diagrama de secuencia GeneracionFuncionMatlab…………………………...60 Figura 6.1 : MEMs de un PC.…………………………………………………………………68 Figura 6.2 : Fusión de MEMs…………………………………………………………………68 Figura 7.1 : Carga de un sistema continuo…………………………………………………..73 Figura 7.2 : Carga de los MEM……………………………………………………………….74 Figura 7.3 : Carga de los Modelos de Simulación…………………………………………...74 Figura 7.4 : Modelo E/S……………………………………………………………………….75 Figura 7.5 : Modelos de Simulación fusionados……………………………………………..76 Figura 7.6 : Modelos de Simulación sin fusionar……………………………………………76 Figura 7.7 : Sistema de 3 tanques híbrido……………………………………………………77 Figura 7.8 : Carga sistema 3 tanques híbrido – Conversión de condiciones………………78 Figura 7.9 : Carga sistema 4 tanques híbrido – Conversión de condiciones………………78 Figura 7.10 : Modelo E/S 3 tanques híbrido…………………………………………………79 Figura 7.11 : Modelo E/S 4 tanques híbrido…………………………………………………79 Figura 7.12 Experimentos sin fallo y con fallo en sistema de 3 tanques híbrido…………..80 Figura 7.13 Experimentos sin fallo y con fallo en sistema de 4 tanques híbrido…………..80 Figura 7.14 : Carga de un MEM sistema 3 tanques híbrido………………………………..80 Figura 7.15 : Carga de un MEM sistema 4 tanques híbrido………………………………..81 Figura 7.16 : Modelos de Simulación fusionados sistema 3 tanques híbrido………………81 Figura 7.17 : Modelos de Simulación fusionados sistema 4 tanques híbrido………………82 Figura 7.18 : Modelo de Simulación sin fusionar……………………………………………82 Figura 7.19 : Modelo de Simulación cargado 3 tanques híbrido…………………………...83 Figura 7.20 : Modelo de Simulación cargado 4 tanques híbrido…………………………...83 Figura 7.21 : Cálculo de residuos de Modelos de Simulación con fallo del sistema……….84 Figura 7.22: Cálculo de candidatos Prueba A: caso 1 - caso 2 - caso 3…………………….85 Figura 7.23: Cálculo de candidatos Prueba B: caso 1 - caso 2 - caso 3…………………….85 Figura 9.1 : Interfaz herramienta…………………………………………………………….92 Figura 9.2 : Botón File………………………………………………………………………...92 Figura 9.3 : Pasos de creación del fichero de entradas automático………………………...92 Figura 9.4 : Pasos de creación del fichero de fallos automático…………………………….93 Figura 9.5 : Menú……………………………………………………………………………...93 Figura 9.6 : Carga manual o automática…………………………………………………….93 Figura 9.7 : Carga desde un fichero existente o crear nuevo……………………………….94 Figura 9.8 : Selección de variables a mostrar en gráfica……………………………………94 Figura 9.9 : Opciones de cálculo de residuo………………………………………………….95 Figura 9.10 : Opciones de cálculo de candidatos…………………………………………….95

XVI

Figura 9.11 : Opciones de selección de umbral………………………………………………95 Figura 9.12 : Z-test / Introducción de valores de umbral…...………………………………96

1

1. INTRODUCCIÓN

1.1. Contexto

Este TFG tiene como objetivo introducir una serie de mejoras en una herramienta yarealizada en PFCs y TFGs anteriores, en el lenguaje de programación Java, vinculados alámbitodeldiagnósticobasadoenmodelosconPosiblesConflictos.EstatécnicaademáshasidodesarrolladaenelGSIdelaUniversidadValladolid.

LatécnicadediagnosisbasadaenmodelosmediantePCssebasaenrealizarunanálisisoff-line del modelo de un sistema para intentar detectar potenciales conflictos, dada ladefiniciónunconjuntodevalores(variables)ydelasrelacionesquelasunen(ecuaciones).Las variablespodrán serdedos tipos:observadas, cuandopuedemedirse suvalor, ynoobservadas cuando no. Como conflicto denominamos a la diferencia que puede existirentreelvalormedidodelsistemarealyelvalorobtenidoenelmodelo.Loquebuscamoses identificar los subsistemas con redundancia a partir de los cuales generamos losmodelos y detectar así si existendiscrepancias entre las estimacionesde variables. Paraello,usaremoslatécnicadePosiblesConflictosquenosayudaráaresolverloidentificandoesossubsistemas.

LaherramientaensuestadoactualescapazdesimularlosmodelosasociadosaPCsyenbaseaellosrealizarladetecciónylocalizacióndefallosanalizandolosresiduosgeneradosporlosPCs.Ademásofrecelaposibilidaddevisualizar losresultadosdeexperimentosdediagnosis así como los obtenidos en losmodelos ofreciéndonos una comparación entreellos.La funcionalidad que vamos a añadir consistirá en realizar una ampliación de laherramientaactualparaquepuedausarseconsistemashíbridos.Unsistemahíbridoesunsistema conmúltiplesmodos de funcionamiento comandados por acciones discretas. Esdecir, la herramienta antes obtenía los subsistemas sobre el sistema sin restricciones,ahoraseleañadiránunoovariosparámetrosmásalsistemaloscualespuedentenerdosvalorescadauno.Segúnseaelvalordelparámetro,éstos influiráncompletamenteenelfuncionamiento del sistema ya que cada ecuación del modelo tendrá asociada unacondiciónquenosindicarácuándopuedeserusada.Asílasecuacionessóloseránválidasenciertassituaciones.Estassituacionessuelenmodelarsecomo"condiciones"asociadasacadaecuación.Siunacondiciónsecumpleenunmododetrabajo,entonces laecuaciónpuede intervenir en el modelo. Este hecho complica el cálculo de los PCs. Es en esteaspectodelcálculoconcondicionesesenelcualnosvamosacentrarenesteTFG.

1.2. Introducción

Antesdecomenzarvamosaintroducirbrevementeelmarcoteóricosobreelcualvamosatrabajardurantelarealizacióndelproyecto.Se va a dar una descripción de los conceptos de diagnóstico, diagnóstico basado enmodelos y posibles conflictos, así como de los conjuntos de apoyo que sirven para sucálculo y obtención que son las cadenas evaluablesminimales y losmodelos evaluablesminimales.

2

Tras esto se realizará de formabreveunadescripciónde las herramientas que están yarealizadasyqueusaremoscomopuntodepartidaquesonCPCsyDxPCs.1.3. Conceptos

Lastareasdediagnósticosonmuyimportantesennuestravidadiariayseencuentranmuypresentesenella.Anteelgrandesarrolloqueestánsufriendolossistemasdiseñadosporseres humanos, aumentando cada vezmás su complejidad, las tareas de diagnóstico sevuelven cada vez más importantes. Al implementar sistemas de diagnóstico se evitansituaciones de riesgo en dichos sistemas y por lo tanto se produce una mejora en elproducto final, en el proceso de fabricación o simplemente en el funcionamiento de unsistema.EldiagnósticoessegúnBalakrishnanyHonovar(Balakrishnan&Honavar,1998)elactooelprocesodedecidirlanaturalezadeunproblematraselexamenrealizadodesussíntomas.Los mismos nos proponen unas cuestiones a partir de las cuales podemos hacer unadivisióndelasdiferentesaproximacionesaldiagnóstico.Lapreguntasson:¿Cómosabráelsistema la relaciónentre los síntomasobservadosyel consecuentediagnóstico?,¿Cómorepresentará el sistema esta relación? y ¿Cómo usará esta representación para eldiagnósticodefallos?.Apartirdeestaspreguntas,lastécnicasdediagnósticoserán:

• Técnicasbasadasenconocimiento• Técnicasbasadasencasos• Técnicasbasadasenaprendizajeautomático• Técnicasbasadasenmodelos

Lastresprimerasnolasvamosautilizarporloquenosondeinterésparaestetrabajo,laúltima, la relacionadacon losmodelos,esen lacualnosvamosacentrarya laquenosvamosareferircomoDiagnósticoBasadoenModelos(DBM).Hablamosdemodeloscomounaabstraccióndeunsistemarealalquerepresentamosdeformasimbólica,medianteunconjunto de ecuaciones, pudiendo obtener así una estimación del correctocomportamientodelmismo.El DBM está basado en la comparación de unos datos reales obtenidos de formaexperimental sobre el funcionamiento del sistema, que indican cómo se comporta elsistemareal,con losdatosquesehanobtenidoen losdiferentesmodeloshallados,queindican cómo debería comportarse el sistema funcionado correctamente. Cuando esosvaloresnocoincidan,y ladiferenciaseamayorqueunmargen,se llegaráa laconclusióndequeelsistemanoestáfuncionandodeformacorrecta.Siladiferenciaentrelosvaloresobtenidosesmenorqueelmargen,elsistemafuncionaaparentementedeformacorrecta.EntrelasdistintasaproximacionesalDBMvamosacentrarnosenelDiagnósticoBasadoenConsistencia (DBC), que enfoca el proceso de diagnosis como un proceso iterativo deprediccióndelcomportamiento,deteccióndediscrepancias,generacióndeunconjuntodecandidatos (aquellos elementos del sistema que pueden dar lugar a errores) yrefinamientodedichoconjunto.

Estatécnicatienelaventajadequenonecesitatenerinformacióncomoalgúnconjuntodedatos o información relativa a fallos ocurridos con anterioridad, sólo necesita conocersobrelosmodelosdesuscomponentes.Sinembargo,tambiéntieneinconvenientescomo

3

ladificultaddeobtenerunmodeloquerepresentedeformaprecisaelsistemaasícomolacargacomputacionalquerepresentaeltenerquecalculartodaslasposiblesdiagnosisparaunfallo.

El problema del diagnóstico se resolverá cuando se identifique aquellos elementos quedanlugaralosconflictos.Losconflictossonlasdiferenciasquepodríamosencontrarentrelos valores observados y entre los valores predichos. Esas diferencias que podemosobservar, son definidas por un conjunto de componentes, a los cuales los vamos adenominarcomoconjuntoconflicto.Podemos hablar de Posibles Conflictos cuando ante la ausencia de fallos estructurales,usandolosmodelos,podemosrealizarunaestimaciónfueradelínea,esdecirsintenerenfuncionamiento real del software, de aquellas partes del modelo de las cuales puedensurgir conflictos. A nivel teórico, definimos PC como un conjunto de ecuaciones conredundancia analítica mínima. A la hora de hallar estos posibles conflictos en nuestroproyectoseañadiráunelementomásaconsiderarqueseránunascondicioneslascualessegúnsuvalordeterminarásipuedenusarseonolasecuacionesdelsistemadandolugaradiferentesresultadossegúnelvalordela“condición”.Lageneracióndeestosposiblesconflictosvienedadoporunprocesodetresfases:

1. Segeneraunarepresentaciónabstractadelsistemacomounhipergrafo1.Enél,losnodosrepresentaránvariables,ylosarcoslasrelacionesentrelasmismas.

2. Búsqueda de Cadenas Evaluables Minimales (CEMs), éstas son subsistemas derelacionessobredeterminados.

3. Búsqueda de Modelos Evaluables Minimales (MEMs), que son todas las víasposiblesdeevaluacióndelosanterioressubsistemas.

Estos subsistemas que hemos mencionado, las CEMs deben cumplir un conjunto decondicionesquedebemostenerencuentaalahoradeobtenerlos.Lacondicionesserán:

• Formar un hipergrafo conexo, es decir, que se pueda formar un camino desdecualquiervérticeaotro.

• Teneralgúnvalorobservado,loscuáles,sonvariablesquesepuedenmedir.• Dados unos valores observados, que estos se puedan propagar localmente para

hallarlosnoobservados.• Debedehabertantasecuacionescomovariablesdesconocidas+1• Al serminimales, suhipergrafonodeberáestar contenidodentrodelhipergrafo

deotraCEM.Unavezobtenidastodas lasCEMs, losMEMs,serántodas lasformasdelasquepuedenevaluarsecadaCEM.CadaunodelosMEMsestárepresentadoporungrafoY-O(grafocausal)deunaCEMenelquesepuedenencontrarcero,unaomásformasderesolverelmodelo.Estegrafoquerepresentalosmodelos,debecumplir:

1 Es una generalización de los grafos usados habitualmente en computación, donde se permitenrelacionesn-ariasentrelosnodos,enlugarderestringirlosarelacionesbinarias.

4

• Ha de tomar una y sólo una de las posibles interpretaciones asociadas a cadahiperarco(ecuación)delaCEM.

• Ha de contener un sólo nodo discrepancia (variables que son no observadas yestimadaspordosvíasovariablesquesonobservadasyestimadasporunavía).

• Losnodoshojahandeservariablesobservadas.• Los valores del nodo discrepancia han de ser obtenidos a partir de las

observacionesypropagandolocalmente.UnavezqueyahemoscalculadoelConjuntodeModelosEvaluablesMinimales(CMEMs)yatenemosdeformainmediataelotroconjunto,eldeposiblesconflictos(CPCs).Será entonces un PC el conjunto de relaciones en una CEM que contenga almenos unMEM.ElprocesodecálculodelosmismosconsistiráenrecorrercadaCEMyversitieneunMEMasociado.

1.4. Herramientas

Lasdosherramientasdelasquedisponemosson:

• CPCs:Esunaherramientadecálculodeposiblesconflictos.Recibecomoentradaun modelo que representa un conjunto de ecuaciones en formato E/S (bienexistente o generado a través de la herramienta DxPCs que comentaremos acontinuación).Enesteformato,sólonosinteresasaberquéecuacioneshayenelmodelo,quévariablestienen,sisonobservadasono,ycómoseusantodasmenosuna,paracalcularlavariablerestantedecadaecuación.

• DxPCs: Esunaherramientaque realiza ladiagnosisdeunsistemaapartirde los

PCsobtenidosenlaherramientaCPCs.ElorigendeestaherramientaeselPFCdeAlbertoHernández(Hernandez,2012)quecreolaversión1.0paralaherramientaMatlab. Posteriormente fue ampliada y traducida a Java en las prácticas deempresadelosestudiantesDavidRubioyLuisMiguelVillarroel(Pulido,2016).Laherramientaestádivididaencuatroapartados:

o SS/IONotationconverter:esteapartadogeneraunModeloE/Sapartirde

lasecuacionesquerepresentanelsistema.EstemodelogeneradoleutilizalaherramientaCPCsparagenerarlosPCs.

o Experimentgenerator:apartirdeunaseriedevaloresdeentradageneralas salidasde lasecuacionesque representanel sistemaa lo largodeunperiododetiempo.

o SimulationModelGenerator:apartirdelasalidadelaherramientaCPCs,es decir, de los PCs, genera los Modelos de Simulación. Con ellos serealizaráposteriormenteladiagnosis.

o Diagnosis: Realiza una diagnosis del sistema mediante los Modelos deSimulación obtenidos en el anterior apartado. Los resultados se puedenmostrargráficamenteyverasícomoaumentaodisminuyeelerroralquelaherramienta llama“residuo”.Unavezquehacalculado los residuos laherramienta puede determinar cuáles de los elementos delmodelo soncandidatosafallo.

5

Comohemosmencionadoal principio, el problemaque sepretende resolver conesta herramienta es el modelado de sistemas híbridos. Sistemas híbridos sonaquellosenloscualesalgunasdesuspartessóloestaránactivasovariaránsegúnsedenciertascircunstancias.Ponemoscomoejemploparailustrar,unsistemadeloscuatrotanques.

Figura1.1:Sistema4tanques

Este sistema de cuatro tanques es un sistema claramente híbrido. Comovemostienedospartes, lasuperiory la inferior.Cadaunadeellas tieneuninterruptorconuncierre,elcualpermiteoimpideporcompletoelpasodelagua,esdecir,cadaunadelasdospartesestátotalmentecondicionadaporel interruptor. Estos interruptores no son lo único que hace considerarhíbrido a este sistema también nos encontramos con las tuberías queconectan losdos tanques inferiores y superiores.Comovemosesta tuberíanoseencuentraarasdesueloporloquelaentradadeaguaenelladependetotalmentedequelaalturaenlostanques1o3seasuperioralaalturadelamisma. Así la entrada del agua en los tanques 2 y 4 dependerá de que latuberíadeconexióntengacaudal,comoyahemosvistocondicionadaporlaaltura de los otros dos tanques. Como vemos son varios aspectos los quehacen considerar a este sistemade 4 tanques híbrido ya que varias de suspartesestánclaramentecondicionadas.Entonces para poder modelar estos sistemas híbridos hay que permitir ennuestroconjuntodeecuacionesquehayacondicionesdeaplicacióndecadauna de las ecuaciones. El tener que añadir estas condiciones nos obliga aextender la gramática/sintaxis que permitimos en nuestros ficheros y aadaptarnosalasintaxisqueseusaenlosficherosqueseusanparacalcularPCsenpresenciadecondiciones(Domínguez,2013).

6

7

2. PLANDEDESARROLLODESOFTWARE

2.1. INTRODUCCIÓN

2.1.1. PropósitoEl propósito de este Plan de desarrollo Software es ofrecer toda la informaciónnecesaria para controlar el desarrollo del proyecto "DxPCs 2.0 - Ampliación de laplataformaparadiagnosisbasadaenmodelos".Nosofreceráunavisióndealtoniveldeabstracciónquefacilitaráalequipodetrabajolatareadeorganizareldesarrollo.Losusuariospotencialesdeesteapartadoserán:

• Jefe de proyecto: lo usará para establecer la planificación temporal y derecursos,ademásderealizarelseguimientoylaevaluacióndelproyecto.

• Miembrosdelequipodeproyecto:usaránesteapartadoparasaberquédebenhacer,cuándo lodebenhaceryquétareasdependende lasqueellos tienenasignadas.

2.1.2. Alcance

Este Plan de Desarrollo Software describe un plan general para ser utilizado por elequipo de desarrollo para la ejecución del proyecto " DxPCs 2.0 - Ampliación de laplataformaparadiagnosisbasadaenmodelos". Losplanesquesedetallanenestecapítulosebasanenlaespecificaciónderequisitosqueserádetalladaenelsiguientecapítulodeestedocumento.

2.1.3. Definiciones,Acrónimos,Abreviaturas

Véaseelglosariogeneraldelproyecto.2.1.4. PerspectivaGeneralElplandedesarrollosoftwarecontendrá:

• Perspectiva del proyecto: descripción de propósito, alcance y objetivos asícomolosentregablesqueseprevén.

• Organizacióndelproyecto:Enélsedescribelaestructuradeorganizacióndelequipodeproyecto.

• ProcesodeGestión:define laestimacióndecostesentérminosdetiempoyrecursos,lasfasesdelproyectojuntoconsushitosycómosellevaráacabolamonitorizacióndelproyecto.

8

2.2. PERSPECTIVAGENERALDELPROYECTO2.2.1. Propósito,alcancesyobjetivos

Este proyecto trata sobre la ampliación de la funcionalidad de una plataformaexistente y que está fundamentada en la diagnosis basada en modelos. Lasprincipalesmetasson:

• Modificar la herramienta para que admita modelos de sistemasdinámicos híbridos. Estos nuevos modelos asocian condiciones decontorno para cada ecuación de tipo ADE (Ecuación Algebraico-Diferencial, ADE en inglés). La condición no esmás que una expresiónlógicaquedebecumplirseparapoderaplicarlaecuación.Deestaformasedefinenlosdistintosmodosdefuncionamientodeunsistema(deahíeltérminodehíbrido,porcontraposiciónacontinuo).

• Realizar una propuesta de mejora de la generación de modelosevaluables asociados a Posibles Conflictos híbridos que facilite lasimulación de estos Posibles Conflictos en múltiples modos defuncionamiento.

2.2.2. Suposicionesyrestricciones

Para realizar la planificación, se tendrán en cuenta los siguientes factores queinfluiráneneldesarrollodelproyecto:

• Fechadeentrega:Elproyectodeldeberáestarcompletamentefinalizadoantesdejuniodel2016.

• Horariodetrabajo:Eltiempoqueelequipodedicaráalarealizacióndelproyecto estará considerablemente limitado por los cursos de idiomasquecursaelequipo.Secalculaqueladedicaciónaésteserádeentre10y20horassemanales.

• Adiestramiento del equipo: Debido a la escasa experiencia previa delequipo de desarrollo en el lenguaje de programación a utilizar y en elmétodoutilizado,eldiagnósticobasadoenmodelos, sehade tenerencuentaunperíododeformaciónyadaptaciónconsiderable.

• Recursos del proyecto: Se trabajará con unos recursos hardware ysoftware limitados. Serán especificados en el apartado de recursos delproyecto.

2.2.3. Entregablesdelproyecto

Enesteapartadosevanaindicarcadaunodelosartefactosqueserángeneradosenelproyecto,asícomolosentregablesqueseiránpresentandoalolargodelproceso.Estosentregablesalrealizarsedeformaiterativaeincrementalseránsusceptiblesdesermodificadosenunaetapaposterioralarealización.

9

Losentregablesserán:• Gestióndelproyecto:

o Plandedesarrollodesoftware.• Requisitos:

o Introducciónteórica.o Especificaciónderequisitos.

• Análisisydiseño:

o Modelodecasosdeuso.o Especificacionesdecasosdeuso.o Modelodeanálisis.o Modelodediseño.o Realizacióndeloscasosdeuso.

• Implementación:o Modelodeimplementación.o VersiónfuncionaldelapartadoConversiónModelosE/S.o VersiónfuncionaldelapartadoGeneradordeModelosdesimulación.o VersiónfuncionaldelapartadoGeneradordeExperimentos.o VersiónfuncionaldelapartadoDiagnosis.o Versiónfuncionalconmejorasdealgunosalgoritmos.o Códigofuente

• Pruebas:o Bateríadepruebas.

• Lanzamiento:o Manualdeusuario.o Manualdeinstalación.o Productofinal.

2.2.4. Evolucióndelplandedesarrollo

El plan de desarrollo se revisará de forma continuada y será mejorado antes decomenzarlasiguienteiteracióncorrigiendoasíposiblesfallosquesehubieranpodidorealizarenelplaninicial.

2.3. ORGANIZACIÓNDELPROYECTO

2.3.1. Estructuraorganizativa

SetratadeunproyectoqueserárealizadodeformaindividualporloquelosrolesdeJefe de Proyecto, Analista, Diseñador, Programador y Personal de Pruebas van arecaersobrelamismapersona.

2.3.2. Interfacesexternas

Se mantendrá un contacto de forma continua con los tutores del proyecto, conentrevistas en principio semanales, que será el que sirvan de asesoramiento y guíaparacadaunadelasetapasdedesarrollo.

10

2.3.3. Rolesyresponsabilidades

Identificalasunidadesdeorganizacióndelproyectoydequétareasseencargaránderealizarenelmismo.Rol ResponsabilidadJefedeProyecto Se encargará de la gestión de recursos así como de la

supervisión de las tareas del resto de miembros delequipo.

Analista Sulaborserárealizarentrevistasparaobtenerrequisitosynecesidadesdelclienteocompletarlosexistentes.Definirálaarquitecturadelsistemaamuyaltonivel.Elaboradiagramasde clases y secuenciaparamostrar losbloquesqueestaránrelacionadosysecomunicaránentresí.Dichosdiagramasfacilitaránlacomprensióndeloscasosdeusodelosusuarios.

Diseñador Establecerá la arquitectura software para la herramienta.Estudiará la interoperabilidad con otros sistemas y laposibilidad de reutilización de software existente.Aprovecharálastecnologíasdisponibles.Desarrollará componentes a bajo nivel, estructuras dedatos eficientes y algoritmos adecuados. Tambiénparticiparáendetallesdelaarquitecturaabajonivel.

Programador Seencargarádeproducirelcódigofuentedelaaplicación.PersonaldePruebas Seencargarádediseñaryrealizarloscasosdeprueba.

2.4. PROCESODEGESTIÓN

2.4.1. Estimacionesdeproyecto

Este apartado se centrará en las estimaciones temporales. Se van a estimar lostiemposqueseránotorgadosalarealizacióndecadatareaqueserevisaránsegúnsevayaavanzandoycambiandodeunatareaaotra.

2.4.2. Plandeproyecto

2.4.2.1. Plandefases

Fase Nºdeiteraciones Duración(Semanas)Concepción 1 2Elaboración 2 4Construcción 2 8Transición 1 4

11

2.4.2.2. Objetivosdelasiteraciones

Iteración Descripción HitosConcepción Creación del Plan de

desarrolloyelaboracióndeRequisitos.

àPlandeDesarrolloàRequisitos

ElaboraciónI Análisis de la aplicación,elección de casos de uso yaproximación a larealizacióndeldiagramadeclases.

àModeloyespecificacióndeCasosdeUsoàModelodeAnálisis

ElaboraciónII Diseño de la herramienta,creación del diagrama declases, diagrama desecuencia…

àModelodeDiseñoàDesarrollodeCasosdeUso

ConstrucciónI Implementación de lafuncionalidad de laherramienta, desarrollo delaversiónalfa.

àModelodeimplementaciónà Modelado de los nuevossistemasdeentrada.à Versión alfa de laherramienta

ConstrucciónII Desarrollo de la versiónbeta.

à Versión beta de laherramienta

Transición Desarrollo de la versióndefinitiva y elaboración demanuales.

à Versión definitiva de laherramientaàManualdeusuarioàManualdeinstalación

2.4.2.3. Versiones

Para cada uno de los apartados de la aplicación que vamos a realizar, serealizará:

• Versiónalfa:estaversiónserácapazderealizarlafuncionalidadprincipaldelapartado.

• Versiónbeta:añadiráalaversiónanteriorloscambiosenlainterfazparaquemuestrelosdatosintroducidosdeformacorrecta.

• Versión definitiva: añadirá a la versión anterior las mejoras en losalgoritmosademásdeañadirelmododefuncionamientoautomático.

12

2.4.2.4. Planificacióntemporal

Figura2.1:DiagramadeGantt

2.4.2.5. RecursosdelProyecto

• Recursoshumanos:o Un alumno de último curso de Grado en Ingeniería Informática

menciónTI.o Dostutoresparaelseguimientodelproyecto.

• Recursoshardware:o Dos ordenadores portátiles personales. Para poder trabajar en

paraleloperoprincipalmenteserealizarálamayorparteconelportátilconS.O.OSXsalvoparalaspruebasparalascualessenecesitaMatlabelcuálsólotenemoslalicenciaparaelportátilconS.O.Windows.

• Recursossoftware:o SistemaoperativoWindows10.o SistemaoperativoOSXElCapitán.o Microsoft Office 2016 (Office 365, cuya licencia de un año la

proporcionalaUVA).o Astahprofessional(LicenciadeunañoproporcionadaporlaUVA).o Dropbox.o JavaRuntimeenvironment.o Netbeans8.0.2.o REM(Requerimentsmanager).o Matlab2010a(LicenciaproporcionadaporlaUVA).

Todos los programas son gratuitos salvo los que se menciona que necesitan lalicencia.

2.4.3. Monitorizaciónycontroldeproyecto

2.4.3.1. Gestiónderequisitos

Informacióndisponibleenelapartadoderequisitos.

13

2.4.3.2. Controldecalidad

Todos los entregables pasarán por un proceso de revisión adecuado. Dichoprocesodeberáasegurarque se cumplanunosestándaresmínimosdecalidad;ademásdegarantizarquecumplenconlosrequisitosespecificados.

2.4.3.3. Gestiónderiesgos

• ListaderiesgosSeusaránlossiguientesconveniosparadefinircadariesgoMagnitud:calificaráelnivelderiesgode1a10,siendo1 lomásbajoy10 lomásalto,basándonosenlaprobabilidaddequeocurraysusconsecuencias.Descripción:breveexposicióndelproblema.Probabilidad:posibilidaddequeocurraelriesgo.Impacto:

• C(Crítico):afectaatodalafuncionalidaddelproyectoyalalíneabase.• A(Alto):afectaalasnecesidadesdelusuarioyalafuncionalidad.• M(Medio): se puede contener pero es evitable en lamayoría de las

veces.• B(Bajo):sepuedeaceptaryessuarregloesrápido.

RSK-01 RetrasoenlaentregaMagnitud 10Descripción Laentregaseráposterioralafechaestablecida.Probabilidad 30%Impacto CIndicador Semanas antes de la fecha topemás de 10%del proyecto

estásinfinalizar.Plan deContingencia

Dedicarmáshorasalproyecto.

RSK-02 FaltadeconocimientosdeloslenguajesdeprogramaciónMagnitud 6Descripción El equipo carece de experiencia en este lenguaje (Java -

Matlab).Probabilidad 65%Impacto AIndicador Retrasosalahoraderealizarlaprogramación.Plan deContingencia

Formaciónpreviadelosprogramadoresenellenguaje.

RSK-03 Falta de conocimientos sobre la tecnología utilizada –

Diagnósticobasadoenmodelos-Magnitud 7Descripción Elequiponuncahatrabajadoconlatecnologíaelegida.Probabilidad 90%Impacto AIndicador Paradasenelprogresodeltrabajo–Retrasos.Plan deContingencia

Formaciónpreviadelequipoenestatecnología.

14

RSK-04 CambioenlosrequisitosdelsistemaMagnitud 3Descripción Aparicióndenuevasnecesidadesdelcliente.Probabilidad 70%Impacto AIndicador Inclusióndenuevosrequisitosquedanlugaralarealización

demástrabajo.Plan deContingencia

Concienciar al cliente de las consecuencias de realizarcambiosenetapasavanzadas.

RSK-05 DisminucióndeltiempodededicaciónMagnitud 5Descripción Losmiembrosdelequipovenlimitadosutiempodetrabajo

porcircunstanciasexternas.Probabilidad 30%Impacto MIndicador Elavancedelproyectoseralentiza.Plan deContingencia

Disminución del los requisitos y/o posposición de la fechadeentrega.

RSK-06 FaltadeexperienciaenelprocesodeplanificaciónMagnitud 5Descripción Debido a la falta de experiencia del jefe de proyecto es

posible que no se realicen las estimaciones de formaadecuada.

Probabilidad 75%Impacto AIndicador Fallosconstantesenlaaplicación.Plan deContingencia

Consultar con expertos, comparación con otros proyectossimilares,búsquedadeinformación…

RSK-07 FallohardwareMagnitud 8Descripción ElPCdetrabajoseestropea.Probabilidad 10%Impacto AIndicador Fallosconstantesdelsistema.Plan deContingencia

Copiasde seguridaden lanube–Disponerdeun segundoPC.

RSK-08 FallosoftwareMagnitud 8Descripción Algunosdelosprogramasusadosdejandefuncionarofalla

elsistemaoperativo.Probabilidad 10%Impacto AIndicador Fallosenelfuncionamientodealgunodelosprogramas.Plan deContingencia

Copiasde seguridaden lanube–Disponerdeun segundoPC–Programasdetrabajoalternativos.

15

RSK-09 PerdidasdetrabajoMagnitud 7Descripción Perdidadepartedel trabajo ya realizadopor algún falloo

error.Probabilidad 15%Impacto AIndicador Faltanpartesdetrabajoyarealizado.Plan deContingencia

Copiasdeseguridadenlanubey/oenotrodispositivo.

RSK-10 Decisión errónea en fase específica (fallo en el

planteamientodetareas)Magnitud 5Descripción Errorenelplanteamientodelastareas.Probabilidad 60%Impacto MIndicador Seproducenretrasos.Plan deContingencia

Realización de las tareas sin prisas y con buenplanteamientoevitandoasíerroresgraves.

RSK-11 DiseñocomplejoMagnitud 4Descripción Eldiseñodelproductopuedeexcederlosconocimientosdel

equipo.Probabilidad 20%Impacto MIndicador Retrasosy/oparadaspornosaberavanzar.Plan deContingencia

Intentarrealizareldiseñolomássimpleposible.

16

17

3. REQUISITOS3.1. INTRODUCCIÓN

Enestecapítulosevanaexponertodoslosrequisitosdelsoftwaregeneradosmedianteladocumentación y las entrevistas realizadas conel cliente. Estos requisitosdeberánestaradecuadamente clasificadosy redactadosydebendarnosuna ideabastante clarade lasnecesidadesdelcliente.

3.1.1. Propósito

Elobjetivodeestecapítuloesdarunadescripcióndetodoslosrequisitosquedeberácumplirelproyecto,facilitandoasífuturasfasesdeldesarrollo.Losusuariospotencialesdeesteapartadodeladocumentaciónserán:

• Jefe de proyecto: será su principal apoyo para la realización del Plan deDesarrollodeSoftware.

• Miembrosdelequipodeproyecto:seráútilparaquetodos losmiembrosdelequipotenganclaraslasmetasdelproyecto.

3.1.2. Alcance

Estecapítulodaunadescripcióndetodoslosrequisitosdesoftwareparaelproyecto:“DxPCs2.0-Ampliacióndelaplataformaparadiagnosisbasadaenmodelos”.

3.1.3. Definiciones,Acrónimos,AbreviaturasVéaseelglosariogeneraldelproyecto.3.1.4. PerspectivaGeneral

Elcapítulodeidentificaciónderequisitoscontendráestainformación:

• Objetivosdelproyecto• Requisitosfuncionales• Requisitosdeinterfazexterno• Restriccionesdediseño• Requisitosnofuncionales

3.2. OBJETIVOS

Acontinuaciónsepresentaunalistadelosprincipalesobjetivosquesevanrealizarenesteproyecto:

18

OBJ-01 IdentificaraspectosamejorardelaversiónanteriorDescripción Se realizará un análisis de la versión anterior de la herramienta y

algoritmos, para encontrar posibles aspectos donde se introduciránmejorasparaaumentarlaeficiencia,oposiblesfallosnolocalizadosqueseráncorregidos.

Importancia AltaComentarios OBJ-02 Ampliarlaherramientaparaquepuedatrabajarconmodelosdiscretos

desistemashíbridosDescripción Se realizará una modificación o nueva versión, según lo requiera, de

cada uno de los algoritmos de la herramienta para que la mismafuncione con modelos híbridos respetando siempre los antiguossistemas.

Importancia AltaComentarios

OBJ-03 AmpliarlafuncionalidaddelageneracióndemodelosevaluablesDescripción Se realizará una propuesta de mejora de la generación de modelos

evaluables asociados a Posibles Conflictos híbridos que facilite lasimulación deestos Posibles Conflictos en múltiples modos defuncionamiento.

Importancia AltaComentarios

3.3. REQUISITOSFUNCIONALES

Enesta listasemostrarán los requisitos funcionalesde laaplicaciónquedefinencómodebecomportarseelsistemayquéescapazdehacer.

RF-01 ConversiónaModelosESDescripción LaherramientadebesercapazdetransformarunconjuntodeADEs,de

unsistemacontinuoohíbrido,enunmodeloESparalaherramientadeCPC(CálculodePosiblesConflictos,CPC,conlaqueinteracciona).

Importancia VitalComentarios

RF-02 GeneracióndeexperimentosDescripción Elsistemadebesercapazdegenerarunconjuntodevaloresdesalida,

valiéndose de la ejecución a través de la herramienta matemáticaMatlab de una función, para un conjunto de ADEs que modelen unsistemacontinuoodiscreto.

Importancia VitalComentarios RF-03 GeneracióndeModelosdeSimulaciónDescripción El sistemadebe ser capazde generar losmodelosde simulaciónpara

sistemasdeADEsquemodelenunsistemacontinuoodiscreto.Importancia VitalComentarios

19

RF-04 DiagnosisDescripción El sistema debe ser capaz de ejecutar una diagnosis utilizando la

herramientaMatlab para sistemas de ADEs quemodelen un sistemacontinuoodiscreto.

Importancia VitalComentarios RF-05 FusióndeModelosEvaluablesMinimalesDescripción El sistema debe ser capaz de fusionar aquellos Modelos con partes

comunesgenerandounModelomáscomplejoquepuedacubrirmásdeunmododefuncionamiento.

Importancia AltaComentarios

RF-06 ImpresióndedatosDescripción El sistema permitirá imprimir o guardar en distintos formatos los

resultadosdedistintoscálculosquerealizaasícomolosdatoscargados.Importancia AltaComentarios RF-07 GeneracióndelaFunciónSimulaciónDescripción ElsistemadebesercapazdegenerarunficherodeextensiónMatlaba

partirdesistemasdeADEsquemodelenunsistemacontinuoodiscretotantoparalaGeneracióndeExperimentoscomoparalaDiagnosis.

Importancia AltaComentarios

RF-08 SistemadeentradaDescripción El sistema debe ser compatible hacia atrás para aceptar los tipos de

sistemasqueaceptabalaversiónDxPCs1.0.Importancia AltaComentarios

3.4. REQUISITOSDEINTERFAZEXTERNO

3.4.1. Interfacesdeusuario

IU-01 InterfazdelsistemaDescripción El sistema debe ser capaz demostrar al usuario tanto los elementos

cargados como los resultados de la ejecución de la funcionalidad decadaaparatado.

Importancia VitalComentarios

20

3.4.2. Interfacesdesoftware

IS-01 FormatodelasADEsyModelosDescripción El sistemadebesercapazdecargar lasADEsy losModelosobtenidos

de la herramienta de CPCs tanto con un sistema continuo comodiscreto.

Importancia VitalComentarios

3.5. REQUISITOSDEINFORMACIÓN

RI-01 InformacióndeficherosDescripción El sistemadebe ser capaz de leer la información sobre lasADEs y los

Modelostantoconunsistemacontinuocomodiscreto.Importancia VitalComentarios RI-02 InformaciónderesultadosDescripción El sistema debe ser capaz de guardar la información sobre los

resultadosobtenidosdecadafuncionalidad.Importancia AltaComentarios

3.6. REQUISITOSDEDISEÑO

RD-01 EstándardelaherramientaDescripción El sistema debe manejar los ficheros E/S acordes al estándar de la

herramientaasícomolosficherosobtenidosdirectamentede lasalidadelaherramientadeCPCs.

Importancia VitalComentarios

3.7. REQUISITOSNOFUNCIONALES

RNF-01 LenguajedeprogramaciónDescripción El sistema debe funcionar en el lenguaje Java ya que las versiones

anterioresestabanhechasenestelenguaje.Importancia AltaComentarios RNF-02 SoportemultiplataformaDescripción El sistema debe funcionar correctamente bajo cualquier sistema

operativoenelquepuedainstalarseunamáquinavirtualJava.Importancia AltaComentarios

21

RNF-03 EficienciaDescripción Elsistemadeberealizarloscálculosdeformaeficiente.Importancia AltaComentarios

RNF-04 FiabilidaddelsistemaDescripción Elsistemadeberealizarloscálculosdeformacorrecta.Importancia AltaComentarios

RNF-05 FacilidaddeusoDescripción El sistema debe ser fácil de usar para un usuario con conocimientos

básicos sobre diagnóstico basado en modelos y los conceptos dePosiblesConflictos,porejemplo,estudiantesdepostgrado.

Importancia AltaComentarios

22

23

4. MODELODEANÁLISIS4.1. INTRODUCCIÓN

4.1.1. Propósito

Elpropósitodeesteapartado,ModelodeAnálisis,esdarunadescripcióndealtoniveldel sistema que será la base en la cual se apoye el diseño así como la posteriorimplementación.Este apartado será realizado por los analistas del equipo y será utilizado por losdiseñadorespararealizareldiseñodelaherramienta.

4.1.2. Alcance

Esteapartadoproporcionarálaspautasdealtonivelpararealizarelproyecto“DxPCs 2.0 - Ampliación de la plataforma para diagnosis basada en modelos”.

4.1.3. Definiciones,Acrónimos,Abreviaturas

Véaseelglosariogeneraldelproyecto.

4.1.4. PerspectivaGeneral

Enestecapítuloencontramoslasiguienteinformación:

• Perspectiva general: descripción de las principales funcionalidades de laherramientaylasnuevascapacidadesqueleañadeestetrabajo.

• Modelo de casos de uso: contiene la información de las funciones delsistemasylospasosquesedaencadaunadeellas.

• Modelado estructural del sistema: es una primera aproximación de laestructura de las clases que contiene el sistema, almacenamiento deinformaciónymétodos.

• Modelode comportamiento:mostrará conundiagramael comportamientodelaherramienta.

• Modelo de iteración: describirá cómo se relacionan los elementos delsistema.

4.2. PERSPECTIVAGENERAL

Partiendo de la base de una herramienta que funciona para sistemas continuos,modeladosmedianteunconjuntodeADEs,nuestroobjetivoprincipalserámodificartodoaquelloqueseanecesarioenlaherramientaparaqueaceptemodeloshíbridos,modelados con ecuaciones en las que hay condiciones de uso, y se mantenga lacompatibilidad con versiones anteriores. La condición asociada a una ecuación delmodeloimplicaqueelvalordeciertaecuaciónalqueacompañepuededarseono,opuedetenerunvaloruotrodependiendodelosvaloresdelacondición.

24

Laintroduccióndelossistemashíbridosimplicarálossiguientescambios:

• Modificarelsistemadelecturadeficherosdesistemashíbridos.• Modificar las estructurasque guardan la información y/o crearnuevaspara

guardarlosmodelosdelossistemashíbridos.• Adaptarlosalgoritmosexistentesparatrabajarconsistemashíbridosademás

deconloscontinuos.• Proponerunnuevomododealmacenamientode las condicionesdeusode

lasecuacionesparahacermáseficientesumanejo.

4.3. MODELODECASOSDEUSO4.3.1. Casosdeusodelaherramienta

En azulmarcamos aquellos casos de uso en los cuales ha habidomodificaciones, elrestoconelmismocolordelfondo.

Figura4.1:Diagramadecasosdeuso

25

4.3.2. CasosdeusodelConversordeModelosE/S

CU-01 CargarModeloCMDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseecargarlosficherosnecesariosparagenerarunModeloE/S.

Precondiciones Los ficheros están escritos de forma correcta respetando elestándar.

SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“LoadModel”.2 Elsistemadeofreceráalusuariolacarga“Onebyone”

o“Usingapathfile”.3 Elusuarioescogeunadelasdosopciones(3.1–3.2).3.1 Elusuarioescogecarga“Onebyone”.3.1.1 Elsistemavaofreciendounoaunolaeleccióndecada

unodelosficherosquenecesita.3.1.2 Elusuarioeligeunoaunolosficheros.3.1.3 Elsistemavaleyendounoaunolosficheroselegidos.3.2 Elusuarioescoge“Usingapathfile”.3.2.1 El sistema lee el fichero de Rutas y carga los ficheros

quenecesita.4 Elsistemamuestraloselementoscargados.5 Elcasodeusofinaliza.

Postcondiciones Elsistemaestácargadocorrectamente.Excepciones Paso Acción

3.1.3 Elficheroestáincorrecto,semuestraunerroryfinalizaelcasodeuso.

3.2.1 Hayrutasoficherosincorrectos,semuestraunerroryfinalizaelcasodeuso.

Rendimiento Lacargadelsistemaserealizarádeformainstantánea.Importancia AltaComentarios CU-02 ConvertirModeloDescripción El sistema debe comportarse tal como se describe en el

siguiente caso de uso cuando el usuario desee transformar unsistemacargadoenunModeloE/S.

Precondiciones Elsistemaestácargadocorrectamente.SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“ConvertModel”.2 El sistema realizará las operaciones necesarias y

mostraráelresultado.3 Elcasodeusofinaliza.

Postcondiciones ElmodeloE/Sresultanteapareceenlainterfaz.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

26

Los siguientescasosdeusonohansidomodificados sustancialmentey seconservandelprototipoanterior.Seadjuntanporcomplituddeladocumentación.CU-03 GuardarModeloESDescripción El sistema debe comportarse tal como se describe en el

siguiente caso de uso cuando el usuario desee guardar elresultadodelaconversióndelModeloES.

Precondiciones Elsistemaharealizadolaconversióncorrectamente.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Save” en la pestaña

“SS/IONotationconverter”.2 Elsistemapediráalusuarioqueelijalarutayelnombre

delarchivo.3 Elusuarioeligelarutayelnombre.4 Elsistemaguardalosresultadosenformato.txt.5 Elcasodeusofinaliza.

Postcondiciones Eltxtestágenerado.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios 4.3.3. CasosdeusodelGeneradordeModelosdeSimulación

CU-04 CargarModeloGMSDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseecargarlosficherosnecesariosparagenerarlosModelosdeSimulación.

Precondiciones Los ficheros están escritos de forma correcta respetando elestándar.

SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“LoadModel”.2 Elsistemadeofreceráalusuariolacarga“Onebyone”

o“Usingapathfile”.3 Elusuarioescogeunadelasdosopciones(3.1–3.2).3.1 Elusuarioescogecarga“Onebyone”.3.1.1 Elsistemavaofreciendounoaunolaeleccióndecada

unodelosficherosquenecesita.3.1.2 Elusuarioeligeunoaunolosficheros.3.1.3 Elsistemavaleyendounoaunolosficheroselegidos.3.2 Elusuarioescoge“Usingapathfile”.3.2.1 El sistema lee el fichero de Rutas y carga los ficheros

quenecesita.4 Elsistemamuestraloselementoscargados.5 Elcasodeusofinaliza.

Postcondiciones Elsistemaestácargadocorrectamente.Excepciones Paso Acción

3.1.3 Elficheroestáincorrecto,semuestraunerroryfinalizaelcasodeuso.

27

3.2.1 Hayrutasoficherosincorrectos,semuestraunerroryfinalizaelcasodeuso.

Rendimiento Lacargadelsistemaserealizarádeformainstantánea.Importancia AltaComentarios CU-05 GenerarModeloSimDescripción El sistema debe comportarse de la siguiente forma cuando el

usuariodeseegenerarlosmodelosdesimulaciónasociadosalosPosiblesConflictosapartirdelosficheroscargados

Precondiciones Elsistemaestácargadocorrectamente.SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“Generate(Simulation)”2 El sistema realizará las operaciones necesarias,

procederáprimeroconlafusióndelosMEMcargados.Con la fusión realizada construirá uno a uno cadaModelodeSimulación.

3 Elcasodeusofinaliza.Postcondiciones El sistema devuelve losModelos de Simulación, almenos uno

paracadaPosibleConflictoenelsistema.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

Lossiguientescasosdeusonohansidomodificadossustancialmentey seconservandelprototipoanterior.Seadjuntanporcomplituddeladocumentación.CU-06 GuardarModeloSimDescripción El sistema debe comportarse tal como se describe en el

siguiente caso de uso cuando el usuario desee guardar elresultadodelageneracióndelosModelosdeSimulación

Precondiciones Elsistemaharealizadolageneracióncorrectamente.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Save” en la pestaña

“SimulationModelGenerator”.2 Elsistemapediráalusuarioqueelijalarutayelnombre

delarchivo.3 Elusuarioeligelarutayelnombre.4 El sistema guarda los resultados en formato .txt,

creandounoparacadaModelo.5 Elcasodeusofinaliza.

Postcondiciones Lostxtestángenerados.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

28

4.3.4. CasosdeusodelGeneradordeExperimentos

CU-07 CargarModeloESDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseecargarlosficherosnecesariosparagenerarunExperimento.

Precondiciones Los ficheros están escritos de forma correcta respetando elestándar.

SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“LoadModel”.2 Elsistemadeofreceráalusuariolacarga“Onebyone”

o“Usingapathfile”.3 Elusuarioescogeunadelasdosopciones(3.1–3.2).3.1 Elusuarioescogecarga“Onebyone”.3.1.1 Elsistemavaofreciendounoaunolaeleccióndecada

unodelosficherosquenecesita.3.1.2 Elusuarioeligeunoaunolosficheros.3.1.3 Elsistemavaleyendounoaunolosficheroselegidos.3.2 Elusuarioescoge“Usingapathfile”.3.2.1 El sistema lee el fichero de Rutas y carga los ficheros

quenecesita.4 Elsistemamuestraloselementoscargados.5 Elcasodeusofinaliza.

Postcondiciones Elsistemaestácargadocorrectamente.Excepciones Paso Acción

3.1.3 Elficheroestáincorrecto,semuestraunerroryfinalizaelcasodeuso.

3.2.1 Hayrutasoficherosincorrectos,semuestraunerroryfinalizaelcasodeuso.

Rendimiento Lacargadelsistemaserealizarádeformainstantánea.Importancia AltaComentarios

CU-08 GenerarExperimentoDescripción El sistema debe comportarse de la siguiente forma cuando el

usuario desee generar un experimento para un sistemadeterminado. Consiste en simular el comportamiento delsistemaduranteuntiempodado,paraunasseñalesdeentradadadasyenpresenciadeceroomáscambiosdemodoydeceroomásmodosdefallo.

Precondiciones Elsistemayaestácargadocorrectamente.SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“GenerateExperiment”.2 El sistema realiza las operaciones necesarias para

generarelexperimentoatravésdeMatlabymuestraalusuariolosresultados.

3 Elcasodeusofinaliza.Postcondiciones Elsistemadevuelveelresultadodelexperimento.Excepciones Paso Acción

29

2 NosepuedeestablecerconexiónconMatlabentonceselcasodeusofinaliza.

Rendimiento DependerádeltiempoquetardeelpcenejecutarMatlabyaqueel tiempoqueutiliza la herramienta enoperacionespropias escasiinstantáneo.

Importancia AltaComentarios

Lossiguientescasosdeusonohansidomodificadossustancialmentey seconservandelprototipoanterior.Seadjuntanporcomplituddeladocumentación.CU-09 GuardarExperimentoDescripción El sistema debe comportarse tal como se describe en el

siguiente caso de uso cuando el usuario desee guardar elresultadogeneracióndelexperimento.

Precondiciones Elsistemaharealizadolageneracióncorrectamente.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Save” en la pestaña

“ExperimentGenerator”.2 Elsistemapediráalusuarioqueelijalarutayelnombre

delarchivo.3 Elusuarioeligelarutayelnombre.4 Elsistemaguardalosresultadosenformato.txt.5 Elcasodeusofinaliza.

Postcondiciones Eltxtestágenerado.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios CU-10 VerGraficoDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseeverlasgráficasdevariablesdelresultadodegeneracióndelexperimento.

Precondiciones Elsistemaharealizadolageneracióncorrectamente.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Display Graph” en la

pestaña“ExperimentGenerator”.2 El sistema pedirá al usuario que elija las variables que

deseeverlagráfica.3 Elusuarioseleccionalasvariables.4 Elsistemamuestralagráfica.5 Elcasodeusofinaliza.

Postcondiciones Lagráficahasidogenerada.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

30

4.3.5. CasosdeusodeDiagnosis

CU-11 CalcularResiduosDescripción El sistema debe comportarse de la siguiente forma cuando el

usuario desee cargar los ficheros necesarios para calcular losresiduos. El residuo es la diferencia entre el valormedido y elvalorrealysepuedecalculardetresformas:- Differences Absolute Values : calculando las diferencias de

losvaloresabsolutosdelosresultadosobtenidos.- Differences : calculando lasdiferenciasentre los resultados

obtenidos.- Euclidean Distances : calculando las diferencias entre los

resultados obtenidos utilizando la fórmula de la distanciaeuclidea.

- Precondiciones Los ficheros están escritos de forma correcta respetando el

estándar.SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“CalculateResiduals”2 Elsistemamuestra3opcionesposiblesparaelcálculo3 Elusuarioescogeunadelas3opciones3.1 Elusuarioescoge“DifferencesAbsoluteValues”3.2 Elusuarioescoge“Differences”3.3 Elusuarioescoge“EuclideanDistances”4 El sistema realiza las operaciones necesarias para

calcular los residuos a través deMatlab ymuestra alusuariolosresultados.

5 Elcasodeusofinaliza.Postcondiciones Comoresultadosecalculan losresiduospara losdiferentesPCs

activosenelsistema.Excepciones Paso Acción

4 NosepuedeestablecerconexiónconMatlabentonceselcasodeusofinaliza.

Rendimiento Dependerá del tiempo que tarde el ordenador en ejecutarMatlab ya que el tiempo que utiliza la herramienta enoperacionespropiasescasiinstantáneo.

Importancia AltaComentarios Una vez dados los residuos para cada PC y su descripción

estructuralsecalculanloscandidatosafallo.

31

CU-12 CargarModeloDXDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseecargarlosficherosnecesariosparagenerarunaDiagnosis.

Precondiciones Los ficheros están escritos de forma correcta respetando elestándar.

SecuenciaNormal

Paso Acción1 Elusuarioseleccionalaopción“LoadModel”.2 Elsistemadeofreceráalusuariolacarga“Onebyone”

o“Usingpathfile”.3 Elusuarioescogeunadelasdosopciones(3.1–3.2).3.1 Elusuarioescogecarga“Onebyone”.3.1.1 Elsistemavaofreciendounoaunolaeleccióndecada

unodelosficherosquenecesita.3.1.2 Elusuarioeligeunoaunolosficheros.3.1.3 Elsistemavaleyendounoaunolosficheroselegidos.3.2 Elusuarioescoge“Usingpathfile”.3.2.1 El sistema lee el fichero de Rutas y carga los ficheros

quenecesita.4 Elsistemamuestraloselementoscargados.5 Elcasodeusofinaliza.

Postcondiciones Elsistemaestácargadocorrectamente.Excepciones Paso Acción

3.1.3 Elficheroestáincorrecto,semuestraunerroryfinalizaelcasodeuso.

3.2.1 Hayrutasoficherosincorrectos,semuestraunerroryfinalizaelcasodeuso.

Rendimiento Lacargadelsistemaserealizarádeformainstantánea.Importancia AltaComentarios

Lossiguientescasosdeusonohansidomodificadossustancialmenteyseconservandelprototipoanterior.Seadjuntanporcomplituddeladocumentación.

CU-13 GuardarDiagnosisDescripción El sistema debe comportarse tal como se describe en el

siguiente caso de uso cuando el usuario desee guardar elresultadodeladiagnosis.

Precondiciones El sistema ha realizado el calculo de residuos y de candidatoscorrectamente.

SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Save Results” en la

pestaña“Diagnosis”.2 Elsistemapediráalusuarioqueelijalarutayelnombre

delarchivo.3 Elusuarioeligelarutayelnombre.4 Elsistemaguardalosresultadosenformato.txt.5 Elcasodeusofinaliza.

Postcondiciones Eltxtestágenerado.Excepciones Paso Acción

32

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

CU-14 VerGraficoResiduosDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseeverlasgráficasdelosresiduosquegenerancadaunodelosPCs.

Precondiciones Elsistemaharealizadolageneracióncorrectamente.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Display Graph” en la

pestaña“Diagnosis”.2 El sistema pedirá al usuario que elija el nodo de

discrepanciadelcualdeseaverelresiduo.3 Elusuarioseleccionaelnodo.4 Elsistemamuestralagráfica.5 Elcasodeusofinaliza.

Postcondiciones Lagráficahasidogenerada.Excepciones Paso Acción

- -Rendimiento Laejecuciónserealizarádeformaprácticamenteinstantánea.Importancia AltaComentarios

CU-15 CalcularCandidatosDescripción El sistema debe comportarse tal como se describe en el

siguientecasodeusocuandoelusuariodeseecargarlosficherosnecesariospararealizarelcalculodecandidatos.

Precondiciones Seharealizadopreviamenteelcálculoderesiduos.SecuenciaNormal

Paso Acción1 El usuario selecciona la opción “Fault Candidates

Calculation”.2 El sistema pide al usuario que escoja el cálculo por

“Equations”o“Components”3 Elusuarioescogeunadelasdosopciones(3.1–3.2).3.1 Elusuarioescogecálculopor“Equations”3.2 Elusuarioescogecálculopor“Components”4 ElsistemapidealusuariolarutadelficherodePCs5 ElusuarioseleccionaelficherodePCs.6 El sistemapide al usuario que elija la formade calcular

los candidatos, “Run Z-test” , “Use the global valuedefinedintheconfigurationfile”,“InsertthresholdvalueforeachPossibleConflict”.

6.1 Elusuarioescogelaopción“RunZ-test”.6.1.1 Elsistemapidealusuariolosdatosparalaejecucióndel

z-test.6.1.2 Elsistemaejecutaelz-test.6.2. Elusuarioescogelaopción“Usetheglobalvaluedefined

intheconfigurationfile”.

33

6.2.1 Elsistemarealizalabuscadaporelumbraldefinidoenelficherodeconfiguración.

6.3 El usuario escoge la opción “Insert threshold value foreachPossibleConflict”.

6.3.1 ElsistemapidealusuariolosumbralesdebúsquedaparacadaPC.

6.3.2 ElusuariointroduceelumbraldebúsquedaparacadaPC.6.3.4 Elsistemarealizalabúsquedaporcadaumbraldefinido.7 Elsistemamuestralosresultadosdelcálculo.8 Elcasodeusofinaliza.

Postcondiciones Sehamostradolosresultadosdelcalculodecandidatos.Excepciones Paso Acción

- -Rendimiento El tiempodeejecución será variabledependiendodel volumen

dedatos.Importancia AltaComentarios

4.4. MODELADOESTRUCTURALDELSISTEMA

En este apartado daremos una primera aproximación a la estructura de clases,almacenamientode la informaciónymétodosquevaa tenernuestro sistema.Ésta será́unavisiónestáticadelmismoenquenoseplantearán interaccionesentre losdiferenteselementosomódulosdelsistema.

4.4.1. DiagramadeclasesEnesteapartadovamosamostrareldiagramadeclasesdelsistemaelqueseverándiferenciadaslasclasesmodificadasconrespectoalaversiónoriginalenuncolormásoscuro y dentro de las mismas se mostrará en color azul aquellos atributos yoperacionesnuevosomodificados.

34

Figura4.2:Diagramadeclases

35

Paracomprendermejoreldiagramadeclasesvamosarealizarunosaportesexplicandolafuncionalidaddecadaunadelasclasesquesehanmencionadoeneldiagrama.

• Modelo:eslaclasequealmacenarátodala informaciónrelativaalsistemaqueseintroduciráenlaaplicaciónparatrabajarconél.

• Ecuacion:eslaclasequealmacenarálasecuacionesquecomponenlosmodelosdelossistemas.

• Condicion:eslaclasequealmacenarálosdatosasociadosaunacondición,esdecir,laexpresiónqueindicalavalidezdeunaecuación,laexpresiónenformaprefija,suidentificadorysilahubiera,laexpresióndelacondicióndelelse.

• Variable: es la clase que almacenará cada una de las variables que contienen lasecuacionesdelmodelodelsistema.

• Parametro-Fallo: es la clase que almacenará la información relativa al error oerroresquesepuedanintroducirenelsistema.

• CEM: es la clase que almacenará la información relativa a los elementos queformanlacadenaevaluableminimalyademássepodrádefinirsilacadenaesononoesPosibleConflicto.

• MEM: CEM: es la clase que almacenará la información relativa a los ModelosevaluablesMinimalesapartirde loscualesquesirvendebasepara lageneracióndelosModelosdeSimulación.

• Interpretación: es la clase que almacenará cada una de las distintas formas deinterpretacióndelasecuacionesdelmodelodelsistema.

• Interfaz: es la clase a través de la cual el usuario se comunica con el control delprogramapararealizarórdenesyobtienelosresultadosdeestos.

• Control: es la clase que coordina toda la actividad del sistema, se encarga de lacomunicación con la interfaz y de lanzar las operacionesque realiza la aplicaciónencargandoa los 4 subsistemas las tareasque convengan según lanecesidaddelusuario.

• SistemaCM:esunodelos4subsistemasdecontrol.Cuandoelusuariorequieraunconversión de un sistema a la forma del Modelo Entrada/Salida, ES, será él elencargadoderealizarlasoperacionesdeconversión.

• ModeloES:es laclasequealmacenaráModeloES, resultadode laconversiónquerealizaelSistemaCMpormediodelosdatosquealmacenaModelo.

• SistemaGMS:esunodelos4subsistemasdecontrol.Cuandoelusuariorequieralageneración de los Modelos de Simulación, será él el encargado de realizar lasoperacionesdegeneraciónyopcionalmente,fusión.

• ModeloSim: es la clase que almacenará la información de los Modelos deSimulación que genera el SistemaGMS y que usará el SistemaDiagnosis para elcálculoderesiduos.

• SistemaEx:esunode los4 subsistemasde control.Cuandoelusuario requiera lageneraciónde experimentos dediagnosis, donde se generarándatos asociados aunmodo de funcionamiento para unas ciertas entradas; será él el encargado derealizarlasoperacionesnecesarias.

• Experimento: es la clase que almacenará la información sobre los resultadosgeneradosporelSistemaEx.

• SistemaDiagnosis: es uno de los 4 subsistemas de control. Cuando el usuariorequiera la generación de una diagnosis para un sistema y un experimento enconcreto, será el encargado de realizarla. Primero mediante los Modelos deSimulación y los resultados del Experimento generará los residuos y una vez conellosgeneradosseencargarádebuscarlosposiblescandidatosafallo.

36

4.5. MODELODECOMPORTAMIENTOEn este apartado se va a mostrar mediante un diagrama de secuencia los pasos defuncionamientodelaherramientaenunciclodefuncionamientobásico.

Figura4.3:Diagramadeactividad

Comovemoslasecuenciadepasosesmuysimple,primeroseintroducelainformaciónpertinente en el sistema y con la información cargada ejecutaríamos alguna de lasposiblesoperacionesdelascualeselsistemanosmostraríaelresultado.

4.6. MODELODEITERACCIÓNEnestasecciónsedaráunavisióngeneraldelainteracciónqueexisteentreloselementosque se describieron en el modelo estructural. Para ello se mostrará un diagrama desecuenciaparacadacasodeusoquevimosenelpuntoapartadoModeladodeCasosdeUso. Los elementos de los diagramasmarcados el rojo son aquellos nuevos o que hansufridomodificaciones.

37

4.6.1. Escenariosenlaaplicación

4.6.1.1. EscenariosenlacargadelainformaciónEn este caso los cuatro casos de usos tienen un escenario común, realizanoperacionesdistintasperoparaelusuarioelescenarioseráelmismo.

§ CasodeusoCargarModeloCM§ CasodeusoCargarModeloES§ CasodeusoCargarModeloGMS§ CasodeusoCargarModeloDX

Elusuario solicitaráal sistema iniciar la cargadel sistemapulsandoen laopción“LoadModel”, el sistema le pedirá quedecida entre la cargamanual y la cargaautomática. El usuario decidirá entonces si quiere cargamanual, donde tendráqueireligiendounoaunolosficherosquelepidaelsistemaolacargaautomáticadonde deberá seleccionar el fichero donde se encuentran las rutas al resto dearchivos necesarios para la carga. El sistema irá guardando toda la informaciónsegún vaya leyendo cada fichero que se le vaya pasando y realizando lastransformacionesdedatossilonecesitaran.Yacargadolainformaciónrelativaalsistemamostrará la informaciónquese lehasuministradoenelpanel izquierdodelaaplicación.

4.6.1.2. Escenariosenlaejecucióndefunciones§ CasodeusoConvertirModelo:

El usuario elegirá la opción “Convert Model”, entonces el sistemageneraráapartirde la informaciónquesehacargadoanteriormenteunnuevoModeloES.Trasgenerarelsistemaselomostraráalusuarioenelpanelderechodelaaplicación.

§ CasodeusoGenerarExperimento:El usuario elegirá la opción “Generate Experiment”, entonces elsistema tomará los datos introducidos para generar una función deMatlabqueejecutaráenelmismoMatlab,obtendrá los resultadosyselosmostraráenelpanelderechodelaaplicaciónenformadetablaalusuario.

§ CasodeusoGenerarModeloSim:El usuario elegirá la opción “Generate(Simulation)”, entonces elsistemamediantelainformaciónintroducidaenlacargaobtendrálosModelos de Simulación del sistema introducido fusionando aquellosque seancomunes. Tras tener losModelos finales se losmostraráalusuarioenelpanelderechodelaaplicación.

§ CasodeusoCalcularResiduo:Elusuarioelegirá laopción“CalculateResiduals”,entonceselsistemaledaráalusuariotresopcionesparaelcálculo.Elusuarioseleccionaráunode losmodos,entonceselsistematomará losdatos introducidospara generar una función de Matlab que ejecutará en el mismo

38

Matlab,obtendrálosresultadosyselosmostraráenelpanelderechodelaaplicaciónenformadetablaalusuario.

4.6.2. DiagramasdesecuenciadelaaplicaciónEnesteapartadosevanamostrarlosdiagramasdesecuenciadelsistemadelapartadodeanálisisquesonlossiguientes.

Figura4.4:DiagramadesecuenciaConvertirModelo

Figura4.5:DiagramadesecuenciaGenerarModeloSim

39

Figura4.6:DiagramadesecuenciaGenerarExperimento

Figura4.7:DiagramadesecuenciaDiagnosis

40

41

5. MODELODEDISEÑO5.1. INTRODUCCIÓN

5.1.1. Propósito

Elpropósitodelmodelodediseñoesdefinirdeformaprecisalaformaenquesevaallevaracabolaimplementación,deformaqueeltrabajodelosprogramadoressealomás sencillo e inmediato posible. Además, un buen diseño será imprescindible pararealizar una correcta división del trabajo en caso de existir varios equipos dedesarrollo.

Los usuarios potenciales de este apartado de documentación serán los diseñadores,como autores de dicho apartado, y los programadores, puesto que ésta será suprincipalguíasobrecómollevaracabolaimplementación.

5.1.2. Alcance

Este apartado proporcionará la forma de la cual debe llevarse a cabo laimplementación del proyecto “DxPCs 2.0 - Ampliación de la plataforma para diagnosis basada en modelos”.

5.1.3. Definiciones,Acrónimos,Abreviaturas

Véaseelglosariogeneraldelproyecto.

5.1.4. PerspectivaGeneral

Dentrodeestecapítulopodremosencontrarlosiguiente:

• Arquitecturadelsistema:descripcióngeneralsobrecómoestaráconstruidoelsistema.

• Realización de casos de uso: refinamiento de los casos de uso vistos en elmodelodeanálisisparaqueéstosseadecúenalcódigoquevaasergenerado.

• Diseño de las clases: refinamiento de los diagramas de clases vistos en elmodelodeanálisisparaqueéstosseadecúenalcódigoquevaasergenerado.

• Modelode interacción:refinamientode losdiagramasdesecuenciavistosenel modelo de análisis para que éstos se adecúen al código que va a sergenerado.

• Diagramas de secuencia: diagramas de secuencia de diseño de los casos deusosenloscualeshemoshechomodificacionesennuestraaplicación.

5.2. ARQUITECTURADELSISTEMA

Enestasecciónsedaráunaideageneraldecómosevaaconstruirelsistema.Puestoquesetratadeunaaplicacióninteractiva,dotadadeunainterfazgráfica,comoenlainmensamayoríadeestetipodeaplicacionessevaahacerusodelpatróndediseño"Modelo-Vista-Controlador"(MVC).

42

5.2.1. ElpatrónMVC

EstepatrónsellamaModelo-Vista-Controladoryseusaenaquellasaplicacionesqueposeenunainterfazgráfica.Comosunombreindicalasclasesseagrupanenlostrespaquetesquedanelnombreaestepatrón.

• Modelo:enélsealmacenarátodalainformaciónrelativaalosdatosconlosquetrabajarálaaplicación.

• Vista:eslaencargadadelacomunicaciónconelusuario.Seencargadehacer de intermediaria entre Usuario y Controlador, reconociendo lasórdenesquelemandaelusuarioypasándoselasalControlador.

• Controlador:eselencargadodeejecutarlasórdenesquelepasalaVistaytrasladarloscambiosproducidosalModeloosobrelapropiaVista.

Figura5.1:EsquemadelpatrónMVC

Cualquierinteracciónqueseprodujeraenelsistemaseguiríaestospasos:

1. ElUsuariomandalaacciónalpaqueteVista.2. El paquete Vista la identifica y envía su correspondiente orden al

Controlador.3. Mediante los datos del paquete Modelo el Controlador realiza las

accionesnecesarias.4. Tras finalizar, el paquete Controlador envía los resultados al paquete

VistaqueselosmuestraalUsuario.

5.3. DISEÑODESISTEMAS

5.3.1. SISTEMASHÍBRIDOS

Para utilizar los nuevos sistemas híbridos primero vamos a decidir cómodefiniremoslasecuacionesdelsistema.Porellounsistemapodrátener:

• Ecuacionessimples.• Ecuaciones condicionadas: aquellas cuyo valor dependerá de una expresión

conuncondicionante.Serándeltipo:if<expresióncondicionante> <ecuación>[else <ecuación>]end

43

Estas ecuaciones podrán llevar o no la parte del else según convenga en elsistema.LasecuacionesdeberántenerlasintaxisconformealaherramientaMatlabyaquedeellanosvalemospararealizarcálculosposteriormente(Gilat,2006).LasexpresionestambiéntendránsintaxisconformeaMatlab.Seescribiránenforma infija tal que ( x || y), (!x), ( x && y)… y será la herramienta la cuáltransforme las ecuaciones de forma infija a prefija facilitando la labor alusuarioyevitando fallosen laescrituraen formaprefija,algomáscompleja.Loscambiosquerealizarálaherramientadeformainfijaaprefijason:

• X+YàSM(X,Y)• X-YàRT(X,Y)• X/YàDV(X,Y)• X*YàMT(X,Y)• X>=YàGE(X,Y)• X>YàGT(X,Y)• X<=YàLE(X,Y)• X<YàLT(X,Y)• X=YàEQ(X,Y)• -YàNEG(X)• X~=YàNEQ(X,Y)• X||Yàor(X,Y)• X&&Yàand(X,Y)• !Xànot(X)

No todas estas funciones existen en Matlab por lo que algunas de ellas seescribirányseañadirándirectamenteaMatlabdeformamanual.

5.3.2. MODELOE/SEnesteapartadoseexplicacómolaherramientatransformaránuestrosistemadeecuaciones en unModelo E/S para la herramienta CPCs. Lo primero, cuando elsistematengalalistadelascondicionesenformaprefija,comenzarálarealizacióndel catálogo. El catálogo es un medio que genera la herramientaautomáticamentequealmacena lascondicionesdenominándolasconel termino𝑆𝑤! ,siendo𝑥suidentificador.AlahoradecrearelmodelofacilitaeltrabajoalyatenercadacondiciónasignadasunombredelmodoSw.Elmétododecreacióndel catálogo será, para cada condición se deberá realizar una comparación contodaslasdemáscondicionesguardadasysepodrándartresposibilidades.

1. La primera corresponde a que al realizar la comparación exista unacondición igual, entonces a ésta se la dará elmismo nombre que a suigual.

2. Lasegundaseráqueexistaunacondiciónqueseasunegaciónporloqueaestacondiciónse ladaráelnombrede laotranegado.PorejemplosifueraigualalacondiciónSW1sería!SW1.

3. Porúltimosepodrádarqueseaunacondicióndiferenteal restopor locual se ladaráunnuevonombre. Si fuese laprimeradel catálogo seríaSW1.

44

Una vez creado el catálogo, se comenzará con la transformación de las ADEscondicionadasalModeloE/S.LosModelosdeE/Ssonlaentradaparaelcálculodelos PCs. Estosmodelos están compuestos por relaciones que tienendos partes:unaparteestructural(quellamamosecuación)yunapartecausal(quellamamosinterpretaciones y que son una de las formas en las que se puede resolver laecuación, esto es, cómo se puede resolver una ecuación con una variableindependiente cuando todas las demás variables se suponen conocidas ocalculadasporpartedeotraecuación).Seirántransformandounaaunalasecuacionescondosposibilidades:

1. Paracadaecuaciónsimpleel sistemaconsiderarádos tiposdevariables,lasobservadasylasnoobservadas:

• Variablesnoobservadas:laspertenecientesalosconjuntosXyW.• Variablesobservadas:laspertenecientesalosconjuntosYyU.Tras realizar la clasificación de sus variables, se obtendrán susinterpretaciones, que pueden ser una o más y se obtiene entonces laecuación en formato ES. Con estas consideraciones obtenemos que lasecuacionessimplesqueformanelmodeloESserándelaforma.Elmodelocompletoseríaunconjuntodeecuacionestalque:

<modelo>:={<ecuación>$}+$

Ycadaunadelasecuacionessincondicióndelmodelo:

<ecuación>:=<id-ecuacion> {<variablesnoobservadas>} $ {<variablesobservadas>} $ {<Interpretación> $}+ $

Unmodelo es una omás ecuaciones, separadas por $ y terminando laúltimaconotro$.Cadaunodelosdosconjuntosdevariables,observadasy no observadas, se dividirá colocando una sola variable por línea. Lasinterpretaciones estarán formadas por la variable cabeza, la variabledependiente,consusvariablesdecola,estoes lasvariablesqueseusanparacalcularlacabeza,detrás,unaporlínea..Elordendelasvariablesdecoladebajodelacabezanoinfluyeenelresultado.

2. Para las ecuaciones con condiciones debemos clasificar también susvariablesdecolaenobservadasyennoobservadasperoenestecasoaestos dos conjuntos debemos añadirle también aquellas variablesobservadasonoobservadasquepudieranaparecerenlacondicióndelaecuación.Trasclasificarlasvariablessecolocaránlasinterpretacionesde

45

lasecuacionessegúnsucondiciónsealaoriginalosunegación,aunquelasegundaparte,ladelanegaciónquecorrespondealelse,puededarseelcaso de no aparecer ya que es opcional. Por lo que las ecuacionescondicionadasqueformanelmodeloESserándelaforma:

<ecuación>:=<id-ecuacion>{<variablesnoobservadas>}${<variablesobservadas>}$

{<InterpretaciónSw!>#

Sw!$}+$

TrasobtenerlaconversióndetodaslasecuacioneselModelodeE/Sseterminaráañadiendoun$másalfinaldelaúltimaecuacióntransformadaqueindicaelfindelModeloE/S.Cabe destacar cómo se forma el conjunto de variables intermedias quedenominamosW.Esteconjuntocontieneaquellasvariablesquenopertenecenaningunode losconjuntospredefinidosenel ficherodevariables.Esunconjuntode variables no observadas. En la versión anterior este conjunto se generabasegún se iba construyendo el modelo por lo que el orden de escritura de lasecuacioneseracrucialyaqueunordenincorrectode lamismaspodíahacerqueno tuviéramos una variable de ese conjunto W en un momento determinado.Ahoraesteconjuntosegeneraráantesdecomenzar laconversiónhaciendounabúsqueda de sus variables ecuación a ecuación. El sistemapasará por todas lasADEs,paracadaecuación,seconsiderasuvariablecabeza,siéstanopertenecealos conjuntos del fichero de variables, ni ya ha sido añadida al conjunto Wanteriormenteyaqueformasepartedeotraecuación,laañadimosalmismo.Conestofacilitamoslatareadelusuarioyaqueahoranotienequeestarpendientedelordenenquedeberíandeirlasecuacionescuandolasescriba.

5.3.3. MODELOSDESIMULACIÓNEnesteapartadoseexplicacómo laherramientacrearávaliéndosede lasalidadelaaplicacióndeCPClosnuevosModelosdeSimulaciónqueahorapuedenserhíbridos.Sehadefinidounanuevaestructurapararepresentaraquellasnuevaspartes del Modelo de Simulación. En los nuevos Modelos de Simulación sepodránobservardostiposdeecuaciones:

• Ecuacionessimples• Ecuaciones condicionadas: aquellas cuyo valor dependerá de una expresión

conuncondicionante.Serándeltipo:if<expresióncondicionante> <ecuación>end

46

Esdecirsólohabráecuacionescondicionadasdeltipoif-end.Setransformarántodas aquellas ecuaciones del tipo if-else-end yaque se ha consideradomásconvenientealahoradevertodalainformaciónasociadaacadaecuacióndemaneramásprecisa.Además se creará una nueva funcionalidad de mejora que consistirá en lafusióndeaquellosModelosdeSimulaciónconpartesequivalentesreduciendoasíelnúmerodelosmismosymejorandolavisióndelosresultados.

5.4. REALIZACIÓNDECASOSDEUSO

Loscasosdeusoquesecorrespondenaesteapartadocorrespondenconlosqueyasehanmostradoanteriormenteenanteriormenteenelapartadodeanálisis.

5.5. DISEÑODELASCLASES

En este apartado vamos a mostrar cómo quedará nuestro diagrama de clases alintegrarlo en el patrónMVC que hemos descrito anteriormente. Al igual que en elcasoanteriorpondremosenazultodoaquelloquehemosmodificadooesnuevo.

47

Figura5.2:Diagramadeclases-PatrónMVC

48

Ahora vamos explicar las clases modificadas explicando cada uno de los elementosmodificadosoañadidosenellas.

ModeloSistemaResponsabilidadesClasequealmacenalosdatossobreelsistema.AtributosNombre(Tipo) DescripciónlistaCondicion(Arraylist<Condicion>) Listadeloselementoscondiciondelsistema.listaEcuacionesDoble(Arraylist<String>) Lista de las ecuaciones con un elemento

condiciónasociado.parametros(Arraylist<String>) ListadevariablesTheta.OperacionesprepararSistema()Objetivos ConstruyelosModelosObservacionalyTransicional.Entrada -Salida -addCondicionLista()Objetivos AñadeunacondiciónaCondicion.Entrada Lacondiciónacargar.Salida -addDobleEcuacion()Objetivos AñadeunaecuacióndelelseaCondicion.Entrada Laecuaciónacargar.Salida -addIdLista()Objetivos AñadeunidentificadoraCondicion.Entrada Elidentificadoracargar.Salida addVariablesTheta()Objetivos Añadeunnuevoparámetroaparámetros.Entrada Lavariableacargar.Salida -

Condicion

ResponsabilidadesClasequealmacenalosdatossobreelsistema.AtributosNombre(Tipo) Descripciónexpresion(String) Expresióndeunacondición.id(String) Identificadordecondición.expref(String) Expresióndeunacondiciónenformaprefija.negacion(String) Expresióndelacondicióndelelse.

49

InterpretacionResponsabilidadesClasequealmacenalosdatosunainterpretación.AtributosNombre(Tipo) DescripciónswCondicion(String) NombredelSwqueleafecta.

MEM

ResponsabilidadesClasequealmacenalosdatosdeunMEM.AtributosNombre(Tipo) DescripciónswInfluyentes(String) NombredelSwodelosSwqueleafectan.interDoble(ArrayList<Interpretacion>) Listadelasinterpretacionesextraqueseañaden

almodelobasetraslafusión.

ModeloSimulacionResponsabilidadesClasequealmacenalosdatosdeunModelodeSimulación.AtributosNombre(Tipo) DescripciónlistaIF(ArrayList<String>) Listadelascondiciones.listaEcuacionesIF(ArrayList<String>) Lista de las ecuaciones asociadas a una

condición.OperacionesinitVariables()Objetivos ActualizalasvariablesdelModelodeSimulación.Entrada -Salida -

ModuloDX

ResponsabilidadesClasequeejecutalasfuncionesdelmodulodediagnosis.OperacionesgenerarFuncionSimulacion()Objetivos GeneraunafunciónparaejecutarladiagnosisatravésdeMatlabEntrada Lainformaciónsobreelmodelodelsistemaysobreelmodelode

simulación.Salida -

ModuloGE

ResponsabilidadesClasequeejecutalasfuncionesdelmodulodegeneracióndeexperimentos.OperacionesgenerarFuncionInstante()Objetivos Genera una función para ejecutar un experimento a través de

Matlab.Entrada -Salida Listaconlasvariablesdelexperimento.

50

Interfaz

ResponsabilidadesClasequeimprimelosdatoscargadosylosresultados.OperacionesimprimeModeloPanelCM()Objetivos Muestra la información cargada en la pestaña Conversor de

Modelos.Entrada Lainformaciónsobreelmodelodelsistema.Salida -imprimeModeloPanelGE()Objetivos Muestra la información cargada en la pestaña Generador de

Experimentos.Entrada Lainformaciónsobreelmodelodelsistema.Salida -imprimeModeloPanelGMS()Objetivos Muestra la información cargada en la pestaña Generador de

ModelosdeSimulación.Entrada Lainformaciónsobreelmodelodelsistema.Salida -imprimeModeloPanelIDX()Objetivos MuestralainformacióncargadaenlapestañaDiagnosis.Entrada Lainformaciónsobreelmodelodelsistema.Salida -

Control

ResponsabilidadesClasedecontroldelaaplicaciónquegestionaloseventos.OperacioneseventoCargarModeloSistemaGMS()Objetivos Evento de gestión de la carga del modelo de sistema en el

apartadoGenerarModelosdeSimulación.Entrada -Salida -eventoCargarModeloSistemaGE()Objetivos Evento de gestión de la carga del modelo de sistema en el

apartadoGeneradordeExperimentos.Entrada -Salida -eventoCargarModeloSistemaCM()Objetivos Evento de gestión de la carga del modelo de sistema en el

apartadoConversordeModelos.Entrada -Salida -

51

ModuloCMResponsabilidadesClasequeejecutalasfuncionesdelmodulodeconversióndemodelos.OperacionesconvertirSw()Objetivos TransformaunSwensuinverso.Entrada ElSwatransformar.Salida ElSwtransformado.convertirCondicion()Objetivos Transformaunacondiciónensuinversa.Entrada Lacondiciónatransformar.Salida Lacondicióntransformada.crearCatalogo()Objetivos CreaelcatálogodelosdistintosSw.Entrada -Salida -obtenerVarIntermedias()Objetivos Realizaunapasadasobreelsistemayobtienelalistadevariables

intermediasparasuposterioruso.Entrada -Salida Lalistadevariablesintermedias.convertirModelo()Objetivos CreaapartirdelainformacióndelsistemaelModeloES.Entrada -Salida ElModeloES.

ModuloGMS

ResponsabilidadesClasequeejecutalasfuncionesdelmodulodegeneradordemodelosdesimulación.OperacionescomprobarNodos()Objetivos CompruebasidosMEMtienenelmismonododediscrepancia.Entrada LosdosMEM.Salida TrueoFalsesegúnelresultadodelacomprobación.buscarInter()Objetivos BuscaelnododediscrepanciadeunMEM(lasecuaciones).Entrada ElMEMdondesevaabuscar.Salida Unarrayconlasdiscrepancias.buscarNodo()Objetivos BuscaelnododediscrepanciadeunMEM(lavariable).Entrada ElMEMdondesevaabuscar.Salida Elnododediscrepancia.obtenerVarIntermedias()Objetivos Realizaunapasadasobreelsistemayobtienelalistadevariables

intermediasparasuposterioruso.Entrada -Salida Lalistadevariablesintermedias.fusionarModelos()Objetivos Fusiona aquellos modelos de simulación que son considerados

equivalentes.

52

Entrada LalistadelosModelosdeSimulación.Salida LalistadelosModelosdeSimulaciónfusionados.generarModelosSimulacion()Objetivos GeneralosModelosdeSimulación.Entrada LalistadelosModelosdeSimulación.Salida -invertirEc()Objetivos Transformaunaecuaciónensuinversa.Entrada Elnombredelaecuaciónatransformar.Salida Elnombredelaecuacióntransformado.repasadoFinal()Objetivos Función de apoyo, se encarga de repasar el resultado de

generarModelosSimulacion() buscando partes del modeloincorrectasycorrigiéndolas.

Entrada UnarrayconlalistaquegeneragenerarModelosSimulacion().Salida Elarrayconlaspertinentescorrecciones.

GestorFicheros

ResponsabilidadesClasequeseencargadegestionarlainformaciónintroducidaalsistema.OperacionesgestionarIF()Objetivos Transformalascondicionesdeformainfijaaprefija.Entrada La información sobre el modelo del sistema y la lista de las

condiciones.Salida -isNumber()Objetivos Seencargadeaveriguarsielparámetropasadoesuninteger.Entrada La información sobre el modelo del sistema y el string que

queremosversiesuninteger.Salida Unbooleantrueofalseconelresultado.construyeParte()Objetivos Función de apoyo a gestionarIF, es la que realiza realmente la

transformación.Entrada Lacondiciónatransformarylosdatossobreelmodelodesistema.Salida -cargarEcuacionesSistema()Objetivos Cargalasecuacionesdelsistema,tienedosversiones,automática

ymanual.Entrada(Manual) Lainformaciónsobreelmodelodelsistema.Entrada(Automática) Lainformaciónsobreelmodelodelsistemaylarutadelficherode

rutasparaelaccesoalainformacióndeformaautomática.Salida -cargarVarEntradaSistema()Objetivos Carga lasvariablesdelsistema,tienedosversiones,automáticay

manual.Entrada(Manual) Lainformaciónsobreelmodelodelsistema.Entrada(Automática) Lainformaciónsobreelmodelodelsistemaylarutadelficherode

rutasparaelaccesoalainformacióndeformaautomática.Salida -

53

cargarModeloCPC()Objetivos CargalosMEMquelepasemos,tienedosversiones,automáticay

manual.Entrada(Manual) Lainformaciónsobreelmodelodelsistema.Entrada(Automática) Lainformaciónsobreelmodelodelsistemaylarutadelficherode

rutasparaelaccesoalainformacióndeformaautomática.Salida -cargarModSim()Objetivos Carga las los Modelos de Simulación, tiene dos versiones,

automáticaymanual.Entrada(Manual) Lainformaciónsobreelmodelodelsistema.Entrada(Automática) Lainformaciónsobreelmodelodelsistemaylarutadelficherode

rutasparaelaccesoalainformacióndeformaautomática.Salida -

5.6. MODELODEINTERACCIÓN

En este apartado vamos a mostrar las interacciones que ocurren entre loselementosdelsistema,comohicimosenelapartadodeanálisisperoconmuchomásdetalleenlasclasesimplicadas.

5.6.1. Escenariosenlaaplicación

5.6.1.1. EscenariosenlacargadelainformaciónEn este caso los cuatro casos de usos tienen un escenario común, realizanoperacionesdistintasperoparaelusuarioelescenarioseráelmismo.

§ CasodeusoCargarModeloCM§ CasodeusoCargarModeloES§ CasodeusoCargarModeloGMS§ CasodeusoCargarModeloDX

Estecasodeusocomienzaconunapeticiónalusuariodecargarunsistema,dichapeticiónsepasaráalobjetodetipocontrol.Primerocrearálosobjetosnecesariosparaguardarlainformación,elobjetomodeloysegúnseaeltipodecargacrearáel objeto que corresponda para la posterior ejecución. Si es CargarModeloCMcrearáunobjetotipoConversorModelos,siesCargarModeloGEcrearáunobjetotipo GeneradorExperimentos, si es CargarModeloGMS creará un objeto tipoGenradorModelosSimulacion y si fuera CargarModeloDX creará un objeto tipoDiagnosis. Después controlmediante un objeto tipoGestorFicheros mandará laejecucióndelacargadelmodelopasandoelcontrolaGestorFicherosquecargarálos datos en el objeto modelo en diferentes llamadas al objeto. Tras la carga,controlmandarálatransformacióndelascondicionessi lashubieraquetambiénejecutaráGestorFicheros.

54

5.6.1.2. Escenariosenlaejecucióndefunciones§ CasodeusoConvertirModelo:

Estecasodeusocomienzaconunapeticióndelusuarioparaejecutarla conversión demodelo, dicha petición se pasará al objeto control.Control mediante el objeto creado en la carga, de tipoConversorModelos, ejecuta la conversión que pasa el control a eseobjeto. Entonces comienza la conversión. Lo primero que hace escrearelcatálogoygenerarelconjuntodevariables intermedias.Unavez tenga toda la información que necesita comienza a generar elModelo E/S. Se analizará ecuación a ecuación obteniendo laconveniente transformación. Con el Modelo E/S generado vuelve acontrolquemandalaejecuciónalobjetoventana,detipoInterfaz,quemuestrelosresultados.

§ CasodeusoGenerarExperimento:Estecasodeusocomienzaconunapeticióndeusuarioparaejecutarla generación de un experimento, dicha petición se pasará al objetocontrol. Control mediante el objeto creado en la carga, de tipoGeneradorExperimento, ejecuta primero la generación de la funciónpara Matlab que pasa el control a ese objeto y el mismo crea lafunción de Matlab. La siguiente llamada de control será al mismoobjeto que ha generado la función para que la ejecute a través deMatlab. Una vez realizada la ejecución esta vez control mandará alobjetoventana,detipoInterfaz,quemuestrelosrestultados.

§ CasodeusoGenerarModeloSim:Estecasodeusocomienzaconunapeticióndelusuarioparaejecutarla generación demodelos de simulación, dicha petición se pasará alobjeto control. Lo primero que se hace es mandar la ejecución delmétodoprepararSistemamedianteelobjetomodelo,queloquehaceesgenerarlosmodelosobservacionalytransicional.DespuésmedianteelobjetodetipoGeneradorModelosSimulacion,creadoenlacargadedatos,manda la ejecución de la generación demodelos que pasa elcontrolaeseobjeto.Entoncescomienzalageneración.Loprimeroquehace es realizar la fusión de los modelos mediante el métodofusionModelos. Una vez que se ha producido la fusión comienza lageneración de los modelos que crea una lista con los modelosgenerados. Teniendo la lista, llama al método repasadoFinal parabuscarerroresenlalistaylosmodifica.Conlalistarepasadasevuelveacontrolquemandaráalobjetoventana,detipoInterfaz,quemuestrelosresultados.

§ CasodeusoCalcularResiduo:

Estecasodeusocomienzaconunapeticióndelusuarioparaejecutarel cálculo de residuos, dicha petición se pasará al objeto control.Control mediante el objeto creado en la carga, de tipo Diagnosis,ejecutaprimero la generaciónde la funciónparaMatlabquepasaelcontrolaeseobjetoyelmismocrealafuncióndeMatlab.Lasiguientellamadade control será almismoobjetoqueha generado la funciónparaquelaejecuteatravésdeMatlab.Unavezrealizadalaejecución

55

esta vez control mandará al objeto ventana, de tipo Interfaz, quemuestrelosresultados.

5.6.2. DiagramasdesecuenciadelaaplicaciónEn este apartado se van a mostrar los diagramas de secuencia del sistema. Semostraránenrojo lasoperacionesquesehanmodificadoonuevas.ParaelapartadodecargadedatosvamosamostrarlassecuenciasdelcasodeusoCargarModeloCMyCargarModeloGMSsuficientesparaverlasmodificacionesrealizadas.LoscasosdeusoCargarModeloES y CargarModeloDX funcionan igual que estos mencionadosanteriormente por lo que se han elegidomostrar los anteriores, en los que se ventodas las operaciones que habría en estos últimos, evitando así repeticiones deinformación.Encuantoalaejecucióndefunciones,sevaamostrarelcasodeusoCovertirModeloyGenerarModeloSim de forma completa. De los casos de usoGenerarExperimento yCalcularResiduosevaamostrarpartedelcasodeuso,laquehasidomodificadayqueescomúnenambos,laquegeneralafuncióndesimulaciónparaMatlab.Comopodemosverenlafigura5.8,eslapartequehemosmodificadodelcasodeusocalcular residuos y que es equivalente a GenerarExperimento, se ha modificado lafunción write(equation). Lo que hacemos en este caso es para cada ecuacióncomprobamosel tipodeecuación,conosincondiciones.Si tienecondiciónasociadaseescribelaecuaciónsino,sitienecondición,elsistemabuscarátodala informaciónrelativaalaecuaciónylaescribirádelaformacorrecta.

56

Figura5.3:DiagramadesecuenciaCargarModeloCM

57

Diagrama5.4:DiagramadesecuenciaCargarModeloGMS

58

Figura5.5:DiagramadesecuenciaConvertirModelo

59

Figura5.6:DiagramadesecuenciaGenerarModeloSim

60

Figura5.7:DiagramadesecuenciaGeneracionFuncionMatlab

61

6. MODELODEIMPLEMENTACIÓN6.1. INTRODUCCIÓN

6.1.1. Propósito

Elpropósitodelmodelode implementaciónesdescribir losprocesosy lasdecisionesquesehanllevadoacaboenlaimplementacióndelproyecto.Los usuarios potenciales de este apartado de documentación serán, principalmente,losprogramadores(ademásseránestosmismoslosquelogeneren).

6.1.2. Alcance

Este apartado proporcionará información sobre el proceso de implementación delproyecto “DxPCs 2.0 - Ampliación de la plataforma para diagnosis basada en modelos”. 6.1.3. Definiciones,Acrónimos,AbreviaturasVéaseelglosariogeneraldelproyecto.

6.1.4. PerspectivaGeneral

Estecapítuloconstarádelassiguientespartes:

• Descripcióndelasherramientasdetrabajo.• Aportaciones: Estructuras y algoritmos nuevos: en este apartado se

describirán los cambios realizados en la aplicación de CPCs y los algoritmosimplementados.

6.2. Descripcióndelasherramientasdetrabajo

6.2.1. LenguajedeprogramaciónJava

EllenguajedeprogramaciónelegidoparallevaracabolaimplementaciónseráJava,ensuúltimaversión(afechadelarealizacióndeestedocumento,laversiónmásrecienteesla8).Elprincipalmotivodeestadecisiónesquelaaplicacióndelaquepartimosyahabía sido desarrollada en este lenguaje y, puesto que debíamos mantener lacompatibilidad con ésta, haber llevado a cabo el desarrollo en otro lenguaje habríasidotremendamentecostoso.6.2.2. EntornodedesarrolloNetbeans

ElentornodedesarrolloquesevaautilizarseráNetbeans.Setratadeunsoftwaredecódigoabiertoconelqueelequipodedesarrolloyahabíatrabajadoconanterioridad.

62

6.2.3. SistemasoperativosWindowsyOSX

Se va a realizar la mayor parte del trabajo, la realización del documento yprogramación,enelS.O.OSXqueeselportátilconelquecuentaelequipo.Debidoaque la licencia que poseemos deMatlab es para el S.O.Windows las pruebas de laherramientaserealizaránenesteotrosistema.

6.3. Aportacionesalaherramienta

6.3.1. Cambiosenelalmacenamientodedatos

Elcambioquevamosaintroducirenlaherramienta,seráunaampliaciónparaquelaherramientapuedatrabajartambiénconmodelosdiscretosdemodeloshíbridos.Éstoconlleva modificar aquellas estructuras en la cuales se guardan los datos de losmismos.Porellovanarealizarsecambiosenesasestructurasparapoderalmacenarlanuevainformaciónqueconllevatrabajarconestossistemas.

• ModeloSistema

o listaCondicion:Será un arrayList que almacena el conjunto de elementos de tipocondición.

o listaEcuacionesDoble:

SeráunarrayListconecuaciones.Estasecuacionesseránaquellasquetienenunelementocondiciónasociado.

o parametros:SeráunarrayListconlosnombresdelosparámetros.Enocasionesnonecesitamos cargar toda la información que contiene el fichero deparámetros sino solamente sus nombres. Por ello con este array sefacilitaráel trabajoalnotenerquecargarotroficherocompletosinosolo los datos del conjunto Theta del fichero variables. Será cargadoporGestorFicherosenlacargadedatos.

• Condicion

o id:SeráunStringqueguardaráelidentificador,delaformaswx,delaexpresióndelacondición.SerácargadoporGestorFicherosenlacargadedatos.

o expresion:SeráunStringqueguardarálaexpresióndelacondicióndelaecuaciónasociada.SerácargadoporGestorFicherosen lacargadedatos.

o expref: Será un String que guardará la expresión de la condición en

forma prefija. Será cargado por GestorFicheros en la carga de datostrasrealizarlaconversión.

63

o negacion:SeráunStringqueguardarálaexpresióndelacondicióndelelse, si la hubiera. Será cargado por GestorFicheros en la carga dedatos.

• Interpretación

o swCondicion:Guardará el identificador de la condición que afecta a lainterpretación.SerácargadoporGestorFicherosenlacargadedatos.

• ModeloSimulacion

o listaIF:SeráunarrayListconla listade lasexpresionesde lascondicionesdeunmodelodesimulación.SerácargadoporGestorFicherosenlacargadedatos.

o listaEcuacionesIF:

Será un arrayList con la lista de las expresiones de las ecuacionesasociadas a una condición. Su condición asociada tendrá la mismaposición en listaIF. Será cargado por GestorFicheros en la carga dedatos.

• MEM

o swInfluyentes:

Seraunstringqueguardará los identificadoresdelascondiciones,enlaformaswx,queafectanaeseMEM.SerácargadoporGestorFicherosenlacargadedatos.

o interDoble:

SeráunarrayListqueguardaráuna listade interpretaciones.Cuandose fusionandosomásmodelosseusaráunodebase, lasecuacionesañadidasalmismode formasuplementariaalmodelobasea lahorade la fusión serán almacenadas en este array. Será cargado en laoperacióndefusióndemodelosdesimulación.

6.3.2. Algoritmosnuevos

6.3.2.1. ConversióndeModelosEn el apartado de conversión de modelos se han añadido principalmente dosalgoritmosademásdelamodificacióndelalgoritmoqueyahabía.Estosalgoritmosson los equivalentes a las funciones crearCatalogo y obtenerVarIntermedias. Elprimero crear catálogo crea una lista de los sw que hay en nuestro sistemacomprobando si hay sw repetidosuopuestosparaque la funciónde conversióntrabaje posteriormente más fácilmente. El otro obtenerVarIntermedias se crea

64

debidoaunproblemaencontradoenelcódigoanterior;enlaversiónanteriorsedetectabanlasvariablesintermediasalanalizarcadaecuaciónysiéstasnohabíansido calculadas previamente ocasionaban un error si las ecuaciones no estabanescritasenelordenadecuadoparasimular.Ahora,conestenuevotratamiento,seevitatenerquedarlasecuacionesenelordenexactodesimulación.Éstafuncióncrea el conjunto de variables intermedias antes de comenzar la conversiónconsiguiendoasíqueelordendelasecuacionesseaindiferente.

ALGORITMO obtenerVarIntermedias() i:=0; MIENTRAS i < modelo.listaEcuaciones.tamaño() HACER cabeza := listaEcuaciones.getCabeza(i); SI NOT modelo.variablesSalida.contains(cabeza) ENTONCES SI NOT variablesIntermedias.contains(cabeza) ENTONCES variablesIntermedias.add(cabeza); FIN SI FIN SI i:=i+1; FIN MIENTRAS FIN ALGORITMO crearcatalogo() i:=0; cont := 1; MIENTRAS i < modelo.listaCondicion.tamaño() HACER igual := false; z:=0; condicion := modelo.listaCondicion.condicion.expref.get(i); MIENTRAS z < catalogo.tamaño() && igual == true HACER itemcatalogo := catalogo.get(z);

SI itemcatalogo == condicion || itemcatalogo == convertirCondicion(condicion) ENTONCES

igual := true; FIN SI z:= z+1; FIN MIENTRAS SI igual == false ENTONCES modelo.condicion.id.add("sw"+ cont); cont := cont + 1; FIN SI i := i+1; FIN MIENTRAS FIN

Además de las dos funciones principales que acabamos de comentar hay otrasfuncionesdeapoyomássimplescomolosonconvertirCondicionyconvertirSwquesirvenparaobtenerlasformasnegadasdelascondicionesydelossw.6.3.2.2. Conversióndeformainfijaaprefija

Loprimero,tenemoselalgoritmogestionarIFqueeslabaseparaelcambio.Estealgoritmo leerá línea a línea el sistema y cuando detecte una condición latransformarállamandoaconstruyeParte.

ALGORITMO gestionarIF(listaSistema , modeloSistema) MIENTRAS i<listaSistema.tamaño() HACER elemento := listaSistema.get(i); SI elemento.empiezapor("if") ENTONCES elemento := contruyeParte(elemento,modelo); FIN SI FIN MIENTRAS FIN

65

El algoritmo construyeParte es un algoritmo recursivo basado en un case convarias opciones. Irá leyendo elemento a elemento la condición, si encuentraparéntesis llamará a la misma función de forma recursiva del interior delparéntesis, sino se identifica la posible función, número, si es un espacio y seguarda la información en una pila para el posteriormontaje de la condición enformaprefija.

ALGORITMO construyeParte(elemento,modelo) z := 1; MIENTRAS i<elemento.tamaño() HACER aux := elemento.substring(z); SEGUN aux HACER CASO "(": construyeParte(elementoEntreParentesis, modelo); CASO funcion/numero/espacio: identificarElemento(); realizarTransformacion(); guardarEnPila(); FIN SEGUN FIN MIENTRAS generarNuevaCondicion(pila); FIN

También tenemosuna funcióndeapoyoa laquehemosdenominada isNumberquecompruebasielstringpasadoesunnúmero.6.3.2.3. GeneracióndeModelosdeSimulación

Una vez que tenemos los modelos fusionados que veremos en el apartadosiguiente, 6.3.2.4. Con los modelos fusionados se llama a la antigua funcióngenerarModelosSimulacion que como veremos después, la modificación, soloañadelascondicionesademásdeaquellasecuacionescomplementariasalantiguofuncionamientoquegenerabalosmodelosdelossistemascontinuos.Porelloaunnos faltaríaversiaquellasvariablesdeestado,deesascondicionesyecuacionescomplementarias, están escritas correctamente o hay que modificarlas por suvalor“_ant”.DeestoseencargalafunciónrepasadoFinal,quepasaporcadaunode los elementos de la lista generada por generarModelosSimulacion buscandoeseposibleerror.

ALGORITMO repasadoFinal(lista) i:=0; MIENTRAS i < lista.tamaño() HACER SI esCondicion() ENTONCES PARA CADA variableDeLaCondicion HACER SI variable.noPerteneceACoincidencias() ENTONCES reeemplazar("_ant"); FIN SI FIN PARA FIN SI SI esEcuacion() ENTONCES coincidencias.add(cabezaEcuacion); PARA CADA variableDeLaEcuacion HACER SI variable.noPerteneceACoincidencias() ENTONCES reeemplazar("_ant"); FIN SI FIN PARA FIN SI i := i+1; FIN MIENTRAS FIN

66

6.3.2.4. FusióndeModelosdeSimulación

Elalgoritmode fusión seencargarádeuniraquellosModelosdeSimulaciónquesoncomuneshaciendoqueposteriormentelosresultadosdeladiagnosisdeveandeunaformamáscompletaysimple.ElalgoritmosellamafusionarModelos.Éstese vale de otros algoritmos para su funcionamiento que son: buscarNodo,buscarInterycomprobarNodos.ElalgoritmobuscarNodoloquehacesimplementeesbuscarelnododelMEMquese le ha pasado. Su funcionamiento consiste en encontrar aquella variable queestádosvecesdefinidatantoporelvalordelsensorcomoporeldesuecuación.Buscarárepeticionesdevariablesvaliéndosedeunapila.

ALGORITMO buscarNodo(mem) i := 0; MIENTRAS i < interpretaciones.tamaño() HACER SI inter.cabeza.terminapor(mes) ENTONCES SI inter.variablecola.estaEnPila() ENTONCES nodo := inter.variablecola; SINO inter.variablecola.añadirPila(); FIN SI SINO SI inter.variablecabeza.estaEnPila() ENTONCES nodo := inter.variablecabeza; SINO inter.variablecabeza.añadirPila(); FIN SI FIN SI i := i + 1; FIN MIENTRAS FIN

Trasencontrarelnodolosiguienteseráextraerlasinterpretacionesenlacualeselnodo está en nodo, que serán discrepantes. Para ellos usamos buscarInter queextraeráesasinterpretacionespormediodelnodoqueledalaecuaciónanterior.

ALGORITMO buscarInter(mem) nodo = buscarNodo(mem); MIENTRAS i< mem.interpretaciones.tamaño() HACER SI coincidencia(nodo) ENTONCES lista.añadir(inter); FIN SI FIN MIENTRAS FIN

El algoritmo comprobarNodos como su nombre indica comprueba si dosMEMtienenelmismonodoy trasesto si conelmismonodo las interpretacionesqueextrajobuscarInterseanlasmismas.

ALGORITMO comprobarNodos(mem1,mem2) iguales:= false; nodo1 := buscarNodo(mem1);

nodo2 := buscarNodo(mem2); SI comprobarNodosIguales() ENTONCES listainter1 := buscarInter(mem1); listainter2 := buscarInter(mem2); SI comprobarListasIguales() ENTONCES iguales := true; FIN SI

FIN SI FIN

67

Con estas funciones de apoyo ya podemos realizar la fusión. Primero secomprobaráque se tratadeunmodeloequivalentey traselloañadiráalmodelobase las ecuaciones que están en los otros modelos equivalentes pero no en elbase.

ALGORITMO fusionarModelos(modelosSimulacion) i:=0; MIENTRAS (i < modelosSimulacion.tamaño()) HACER m := modelosSimulacion.get(i); z := i + 1; MIENTRAS (z < modelosSimulacion.tamaño()) HACER maux := modelosSimulacion.get(z); SI comprobarMismaCadena() && comprobarSw() ENTONCES SI comprobarNodos(m,maux) ENTONCES buscarEcuacionesExtra(); añadirEcuacionesExtraModeloBase(); FIN SI FIN SI Z := z+1; FIN MIENTRAS FIN MIENTRAS FIN

El funcionamiento se basa en la comparación; para cadamodelo como vemos locomparaconel restodemodelossiguientesen la listademodelosyunavezquesabe que se trata de modelos comunes se encargará de buscar las ecuacionesdistintas almodelobase y añadírselas almismo creando así elmodelo fusionadoque sustituirá a aquellos modelos de los cuales parte. Para buscar lasinterpretaciones distintas lo que hará será comparar cada interpretación delmodeloauxiliarcontodaslasdelmodelobase,añadiéndolasenelcasonoestaryapresentes.Finalmentepodemosverenunejemplo comoseríauna fusiónen la cual4MEMpasana estar representadosporuno solo. Como sepuede ver en la figura 6.1 laprincipal diferencia entre los cuatroMEMs del PC es que q_sa se calcula de dosformasdistintas,segúnlacondiciónsw2estéactivadaonegada.La otra mínima diferencia estriba en que el residuo se calcule asociado a ladiferenciaentreh2estimadaymedidaoh2estimadapordosvías.Enamboscasosla información de diagnosis es la misma y se puede fusionar en el modelo queapareceenlanuevafigura6.2.

68

Figura6.1MEMsdeunPC

Figura6.2FusióndeMEMs

6.3.3. Algoritmosmodificados

6.3.3.1. Lecturayvisualizacióndedatos

Al introducir la posibilidad de que una ecuación lleve asociada una condición,ademásdelosnuevosMEM,comohemosvisto,sehanañadidonuevoselementosalasclasesantiguasparaguardarenellasestanuevainformación.Porestosehancambiado ciertas funciones que leían la información de los ficheros y las que lomostrabanenpantalla.Lo primero fue cambiar la lectura de las ecuaciones. Para ello se modificó laantiguafunciónparaqueahorareconozcacuándoexisteunacondiciónasociadaaunacondiciónylaguardecorrectamente.Se ha añadido la lectura de parámetros Theta del fichero de variables de formaequivalentealosotrosconjuntos.Antesnoserealizabaestacargayenocasiones

69

necesitamossolamentelosnombresdelasvariables,sinsusvalores.Asíevitamostodalacargadelficheroparámetros.LalecturadelosMEMeslaúltimaenlacualsehanhechocambiosyaqueahorapueden llevarnueva información. Loprincipalha sidocambiarelparser creandounoquefuncionaseparatodoslosposiblesMEM.Lavisualizacióndelainformaciónguardada,enlosdistintospanelesdelainterfazserá laoperación inversa, extrayendo lanueva información tal y como lahemosintroducidoanteriormente.

6.3.3.2. ConversordeModelos

El código que se ha modificado en este apartado es el referente a la antiguafunción de conversión deModelos. Lo principal ha sido añadir a la función labúsqueda de las variables no observadas y observadas en las condicionesasociadasaecuacionessisedieranelcasodequeexistieran.AdemásdeañadirlanuevapartedelModeloES,laasociadaarepresentarcadacondición,denominadaconunSw,dentrodelModelo.

6.3.3.3. GeneradordeexperimentosEl códigomodificado de este apartado es el relativo a la función que se generaparaejecutarenMatlab.Aligualqueenlaimpresióndedatosenlainterfazsehamodificadoparaquealahoradeescribirunaecuacióncompruebesitienedatosasociadoscomounacondiciónyenesecasolosescriba.6.3.3.4. GeneradordeModelosdeSimulaciónEl código modificado en este apartado ha sido el relativo a la función quegenerabalosmodelosdesimulación.AlahoradecrearlosModelossegúnvamosañadiendolasecuacionessevacomprobandosicadaunadeellastienemásdatosasociados como condiciones y se van introduciendo tal cual. LasmodificacionesquenecesitanestasexpresionesdecondiciónylasexpresionesdeecuacionesdelelseparagenerarelModelodeSimulación,lasrealizarepasadoFinal.6.3.3.5. Diagnosis

Al igual que en Generador de Experimentos, el código modificado de esteapartado es el relativo a la función que se genera para ejecutar enMatlab. Sinembargo en este caso vamos a crear no solo una función, sino una para cadaModelo de Simulación, es decir cada Modelo tendrá su propio ficheroindependiente.Segúnvamos introduciendocadaecuaciónsevacomprobandosicada una de ellas tiene más datos asociados como condiciones y se vanintroduciendoparagenerarcadafuncióndesimulacióndeMatlab.Cabedestacarloscambiosrealizadosenlafunciónqueseencargadedecidirsiunresiduo se está desviando lo suficiente como para dar lugar a una decisiónmediante el test estadístico denominado z-test. En la versión anterior había unerrorquehacíaquenofuncionaseelmismo.Sebuscoelerrorqueseencontrabaenel cálculodel valorde ladesviaciónestándar.Además se cambió la formadeintroducir los valores del Z-test, pasando de introducir instantes de ejecución a

70

unidadesdetiempo,esdecir,siseestuvieranrealizandoloscálculosensegundos,introducirdirectamenteeltiempoensegundos.

71

7. PLANDEPRUEBAS

7.1. INTRODUCCIÓN

7.1.1. Propósito

El propósito de este apartado será recoger información sobre las pruebas realizadaspara comprobar aspectos del producto finalizado tales como eficiencia, fiabilidad yrobustez. Dichas pruebas se llevarán a cabo tanto durante como después de haberconcluidolafasedeimplementación.

7.1.2. Alcance

Estecapítuloproporcionaráinformaciónsobrelaspruebasrealizadasenlaaplicaciónsobre la que se basa el proyecto “DxPCs 2.0 - Ampliación de la plataforma paradiagnosisbasadaenmodelos”.

7.1.3. Definiciones,Acrónimos,AbreviaturasVéaseelglosariogeneraldelproyecto.7.1.4. PerspectivaGeneral

Enestedocumentoencontramosinformaciónsobrelaspruebasrealizadasdivididasendosapartados:

• Pruebassobrelossistemascontinuos• Pruebassobrelossistemashíbridos

A lo largo del desarrollo del proyecto se encontraron algunos fallos sobre el códigoantiguo. Estos fallos se subsanaron, y por ello ahora realizaremos pruebas de formamásextensasobrevariossistemas.

7.2. Pruebasrealizadas

Comoyahemosdichosevanarealizarpruebassobredostiposdesistemas,continuosehíbridos.Dentrocadaunodeestos tiposse realizaránpruebascondistintoscasos,variossistemascontinuosyvarioshíbridos.Cabedestacarenlapruebas:

• Enelcasodelageneracióndeexperimentossehansimuladovariosmodosdefuncionamiento.Sehancambiadolostiemposdesimulación,sehanprobadolos sistemas con diferentes entradas y valores de parámetros e introducidodistintostiposdefallo.

• En laDiagnosisdehanprobado lasdistintas formasdecalcular ladetección,

con cada una de los modos de simulación probados en la generación deexperimentos.Sehanprobadoparaelcálculodecandidatos los3testde los

72

quedisponelaherramientacadaunodeellosprobadoscondistintosumbralesdefallo.

7.2.1. PruebasdelaherramientaDxPCs1.0Antesdecomenzaratrabajarsevanarealizarpruebassobrevariossistemasprevios,los sistemas continuos, en cada una de los 4 apartados de la herramienta paracomprobarquetodofuncionadeformacorrecta.

CP-01 ConversordeModelosObjetivo Cargarunsistemacontinuoyrealizarlaconversión.Procedimiento Realizar la cargadeunode los sistemas continuos tantode forma

manualcomoautomáticaydespuésprocederconlaconversión.SalidaEsperada

Se deberá mostrar el sistema cargado. Dicha información deberácoincidir con la de los ficheros de entrada. Se deberá mostrar elresultadodelsistemaconvertido.

Resultado Elresultadoobtenidoescorrectocuandoelordendelasecuacionesestalqueprimerosecolocanenelficheroaquellasqueposeenlasvariables intermedias. Se creará una función que genere eseconjunto antes de la conversión para evitar ese error debido alorden.Véaseelapartadodeimplementación.

CP-02 GeneracióndeExperimentosObjetivo Cargarunsistemacontinuoyrealizarlaejecución.Procedimiento Realizar la cargadeunode los sistemas continuos tantode forma

manualcomoautomáticaydespuésprocederconlaejecución.SalidaEsperada

Se deberá mostrar el sistema cargado. Dicha información deberácoincidir con la de los ficheros de entrada. Se deberá mostrar elresultadodelaejecucióndeMatlab.

Resultado Elresultadoobtenidoescorrecto.

CP-03 GeneradordeModelosdeSimulaciónObjetivo Cargarunsistemacontinuoyrealizarlageneración.Procedimiento Realizar la cargadeunode los sistemas continuos tantode forma

manualcomoautomáticaydespuésprocederconlageneración.SalidaEsperada

Sedeberámostrarelsistemacargado.SeprocederáalcálculodelosModelos de Simulación y tras ello se visualizaran cada uno de losmodelosobtenidos.

Resultado Elresultadoobtenidoescorrecto.CP-04 Diagnosis–CálculodeResiduosObjetivo Cargarunsistemacontinuoyrealizarlaejecución.Procedimiento Realizar la cargadeunode los sistemas continuos tantode forma

manualcomoautomáticaydespuésprocederconlaejecución.SalidaEsperada

Se deberá mostrar el sistema cargado. Se deberá de visualizar elresultado de la ejecución así como mostrar en la interfaz losresultados del experimento anterior y los cálculos de los residuosactuales.

Resultado Elresultadoobtenidoescorrecto.

73

CP-05 Diagnosis–CálculodecandidatosObjetivo Realizarelcálculodeloscandidatosafallo.Procedimiento Unavezrealizadoelcálculoderesiduosseprocederáconelcálculo

deloscandidatos.SalidaEsperada

Se deberá mostrar de forma correcta el instante en el cuál seproduce el fallo introducido y visualizar por pantalla los conjuntosde candidatos que se van generando según se consiguen lasactivaciones.

Resultado El resultadoobtenidoes incorrecto. Existeun fallo en la ejecucióndelz-test.Véaseelapartadodeimplementación.

7.2.2. PruebasdelaherramientaDxPCs2.0

7.2.2.1. Pruebasconsistemascontinuos

A la hora de modificar la herramienta antigua queríamos añadir la posibilidad deañadir sistemas híbridos. Sin embargo los cambios debían hacer que la herramientasiguiera funcionando con los sistemas continuos por ello realizamos pruebas sobredistintossistemas,consuscorrespondientesmodelos,comprobandoqueloscambioshechos respetan el funcionamiento de ambos tipos de comportamiento, tantocontinuocomohíbrido.Enesteapartadocadaunadelasimágenesqueseusaparalailustracióncorrespondeconunsistemade3tanquescontinuo.CP-01 Cargadesistemascontinuos(Manual–Automático)Objetivo Cargarlossistemascontinuosyvariablesdeambasformas.Procedimiento Seleccionarlaopción“LoadModel”ycargarlossistemascontinuos

deformamanualyautomática.SalidaEsperada

Se deberá mostrar el sistema cargado. Dicha información deberácoincidirconladelosficherosdeentrada.

Resultado Elresultadoobtenidoescorrecto.

Figura7.1Cargadeunsistemacontinuo

74

CP-02 CargadelosMEMsdesistemascontinuos.Objetivo Cargar los MEMs generados por la herramienta de CPCs en el

apartado“SimulationModelGenerator”desistemascontinuos.Procedimiento Seleccionar la opción “LoadModel” dentro de “SimulationModel

Generator”ycargarunodelossistemascontinuos.SalidaEsperada

Sedeberámostrar losMEMde forma correcta.Dicha informacióndeberácoincidirconladelosficherosdeentrada.

Resultado Elresultadoobtenidoescorrecto.

Figura7.2CargadelosMEM

CP-03 CargadelosModelosdeSimulacióndesistemascontinuosObjetivo Cargar losmodelosdesimulaciónquehagenerado laherramienta

desistemascontinuos.Procedimiento Seleccionar laopción“LoadModel”dentrode“Diagnosis”ycargar

unodelossistemascontinuos.SalidaEsperada

Se deberá mostrar los modelos de simulación de forma correcta.Dicha información deberá coincidir con la de los ficheros deentrada.

Resultado Elresultadoobtenidoescorrecto.

Figura7.3CargaModelosSimulación

75

CP-04 GeneracióndeunModeloE/SdesistemascontinuosObjetivo GenerardeformacorrectaelModeloE/Sdesistemascontinuos.Procedimiento Conelsistemayacargado,pulsarsobrelaopción“ConvertModel”

en“SS/IONotationConverter”.SalidaEsperada

SedeberámostrarelModeloE/Sdeformacorrecta.

Resultado Elresultadoobtenidoescorrecto.

Figura7.4ModeloE/S

CP-05 GeneracióndeexperimentosdesistemascontinuosObjetivo Generarunexperimentodeformacorrectadesistemascontinuos.Procedimiento Con el sistema ya cargado, pulsar sobre la opción “Generate

Experiment”.SalidaEsperada

SedeberámostrarelresultadodelaejecucióndeMatlab,esdecir,elcálculodelaslosvaloresdecadavariableencadainstante.

Resultado Elresultadoobtenidoescorrecto.CP-06 GeneracióndelosModelosdeSimulacióndesistemascontinuosObjetivo Generar los Modelos de Simulación para sistemas continuos de

formacorrecta.Procedimiento Con el sistema ya cargado, pulsar sobre la opción

“Generate(Simulation)”.SalidaEsperada

Sedeberánmostrarlosmodelosgenerados.

Resultado Elresultadoobtenidoescorrecto.

CP-07 Fusión en la generación de Modelos de Simulación de sistemascontinuos.

Objetivo Queseproduzcalafusióndemodelosenlageneración.Procedimiento Lafusiónserealizadeformaautomáticaenlageneración.SalidaEsperada

Sedeberánmostrarlosmodelosgeneradosfusionados.

Resultado Elresultadoobtenidoescorrecto.

76

Figura7.5:Modelosdesimulaciónfusionados

Para ver como ha funcionado la fusión de la figura 7.5 ilustramos con la siguienteimagen, la7.6,delosdosmodelosdeloscualesparteelModelo01(Cadena01)paraacabarconesafusión.

Figura7.6:Modelosdesimulaciónsinfusionar

CP-08 CálculoderesiduosparasistemascontinuosObjetivo Realizar el cálculo de los residuos de forma correcta de sistemas

continuos.Procedimiento Con el sistema ya cargado, pulsar sobre la opción “Calculate

Residuals”.SalidaEsperada

Sedeberánmostrarlosresultadosdelcálculo.

Resultado Elresultadoobtenidoescorrecto.

CP-09 CálculodecandidatosparasistemascontinuosObjetivo Realizarelcálculodeloscandidatosdeformacorrectadesistemas

continuos.Procedimiento Con el cálculo de residuos realizado, pulsar sobre la opción “Fault

CandidatesCalculation”.SalidaEsperada

Sedeberánmostrarlosresultadosdelcálculo.

Resultado Elresultadoobtenidoescorrecto.

77

7.2.2.2. Pruebasconsistemashíbridos

Se van a realizar pruebas con varios sistemas híbridos y se van ilustrar con los dossistemas híbridos que hemos creado para la herramienta, el de 3 tanques y el de 4tanques quemencionamos en el apartado de introducción. Se realizan varios casos,paraverqueelsistemanofuncionasolamenteconelcasodeprueba.Elsistemade4tanques ya ha sido ilustrado con la Figura 1.1. El sistema de 3 tanques será elsiguiente:

Figura7.7:Sistemade3tanqueshíbrido

CP-10 Cargadesistemashíbridos(Manual–Automático)Objetivo Cargardesistemashíbridosyvariablesdeambasformas.Procedimiento Seleccionar laopción“LoadModel”ycargarelnuevosistemade3

tanquesdeformamanualyautomática.SalidaEsperada

Se deberá mostrar el sistema cargado. Dicha información deberácoincidirconladelosficherosdeentrada.

Resultado Elresultadoobtenidoescorrecto.CP-11 ConversióndecondicionesdeformainfijaaprefijaObjetivo Comprobar que la función de conversión de condiciones funciona

deformacorrecta.Procedimiento Tras la carga del sistema, se realiza la transformación de forma

automática.SalidaEsperada

Sedeberámostrarlascondicionesdelsistemaenformaprefija.

Resultado Elresultadoobtenidoescorrecto.

78

Figura7.8:Cargasistema3tanqueshíbrido–Conversióndecondiciones

Figura7.9:Cargasistema4tanqueshíbrido–Conversióndecondiciones

79

CP-12 GeneracióndeunModeloE/SdelsistemashíbridosObjetivo GenerardeformacorrectaelModeloE/Sdesistemashíbridos.Procedimiento Conelsistemayacargado,pulsarsobrelaopción“ConvertModel”

en“SS/IONotationConverter”.SalidaEsperada

SedeberámostrarelModeloE/Sdeformacorrecta.

Resultado Elresultadoobtenidoescorrecto.

Figura7.10:ModeloE/S3tanqueshíbrido

Figura7.11:ModeloE/S4tanqueshíbrido

CP-13 GeneracióndeexperimentosdesistemashíbridosObjetivo Generarunexperimentodeformacorrectadesistemashíbridos.Procedimiento Con el sistema ya cargado, pulsar sobre la opción “Generate

Experiment”.SalidaEsperada

SedeberámostrarelresultadodelaejecucióndeMatlab,esdecir,elcálculodelaslosvaloresdecadavariableencadainstante.

Resultado Elresultadoobtenidoescorrecto.

80

Figura7.12Experimentossinfalloyconfalloensistemade3tanqueshíbrido

Figura7.13Experimentossinfalloyconfalloensistemade4tanqueshíbrido

CP-14 CargadelosMEMsdesistemashíbridos.Objetivo Cargar los MEMs generados por la herramienta de CPCs en el

apartado“SimulationModelGenerator”desistemashíbridos.Procedimiento Seleccionar la opción “Load Model” dentro de Simulation Model

Generatorycargarelsistema.SalidaEsperada

Sedeberámostrar losMEMde forma correcta.Dicha informacióndeberácoincidirconladelosficherosdeentrada.

Resultado Elresultadoobtenidoescorrecto.

Figura7.14:CargadeMEMsistema3tanqueshíbrido

81

Figura7.15:CargadeMEMsistema4tanqueshíbrido

CP-15 GeneracióndelosModelosdeSimulacióndesistemashíbridos.Objetivo Generar losModelos de Simulación para un sistemade 3 tanques

híbridoformacorrecta.Procedimiento Con el sistema ya cargado, pulsar sobre la opción

“Generate(Simulation)”.SalidaEsperada

Sedeberánmostrarlosmodelosgenerados.

Resultado Elresultadoobtenidoescorrecto.

CP-16 Fusión en la generación de Modelos de Simulación de sistemashíbridos.

Objetivo Queseproduzcalafusióndemodelosenlageneración.Procedimiento Lafusiónserealizadeformaautomáticaenlageneración.SalidaEsperada

Sedeberánmostrarlosmodelosgeneradosfusionados.

Resultado Elresultadoobtenidoescorrecto.

Figura7.16:ModelosdeSimulaciónfusionadossistema3tanqueshíbrido

82

Figura7.17:ModelosdeSimulaciónfusionadossistema3tanqueshíbrido

Paravercomohafuncionadolafusióndelafigura7.17ilustramosconlasiguienteimagen,la7.18, de los 4 modelos de los cuales parte el Modelo 01(Cadena 01) para acabar con esafusión.

Figura7.18:ModelosdeSimulaciónsinfusionar

CP-17 CargadelosModelosdeSimulacióndesistemashíbridos.Objetivo Cargar losmodelosdesimulaciónquehagenerado laherramienta

desistemashíbridos.Procedimiento Seleccionar laopción“LoadModel”dentrode“Diagnosis”ycargar

elsistemahíbrido.SalidaEsperada

Se deberá mostrar los modelos de simulación de forma correcta.Dicha información deberá coincidir con la de los ficheros deentrada.

Resultado Elresultadoobtenidoescorrecto.

83

Figura7.19:ModelodeSimulacióncargado3tanqueshíbrido

Figura7.20:ModelodeSimulacióncargado4tanqueshíbrido

CP-18 Cálculoderesiduosparasistemashíbridos.Objetivo Realizar el cálculo de los residuos de forma correcta de sistemas

híbridos.Procedimiento Con el sistema ya cargado, pulsar sobre la opción “Calculate

Residuals”.SalidaEsperada

Sedeberánmostrarlosresultadosdelcálculo.

Resultado Elresultadoobtenidoescorrecto.

84

Figura7.21:CálculoderesiduosdeModelosdeSimulaciónconfallodelsistemaCP-19 CálculodecandidatosparasistemashíbridosObjetivo Realizarelcálculodeloscandidatosdeformacorrectadesistemas

híbridos.Procedimiento Con el cálculo de residuos realizado, pulsar sobre la opción “Fault

CandidatesCalculation”.SalidaEsperada

Sedeberánmostrarlosresultadosdelcálculo.

Resultado Elresultadoobtenidoescorrecto.

ParailustrarelCP-19sevanacolocarimágenesdelresultadodelz-testparalosresiduosmostradosen la figura7.21condiferentesumbrales,veremosasí comoel instantededetección es más o menos preciso según que parámetros le introducimos para elcálculo:

• Mismosumbralesdiferenteniveldesignificancia:

PruebaA Caso1 Caso2 Caso3ReferenceWindowsSize 40 40 40SampleWindowsSize 40 40 40WindowMismatch 20 20 20

SignificanceLevel(alpha) 0.01 0.05 0.1

85

Figura7.22:CálculodecandidatosPruebaA:caso1-caso2-caso3

• Mismasignificanciadiferentesumbrales:

PruebaB Caso1 Caso2 Caso3ReferenceWindowsSize 20 60 80SampleWindowsSize 20 60 80WindowMismatch 10 30 40

SignificanceLevel(alpha) 0.1 0.1 0.1

Figura7.23:CálculodecandidatosPruebaB:caso1-caso2-caso3

86

87

8. MANUALDEINSTALACIÓNEn el CD de entrega se encuentra el archivo de instalación “DxPCsInstaller”, ejecutándole ysiguiendolospasosrequeridosseinstalarálaherramienta.Unavezinstalada,parauncorrectofuncionamiento,sedebeejecutarlaherramientaenmodoadministrador.Debe tener instalado en su equipo previamente una versión deMatlab reciente que puededescargardehttp://es.mathworks.com/products/matlab/?requestedDomain=www.mathworks.com .AdemássedeberádeintroducirenMatlablacarpeta“funciones”quevadentrodelacarpetadelsoftwareenversiónfuente,dentrodelCDdeentrega.Debe tener instalado en su equipo previamente una versión de Java reciente que puededescargardehttps://www.java.com/es/download/.

88

89

9. MANUALDEUSUARIOComonoexisteningúnmanualanteriorniningúnproyectoquehablesobreestaherramienta,se va a realizar unmanual sobre la totalidadde lamismapara que el usuario sea capaz deusarla sin problema alguno. El usuario tipo de esta herramienta es un estudiante oinvestigadorqueha recibidopreviamenteuna formaciónendiagnósticobasadoenmodelosmediantePCsyqueentiendeelmodeladodesistemashíbridos.Primerosevanadefinir losdiferentes tipos de ficheros que usa la herramienta y después se va a explicar elfuncionamientodelamisma.

9.1. Tiposdeficheros

• FicherodeecuacionesElficheroquecontienelasecuacionesesunficheroconextensión.m.Paravercómodebemos escribirlo usamos la siguiente ecuación que modela el comportamientohíbridodelcaudaldesalidaentrelostanques3y4comosepuedeverenlafigura1.1.

if ( ( h_3 >= h3min ) || ( h_4 >= h4min ) ) q_sb = ( 1 ./ rv_b ) .* k_fb .* ( sqrt( abs( max( ( h_3 - h3min ), 0 ) - max( ( h_4 - h4min ), 0 )))) .* sign( h_3 - h_4 ) ; else q_sb = 0 ; end

Cadaelementoseescribeenunalíneadistinta.Sólolasecuacionesacabanenpuntoycoma. Tanto variables como funciones respetan el espaciado. En el caso de lascondiciones cabe tener en cuenta que se va a realizar una transformaciónde formainfijaaprefijaporlocualesimportanterespetarlosparéntesisyaquedeellosseguíala función de la transformación. Destacar también que si en una de las condicioneshubieraunnumeronegativoiríaentreparéntesistalque(-1).Otro punto será cómo se deben escribir las condiciones: éstas deben ir escritas enformainfija,mássencillaparaelusuario,yaqueeslaherramientalaqueseencargadelatransformaciónposteriormente.

• FicherodevariablesEsunficheroentextoplanoASCII.Enélsecolocanlosconjuntosdelasvariablescadaunoenunalínea.Losconjuntosdevariablesson:X,Y,U,T.Elordendelosconjuntosserá:X,Y,U,T.Usamoselsiguienteconjuntocomoejemplo:

X = {'h_1','h_2','h_3','h_4'}; Oencasodeirvacío:

X = { };

90

Primero se nombra el conjunto y después se colocan las variables cada una entrecomillassimples,separadosporcomasy todoentre llaves.Al finalacabamos la líneacon“;”.

• FicherodecondicionesinicialesEsunficheroconlosvaloresquetienenlasvariablesenelprimerinstantemarcado,entextoplanoASCII.Seescribiránlosdatosendoslíneas,enlaprimeralosnombresdetodas las variables y en la segunda los valores de lasmismas. Las posiciones de losvalores de la segunda línea corresponden con las posiciones de los nombres de laprimera.Cadanombreyvaloriránseparadosporuncaráctertabulador.Eltiempodeinicio seescribirá conelnombre”Time”en laprimeraposición.Usamosel siguienteejemplo:

Time p_in lcd_1 lcd_30 0 0 0

• Ficherodeconfiguración

Es un fichero en el cual se define el tiempo y condiciones de la simulación, conextensión .config, en texto plano ASCII. Las separaciones entre elementos son uncaráctertabuladore.Contiene3parámetros:

§ Tsim:númerodeinstantesdesimulación.§ DeltaT:pasodeintegracióndelasecuacionesdiferenciales.§ Umbral:umbraldeactivacióndePCsenelcálculodecandidatos.

Usamoselsiguienteejemplo:

Tsim DeltaT Umbral50 0.1 0.25

• Ficherodefallos

Es un fichero en el cual se marca donde se va a introducir un fallo o varios en elsistemasisequisiera,entextoplanoASCII.Lasseparacionesentreelementossonuncaráctertabulador.Contiene4parámetros:

§ NumParam:seráunnúmeroqueindicalaposiciónenelficherovariablesdelparámetroquevaafallar.

§ Tipo:indicalaformadefalloqueseráaditivo,encuyocasopondremosADD,omultiplicativo,encuyocasopondremosMULT.

§ FailStep:defineelinstanteenelcualseproduciráelfallo.§ ErrorMagnitude: es el factor de actualización del fallo. Es un valor real de

dobleprecisiónynounentero.Usamoselsiguienteejemploquesignifica:Enelprimercasoesunfallodetipoaditivoenelparámetro7,enelinstante10ydevalor1,esdecir,enelinstante10sumará1alvalordelparámetro7.Enelsegundoesunfallodetipomultiplicativoenelparámetro3enel instante20ydevalor0.5,esdecir,enel instante20multiplicaráelvalordelparámetro3por0.5.

NumParam Tipo FailStep ErrorMagnitude7 ADD 10 1.03 MULT 20 0.5

91

• Valoresdeentrada

Esunficheroenelcualsemarcanlosvaloresquevanatomarlasvariablesdeentradaen cada instante, en textoplanoASCII. Ejemplo si tuviéramosqueTsim es 1,DeltaT0.25 y las variables de entrada X e Y con valor 1 y 0 constante respectivamente, elficheroquedaría:

X Y1.0 0.01.0 0.01.0 0.01.0 0.0end

El tiempo de simulación 1 con paso 0.25 nos deja 4 valores. Las columnas vanseparadasporunespaciodetabulador.

• RutasEstefichero,entextoplanoASCII,sirveparaproporcionaralaaplicaciónlosnombresdetodoslosficherosnecesarios,evitandolacargamanual.Enélsemarcantodoslosficheros que puede usar la aplicación poniendo delante un nombre y luego la rutadondeseencuentran.Usamoselsiguienteejemplo:

Model:C:\Users\4tanques.mVariables:C:\Users\variables.txtInitialConditions:C:\Users\CondicionesIniciales.txtConfigurationSetup:C:\Users\configuracionexperimento.configCPCsModel:C:\Users\PCs.txtInputData:C:\Users\valoresdeentrada.txtParameters:C:\Users\parametros.txtFails:C:\Users\fallo.txtExperimentResultsFile:C:\Users\Experimento.txtSimulationMEMs:C:\Users\Modelos

Hemos marcado en negrita los nombres que hay que introducir para que laherramientaencuentre larutaabsoluta.Larutadeejemploseríasinuestrosficherosestuvieran en Users en C. Destacar que en los modelos de simulación habrá quemarcarlacarpeta,nolosficheros,enlacualseencuentrenlosmodelos.

• OtrosficherosHay otros ficheros que también usará la herramienta pero que no los generamosnosotros de formamanual sino que son el resultado de alguna de las funciones denuestra herramienta como los resultados de experimentos, los Modelos E/S o losModelosdeSimulación.TambiénusaráotroscomoelresultadodelcálculodePCsdelaherramientaCPCstantoenformato.txtcomoen.xml.

92

9.2. Funcionalidaddelaherramienta

Figura9.1:InterfazherramientaEn la figura 9.1 se puede ver la interfaz de la herramienta. Como vemos tiene una partesuperior donde hay unas pestañas que dividen la funcionalidad. El resto se divide en dospartes, la izquierda con una parte superior con botones y la inferior donde se ven loselementoscargados,yladerechadondesevenlosresultados.Enlapartesuperiortenemos3opciones,“File”,“Window”y“Help”.“Window”esotraformade cambiar entre pestañas y “Help” es un simple botón de ayuda. El importante es “File”,desdeelquetenemosdosopcionesparagenerardeformaautomáticaunficherodeentradayunodefallos.

Figura9.2:BotónFile

El primero, “Generate inputs file” en primer lugar nos pedirá seleccionar el archivo devariablesdelsistemaydespuésseguirlospasos:

Figura9.3:Pasosdecreacióndelficherodeentradasautomático

93

Primero indicamosel tiempode simulación,despuéselegimosel tipode función,enel casoelegidoconstante,ydespuéselegimoselvalordelavariableosifueraotrotipolosvaloresquenospida.Trasesoelegiríamosdóndeguardarelnuevoficheroyelnombredelmismo.Enel segundocasopodemosgenerar los fallosde formaautomáticapara lo cual loprimeroqueharáserápedirnoselficherodeparámetrosydespuésseguirlospasos:

Figura9.4:Pasosdecreacióndelficherodefallosautomático

Primeroelegiríamosdelalistaaquelloscandidatosafalloydespuésintroduciríamoslosdatosnecesariospara identificarel fallo. Trasesoelegiríamosdóndeguardarelnuevo ficheroyelnombredelmismo.Trasesto tenemosunsegundomenúqueagrupa4pestañascadaunadecualesagrupaunafuncionalidad.

Figura9.5:MenúTodasestaspestañastienendosbotonesencomún,“LoadModel”paraintroducirlosdatosy“Save”paraguardarlosresultadosdelaejecución.Elguardadodelosresultadosessimple,alpulsarenelbotón“Save”(“SaveResults”enelcasodeDiagnosis)eligeslarutadelarchivoyelnombre y guardará fichero de texto plano ASCII con los resultados. La introducción de losdatos comenzará tras pulsar el botón “LoadModel” de cualquiera de las pestañas que nosindicará si queremos hacer la carga manual o automática (“Path File”) como vemos en laimagen.

Figura9.6:Cargamanualoautomática

94

Si elegimos la carga automática simplemente nos pedirá el fichero de rutas que hemosdescritoenelapartadoanterior.Sielegimoslacargamanualdependiendodelapestañaqueestemos necesitará unos archivos u otros que iremos eligiendo uno a uno. En esta cargamanual habrá dos excepciones en la carga, las que hemos explicado en la opción “File”, elficherodeconfiguraciónyeldefallos,quenosofrecerálaopcióndecargardesdeunficheroocrearlotalycomohemosexplicadoanteriormenteeligiendo“Introduceinteractively”.

Figura9.7:Cargadesdeficheroexistenteocrearnuevo

Otra funcionalidadquees comúnendosde laspestañases lamuestradeungráficode losresultados, que se encuentra presente en “Experiment Generator” y “Diagnosis”. En“Experiment Generator” el botón aparece junto al resto de botones sin embargo en“Diagnosis” este botón aparece después de hacer el cálculo de residuos encima de losresultados. Tras pulsar el botón “Display Graph”, tras generar un experimento o realizar elcálculode residuosnosapareceunmenúenel cual elegiremos cuáles son las variablesquequeremosverrepresentadasenlagráfica.

Figuras9.8:Seleccióndevariablesamostrarengráfica

Finalmente cadaunade laspestañas tiene su funcionalidadprincipal enel botónobotonesrestantes,encadacasoson:

• SS/IONotationConverterUnavezqueelsistemaestécargadotenemoselbotón“ConvertModel”quealpulsarlogeneraráunModeloE/Sapartirdelosdatoscargadosylomostraráalusuarioenelpanelderecho.

• ExperimentGenerator

Unavezqueelsistemaestécargadotenemoselbotón“GenerateExperiment”que al pulsarlo generará un experimento a partir de los datos cargados y lomostraráalusuarioenelpanelderechoenformadetabla.

95

• SimulationModelGeneratorUnavezqueelsistemaestécargadotenemoselbotón“Generate(Simulation)”quealpulsarlogenerarálosModelosdeSimulaciónfusionadosapartirdelosdatoscargadosylomostraráalusuarioenelpanelderecho.

• DiagnosisEn este caso, una vez que el sistema esté cargado, la funcionalidad deDiagnosis tiene dos pasos. En primer lugar de calculan los residuos y ensegundolugarapartirdelosresiduossecalculanloscandidatos.Cadaunodeestospasosesconfigurable:

Figura9.9:Opcionesdecálculoderesiduo

Seleccionamoselmododecálculoquedeseemosytrasellonosmostrará losresultadosenelpanelsuperiorderechoenformadetabla.Comohemosdichoantes, aparecerá el botón para lamuestra de los resultados en gráfica justoencima.Trastenerrealizadoelcálculoderesiduosyapodemosprocederalcálculodecandidatosparaellopulsamoselbotón“FaultCandidatesCalculation”quenosdarádosopciones:

Figura9.10:Opcionesdecálculodecandidatos

Seleccionamosunade lasdosopciones, segúndeseemos realizarel cálculoynospediráentonceselficheroenformato.xmldelasdefinicionesdelosPCs.TrasestonospediráqueseleccionemoselmododeumbralparalosPCs,paraelquetenemos3opciones:

Figura9.11:Opcionesdeseleccióndeumbral

Traslaselección,lasegundaopcióndirectamentenosofrecerálosresultados,lasotras,cadaunanosllevaráaunanuevaventanadondeseintroduciránlosvaloresdeumbraloenelcasodelZ-testlosvaloresdelasventanasyelalfa.El

96

Z-test es un test estadístico que sigue una distribución normal según lahipótesisnula.AlZ-testleintroducimos4valores:

o Reference Window Size: es el número de unidades de tiempo quetomamosparaventanadereferencia.

o Sample Window Size: es el número de unidades de tiempo quetomamosparalaventanademuestra.

o Window Mismatch: es el número de unidades de tiempo quetomamosparaeldesfase.

o Significance Level(alpha): nivel de significancia, se conoce como elerror máximo al momento de rechazar la hipótesis nula cuando esverdadera.Tiene3grados,sivale0.01esmuysignificativo,sivale0.05essignificativoysivale0.1espocosignificativo.

Tras introducir los valores nos mostrará los resultados en el panel inferiorderecho.

Figura9.12:Z-test/Introduccióndevaloresdeumbral

97

10. CONCLUSIONESTras la finalización de este TFG, podemos concluir que se han cumplido los objetivosinicialmentefijados,yenbaseaellossepuedeafirmarque:

• Sehaanalizadolaversiónpreviadelaaplicación.

• Sehanintroducidolossistemashíbridoscomonuevomododefuncionamientodelaherramienta.

• Se han introducido nuevos algoritmos añadiendo nueva funcionalidad a la

herramienta.Mediante la consecución de dichos objetivos, el alumno ha adquirido cierta soltura con unlenguajeenelqueteníaescasaexperienciaprevia(Java).SehanobtenidoconocimientossobreladiagnosisbasadaenmodelosconPosiblesConflictos,técnicasobrelacualantesdecomenzarnoseteníaningunanocióndesufuncionamiento.Por último, pero nomenos importante, al haber trabajado sobre un sistema ya construidopreviamente, se ha tomado conciencia de la enorme importancia de contar con un códigodebidamente comentado y una documentación sobre el desarrollo del software correcta,completa y consistente con el producto implementado, facilitando así la tarea demantenimientoylarealizacióndefuturasampliaciones.Comoampliaciónfuturasepodríaimplementarunabasededatosqueguardaselosresultadosdelosexperimentosfacilitandoeltrabajoyevitandoelmolestousodelosficheros.

98

99

11. BIBLIOGRAFÍA• (Balakrishnan y Honavar,1998) Balakrishnan, K., Honavar, V. (1998). Intelligent

diagnosissystems.JournalofIntelligentSystems,8(3-4),239-290.• (Domínguez, 2013) Domínguez,M. (2013). Revisión y adaptación de la herramienta

para el cálculo de Posibles Conflictos. Trabajo de Fin de Grado. Universidad deValladolid.

• (Gilat,2006)Gilat,A.(2006).Matlab:Unaintroducciónconejemplosprácticos.

Reverté.

• (Hernández, 2012) Alberto Hernández Cerezo. "Generación automática de modelospara diagnosis usando PCs". Proyecto Fin de Carrera. Sept. 2012. ETS IngenieríaInformáticadeValladolid.Dirección:BelarminoPulidoyNoemíMoya.

• (Moyaycols,2012)Moya,N.,Pulido,B.,Alonso-González,C.,Bregon,A.,&Rubio,D.

(2012,July).AutomaticgenerationofDynamicBayesianNetworksforhybridsystemsfaultdiagnosis.InProceedingofIntl.WorkshoponprinciplesofDiagnosis,DX.

• (Pulido,2016)B.Pulido,C.J.Alonso-González,A.Bregon,A.Hernández,D.Rubio,L.M.

Villarroel. "DxPCs: A toolbox for model-based diagnosis of dynamic systems usingPossibleConflicts".EnProgress inArtificial Intelligence.Vol.5, Issue,2.Pgs.111-120.Springer.Mayo,2016.DOI:10.1007/s13748-015-0078-5.ISSN:2192-6352ISSN:2192-6360(electronicversion).

• (Pulido y Gelso, 2005) Pulido, B., Gelso, E. (2005, Noviembre). Viabilidad de una

técnicadecompilacióndedependenciasparadiagnosisbasadaenmodelosentareasde supervisión. Artículo en las actas y Ponencia, 21-30, Vol. II . XI Conferencia de laAsociación Española para la Inteligencia Artificial, CAEPIA-2005. Santiago deCompostela,España.