101 resultados para Programação heurística
Resumo:
A integração contínua é uma prática no desenvolvimento de software que já existe há algum tempo mas ainda não é muito conhecida nem usada. Esta prática no desenvolvimento de software surgiu com a programação extrema e tem evoluído ao longo dos últimos anos, adaptando-se às novas tecnologias. O estudo aqui apresentado pretende essencialmente mostrar a real importância e o valor acrescido que a integração contínua pode trazer a um projeto de desenvolvimento de software. O trabalho aqui exposto surge no âmbito de um projeto interno, realizado pelo autor na empresa Konkconsulting, cuja finalidade se prende com o conhecimento mais aprofundado da integração contínua e com o levantamento das necessidades e criação de soluções, de modo a conseguir a sua utilização nos produtos que irão ser desenvolvidos pela empresa. Nesta dissertação, é proposto um conjunto de ferramentas para responder às necessidades imediatas da empresa na implementação de integração contínua num dos seus projetos. Estas ferramentas devem ser de simples e de fácil utilização, de modo a ajudar os programadores durante os desenvolvimentos e responder às necessidades da utilização da integração contínua em um projeto a ser desenvolvido pela empresa, mas ao mesmo tempo, podendo ser facilmente incorporadas em futuros projetos.
Resumo:
O ensaio de dureza, e mais concretamente o ensaio de micro dureza Vickers, é no universo dos ensaios mecânicos um dos mais utilizados quer seja na indústria, no ensino ou na investigação e desenvolvimento de produto no âmbito das ciências dos materiais. Na grande maioria dos casos, a utilização deste ensaio tem como principal aplicação a caracterização ou controlo da qualidade de fabrico de materiais metálicos. Sendo um ensaio de relativa simplicidade de execução, rapidez e com resultados comparáveis e relacionáveis a outras grandezas físicas das propriedades dos materiais. Contudo, e tratando-se de um método de ensaio cuja intervenção humana é importante, na medição da indentação gerada por penetração mecânica através de um sistema ótico, não deixa de exibir algumas debilidades que daí advêm, como sendo o treino dos técnicos e respetivas acuidades visuais, fenómenos de fadiga visual que afetam os resultados ao longo de um turno de trabalho; ora estes fenómenos afetam a repetibilidade e reprodutibilidade dos resultados obtidos no ensaio. O CINFU possui um micro durómetro Vickers, cuja realização dos ensaios depende de um técnico treinado para a execução do mesmo, apresentando todas as debilidades já mencionadas e que o tornou elegível para o estudo e aplicação de uma solução alternativa. Assim, esta dissertação apresenta o desenvolvimento de uma solução alternativa ao método ótico convencional na medição de micro dureza Vickers. Utilizando programação em LabVIEW da National Instruments, juntamente com as ferramentas de visão computacional (NI Vision), o programa começa por solicitar ao técnico a seleção da câmara para aquisição da imagem digital acoplada ao micro durómetro, seleção do método de ensaio (Força de ensaio); posteriormente o programa efetua o tratamento da imagem (aplicação de filtros para eliminação do ruído de fundo da imagem original), segue-se, por indicação do operador, a zona de interesse (ROI) e por sua vez são identificadas automaticamente os vértices da calote e respetivas distâncias das diagonais geradas concluindo, após aceitação das mesmas, com o respetivo cálculo de micro dureza resultante. Para validação dos resultados foram utilizados blocos-padrão de dureza certificada (CRM), cujos resultados foram satisfatórios, tendo-se obtido um elevado nível de exatidão nas medições efetuadas. Por fim, desenvolveu-se uma folha de cálculo em Excel com a determinação da incerteza associada às medições de micro dureza Vickers. Foram então comparados os resultados nas duas metodologias possíveis, pelo método ótico convencional e pela utilização das ferramentas de visão computacional, tendo-se obtido bons resultados com a solução proposta.
Resumo:
O veículo guiado automaticamente (AGV) adquirido pelo Departamento de Engenharia Mecânica (DEM) tem vindo a ficar obsoleto devido ao hardware, que nos dias de hoje começa a dar sinais de falhas bem como falta de peças de substituição, e ao software, sendo o PLC (Programmable Logic Controller) usado muito limitado quanto às suas funções de controlo, ficando as principais tarefas de controlo do AGV a cargo de placas eletrónicas de controlo. Para promover o controlo autónomo do AGV, foi decidido retirar toda a parte de hardware que detinha o controlo do mesmo e passou a ser um novo PLC, com maior capacidade de processamento, a executar todo o tipo de controlo necessário ao funcionamento do mesmo. O hardware considerado apenas incluí, de forma resumida, os motores responsáveis pelo movimento e direção, placa de controlo de potência dos motores, placa de interface entre as saídas digitais do PLC e as entradas da placa de controlo de potência dos motores e os demais sensores necessários à deteção de obstáculos, fins de curso da direção, sensores dos postos de trabalho e avisadores de emergência. Todo o controlo de movimento e direção bem como a seleção das ações a executar passou a ficar a cargo do software programado no PLC assim como a interação entre o sistema de supervisão instalado num posto de controlo e o PLC através de comunicação via rádio. O uso do PLC permitiu a flexibilidade de mudar facilmente a forma como as saídas digitais são usadas, ao contrário de um circuito eletrónico que necessita de uma completa remodelação, tempo de testes e implementação para efetuar a mesma função. O uso de um microcontrolador seria igualmente viável para a aplicação em causa, no entanto o uso do PLC tem a vantagem de ser robusto, mais rápido na velocidade de processamento, existência de software de interface de programação bastante intuitivo e de livre acesso, facilidade de alterar a programação localmente ou remotamente, via rádio, acesso a vários protocolos de comunicação robustos como Modbus, Canbus, Profinet, Modnet, etc., e acesso integrado de uma consola gráfica totalmente programável. iv É ainda possível a sua expansão com adição de módulos de entradas e saídas digitais e/ou analógicas permitindo expandir largamente o uso do AGV para outros fins. A solução está a ser amplamente testada e validada no Laboratório de Automação (LabA) do Departamento de Engenharia Mecânica do ISEP (Instituto Superior de Engenharia do Porto), permitindo a otimização dos sistemas de controlo de direção bem como a interatividade entre o PLC e o programa de interface/supervisão do posto de trabalho.
Resumo:
As plataformas com múltiplos núcleos tornaram a programação paralela/concorrente num tópico de interesse geral. Diversos modelos de programação têm vindo a ser propostos, facilitando aos programadores a identificação de regiões de código potencialmente paralelizáveis, deixando ao sistema operativo a tarefa de as escalonar dinamicamente em tempo de execução, explorando o maior grau possível de paralelismo. O Java não foge a esta tendência, disponibilizando ao programador um número crescente de bibliotecas de mecanismos de sincronização e paralelização de código. Neste contexto, esta tese apresenta e discute um conjunto de resultados obtidos através de testes intensivos à eficiência de algoritmos de ordenação implementados com recurso aos mecanismos de concorrência da API do Java 8 (Threads, Threadpools, ExecutorService, CountdownLach, ExecutorCompletionService e ForkJoinPools) em sistemas com um número de núcleos variável. Para cada um dos mecanismos, são apresentadas conclusões sobre o seu funcionamento e discutidos os cenários em que o seu uso pode ser rentabilizado de modo a serem obtidos melhores tempos de execução.
Resumo:
A presente dissertação insere-se no âmbito da unidade curricular “ Dissertação” do 2º ano do mestrado em Engenharia Eletrotécnica – Sistemas Elétricos de Energia. Com o aumento crescente do número de consumidores de energia, é cada vez mais imperioso a adoção de medidas de racionalização e gestão dos consumos da energia elétrica. Existem diferentes tipos de dificuldades no planeamento e implementação de novas centrais produtoras de energia renovável, pelo que também por este motivo é cada vez mais importante adoção de medidas de gestão de consumos, quer ao nível dos clientes alimentados em média tensão como de baixa tensão. Desta forma será mais acessível a criação de padrões de eficiência energética elevados em toda a rede de distribuição de energia elétrica. Também a economia é afetada por uma fraca gestão dos consumos por parte dos clientes. Elevados desperdícios energéticos levam a que mais energia tenha que ser produzida, energia essa que contribui ainda mais para a elevada taxa de dependência energética em Portugal, e para o degradar da economia nacional. Coloca-se assim a necessidade de implementar planos e métodos que promovam a eficiência energética e a gestão racional de consumos de energia elétrica. Apresenta-se nesta dissertação várias propostas, algumas na forma de projetos já em execução, que visam sensibilizar o consumidor para a importância da utilização eficiente de energia e, ao mesmo tempo, disponibilizam as ferramentas tecnológicas adequadas para auxiliar a implementação dos métodos propostos. Embora os planos apresentados, sobejamente conhecidos, tenham imensa importância, a implementação nos vários consumidores de sistemas capazes de efetivamente reduzir consumos tem um papel fundamental. Equipamentos de gestão de consumos, que são apresentados nesta dissertação, permitem ao consumidor aceder diretamente ao seu consumo. Podem aceder não apenas ao consumo global da instalação mas também ao consumo específico por equipamento, permitindo perceber onde se verifica a situação mais desfavorável. Funcionalidades de programação de perfis tipo, com limitações de potência em vários períodos horários, bem como possibilidades de controlo remoto com recurso a aplicações para Smartphones permitem a redução de consumos ao nível da rede de distribuição e, desta forma, contribuir para a redução dos desperdícios e da dependência energética em Portugal. No âmbito do trabalho de dissertação é desenvolvida uma metodologia de comercialização de potência, que é apresentada nesta tese. Esta metodologia propõem que o consumidor, em função dos seus consumos, pague apenas a quantidade de potência que efetivamente necessita num certo período de tempo. Assim, o consumidor deixa de pagar uma tarifa mensal fixa associada á sua potência contratada, e passará a pagar um valor correspondente apenas à potência que efetivamente solicitou em todas as horas durante o mês. Nesta metodologia que é apresentada, o consumidor poderá também fazer uma análise do seu diagrama de cargas e simular uma alteração da sua tarifa, tarifa esta que varia entre tarifa simples, bi-horária semanal, bi-horária diária, tri-horária semanal ou tri-horária diária, de forma a perceber em qual destas pagará um menor valor pela mesma energia. De forma a que o consumidor possa perceber se haverá vantagem de uma alteração para uma potência contratada flexível, ou para uma outra tarifa associada á energia, tem ao seu dispor uma ferramenta, que em função dos seus consumos, permite retirar conclusões sobre o preço final a pagar na fatura, após cada tipo de alteração. Esta ferramenta foi validada com recurso a várias simulações, para diferentes perfis de consumidores. Desta forma, o utilizador fica a perceber que realmente pode poupar com uma potência contratada flexível, ao mesmo tempo que pode identificar-se com um perfil de simulação e, mais facilmente, perceber para que alteração tarifária pode usufruir de uma maior poupança.
Resumo:
Neste trabalho foi considerada a possibilidade de incorporar serviços remotos, normalmente associados a serviços web e cloud computing, numa solução local que centralizasse os vários serviços num único sistema e permitisse aos seus utilizadores consumir e configurar os mesmos, quer a partir da rede local, quer remotamente a partir da Internet. Desta forma seria possível conciliar o acesso a partir de qualquer local com internet, característico nas clouds, com a simplicidade de concentrar num só sistema vários serviços que são por norma oferecidos por entidades distintas e ainda permitir aos seus utilizadores o controlo e configuração sobre os mesmos. De forma a validar que este conceito é viável, prático e funcional, foram implementadas duas componentes. Um cliente que corre nos dispositivos dos utilizadores e que proporciona a interface para consumir os serviços disponíveis e um servidor que irá conter e prestar esses serviços aos clientes. Estes serviços incluem lista de contactos, mensagens instantâneas, salas de conversação, transferência de ficheiros, chamadas e conferências de voz e vídeo, pastas remotas, pastas sincronizadas, backups, pastas partilhadas, VoD (Video-on Demand) e AoD (Audio-on Demand). Para o desenvolvimento do cliente e do servidor foi utilizada a framework Qt que recorre à linguagem de programação C++ e ao conjunto de bibliotecas que possui, para o desenvolvimento de aplicações multiplataforma. Para as comunicações entre clientes e servidor, foi utilizado o protocolo XMPP (Extensible Messaging and Presence Protocol), pela forma da biblioteca qxmpp e do servidor XMPP ejabberd. Pelo facto de conter um conjunto de centenas de extensões atualmente ativas que auferem funcionalidades como salas de conversação, transferências de ficheiros e até estabelecer sessões multimédia, graças à sua flexibilidade permitiu ainda a criação de extensões personalizada necessárias para algumas funcionalidades que se pretendeu implementar. Foi ainda utilizado no servidor a framework ffmpeg para suportar algumas funcionalidades multimédia. Após a implementação do cliente para Windows e Linux, e de implementar o servidor em Linux foi realizado um conjunto de testes funcionais para perceber se as funcionalidades e seus mecanismos funcionam corretamente. No caso onde a análise da performance e do consumo de recursos era importante, foram realizados testes de performance e testes de carga.
Resumo:
O escalonamento é uma das decisões mais importantes no funcionamento de uma linha de produção. No âmbito desta dissertação foi realizada uma descrição do problema do escalonamento, identificando alguns métodos para a optimização dos problemas de escalonamento. Foi realizado um estudo ao caso do problema de máquina única através do teste de várias instâncias com o objectivo de minimizar o atraso pesado, aplicando uma Meta-Heurística baseada na Pesquisa Local e dois algoritmos baseados no SB. Os resultados obtidos reflectem que os algoritmos baseados no SB apresentaram resultados mais próximos do óptimo, em relação ao algoritmo baseado na PL. Os resultados obtidos permitem sustentar a hipótese de não existirem algoritmos específicos para os problemas de escalonamento. A melhor forma de encontrar uma solução de boa qualidade em tempo útil é experimentar diferentes algoritmos e comparar o desempenho das soluções obtidas.
Resumo:
This Thesis has the main target to make a research about FPAA/dpASPs devices and technologies applied to control systems. These devices provide easy way to emulate analog circuits that can be reconfigurable by programming tools from manufactures and in case of dpASPs are able to be dynamically reconfigurable on the fly. It is described different kinds of technologies commercially available and also academic projects from researcher groups. These technologies are very recent and are in ramp up development to achieve a level of flexibility and integration to penetrate more easily the market. As occurs with CPLD/FPGAs, the FPAA/dpASPs technologies have the target to increase the productivity, reducing the development time and make easier future hardware reconfigurations reducing the costs. FPAA/dpAsps still have some limitations comparing with the classic analog circuits due to lower working frequencies and emulation of complex circuits that require more components inside the integrated circuit. However, they have great advantages in sensor signal condition, filter circuits and control systems. This thesis focuses practical implementations of these technologies to control system PID controllers. The result of the experiments confirms the efficacy of FPAA/dpASPs on signal condition and control systems.
Resumo:
Os vídeo jogos ou jogos de computador têm vindo a crescer na sua relação com o público ganhando terreno e credibilidade nos benefícios que os jogadores obtêm quando usam este tipo de software, indo esses benefícios para além do divertimento associado à palavra jogo no seu sentido etimológico. Nos últimos anos cada vez mais o mercado e algumas das mais reputadas instituições de ensino têm dedicado especial atenção a este tipo de software, englobando nesses estudos diversas áreas desde a engenharia à saúde, incluindo ainda, estudos de cariz psicológico e sociológico reveladores de que estas experiências de entretenimento, cada vez mais disponíveis a todos, têm influência na sua envolvente de integração e relação com outros fenómenos de cariz social. Apreciado o estado da arte esta tese tem como principal objetivo servir de guia de iniciação a individuais ou pequenas equipas da área de desenvolvimento de software no caminho para o desenvolvimento de jogos de vídeo independentes, apresentando uma análise cuidada capaz de apoiar as equipas desde o momento zero, estando o mesmo estruturado de forma a refletir o entendimento das bases teóricas em que o desenvolvimento deste tipo de software assenta, o estado da arte sobre plataformas, análise de mercado e indústria, metodologias de desenvolvimento e equipas, e ainda analisadas algumas das mais relevantes ferramentas de desenvolvimento e criação de conteúdos. Como prova de conceito e componente de caráter experimental, este trabalho compreende ainda o desenvolvimento de um jogo de vídeo guiado pelas orientações e lições apreendidas durante o processo de estudo de forma a ser representativo da aplicação dessa aprendizagem, e ainda capaz de detalhar passo a passo cada fase do processo, com o objetivo de apoiar a preparação de pessoas interessadas em iniciar a aventura de desenvolver os seus próprios jogos e quem sabe dar início aos seus próprios negócios e empresas. O jogo desenvolvido replica um recente êxito, o jogo 2048, que apesar da sua mecânica simples revela-se um excelente desafio do ponto de vista da sua implementação, bem como o processo criativo adjacente no transformar algo tão simples e experimentado numa experiência nova capaz de atrair antigos jogadores e interesse de novos. O desenvolvimento e publicação da aplicação experimental, e após análise dos dados recolhidos, mostram-se reveladores de que é de fato possível a programadores independentes entrar num mercado de alto potencial, e que adquiridas as bases de conhecimento expostas no documento estarão em condições mais favoráveis para ultrapassar algumas das mais comuns barreiras no atingir desse objetivo.
Resumo:
As grandes empresas como Google, com o Android, e a Apple, com o iOS, ajudaram a tornar a área das aplicações móveis muito apelativa e obtiveram um elevado sucesso. Com o crescimento elevado nesta área foi necessário usar uma solução que integrasse sistemas e permitisse comunicação entre aplicações diferentes, este é o caso dos Web Services, desta forma as novas aplicações podem comunicar com aplicações já existentes, e permitir que sistemas criados em plataformas diferentes comuniquem. O objetivo de um Web Service é disponibilizar uma plataforma independente de hardware e também uma plataforma que não implica estar escrita em determinada linguagem de programação. Para o acesso a um Web Service pode ser usado um protocolo ou estilo de arquitetura, nesta tese de mestrado são estudados os protocolos SOAP e a arquitectura REST, que diferem na técnica de acesso, a na sintax das mensagens trocadas. Para determinar qual dos anteriores (REST e SOAP) pode ser o mais adequado a usar no acesso a um Web Service são feitas análises a ambos e comparações entre os tempos de resposta de forma a determinar qual seria o mais vantajoso a nível de performance. O projeto que serviu como base desta tese de mestrado foi o desenvolvimento de uma aplicação de marcações em serviços beleza/saúde, a qual acede a um Web Service remoto através do REST.
Resumo:
Tipicamente as redes elétricas de distribuição apresentam uma topologia parcialmente malhada e são exploradas radialmente. A topologia radial é obtida através da abertura das malhas nos locais que otimizam o ponto de operação da rede, através da instalação de aparelhos de corte que operam normalmente abertos. Para além de manterem a topologia radial, estes equipamentos possibilitam também a transferência de cargas entre saídas, aquando da ocorrência de defeitos. As saídas radiais são ainda dotadas de aparelhos de corte que operam normalmente fechados, estes têm como objetivo maximizar a fiabilidade e isolar defeitos, minimizando a área afetada pelos mesmos. Assim, na presente dissertação são desenvolvidos dois algoritmos determinísticos para a localização ótima de aparelhos de corte normalmente abertos e fechados, minimizando a potência ativa de perdas e o custo da energia não distribuída. O algoritmo de localização de aparelhos de corte normalmente abertos visa encontrar a topologia radial ótima que minimiza a potência ativa de perdas. O método é desenvolvido em ambiente Matlab – Tomlab, e é formulado como um problema de programação quadrática inteira mista. A topologia radial ótima é garantida através do cálculo de um trânsito de potências ótimo baseado no modelo DC. A função objetivo é dada pelas perdas por efeito de Joule. Por outro lado o problema é restringido pela primeira lei de Kirchhoff, limites de geração das subestações, limites térmicos dos condutores, trânsito de potência unidirecional e pela condição de radialidade. Os aparelhos de corte normalmente fechados são localizados ao longo das saídas radiais obtidas pelo anterior algoritmo, e permite minimizar o custo da energia não distribuída. No limite é possível localizar um aparelho de corte normalmente fechado em todas as linhas de uma rede de distribuição, sendo esta a solução que minimiza a energia não distribuída. No entanto, tendo em conta que a cada aparelho de corte está associado um investimento, é fundamental encontrar um equilíbrio entre a melhoria de fiabilidade e o investimento. Desta forma, o algoritmo desenvolvido avalia os benefícios obtidos com a instalação de aparelhos de corte normalmente fechados, e retorna o número e a localização dos mesmo que minimiza o custo da energia não distribuída. Os métodos apresentados são testados em duas redes de distribuição reais, exploradas com um nível de tensão de 15 kV e 30 kV, respetivamente. A primeira rede é localizada no distrito do Porto e é caraterizada por uma topologia mista e urbana. A segunda rede é localizada no distrito de Bragança e é caracterizada por uma topologia maioritariamente aérea e rural.