• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 402
  • 152
  • 105
  • 96
  • 50
  • 28
  • 15
  • 12
  • 11
  • 11
  • 8
  • 6
  • 6
  • 6
  • 6
  • Tagged with
  • 1022
  • 237
  • 213
  • 208
  • 191
  • 173
  • 169
  • 154
  • 153
  • 151
  • 124
  • 103
  • 101
  • 97
  • 91
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
311

Machine synchrone à réluctance : modèles équivalents à réseau de réluctances pour la simulation et l’optimisation / Synchronous Reluctance Machine : magnetic equivalent circuits for simulation and optimization

Mariani, Guilherme Bueno 29 March 2016 (has links)
L’enjeu de la thèse concerne la modélisation électromagnétique des machines synchrones à réluctance, avec comme objectif final : obtenir un modèle suffisamment précis et rapide pour, d’une part, être capable de calculer les ondulations de couple et d’autre part servir pour de l’optimisation dimensionnelle et pouvoir être couplé à un logiciel de type circuit pour tester une loi de commande. Un modèle du type schéma réluctant a été mis en place petit à petit avec validations à chaque étape. La modélisation des échanges dans l’entrefer utilise en final une fonction originale (intégrale de Fermi-Dirac) qui a entièrement été paramétrée avec les dimensions caractéristiques de la machine.Ce modèle de la machine, piloté par les courant, a ensuite été couplé avec un circuit électrique grâce à une interface de transformation tension-courant. Les optimisations réalisées avec ce modèle ont permis de mettre en évidence certains manques dans les contraintes dimensionnelles initiales et, celles-ci corrigées, de montrer que ce modèle était parfaitement utilisable pour cette démarche d’optimisation. / This thesis aims the electromagnetic modeling of synchronous reluctance machines, with a final goal: to obtain a fast and sufficiently accurate model, able to calculate the torque ripple and to be used for optimal machine design and also capable to be coupled to circuit software to test control techniques.A MEC (magnetic equivalent circuit) model was created step-by-step and validated at each step. Final model of the air-gap is based on a function (Fermi-Dirac integral), which has been completely parameterized by machine dimensions. This model of the machine is driven by current; afterwards it was coupled with an electric circuit thanks to a voltage-current transformation interface. The optimizations made with the model allowed to highlight some deficiencies in the initial dimensional constraints. After corrections the model could be efficiently used in an optimization process.
312

Métodos para determinação de parâmetros de máquinas síncronas de ímãs permanentes

Homrich, Guilherme January 2016 (has links)
A teoria de duplo eixo é geralmente utilizada para modelar e caracterizar máquinas síncronas de polos salientes. O conhecimento das indutâncias de eixo direto e eixo em quadratura são fundamentais para o desenvolvimento destes modelos e para o projeto de controladores destas máquinas. No entanto, métodos tradicionais para determinação destas indutâncias através de ensaios tornam-se impraticáveis em máquinas síncronas de ímãs permanentes pela impossibilidade de controlar a corrente de campo. Recentemente, a IEEE publicou o Std. 1812, chamado Trial-Use Guide for Testing Permanent Magnet Machines, que pode servir de guia para obtenção da reatância de eixo direto Xd. Esta norma não sugere formas de determinar a reatância de eixo em quadratura Xq, mas existem diferentes métodos para calcular este parâmetro a partir de dados coletados em testes, geralmente envolvendo medição de ângulo de carga. O objetivo deste trabalho é propor e analisar dois métodos alternativos para determinar as reatâncias do modelo de duplo eixo através de ensaios aplicados a um gerador síncrono de ímãs permanentes (GSIP) de 1,5 kW. O primeiro é baseado em predição de ângulo de carga e o segundo é baseado em medição de ângulo de carga. O primeiro combina ensaios a vazio e de curto circuito com análise do diagrama fasorial para descrever o ângulo de carga como função de grandezas elétricas facilmente mensuráveis. O segundo propõe um método de medição de ângulo de carga com auxílio de um encoder incremental. Resultados comprovam que é possível determinar indutâncias do modelo de duplo eixo com as equações desenvolvidas desde que o conteúdo harmônico não seja elevado. / A teoria de duplo eixo é geralmente utilizada para modelar e caracterizar máquinas síncronas de polos salientes. O conhecimento das indutâncias de eixo direto e eixo em quadratura são fundamentais para o desenvolvimento destes modelos e para o projeto de controladores destas máquinas. No entanto, métodos tradicionais para determinação destas indutâncias através de ensaios tornam-se impraticáveis em máquinas síncronas de ímãs permanentes pela impossibilidade de controlar a corrente de campo. Recentemente, a IEEE publicou o Std. 1812, chamado Trial-Use Guide for Testing Permanent Magnet Machines, que pode servir de guia para obtenção da reatância de eixo direto Xd. Esta norma não sugere formas de determinar a reatância de eixo em quadratura Xq, mas existem diferentes métodos para calcular este parâmetro a partir de dados coletados em testes, geralmente envolvendo medição de ângulo de carga. O objetivo deste trabalho é propor e analisar dois métodos alternativos para determinar as reatâncias do modelo de duplo eixo através de ensaios aplicados a um gerador síncrono de ímãs permanentes (GSIP) de 1,5 kW. O primeiro é baseado em predição de ângulo de carga e o segundo é baseado em medição de ângulo de carga. O primeiro combina ensaios a vazio e de curto circuito com análise do diagrama fasorial para descrever o ângulo de carga como função de grandezas elétricas facilmente mensuráveis. O segundo propõe um método de medição de ângulo de carga com auxílio de um encoder incremental. Resultados comprovam que é possível determinar indutâncias do modelo de duplo eixo com as equações desenvolvidas desde que o conteúdo harmônico não seja elevado.
313

Desenvolvimento de uma máquina síncrona trifásica com ímãs de Nd-Fe-B e núcleo do rotor a partir de ferro sinterizado para aplicação em aerogeradores de 7,5 kW

Teixeira, Gerson Paz January 2017 (has links)
Desenvolvimento de uma máquina síncrona trifásica com ímãs de Nd-Fe-B e núcleo do rotor a partir de ferro sinterizado para aplicação em aerogeradores de 7,5 kW, verificando a viabilidade do protótipo. Partindo de um projeto anteriormente desenvolvido, foi realizada alteração no ângulo das chapas do estator em 10º, com o intuito de minimizar o efeito de correntes parasitas, sendo esse um dos fatores que influenciam os resultados. Para avaliação de desempenho, foi utilizada uma bancada de testes composta de analisador de energia, sensor de torque e instrumentos de medição, sendo o acionamento do protótipo realizado através de um motor de indução controlado por um inversor de frequência. Entre os resultados encontrados, foi constatada a presença de harmônicas que impactam sobre os valores obtidos do protótipo. Os testes realizados, de simulação e parâmetros elétricos, indicaram resultados apropriados ao desempenho de uma máquina elétrica trifásica, porém mostram-se necessárias alterações para um melhor desempenho do protótipo. / Development of a three-phase synchronous machine with Nd-Fe-B magnets and rotor core from sintered iron for application in 7.5 kW wind turbines, verifying the feasibility of the prototype. Starting from a previously developed design, a change in the angle of the stator plates was made in 10º, in order to minimize the effect of the parasite currents, being one of the factors that influence the results. For performance evaluation, a test bench composed of energy analyzer, torque sensor and measuring instruments was used, and the drive of the prototype was carried out through an induction motor controlled by a frequency inverter. Among the results found, it was verified the presence of harmonics that impact on the values obtained from the prototype. The tests performed, simulation and electrical parameters, indicated results appropriate to the performance of a three-phase electric machine, however changes are needed for a better performance of the prototype.
314

Les territoires aéroportuaires comme catalyseurs de la connaissance et source d’innovation pour les métropoles mondiales : de l'airport city à l'aerotropolis ? / Airport territories as catalyist of knowledge and innovation for world metropolis : from Airport city to aerotropolis ?

Grangé, Jacques 19 September 2018 (has links)
Le développement du trafic aérien international est une composante majeure de la croissance des échanges internationaux intervenue depuis la seconde guerre mondiale. La traduction terrestre en est le développement des plateformes aéroportuaires. Avec les dérégulations intervenues dans les années 1990 les hubs sont des éléments majeurs de l’espace européen. Ils ont généré des territoires aéroportuaires allant au-delà des limites administratives et domaniales des aéroports ; ceux-ci sont des espaces importants de l’économie de la connaissance et de l’innovation. A ce titre, ils sont des polarités métropolitaines majeures. Nous en avons choisi trois majeures situées sur deux continents : Paris- Charles de Gaulle, Amsterdam- Schiphol et Seoul- Incheon. En raison de leur accessibilité multimodale synchrone, ces aéroports sont parties prenantes de territoires aéroportuaires importants et multifonctionnels. Ils participent sous de formes et des degrés divers à l’économie de la connaissance et de l’innovation et en particulier à ses circulations. / The development of international air traffic is a major component of the international exchanges occurred since the Second World War. The terrestrial translation is the development of airport. With the deregulations occurred in the years the 1990, hubs are major elements of European space. They generated airport territories going beyond the administrative and domanial limits of the airports; those are important spaces of the knowledge and innovation economy. For this reason, they are major metropolitan polarities. We chose three major located out of two continents: Paris Charles de Gaulle, Amsterdam Schiphol and Seoul Incheon... Because of their synchronous multimode accessibility, these airports are recipients of important and multipurpose airport territories. They take part in various forms and degrees in the knowledge and innovation economy and in particular in its circulations
315

NON-BLOCKING ROLL-FORWARD RECOVERY APPROACH FOR DISTRIBUTED SYSTEMS

Surapu Reddy, Padmakar Reddy 01 December 2009 (has links)
In this work, a new roll-forward check pointing scheme is proposed using basic checkpoints. The direct-dependency concept used in the communication-induced check pointing scheme has been applied to basic checkpoints to design a simple algorithm to find a consistent global checkpoint. Both blocking (i.e. when the application processes are suspended during the execution of the algorithm) and non-blocking approaches have been presented. The use of the concept of forced checkpoints ensures a small re-execution time after recovery from a failure. The proposed approaches enjoy the main advantages of both the synchronous and the asynchronous approaches, i.e. simple recovery and simple way to create checkpoints. Besides, in the proposed blocking approach direct-dependency concept is implemented without piggybacking any extra information with the application message. A very simple scheme for avoiding the creation of useless checkpoints has also been proposed.
316

Squelettes algorithmiques méta-programmés : implantations, performances et sémantique / Metaprogrammed algorithmic skeletons : implementations, performances and semantics

Javed, Noman 21 October 2011 (has links)
Les approches de parallélisme structuré sont un compromis entre la parallélisation automatique et la programmation concurrentes et réparties telle qu'offerte par MPI ou les Pthreads. Le parallélisme à squelettes est l'une de ces approches. Un squelette algorithmique peut être vu comme une fonction d'ordre supérieur qui capture un algorithme parallèle classique tel qu'un pipeline ou une réduction parallèle. Souvent la sémantique des squelettes est simple et correspondant à celle de fonctions d'ordre supérieur similaire dans les langages de programmation fonctionnels. L'utilisation combine les squelettes disponibles pour construire son application parallèle. Lorsqu'un programme parallèle est conçu, les performances sont bien sûr importantes. Il est ainsi très intéressant pour le programmeur de disposer d'un modèle de performance, simple mais réaliste. Le parallélisme quasi-synchrone (BSP) offre un tel modèle. Le parallélisme étant présent maintenant dans toutes les machines, du téléphone au super-calculateur, il est important que les modèles de programmation s'appuient sur des sémantiques formelles pour permettre la vérification de programmes. Les travaux menés on conduit à la conception et au développement de la bibliothèque Orléans Skeleton Library ou OSL. OSL fournit un ensemble de squelettes algorithmiques data-parallèles quasi-synchrones. OSL est une bibliothèque pour le langage C++ et utilise des techniques de programmation avancées pour atteindre une bonne efficacité. Les communications se basent sur la bibliothèque MPI. OSL étant basée sur le modèle BSP, il est possible non seulement de prévoir les performances des programmes OSL mais également de fournir une portabilité des performances. Le modèle de programmation d'OSL a été formalisé dans l'assistant de preuve Coq. L'utilisation de cette sémantique pour la preuve de programmes est illustrée par un exemple. / Structured parallelism approaches are a trade-off between automatic parallelisation and concurrent and distributed programming such as Pthreads and MPI. Skeletal parallelism is one of the structured approaches. An algorithmic skeleton can be seen as higher-order function that captures a pattern of a parallel algorithm such as a pipeline, a parallel reduction, etc. Often the sequential semantics of the skeleton is quite simple and corresponds to the usual semantics of similar higher-order functions in functional programming languages. The user constructs a parallel program by combined calls to the available skeletons. When one is designing a parallel program, the parallel performance is of course important. It is thus very interesting for the programmer to rely on a simple yet realistic parallel performance model. Bulk Synchronous Parallelism (BSP) offers such a model. As the parallelism can now be found everywhere from smart-phones to the super computers, it becomes critical for the parallel programming models to support the proof of correctness of the programs developed with them. . The outcome of this work is the Orléans Skeleton Library or OSL. OSL provides a set of data parallel skeletons which follow the BSP model of parallel computation. OSL is a library for C++ currently implemented on top of MPI and using advanced C++ techniques to offer good efficiency. With OSL being based over the BSP performance model, it is possible not only to predict the performances of the application but also provides the portability of performance. The programming model of OSL is formalized using the big-step semantics in the Coq proof assistant. Based on this formal model the correctness of an OSL example is proved.
317

Semi-synchronous video for deaf telephony with an adapted synchronous codec

Ma, Zhenyu January 2009 (has links)
Magister Scientiae - MSc / Communication tools such as text-based instant messaging, voice and video relay services, real-time video chat and mobile SMS and MMS have successfully been used among Deaf people. Several years of field research with a local Deaf community revealed that disadvantaged South African Deaf people preferred to communicate with both Deaf and hearing peers in South African Sign Language as opposed to text. Synchronous video chat and video relay services provided such opportunities. Both types of services are commonly available in developed regions, but not in developing countries like South Africa. This thesis reports on a workaround approach to design and develop an asynchronous video communication tool that adapted synchronous video codecs to store-and-forward video delivery. This novel asynchronous video tool provided high quality South African Sign Language video chat at the expense of some additional latency. Synchronous video codec adaptation consisted of comparing codecs, and choosing one to optimise in order to minimise latency and preserve video quality. Traditional quality of service metrics only addressed real-time video quality and related services. There was no such standard for asynchronous video communication. Therefore, we also enhanced traditional objective video quality metrics with subjective assessment metrics conducted with the local Deaf community. / South Africa
318

Interação e autismo : uso de agentes inteligentes para detectar déficits de comunicação em ambientes síncronos

Rabello, Roberto dos Santos January 2010 (has links)
Os seres humanos dependem da interação social para desenvolver-se e evoluir, principalmente nos aspectos cognitivos. Este princípio é abordado principalmente por autores como Vigotsky (1998), que considera a interação social como o motor do desenvolvimento cognitivo humano. Em contrapartida, no caso das pessoas com autismo, conforme Hobson (1993), a sua característica principal é a limitação ou deficiência que apresenta na sua capacidade de ter um “sentido da relação pessoal” e de experimentar essa relação, ou, dito de outra forma, de criar um significado para a interação social e, consequentemente, participar da mesma. Essa limitação de comunicação de pessoas com autismo se caracteriza na dificuldade de utilizar, com sentido, todos os aspectos da comunicação verbal e não-verbal. Incluindo gestos, expressões faciais, linguagem corporal, ritmo e modulação da linguagem verbal, da ecolalia. A interação social, antes realizada através das relações presenciais, foi, ao longo da história, transformando-se através da interposição de inúmeras formas de mediação, entre as quais encontramos as comunicações mediadas por computador. Apesar do amplo uso do computador na educação especial, ainda são poucas as pesquisas que abordam o uso desta tecnologia na interação com pessoas com autismo, principalmente no que se refere ao seu uso como ferramenta para mediação de comunicação. Isto foi, sem dúvida, um dos motivos que levaram a pesquisar mais sobre o assunto e que acabou gerando esta pesquisa. Assim, esta pesquisa visa identificar como podemos inferir computacionalmente, a partir da análise de uma conversação online com um sujeito com autismo, os déficits de comunicação presentes nessa conversação de tal forma que possa ser oferecido algum tipo de compensação utilizando agentes inteligentes. Este mecanismo de compensação deve melhorar a comunicação e, consequentemente, a interação social, como pode ser percebido apenas com a utilização de um simples comunicador como o MSN. Podemos destacar os resultados da pesquisa, pois obtivemos uma efetividade grande no que diz respeito à detecção dos principais déficits conversacionais de pessoas com autismo. Dentre os déficits selecionados para detecção, encontram-se ecolalia, ausência de interação, interação reativa, ausência de saudação e inversão pronominal. É importante salientar que todos os diálogos coletados e que apresentaram déficits durante a fase inicial foram submetidos ao sistema multiagentes, comprovando a sua eficiência. / Human beings depend on social interaction to develop and evolve, mainly in relation to cognitive aspects. This principle is mainly approached by authors like Vygotsky (1998) who considers social interaction an engine of the human cognitive development. On the other hand, in case of people with autism, according to Hobson (1993), its main characteristic is constraint or deficiency that is demonstrated in its capacity of having a “sense of personal relationship” and of experiencing this relationship, that is, of creating a meaning for social interaction and, as a result, to participate of it. This communication constraint of people with autism is characterized by the difficulty to use all aspects of verbal and non-verbal communication meaningfully, including gestures, facial expressions, body language, rhythm, and modulation of verbal language, of echolalia. Previously carried out through in contact relationships, social interaction has been changed through overlapping of countless ways of mediation of which communications mediated through computer are found. Despite the ample use of computer in special education, yet there are a few studies that address the use of this technology in the interaction with people with autism, mainly when it refers to its use as a tool for mediating communication. This was one of the reasons that triggered me to investigate more about autism, and this study is a result of this investigation. Therefore, this investigation aims to identify how one can infer computationally, starting from the analysis of an on-line conversation with the subject with autism, the deficits of communication present in this conversation in a way that some kind of compensation using intelligent agents can be offered This mechanism of conversation should improve communication and, consequently, social interaction, as it can only be noticed by the use of a simple communicator such as MSN. The results of this study can be highlighted as of great effectiveness regarding detection of main conversational deficits of people with autism. Among the deficits selected for detection are echolalia, absence of interaction, reactive interaction, lack of greeting ritual and inversions with pronouns. It is relevant to emphasize that all collected dialogs that present deficits during the initial phase were submitted to the multi-agent system (MAS) in order to certify of their efficiency.
319

Métodos para determinação de parâmetros de máquinas síncronas de ímãs permanentes

Homrich, Guilherme January 2016 (has links)
A teoria de duplo eixo é geralmente utilizada para modelar e caracterizar máquinas síncronas de polos salientes. O conhecimento das indutâncias de eixo direto e eixo em quadratura são fundamentais para o desenvolvimento destes modelos e para o projeto de controladores destas máquinas. No entanto, métodos tradicionais para determinação destas indutâncias através de ensaios tornam-se impraticáveis em máquinas síncronas de ímãs permanentes pela impossibilidade de controlar a corrente de campo. Recentemente, a IEEE publicou o Std. 1812, chamado Trial-Use Guide for Testing Permanent Magnet Machines, que pode servir de guia para obtenção da reatância de eixo direto Xd. Esta norma não sugere formas de determinar a reatância de eixo em quadratura Xq, mas existem diferentes métodos para calcular este parâmetro a partir de dados coletados em testes, geralmente envolvendo medição de ângulo de carga. O objetivo deste trabalho é propor e analisar dois métodos alternativos para determinar as reatâncias do modelo de duplo eixo através de ensaios aplicados a um gerador síncrono de ímãs permanentes (GSIP) de 1,5 kW. O primeiro é baseado em predição de ângulo de carga e o segundo é baseado em medição de ângulo de carga. O primeiro combina ensaios a vazio e de curto circuito com análise do diagrama fasorial para descrever o ângulo de carga como função de grandezas elétricas facilmente mensuráveis. O segundo propõe um método de medição de ângulo de carga com auxílio de um encoder incremental. Resultados comprovam que é possível determinar indutâncias do modelo de duplo eixo com as equações desenvolvidas desde que o conteúdo harmônico não seja elevado. / A teoria de duplo eixo é geralmente utilizada para modelar e caracterizar máquinas síncronas de polos salientes. O conhecimento das indutâncias de eixo direto e eixo em quadratura são fundamentais para o desenvolvimento destes modelos e para o projeto de controladores destas máquinas. No entanto, métodos tradicionais para determinação destas indutâncias através de ensaios tornam-se impraticáveis em máquinas síncronas de ímãs permanentes pela impossibilidade de controlar a corrente de campo. Recentemente, a IEEE publicou o Std. 1812, chamado Trial-Use Guide for Testing Permanent Magnet Machines, que pode servir de guia para obtenção da reatância de eixo direto Xd. Esta norma não sugere formas de determinar a reatância de eixo em quadratura Xq, mas existem diferentes métodos para calcular este parâmetro a partir de dados coletados em testes, geralmente envolvendo medição de ângulo de carga. O objetivo deste trabalho é propor e analisar dois métodos alternativos para determinar as reatâncias do modelo de duplo eixo através de ensaios aplicados a um gerador síncrono de ímãs permanentes (GSIP) de 1,5 kW. O primeiro é baseado em predição de ângulo de carga e o segundo é baseado em medição de ângulo de carga. O primeiro combina ensaios a vazio e de curto circuito com análise do diagrama fasorial para descrever o ângulo de carga como função de grandezas elétricas facilmente mensuráveis. O segundo propõe um método de medição de ângulo de carga com auxílio de um encoder incremental. Resultados comprovam que é possível determinar indutâncias do modelo de duplo eixo com as equações desenvolvidas desde que o conteúdo harmônico não seja elevado.
320

Elastic circuits in FPGA

Silva, Thiago de Oliveira January 2017 (has links)
O avanço da microeletrônica nas últimas décadas trouxe maior densidade aos circuitos integrados, possibilitando a implementação de funções de alta complexidade em uma menor área de silício. Como efeito desta integração em larga escala, as latências dos fios passaram a representar uma maior fração do atraso de propagação de dados em um design, tornando a tarefa de “timing closure” mais desafiadora e demandando mais iterações entre etapas do design. Por meio de uma revisão na teoria dos circuitos insensíveis a latência (Latency-Insensitive theory), este trabalho explora a metodologia de designs elásticos (Elastic Design methodology) em circuitos síncronos, com o objetivo de solucionar o impacto que a latência adicional dos fios insere no fluxo de design de circuitos integrados, sem demandar uma grande mudança de paradigma por parte dos designers. A fim de exemplificar o processo de “elasticização”, foi implementada uma versão síncrona da arquitetura do microprocessador Neander que posteriormente foi convertida a um Circuito Elástico utilizando um protocolo insensível a latência nas transferências de dados entre os processos computacionais do design. Ambas as versões do Neander foram validadas em uma plataforma FPGA utilizando ferramentas e fluxo de design síncrono bem estabelecidos. A comparação das características de timing e área entre os designs demonstra que a versão Elástica pode apresentar ganhos de performance para sistemas complexos ao custo de um aumento da área necessária. Estes resultados mostram que a metodologia de designs elásticos é uma boa candidata para projetar circuitos integrados complexos sem demandar custosas iterações entre fases de design e reutilizando as já estabelecidas ferramentas de design síncrono, resultando em uma alternativa economicamente vantajosa para os designers. / The advance of microelectronics brought increased density to integrated circuits, allowing high complexity functions to be implemented in smaller silicon areas. As a side effect of this large-scale integration, the wire latencies became a higher fraction of a design’s data propagation latency, turning timing closure into a challenging task that often demand several iterations among design phases. By reviewing the Latency-Insensitive theory, this work presents the exploration of the Elastic Design methodology in synchronous circuits, with the objective of solving the increased wire latency impact on integrated circuits design flow without requiring a big paradigm change for designers. To exemplify the elasticization process, the educational Neander microprocessor architecture is synchronously implemented and turned into an Elastic Circuit by using a latency-insensitive protocol in the design’s computational processes data transfers. Both designs are validated in an FPGA platform, using well known synchronous design tools and flow. The timing and area comparison between the designs demonstrates that the Elastic version can present performance advantages for more complex systems at the price of increased area. These results show that the Elastic Design methodology is a good candidate for designing complex integrated circuits without costly iterations between design phases. This methodology also leverages the reuse of the mostly adopted synchronous design tools, resulting in a cost-effective alternative for designers.

Page generated in 0.041 seconds