Departamento de Matemática
Relatório de Estágio
Agradecimentos
À minha família, que sempre me apoiou de forma incondicional durante toda esta
caminhada o que tornou tudo sempre mais fácil.
Aos meus amigos, pela preocupação e companheirismo prestados durante todo o meu
percurso académico.
À diretora de curso, Engª Maria Teresa Costa, pelo apoio prestado sempre que foi
solicitada ao longo da Licenciatura.
A todos os docentes da LES, pela transmissão de todos os conhecimentos e
disponibilidade em ajudar sempre que necessário ao longo destes anos.
Ao Eng.º César Vasques, pelo forte contributo prestado e rigor exigido durante a
realização deste trabalho, bem como pelo auxílio e empenho prestados face aos obstáculos que
foram surgindo.
A todos os colaboradores da Efacec, que direta ou indiretamente contribuíram para a
realização deste projeto.
Aos meus colegas de estágio, João Mota e José Moura, pela companhia ao longo de todo
este percurso.
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
Resumo
Índice
Agradecimentos ......................................................................................................................iii
Resumo ................................................................................................................................... iv
Índice .......................................................................................................................................v
1 Introdução ....................................................................................................................... 1
2 Contexto .......................................................................................................................... 9
3.2.1.1 Exportação dos dados do software BZ5503- Measurement Partner Suite .................... 19
iii
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
3.3.3.2 Utilizando funções do MATLAB para se criar aplicações de forma programática ......... 25
4 Conclusões ......................................................................................................................44
ii
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
Índice de Figuras
Figura 1- Estrutura das diversas unidades de negócio Efacec. .......................................................................... 3
Figura 7- Visualização dos dados medidos no software BZ5503- Measurement Partner Suite ...................... 18
iii
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
iv
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
Índice de Tabelas
Tabela 1- Efacec em 2016................................................................................................................................ 10
v
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
Notação e Glossário
IEC International Electrotechnical Comission
PROES Projeto/Estágio
UN Nações Unidas
ID Investigação e Desenvolvimento
userfriendly amigável
feedback apreciação
UN United Nations
vi
Aplicação de Gestão de Informação de Testes e de Análise Experimental de Ruído em Transformadores
1 Introdução
1.1 Enquadramento
1.2.2 Motivação
1.3 Calendarização
Estágio Curricular
Criação base de
Pesquisa sobre WBS dados Preenchimento Publicação
Transformadores Relatório Estágio
da Aplicação
Criação de funções
PBS de cálculo Testes á
Objectivos
Gerais Aplicação
Levantamento
Requisitos Análise e tratamento
de dados
Especificação
de dados
Ensaio de Ruído
Produção de
Relatórios
Na fase de arranque do estágio e como forma de tomar contato com o tema em que iria
incidir o projeto final, foram facultados documentos que abordavam o tema de medição de ruído
nos transformadores (normalização IEC 60076-10- Determination of sound level e IEC 60076-10-1-
Determination of sound level- Aplication Guide). Foi realizada também uma pequena pesquisa
sobre transformadores com o intuito de se ter a perceção da constituição deste tipo de
equipamento. Posteriormente foram então especificados quais seriam os objetivos gerais do
estágio.
Depois de estar familiarizado com os objetivos gerais, procedeu-se à realização de um
planeamento em que foi realizada uma WBS- Work Breakdown Structure como forma de
organização do trabalho.
Foi também realizada uma PBS- Product Breakdown Structure como forma de demonstrar
que aspeto se pretendia para a aplicação. Como tal foi necessário fazer um levantamento de
requisitos e posteriormente uma especificação dos dados.
Depois da execução do planeamento cuidado das tarefas necessárias a realizar, passou-se
então à fase da execução da aplicação. Nesta fase começou-se por projetar uma possível interface
gráfica. Em seguida procedeu-se à criação de uma base de dados referentes aos transformadores
e à criação de funções que iriam ser responsáveis pelo cálculo referente ao ruído para condições
distintas. Posteriormente aos cálculos serem efetuados, estes dados deveriam ser analisados e
tratados. Já numa fase final criou-se a opção de a aplicação incluir a possibilidade de exportar
toda a informação resultante em formato de relatório. Ao longo das diversas etapas, foram
realizados constantemente testes à aplicação, como forma de se garantir a fiabilidade dos
resultados obtidos assim como o bom funcionamento das suas funcionalidades.
A nível de controlo e monitorização, foram realizadas as habituais reuniões com o
orientador como forma de receber feedback tanto ao nível de relatório de estágio, bem como das
tarefas que iam sendo atribuídas, em paralelo também ia sendo feito um preenchimento do
relatório do estágio.
Para concluir, foi realizada uma demonstração seguida de uma posterior aprovação da
aplicação.
2 Contexto
O software maioritariamente utilizado foi o MATLAB versão 2017, uma vez que esta
versão dispunha de uma funcionalidade que não existia em versões anteriores que era o App
Designer.
O App Designer, permitia desenvolver interfaces gráficas mais ricas, apesar de que o
MATLAB já dispunha também de uma funcionalidade para esse efeito que era o GUIDE (Guide
User Interface Development Environment), contudo este ambiente de desenvolvimento não se
encontrava equipado com determinados componentes mais recentes já presentes no App
Designer. Para a realização de outras atividades paralelas à aplicação foram utilizadas outras
tecnologias como:
3 Atividades desenvolvidas
Como forma de tomar contato com a parte laboratorial, foi realizada uma visita ao
laboratório, onde foi possível assistir a um teste de ruído de um transformador.
Estes testes são realizados com o intuito de se perceber se o ruído associado a um
determinado transformador se encontra dentro dos parâmetros especificados como garantidos.
Previamente à realização de um ensaio, são especificados determinados parâmetros que
irão constar posteriormente no relatório do ensaio de ruído sendo eles:
• Referência do transformador;
• Norma;
• Tipo de arrefecimento;
• Frequência;
• Distância;
• Tensão nominal;
• Altura à tampa;
• Perímetro;
• Equipamento de medição.
Estes parâmetros podem variar de ensaio para ensaio consoante o que é especificado em
fase de proposta, nomeadamente:
• Tipo de arrefecimento que pode ser (ONAN/ONAF), sendo que ONAN refere-se a um
regime de arrefecimento de óleo natural e ar natural, enquanto que ONAF é referente a
óleo natural e ar forçado;
• Tensão nominal, é o valor a que um determinado aparelho deve ser ligado para operar
corretamente e tipicamente é expresso em volts (V) ou quilovolts (kV). Este parâmetro é
definido pelo fabricante do equipamento;
• Altura à tampa, varia consoante o transformador em questão e diz respeito à altura desse
mesmo transformador da base ao topo;
Após a definição de todos estes parâmetros estarem definidos, dá-se início ao ensaio de
ruído utilizando o procedimento point-by-point, que consiste em realizar medições de ruído
posicionando um microfone ao longo do perímetro previamente especificado, e em pontos
igualmente espaçados e a não mais que um metro de distância.
Primeiramente é feita a medição do ruído ambiente inicial (𝐿𝑏𝑔𝐴𝑖𝑛 ), expresso em dB
(decibel), onde são medidos apenas dez pontos, isto por se tratar de um mínimo de pontos que a
norma especifica para a medição do ruído de fundo.
Depois de realizada a medição do ruído ambiente inicial, é feita então a medição do ruído
do transformador (𝐿𝑃𝐴0 ), sendo que esta medição já é realizada passando por todos os pontos
previamente estabelecidos no perímetro, começando no ponto inicial e terminando no último
ponto sendo registado o valor associado a cada ponto. Relativamente a esta medição, poderá
existir a necessidade de realizar uma medição a 1/3 de altura e a 2/3 de altura respetivamente,
caso o transformador tenha uma altura acima dos 2,5 metros, caso contrário a medição é feita a
1/2 de altura, isto seguindo a normalização existente.
Por último é realizada a medição do ruído ambiente final (𝐿𝑏𝑔𝐴𝑓𝑖𝑛 ), sendo adotado o
mesmo princípio de medição do ruído ambiente inicial (𝐿𝑏𝑔𝐴𝑖𝑛 ), ou seja, volta-se a medir os
mesmos de pontos previamente medidos.
Pela observação da figura 5, é possível notar que são apresentados uns valores na secção
dos resultados do ensaio. Para se proceder ao cálculo desses mesmos resultados do ensaio
apresentados na figura 5, é necessário utilizar o formulário existente na norma IEC 60076- 10 –
Determination of sound level, apresentado no anexo 2.
No âmbito do estágio, como anteriormente referido depois de ter sido possível assistir a
um teste de ruído, foi proposta a realização de uma folha de cálculo Excel de forma a automatizar
os dados referentes a esse mesmo ensaio observado e que de replicasse um relatório modelo da
norma IEC 60076-10 – Determination of sound level, apresentado no anexo 3.
• Referência do transformador
• Norma (IEC 60076-10)
• Tipo de arrefecimento (ONAN)
• Frequência (50 Hz)
• Distância (1 m)
• Tensão nominal (21000 V)
• Altura à tampa (2,5 m)
• Perímetro (19 m)
• Equipamento de medição (BRUEL & KJAER tape 2270 nºP78102 – microfone B&K 4190 nº
P78309)
Pela observação da tabela 2, é possível denotar que os valores fornecidos para o ruído de
fundo inicial são apresentados por (M1 até M10), aplicando-se o mesmo para o ruído de fundo
final (M61 até M70), bem como para o ruído do transformador (M231 até M249).
Estes valores surgem das medições realizadas através do microfone que se encontra
ligado a um dispositivo representado na figura 6, que é responsável por registar essas medições
em determinadas posições de memória, para que posteriormente possam ser visualizadas num
software BZ5503- Measurement Partner Suite.
Figura 7- Visualização dos dados medidos no software BZ5503- Measurement Partner Suite
O software BZ5503- Measurement Partner Suite, permite ao utilizador que seja feita a
exportação dos dados para uma folha de Excel, como se pode verificar na figura 8, permitindo
também ao utilizador selecionar o que pretende exportar como demonstrado na figura 9, o que
torna tudo mais amigável no que diz respeito a ter acesso aos dados pretendidos para análise.
Pela observação da figura 10, podemos verificar que depois de se realizar a exportação
dos dados do software BZ5503- Measurement Partner Suite para o Excel, são fornecidas 4 sheets
de acordo com o que foi previamente selecionado para exportação (TotalBB, TotalSpectra, Setup,
TotalLN), contudo para a construção da folha de cálculo apenas se utilizou a sheet TotalSpectra,
que fornece os valores medidos para cada banda de frequência (𝐿𝐴𝑒𝑞 ).
Ultrapassada esta fase de exportação dos dados necessários para a realização da folha de
cálculo no Excel, foi então criada a respetiva folha Excel seguindo o formato apresentado na
norma IEC 60076-10, com as respetivas folhas auxiliares que iriam servir como cálculos auxiliares
para o preenchimento da folha principal apresentada no anexo 4.
As funções Excel maioritariamente utilizadas para aceder aos valores provenientes da exportação
dos dados provenientes da folha de Excel TotalSpectra necessários para proceder ao cálculo final
representado na figura 9 foram:
valor_procura
matriz_tabela
índice_col
O número da coluna na matriz_tabela para o qual o valor correspondente deve ser devolvido.
índice_lin
O número da linha na matriz_tabela para o qual o valor correspondente deve ser devolvido.
procurar_intervalo
É um valor lógico que especifica se quer localizar uma correspondência exata ou aproximada.
Depois de discutido o aspeto que deveria tomar a interface gráfica da aplicação, foi
desenvolvida uma PBS (Product Breakdown Structure) que se encontra representada na figura 11,
que é uma árvore hierárquica de todos os componentes que constituem o produto objeto do
projeto.
TransData
Ref. Cálculo
Alterar dados
Transformadores No-load
Guardar dados
Diretório Ficheiro
Pela observação da PBS, ficou então definido que a aplicação deveria ser constituída por seis
separadores:
• Data;
• Specification;
• Calculated;
• Measured;
• Analysis;
• Report.
LW = 39 + 18x log(TR/RR)
Em que:
TR – Transformer rating
RR – Reference rating
A formulação utilizada para estimar o nível total de pressão sonora dos transformadores a uma
distância de 0,3 m em condições de carga foi a seguinte.
dB0,3m = D + S - FC - MS - YL
D = 21xB + 31.9
S = -27 + 20log(E/25.4)
Em que:
Posteriormente a estar encerrado o capítulo que dizia respeito aos requisitos que
deveriam constar a aplicação, procedeu-se ao desenvolvimento da mesma utilizando o MATLAB.
Depois de alguma pesquisa efetuada chegou-se à conclusão que era possível desenvolver
aplicações no MATLAB de algumas maneiras distintas:
• Utilizando o GUIDE;
• Utilizando funções do MATLAB para se criar aplicações de forma programática;
• Utilizando o App Designer;
Outra solução em detrimento do uso do GUIDE, passa pela utilização de código para
projetar o layout e o comportamento da aplicação, usando para o efeito funções do MATLAB.
Nesta abordagem, o responsável pela criação da aplicação cria um figura e componentes
interativos para serem colocados nessa mesma figura programaticamente.
Uma vez que seria mais acessível construir a aplicação escolhendo os componentes e
programando de acordo com o que seria necessário, exclui-se a opção de utilizar as funções
MATLAB para programar tudo de raiz.
Sobraram então as opções de utilizar o GUIDE ou o App Designer para o desenvolvimento
da aplicação.
O App Designer como anteriormente referido, é um ambiente bastante rico no que diz
respeito a conceber aplicações. Apesar de disponibilizar componentes semelhantes aos dos
fornecidos no GUIDE, o processo de desenvolvimento de aplicações é um tanto diferente em
termos de gráficos suportados, código gerado, acesso aos componentes, código dos callbacks (são
funções que fazem um componente responder à interação com o utilizador como por exemplo
clicar num botão), e o próprio plot (representações gráficas de dados) dos componentes é
diferente. A tabela 3 é representativa de algumas diferenças verificadas entre o GUIDE e o App
Designer.
Depois de iniciar o App Designer, o aspeto da interface que irá surgir será o que se encontra
representado na figura 15.
Pela observação da figura 5 podemos reparar que o App Designer apresenta no seu ambiente:
3. Design View/ Code View, é esta secção que torna tudo mais acessível uma vez que é
permitida uma rápida transição entre o design e o código que vai sendo gerado aquando
da colocação dos diferentes componentes para posterior alteração consoante as
necessidades;
4. Component Browser, são aqui visualizados todos os componentes que estão a ser
utilizados e onde o utilizador pode alterar o nome desses mesmos componentes de forma
a perceber com que componente está a trabalhar;
Separador Data
Separador Specification
Separador Calculated
Neste separador, representado na figura 19, que estará associado ao cálculo optou-se
pela utilização dos seguintes componentes: Drop-down para seleção de uma opção, um Button
(Save Data), um Panel (Results) que irá conter dois Buttons (Sound Pressure/Power Level), dois
labels com o nome de no-load e load conditions, e por último dois Numeric Edit Fields onde irão
surgir os resultados de cálculos.
Separador Measured
Sendo este o separador responsável pela demonstração dos dados de ensaios optou-se
por colocar os seguintes componentes: Button (Open File) que servirá para abrir o ficheiro que se
pretende observar, e uma Table para que possam ser reproduzidos os dados referente a esse
mesmo ficheiro.
Pode-se verifica o aspeto do separador Measured na figura 20.
Separador Analisys
O utilizador depois de ter selecionado o ficheiro que pretende trabalhar, irão surgir as
diferentes referências relativas a um determinado transformador (E1110383A, E1110382A), bem
como o diretório do ficheiro que foi selecionado.
Posteriormente ao utilizador tomar a opção da referência do transformador, irão então
surgir todos os dados referentes a esse mesmo transformador como se pode verificar na figura
22.
O utilizador tem então a opção de alterar os valores que desejar na tabela e guardar esses
mesmos valores no ficheiro em que está a trabalhar, exemplo verificado na figura 23.
Pressionando o botão “Save Data” surge uma janela como demonstrado na figura para que possa
ser guardada a nova informação posteriormente inserida.
Essa nova alteração é então guardada no ficheiro Excel (base de dados), como se pode verificar na
figura 25.
Pressionando o botão “Add Row” uma nova linha é criada onde podem ser acrescentados novos
dados, como representado na figura 26.
Pela observação da figura 27, pode-se verificar que os dados são corretamente guardados na base
de dados.
Neste separador é onde são realizados os cálculos do ruído dos transformadores tendo
por base dois tipos de condições: load (condição de carga) e no-load (condição sem carga),
anteriormente mencionados no capítulo 3.3.2- Requisitos dos separadores.
Neste separador é a secção onde se pode visualizar os dados relativos aos ensaios de ruído de um
determinado transformador, como demonstrado na figura 31.
4 Conclusões
Durante o período de estágio foram surgindo algumas limitações e dificuldades que por
sua vez, foram sendo contrariadas recorrendo a outros caminhos para chegar ao mesmo fim.
Estas limitações deveram-se ao fato de o MATLAB ser uma ferramenta poderosa e com a qual
nunca tinha tido grande contato, e como tal foi sempre necessário um esforço adicional
primeiramente para me ambientar com o software e assim cumprir com as tarefas que iam sendo
solicitadas. Outra das limitações bem patentes ao longo do estágio, foi interpretar o conteúdo
que seria mais relevante, mencionado na normalização, que seriam fulcrais tanto para o
desenvolvimento da aplicação como para a construção do relatório de ensaio de ruído em Excel.
Como trabalho futuro, fica a implementação do separador Report, que seria o responsável
por gerar relatórios do que foi visualizado ao longo da aplicação, bem como melhorias ao nível do
design da aplicação em geral. Ao nível do relatório de ensaio de ruído desenvolvido em Excel,
como forma de automatização do cálculo, existem sempre possíveis melhorias que podem ser
implementadas de forma a automatizar cada vez mais o processo em questão.
5 Bibliografia
[2] IEC, IEC 60076-10 - Sound level applic guide (ed2), 2016.
Anexo 1
Apresentação PowerPoint
normalização IEC
Anexo 2
Formulário normalização IEC
60076-10- Determination of
sound level
Anexo 3
Relatório modelo da norma
60076-10- Determination of
sound level
Anexo 4
Folha final do cálculo de um
ensaio de ruído
[Hz] dB[A] dB[A] dB[A] dB[A] dB[A] [m2] [dB] dB[A] dB[A]
Total sound level 50.4 50.2 0.2 66.0 36.6 64.9 82.6
63
125
250
Octave band
500
1 000
2 000
4 000
8 000
50 23.1 22.2 0.9 25.7 2.5 788.5 1.1 24.2 41.9
63 25.3 24.1 1.2 27.4 2.2 788.5 1.1 26.1 43.8
80 29.8 30.0 -0.2 30.2 0.2 788.5 1.1 28.9 46.7
100 30.8 31.2 -0.4 36.5 5.3 788.5 1.1 35.3 53.1
125 33.2 33.0 0.1 34.9 1.7 788.5 1.1 33.7 51.4
160 37.8 37.5 0.3 39.7 1.9 788.5 1.1 38.5 56.2
200 40.2 40.0 0.2 42.7 2.5 788.5 1.1 41.6 59.3
250 38.6 39.2 -0.6 43.9 4.7 788.5 1.1 42.8 60.5
315 39.3 39.0 0.3 49.2 9.9 788.5 1.1 48.1 65.8
400 41.1 41.1 0.0 50.1 9.0 788.5 1.1 49.0 66.7
500 40.7 40.8 -0.1 53.8 13.0 788.5 1.1 52.7 70.4
630 39.8 39.3 0.5 57.6 17.8 788.5 1.1 56.4 74.2
1 / 3 Octave band
800 40.2 40.4 -0.2 53.2 12.7 788.5 1.1 52.0 69.8
1000 38.8 39.4 -0.7 53.5 14.1 788.5 1.1 52.3 70.1
1250 37.3 36.7 0.6 53.8 16.5 788.5 1.1 52.7 70.4
1600 38.8 37.7 1.1 53.9 15.1 788.5 1.1 52.8 70.5
2000 34.8 34.1 0.7 56.6 21.8 788.5 1.1 55.5 73.2
2500 33.1 30.1 3.0 53.2 20.1 788.5 1.1 52.1 69.8
3150 29.9 26.9 2.9 55.2 25.4 788.5 1.1 54.1 71.8
4000 26.9 23.4 3.6 56.5 29.6 788.5 1.1 55.3 73.1
5000 24.1 19.5 4.6 57.2 33.1 788.5 1.1 56.1 73.8
6300 20.7 16.2 4.5 47.4 26.7 788.5 1.1 46.3 64.0
8000 17.1 15.3 1.8 36.4 19.3 788.5 1.1 35.2 52.9
10000 9.9 8.6 1.3 29.4 19.5 788.5 1.1 28.2 45.9
12500 6.0 5.2 0.8 25.6 19.6 788.5 1.1 24.4 42.1
16000 2.4 2.1 0.3 19.4 17.0 788.5 1.1 18.1 35.9
20000 -0.8 -0.8 0.0 11.5 12.2 788.5 1.1 10.6 28.4
* if there is only one value for the sound absorbing area avaiable, this value applies to all frequencies
Anexo 5-
Código referente ás
funcionalidades separador Data
% fixa o diretório
cd ('C:\Users\diogo\Desktop\Database MATLAB')
% abre um ficheiro e recebe a sua localização
[FileEx, PathEx] = uigetfile ('*.xlsx','Select File');
ExPath = [PathEx FileEx];
% O campo editfield recebe sob a forma de texto o diretório do ficheiro
app.EditField.Value = ExPath
% lê um ficheiro Excel e respetivas sheets
[status, sheets] = xlsfinfo(FileEx)
% coloca o nome das sheets nos diferentes componentes de seleção
set (app.DropDown2,'Items’, sheets)
set (app.SelectListBox,'Items’, sheets)
set (app.SelectDropDown,'Items’, sheets)
Callback Dropdown:
value = app.DropDown2.Value;
% ciclo if que lê um valor no dropdown e procede à leitura da sheet correspondente
if (strcmp(value,'E1110383A'));
[~, ~, raw] = xlsread('Referencia.xlsx',1);
raw = raw (:,1:2);
stringVectors = string (raw (:,[1,2]));
stringVectors(ismissing(stringVectors)) = '';
% coloca os dados dessa sheet na tabela
set (app.UITable3,'Data', raw);
else
(strcmp(value,'E1110382A'));
[~, ~, raw] = xlsread('Referencia.xlsx',2);
raw = raw (1:25,1:2);
stringVectors = string (raw (:,[1,2]));
stringVectors(ismissing(stringVectors)) = '';
set (app.UITable3,'Data', raw);
end
value = app.DropDown2.Value;
% ciclo if que lê o valor do dropdown para guardar dados na sheet correspondente
if (strcmp(value,'E1110383A'));
[filename, pathname] = uiputfile ('*.xlsx','Save as');
data=get(app.UITable3,'data');
num=[data];
xlswrite ([pathname filename], num,1);
else
(strcmp(value,'E1110382A'));
data=get(app.UITable3,'data');
num=[data];
[filename, pathname] = uiputfile ('*.xlsx','Save as');
xlswrite ([pathname filename], num,2);
end
Callback AddRow:
% faz a leitura das linhas da tabela e acrescenta uma nova linha na última posição da tabela
oldDat = get(app.UITable3,'Data');
nRows = size(oldDat,1)
dat = cell(nRows+1,2);
dat (1: nRows, :) = oldDat;
set (app.UITable3,'Data', dat)
Anexo 6-
Código referente às
funcionalidades separador
Specification
Callback ListBox:
value = app.SelectListBox.Value;
%ciclo if que faz a leitura do valor da listbox e mostra os dados referentes de um dado intervalo
na tabela
if (strcmp(value,'E1110383A'));
[num, text, raw] = xlsread ('Referencia',1,'A11:B18')
set (app.UITable4,'Data', num);
set (app.UITable4,'Data', raw);
else
(strcmp(value,'E1110382A'));
[num, txt, raw] = xlsread ('Referencia',2,'A11:B18')
set (app.UITable4,'Data', num);
set (app.UITable4,'Data', raw);
end
value = app.SelectListBox.Value;
%ciclo if que lê o valor da listbox para guardar dados na sheet e no intervalo correspondente
if (strcmp(value,'E1110383A'));
[filename, pathname] = uiputfile ('*.xlsx','Save as');
data=get(app.UITable4,'data');
num=[data];
xlswrite ([pathname filename], num,'A11:B18',1);
else
(strcmp(value,'E1110382A'));
data=get(app.UITable4,'data');
num=[data];
[filename, pathname] = uiputfile ('*.xlsx','Save as');
Xlswrite ([pathname filename], num,2,'A11:B18');
end
Callback AddRow:
% faz a leitura das linhas da tabela e acrescenta uma nova linha na última posição da tabela
oldDat = get(app.UITable4,'Data');
nRows = size(oldDat,1)
dat = cell(nRows+1,2);
dat (1: nRows, :) = oldDat;
set (app.UITable4,'Data', dat)
Anexo 7-
Código referente às
funcionalidades separador
Calculated
value = app.SelectDropDown.Value;
% ciclo if que lê um valor do dropdown e faz leitura correspondente do ficheiro Excel
if (strcmp(value,'E1110383A'));
[nums text] = xlsread('Referencia.xlsx');
% filtro que encontra uma string e lê o seu valor
lline = find (strcmpi ('Magnetic flux density (Tesla)', text),1);
data1 = nums(lline);
%cálculo auxiliar
d= 21*data1+31.9;
[nums text] = xlsread('Referencia.xlsx');
lline1 = find (strcmpi ('Clearance between axis (mm)', text),1);
data2 = nums(lline1);
s= -27+20*log (data2/ (25.4));
[nums text] = xlsread('Referencia.xlsx');
lline2 = find (strcmpi ('Frequency (Hz)', text),1);
data3 = nums(lline2);
if data3 == 50
data3 = 3
end
else
(strcmp(value,'E1110382A'));
value = app.SelectDropDown.Value;
%ciclo if que lê o valor do dropdown e faz corresponder à folha de Excel em causa
if (strcmp(value,'E1110383A'));
[nums text] = xlsread('Referencia.xlsx');
% filtro para ler uma string e retirar o valor numérico associado
lline = find (strcmpi ('transformer rating (mVA)', text),1);
sline = find (strcmpi ('Reference rating (mVA)', text),1);
data = nums(lline);
data1 = nums(sline);
% coloca o valor final calculado no numeric edit field
app.LW.Value = 39+18*log(data/data1)
else
(strcmp(value,'E1110382A'));
[nums text] = xlsread('Referencia.xlsx',2);
lline = find (strcmpi ('transformer rating (mVA)', text),1);
sline = find (strcmpi ('Reference rating (mVA)', text),1);
data = nums(lline);
data1 = nums(sline);
app.LW.Value = 39+18*log(data/data1)
end
Anexo 8-
Código referente às
funcionalidades separador
Measured
% abre um ficheiro
uigetfile ('*.xlsx','Choose File');
ExPath = [ans];
%lê os dados de um determinado intervalo
[~, ~, raw] = xlsread(ExPath,'A9:E35')
%se uma linha estiver vazia deixar em branco
raw(cellfun(@(x) ~isempty(x) && isnumeric(x) && isnan(x), raw)) = {''};
% coloca os dados na tabela
set (app.UITable5,'Data', raw);
Anexo 9-
Código referente às
funcionalidades separador
Analisys
cla (app.UIAxes2,'reset')
load power;
load flux;
load meas;
load calc;
hold(app.UIAxes2);
plot (app.UIAxes2, flux, meas,'bo');
plot (app.UIAxes2, flux, calc,'ro');
p= polyfit (flux, meas,1);
% obtém um polinómio de grau 1 (reta) que melhor aproxima
% a=p(1) b=p(2) y=a*x+b
y= polyval (p, flux);
plot (app.UIAxes2, flux, y,'b');
p = polyfit (flux, calc,1);
y= polyval (p, flux);
% avalia a reta nos pontos de flux dados
plot (app.UIAxes2, flux, y,'r');
hold(app.UIAxes2);
legend(app.UIAxes2,'measured','calculated','Location','southeast')
xlabel (app.UIAxes2,'Magnetic flux density B (T)')
ylabel (app.UIAxes2,'LpA, Un / dB (A)')
cla(app.UIAxes2,'reset')
data = xlsread('calculated.xlsx','analise','B3:B24') %power
data1 = xlsread('calculated.xlsx','analise','D3:D24') %calculated
data2 = xlsread('calculated.xlsx','analise','E3:E24') %measured
hold(app.UIAxes2);
plot (app.UIAxes2, data, data2,'bo');
plot (app.UIAxes2, data, data1,'ro');
% reta do measured