tot 15 LTPDA Graphic User Interface summary and status N. Tateo 26/06/2007
tot 15 now 1 GUI summary The analysis software is composed by 3 different elements: Simulink Window GUI in Matlab Workspace LTPDA functions package Simulink Window Parameters Array AO Array Library
tot 15 The elements in the GUI now 2 1. The functions library2. The AO array3. The Parameters array4. The Simulink window
tot 15 now 3 1. The functions library ltpda_lpsd (data, parameters)ltpda_pwelch (data, parameters)ltpda_cohere (data, parameters) … The package consists of many functions, each accepting as input the data to be analyzed and the proper parameters: Matlab
tot 15 To work in Simulink all these functions are “converted” into Simulink blocks: Each block is identified by a (visible) tag, which is the function name, and by a (invisible) handle, which is an univocal number assigned by Simulink. now 4 1. The functions library ltpda_lpsd data, parameters) ltpda_pwelch (data, parameters) ltpda_cohere (data, parameters) ltpda_lpsdltpda_pwelchltpda_cohere Matlab Simulink
tot 15 Matlab Workspace now 5 2. The GUI When the user starts the GUI, two arrays are created: Analysis Objects (the data) name: AnOb Parameters (the parameters) name: Parameters These are defined as global variables, so they are entirely and freely accessible by any function.
tot 15 now 6 The AO Array Analysis Objects Array name: AnOb AO1 name, provenance, data, history… AO2 name, provenance, data, history… AO3 name, provenance, data, history… AO4 name, provenance, data, history… …
tot 15 now 7 The Parameters Array Parameters Array name: Parameters Paramlist1 param1, param2, param3,… Paramlist2 param1, param2, param3,… Paramlist3 param1, param2, param3,… Paramlist4 param1, param2, param3,… … Block handle
tot 15 now 8 Where everything goes ltpda_pwelch (data, parameters) ltpda_cohere (data, parameters) ltpda_pwelch (data, parameters) AO1 name, provenance, data, history… 1 AO2 name, provenance, data, history… 2 AO3 name, provenance, data, history… 3 AO4 name, provenance, data, history… 4 Paramlist1 param1, param2, param3,… Block handle Paramlist2 param1, param2, param3,… Block handle Paramlist3 param1, param2, param3,… Block handle
tot 15 now 9 Parameters setting When the user select a block, the GUI retrieves the block handle. If no paramlist is associated to that handle, a new list is created and the panel let the user to compile its values. Paramlist1 param1, param2, param3,… Block handle
tot 15 now 10 function(data,parameters) When the user starts the analysis, each function retrieves the handle of its own block and by that the proper paramlist from the Parameters array in memory. Paramlist1 param1, param2, param3,… Block handle This provides each function with the correct relative parameters.
tot 15 now 11 function(data,parameters) Each function similarly retrieves the data from the AO array in memory, by the pointer which is sent in the Simulink diagram. AO1 name, provenance, data, history… 1 Thus every function retrieves by itself all its data and parameters.
tot 15 now 12 Consequences The entire parameters list is saved and kept outside Simulink: this makes easier to modify previous analysis and to run nested loops, ie. multiple analyses varying one parameter at the time. No delay is introduced by Simulink, since no real data are sent inside its diagram (ie, its workspace). There is only one copy of AOs and parameters saved in memory, and every function can retrieve them using the correct pointer (the AO ordinal number for data, the block handle for parameters).
tot 15 now 13 Consequences The analysis speed is maximized, since everything which could slow it down (such as GUI control cycle) is stopped when the analysis is started. The analysis results can easily be gathered and saved together, data + parameters + diagram, thus ensuring excellent traceability and a simple data analysis management.
tot 15 now 14 Future steps Convert the GUI into a true operative tool, implementing the ability to save and load analysis (ie, to import and export data parameters and diagrams). Enable it to deal with multiple analysis at once, ie. more than a single Simulink window at the time. Complete the implementation of functions in the Simulink library. Turn the library into a Simulink toolbox, with a tree structure which will make it easier and faster to use.
tot 15 now 15 Future steps Add the Color Control Panel. Implement a validation cycle, to check the consistency of the parameters set by the user prior to the execution of the analysis. Implement the code to enable nested loops (do we want some kind of optimization system?). Let the people in the labs to use it, and mark down their feelings.