Tutorial: Auto-Balanceamento EV3 Robot Este tutorial irá mostrar-lhe como construir e programar um auto-equilíbrio LEGO MINDSTORMS EV3 robô que pode dirigir em torno de uma sala. Você pode construir e programar BALANC3R (esquerda) ou Gyro Boy (direita). Uma vez que seu robô esteja funcionando, você será desafiado a personalizar a construção eo programa para inventar seu próprio robô de equilíbrio. Etapa 1: Construindo um robô Para começar, escolha o robô que deseja construir e siga as instruções de construção passo a passo. Requisitos para o BALANC3R: Requisitos para o Gyro Boy: Etapa 2: Instalando o EV3 Gyro Sensor block Se você estiver usando o LEGO MINDSTORMS EV3 Home Edition, você precisará instalar o EV3 Gyro Sensor antes de programar o seu robô. Siga as etapas neste artigo para instalar o bloco. Se você estiver utilizando o LEGO MINDSTORMS EV3 Student Edition, este bloco já está instalado. Instalação de novos blocos de sensoresStep 3: Faça o download do projeto do robot de balanceamento Clique com o botão direito do mouse neste link. Clique em 8220Save Link As, 8221 e salve o arquivo de projeto em seu computador. Inicie o software de programação EV3 e abra o arquivo de projeto baixado. Antes de executar os programas, let8217s examinar brevemente como eles funcionam. O projeto inclui quatro programas de exemplo, dois para cada robô: BALANC3R-Basics. Balance no lugar, vire à direita e vire à esquerda BALANC3R-RemoteControl. Controle o robô com o remoto infravermelho GyroBoy-Basics. Balance no lugar, vire à direita e vire à esquerda GyroBoy-AvoidObstacles. Conduzir ao mesmo tempo evitando obstáculos Cada programa consiste em dois blocos de configuração. Um loop de equilíbrio. E um loop de controlo da unidade. Como mostrado na figura abaixo. O programa de balanceamento consiste em um loop de equilíbrio, um loop de controle de unidade e blocos de configuração. Os blocos de configuração permitem especificar o aspecto do robô, para que o robô saiba como equilibrar. Por exemplo, a segunda configuração da primeira configuração especifica o diâmetro das rodas do robô. Os programas de exemplo vêm pré-configurados com as configurações corretas para BALANC3R e Gyro Boy se você usar o LEGO EV3 Gyro Sensor. Se você usar o NXT HiTechnic Gyro, altere a configuração Choose Sensor no Initialize My Block para 1. O loop de equilíbrio mantém o robô equilibrado. Ele mede e calcula a posição ea velocidade dos motores, e determina a velocidade angular do robô (quão rápido ele está caindo), bem como o ângulo do robô em relação ao solo. Por sua vez, usa esta informação do sensor para calcular como conduzir os motores a fim manter o robô acima da direita. Você não precisará alterar qualquer configuração dos blocos neste loop. A alavanca de controle de acionamento controla a velocidade ea direção do robô quando ele circula em uma sala usando um bloco de movimento simplificado. Esta é a parte do programa que você pode facilmente personalizar para criar seu próprio programa. Etapa 4: Executando o programa de exemplo básico Agora você está pronto para baixar o programa de exemplo para o seu robô. Se você já construiu BALANC3R, comece com BALANC3R-Basics. Se você tiver construído o Gyro Boy, comece com o GyroBoy-Basics. Para iniciar o programa: Mantenha o robô ereto com as rodas no chão. Não segure firmemente, mas mantenha-o frouxamente para que fique apenas entre cair para a frente e cair para trás. Selecione o programa e inicie-o com o botão central no tijolo EV3. Você primeiro ouve um bipe. Mantenha o robô no lugar. Você ouvirá um duplo bip. Agora solte o robô e deixe-o equilibrar. Seu robô deve agora repetidamente equilíbrio no local por 7 segundos, vire à direita por 7 segundos e vire à esquerda por 7 segundos. Siga estas etapas se o robô não equilibrar: Se ele doesn8217t trabalho na primeira tentativa, repita as etapas acima de algumas vezes. Depois de um tempo, you8217ll saber qual é a posição de partida 8220upright8221 correta. Não tente equilibrar o equilíbrio do robô. Claro que você deve pegar o robô antes que ele caia, mas tentar mantê-lo ereto com as mãos é contra-eficaz. Verifique se os cabos foram conectados corretamente de acordo com as instruções do prédio: Os dois motores grandes devem ser conectados às portas A e D. (Se você os tiver trocado acidentalmente, o robô confundirá as curvas esquerda e direita, mas o balanceamento não será afetado .) O sensor Gyro deve ser conectado à porta de entrada 2, independentemente do sensor que você usar. Verifique se você montou corretamente o sensor Gyro de acordo com as instruções de construção. Verifique se as pilhas estão frescas. Verifique se você está usando o firmware EV3 mais recente (1.06H ou 1.06E). Passo 5: Executando o segundo programa de exemplo Se você tiver programado com sucesso o seu robô na etapa anterior, é fácil experimentar o outro programa de exemplo para o seu robô. O robô equilibra exatamente da mesma maneira, mas os movimentos do robot8217s são um pouco mais interessante: BALANC3R-RemoteControl permite que você controle BALANC3R com o controle remoto infravermelho, como mostrado no vídeo acima. Basta pressionar os botões no controle remoto para fazer o robô unidade para a frente, para trás, e vire. (Você vai descobrir os controles rapidamente.) Se você não pressionar nenhum botão, o robô apenas equilibra no mesmo lugar. GyroBoy-AvoidObstacles faz Gyro Boy drive em torno de um quarto enquanto backup de obstáculos, como mostrado no vídeo acima. Antes de executar o programa, certifique-se de que os feixes brancos dos dois braços do robot8217s apontam para baixo. O programa baseia-se nesta posição de partida para se certificar de que o sensor ultra-sônico não detecta o piso como um 8216obstacle8217 quando o braço esquerdo do robot8217s aponta para baixo. Etapa 6: Personalizando o programa Como você já aprendeu mais cedo, o loop de equilíbrio mantém o robô equilibrado enquanto o loop de controle de unidade controla a velocidade e direção do robot8217s. Os dois loops funcionam simultaneamente, ou ao mesmo tempo. No loop de controle de unidade, você usa o Move My Block para especificar a velocidade e direção do robot8217s. como mostrado abaixo. O bloco Mover faz o robô dirigir e dirigir. Nesta configuração, o robô dirige-se para a frente (30) enquanto gira para a esquerda (-15). O robô mantem dirigir ou girar na taxa especificada até que você execute o bloco outra vez com valores diferentes para a velocidade ea direção. A figura abaixo mostra o Move My Block em ação no programa de exemplo básico que você executou na etapa 4. O primeiro bloco Move ajusta a direção ea velocidade para 0, o que torna o equilíbrio do robô no lugar sem girar. Em seguida, um bloco de espera pausa o loop por 7 segundos, mantendo o robô no mesmo lugar. Em seguida, um segundo bloco Mover define o valor da direção como 20, fazendo o robô virar para a direita. Depois de mais 7 segundos de espera, o robô inicia a afinação para a esquerda ajustando o valor da direção para -20. Agora que você aprendeu a controlar o robô, é hora de colocar suas habilidades ao teste com desafios de programação. Para resolver esses desafios, você pode usar as técnicas do livro de descoberta LEGO MINDSTORMS EV3. Apresentados nos capítulos 1-9. Em vez de usar Move Steering blocos no modo On como nos programas de exemplo, você usar Move My Blocks como mostrado acima. Desafios para BALANC3R: Faça o seu robô em torno de uma unidade ao mesmo tempo evitando obstáculos com o sensor infravermelho no modo de proximidade. Faça o seu robô seguir o infravermelho Beacon. À medida que você move o farol, o robô deve segui-lo. Coloque o Sensor de Cor na frente das rodas do robô, e faça o robô seguir uma linha. Você pode imprimir linha seguindo faixas para seu robô daqui. Desafios para Gyro Boy: Faça a sua unidade de robô em diferentes direcções com base na cor que detecta com o sensor de cor. Para fazer isso, faça o robô esperar pelo sensor para ver um objeto amarelo, vermelho, verde ou azul. Então, faça-o dirigir em uma determinada direção por 3 segundos com base na cor detectada, antes de esperar por um novo sinal de cor. Faça seu robô mostrar diferentes tipos de faceseyes na tela como você interage com seus sensores. Mostre um rosto irritado se você pressionar o sensor de toque, mostrar uma face feliz quando você acionar o sensor de cor, e assim por diante. Etapa 7: Fazendo seu próprio robô balanceador Nas etapas anteriores, você fez o balanço BALANC3R ou Gyro Boy em duas rodas e você aprendeu a controlá-lo com o Move My Block. Agora que você tem os componentes essenciais funcionando, você está pronto para personalizar seu robô e seu programa. Por exemplo, você pode transformar BALANC3R em um humanóide de vida com braços e fazê-lo falar com você. Ou, enlouquecer e fazer qualquer veículo EV3 equilíbrio em suas rodas traseiras. E quanto a um auto-equilíbrio F1 carro de corrida de estilo. O que quer que você faça, deixe outro saber nos comentários abaixo. Edifício feliz Passo 8: Leitura adicional Para tornar este tutorial acessível para todos com um conjunto EV3, eu não cobrei os detalhes do algoritmo de balanceamento. Em vez disso, o design deste programa torna possível controlar o robô mesmo se você don8217t saber exatamente como funciona o mecanismo de equilíbrio. No entanto, muitos artigos têm sido escritos sobre robôs auto-balanceados e eu encorajo você a ler mais sobre o assunto enquanto você explora os detalhes do programa EV3 fornecido nesta página. O algoritmo de equilíbrio neste programa é baseado em uma tese de bacharelado escrito por Steven Witzand. Que fornece uma boa visão geral do assunto, juntamente com código-fonte Java que implementa o algoritmo de balanceamento. Por sua vez, este artigo baseia-se na concepção e algoritmo utilizado no NXTway-GS por Yorihisa Yamamoto. Que você pode estudar para mais detalhes. O Gyro não está necessariamente quebrado. Pode apenas precisar de ser recalibrado. Para fazer isso, desconecte o sensor do tijolo e conecte-o de volta. Para obter os melhores resultados, isso deve ser feito enquanto o robô pousa no chão ou na mesa, de modo que não se mova durante a calibração. I8217ll adicione isso à seção de solução de problemas. O programa não conta para isso, fazendo a sua própria calibração, mas o LEGO Gyro Sensor pode ser muito longe quando it8217s se movendo muito quando você ligá-lo. Eu não queria rasgar meu carro para baixo, então eu usei sensores e motores do meu NXT Kit Para fazer o trabalho Balanc3r, eu tive que reorganizar alguns itens em suas instruções de construção. Quando eu executei o programa, peguei um bip, depois 2 bipes e então o robô começou a balançar, esperou por 7 segundos e depois foi direto para a alta velocidade, caiu e parou com 8220ERROR8221 mostrando na tela. Antes de aprofundar o seu programa de aprendizagem, vou tentar o seu programa usando o carro formul3r como o robô. Se isso falhar, então eu vou terminar de ler seu livro e tentar construir o robô de acordo com suas instruções. Obrigado por postar isso, I8217m bastante novo para mindstorms. I8217ve ben trabalhando em traduzir o programa de bot de balanceamento HiTechnic (NXT-G) para (EV3-G). I8217ll continuar trabalhando nele e compará-lo ao seu programa (que funciona muito bem) e ver se um é melhor do que o outro. Obrigado novamente. P. S Eu tentei seu programa com um bot como o bot Educator feito a partir de 31313, e um bot diferente do meu próprio projeto e ainda funcionou. Está tudo bem se eu postar o link para aqui na Comunidade Mindstorms e fotos do seu bot Como eu tenho apenas um grande motor está disponível para agora, eu fiz um único motor, mas 2 rodas base robô em BALANCE3R com pequena mudança na estrutura do robô e programa . É capaz de manter-se estável e avançar para frente, mas não pode dirigir (é claro que não pode). É o meu primeiro robô de auto-equilíbrio. Obrigado Laurens Uma pergunta, o ReadEncoder bloco contém um parâmetro 57.3. O que significa este valor Depende da estrutura do robô, ou seja, o robô é maior e maior do que BALANCE3R eu preciso mudar este valor Cool para ouvir você fez um robô modificado. 57,3 é 180 PI. Eu uso para converter entre graus e radianos. Com os ângulos medidos em radianos, é mais fácil calcular a distância percorrida e a velocidade. (Raio do ângulo da volta da distância e raio da taxa da volta da velocidade.) Como I8217ve visto com algum, eu construí BALANC3R mas mantive começ o ERRO no tijolo depois que funcionou rapidamente e caiu sobre. Eu tentei uma dúzia de vezes ou mais sem sucesso. Eu verifique minhas versões de compilação e firmware e tudo estava correto. Então, do nada funcionou uma vez 8211 Eu estava tão animado O que eu aprendi ao longo do tempo é que a mensagem ERROR ocorre sempre que o robô não consegue encontrar seu senso de equilíbrio. Para mim, é um procedimento muito delicado colocar o robô apenas na posição correta (cada um tão ligeiramente inclinado para trás a partir de uma posição de equilíbrio), de modo que quando ele começa a correr ele se equilibra. Além disso, eu delicadamente segurá-lo ereto com a menor quantidade de pressão, de modo a não dificultar o seu movimento quando ele começa sob seu próprio poder. Agora que eu pratiquei, eu posso fazer isso funcionar corretamente cerca de 90 do tempo. Oi Laurens, it8217s Andre, do Brasil. Em primeiro lugar, obrigado por compartilhar todas as informações conosco, I8217m certeza you8217ll ter sucesso em seu MSc I8217ve construído o robô de acordo com suas instruções, mas eu tenho um Dexter Gyro e eu aviso que o arquivo compartilhado não é concluída para este sensor . É possível para você me ajudar a fazê-lo funcionar Como completar o programa e quais devem ser os valores certos para kP, kI e kD Muito obrigado antecipadamente Oi Laurens, eu construí e tentei o GyroBoy e ele funciona muito bem. Primeiro eu tinha esquecido de importar os blocos de sensor que resultaram em um número de erros listados acima: ERROR, movendo-se rapidamente para trás (no meu caso), 8230 Importando e ativando os blocos de sensores e reiniciando LabView cuidou disso. Eu estava olhando para o seu código e encontrar variáveis () em blocos de programação cinza. A paleta mostra os blocos padrão (verde, amarelo, azul, vermelho, etc8230), mas sem blocos de cinza. Você pode me dizer de onde eles vêm Obrigado antecipadamente. Atenciosamente, Frank Eles são as entradas e saídas de My Blocks. Você pode aprender mais sobre estes e como fazer o seu próprio no meu livro Ordered seu livro em 19 de março (Standaard Boekhandel), recebeu uma mensagem em 30 de março que tinha sido enviado (estava na ordem do distribuidor que por muito tempo). Obteve outra mensagem em 02 de abril que tinha sido devolvido danificado. Agora ainda aguardando a entrega (dentes de moagem8230). Não é culpa sua, é claro. Apenas para ilustrar que a paciência é uma virtude Anywho. Nós (Overpelt Lego Builders Club em associação com KWB Koersel) teve um fim de semana de construção e show há uma semana, onde eu mostrei o Gyroboy. Muito bem recebido Eyecatcher e muitas perguntas. Obrigado pelo excelente projeto Oi Laurens, Recebi o livro na última sexta-feira. E devo dizer, definitivamente vale a pena a espera Excelent Digno de uma capa dura I8217ve sido incapacitante em TI desde o final dos anos 70 (sim, século passado) e têm acumulado uma biblioteca de livros relacionados. A sua pertence aos poucos. Você sabe se há uma tradução holandesa disponível Obrigado antecipadamente. Atenciosamente, Frank De Hert Obrigado por ambos os comentários Frank, eu aprecio isso Ainda bem que você tem o livro eventualmente. Oh, como eu gostaria de ter uma edição de capa dura, haha. There8217s não atualmente uma versão holandesa. I8217d tem que encontrar um editor que queira publicá-lo. Oi, eu era capaz de construir o BALANC3R e fazer o upload do código básico. Ele funcionou muito bem .. Eu era mesmo capaz de fazer alterações para torná-lo funcionar como eu gostaria, mas o problema é como salvar o novo código que eu gero. Sempre que eu abrir o que eu salvei, as mudanças que eu fiz não estão mais no código. Ele reverte para o seu código .. Help8230 Eu amo o seu livro e seu site Obrigado alot :) Quando você baixar o código, certifique-se de salvá-lo para o seu computador em um local conhecido, como a pasta de documentos, em vez de abri-lo diretamente A partir da página (em seguida, ele termina em uma pasta temporária e você pode perder as alterações.) Deixe-me saber se isso ajuda. Ainda bem que você gosta do livro, obrigado por compartilhar Eu estou tentando construir um robô de equilíbrio usando o lego EV3 com a plataforma RobotC. O sensor usado é giroscópio e construído em codificadores de motor. Alguém pode me fornecer o código-fonte para um robô usando ev3 e robotc Olá, eu tenho construir Balanc3r usando motores nxt definir, mas com um tijolo ev3 e giro lego. Isso significa que eu tive que modificar o projeto, uma vez que os motores nxt são diferentes em termos de furos e alinhamento do eixo. Tentei manter o sensor na mesma vertical que os eixos das rodas, eo centro do tijolo no eixo da roda também. Estou usando 62.421520 pneus de diâmetro, então eu definir que para cima no programa (ainda tentando fonte alguns 43.2215228217s e jantes para eles). Tenho baterias novas. Eu abandonou o sensor de IR por enquanto, e desativou o código de movimento. Basicamente eu deveria ter um Balanc3r que está no lugar. O robô começa a se deitar, então o giroscópio não está flutuando. Posso também postar algumas fotos dele. Toda vez que eu começo o robô, ele vai em apenas uma direção (dependendo de quão bom i equilibrada) e, em seguida, vai ERRO. Eu construí o sensor de luz segway com um pouco de sucesso com o mesmo lego set improvisado, mas este com o giroscópio não é tão bem sucedido. Qualquer sugestão que eu poderia tentar (sintonizar os parâmetros) O que você quer dizer com 8220 O robô é iniciado estabelece down8221 O robô deve ser realizada na posição vertical (ver etapa 4.) Não, eu quero dizer o tijolo em si é começado plana, então não há absolutamente nenhum Movimento para compensar o giroscópio. Uma vez que o tijolo foi totalmente iniciado, o programa é executado com o robô up-right. Eu reconstruí o robô no GyroBoy, e ele funciona. Eu acho que eu preciso para tentar construir o Balanc3r diferente talvez. Oi Laurens Eu construí o Balanc3r e im amando isso, mas eu queria saber se eu queria usar o mesmo programa, mas construir um robô de maior escala com rodas maiores é que possível ou eu preciso mudar algo no código eu não sou muito bom em Ev3 codificação, mas estou tentando aprender:. Agradecemos antecipadamente Oi, I8217ve sido passando pelo seu ciclo de equilíbrio porque eu gosto de descobrir como as coisas funcionam e devo dizer que estou muito impressionado. Atualmente estou tentando construir um robô que equilibra em uma roda com a ajuda dos meus blocos que você criou aqui. Há uma parte particular do programa que eu simplesmente não posso envolver minha cabeça ao redor e estava me perguntando se você poderia ajudar. Ou seja, o bloco ReadGyro. Eu simplesmente não entendo o que está acontecendo no início do código e por quê. A seguinte é a pergunta principal que tenho. GtgtO que a variável 8216mean8217 representa eu tentei por tanto tempo e couldn8217t entender por que a média subtraída do valor atual dá a velocidade angular. Eu pensei que o valor outputted do bloco de GyroRate era a própria velocidade angular. Se você pudesse lançar alguma luz sobre isso eu realmente aprecio isso. Obrigado e sempre um fã Para todos aqueles que recebem ERRO: Isso significa que o robô não consegue encontrar o seu equilíbrio. Leia atentamente as instruções: o robô deve estar em equilíbrio ao iniciar o programa, o que significa que ele deve ficar parado se você o deixar sem iniciar o programa. Em seguida, inicie o programa, e no primeiro beep você deve deixá-lo e ele vai encontrar o seu equilíbrio. Isso não funciona todas as vezes, então tente várias vezes até que você acertar. Você vai aprender progressivamente como iniciá-lo. Além disso, don8217t esquecer de baixar e instalar o driver (ou bloco) para o sensor de giroscópio do site Mindstorms de acordo com as instruções na Etapa 2 acima. Sem o driver instalado, o robô nunca funcionará, o que você tentar. E, eu acho que o apoio (Gyro-Boy edifício instruções passos 1 a 17) ajuda muito bem para manter o robô até à direita ao iniciar o programa. Como Fred disse: o robô precisa estar em seu equilíbrio ao iniciar o programa. É neste momento que a posição do giroscópio sensor é zerado. Se isto acontecer quando o robot é, e. Inclinando-se para a frente (mesmo que apenas um grau), o robô sempre tentará ajustar as deflexões para essa posição zero, que está inclinada para a frente. Isso sempre acabará em um status ERROR. Oi, i8217m tentando obter o Balanc3r com controle remoto infravermelho um ultra-som extra e sensor de botão para fazer barulho quando alguém se aproxima ou dizer algo quando você aperta o botão. Mas agora parece que as funções de balanceamento podem manter-se e o robô cair. Existe uma maneira de deixá-los trabalhar juntos ou é o processador não é rápido o suficiente para calcular todo o código Quando eu assisti o robô de equilíbrio NXTway-GS eu notei que é drives muito mais rápido, então o balanc3r, isso é possível com EV3 ou não Thanx em Avanço, Allan Oi, eu sou aposentado de uma profissão técnica e eu descobri Lego e Mindstrom graças a você livro, com muita diversão tanto para mim e meus netos. Obrigado pelo seu site muito interessante que eu construí Gyroboy e fez algumas modificações: Eu mudei a posição do detector de cor para que ele permite que gyroboy para andar sobre uma mesa sem cair fora dela. Veja também: dropboxs4w139ciwmyzif51Gyroboy20on20table. movdl0 Eu também adicionei o sensor de infravermelho para ser capaz de conduzir Gyroboy. No entanto, eu tentei mudar o bip antes do loop de condução em seu exemplo de programa para ter Gyroboy dizer: 8220Let8217s ir agora8221, mas parece que ele interrompe o loop de equilíbrio muito tempo, porque ele faz cair na maioria das vezes8230. Existe uma maneira de fazer isso sem interromper o loop muito tempo Oi, I8217m um pesquisador em robótica e AI e estou interessado em usar isso como parte da minha pesquisa, it8217s um controlador muito bem construído Eu só tenho duas perguntas que eu don8217t entender Sobre o código usado, se você don8217t mente me dando algumas informações 1) Ao obter a velocidade do motor e valores de posição do motor, você divide ambos por 57,3. Isso é apenas uma constante? Caso contrário, qual é a finalidade desse número? 2) Quando você obtém a taxa angular e usá-lo na média de corrida, você usa dt x 0,2. Por que você o multiplica por 0.2 Você pode estar interessado em usar (e referenciar) meu código mais novo em vez disso (githublaurensvalksegway). Ele remove algumas etapas supérfluas ainda presentes neste código. 1) It8217s 180pi. Isso soa um sino 2) It8217s um parâmetro para definir a taxa de atualização do deslocamento giroscópio. Toda vez que eu executar o programa, ambos os motores grandes irão executar de repente 100 por cerca de 2 segundos e depois pararão. Em seguida, uma mensagem que diz ERROR aparece na tela. Você sabe como eu posso corrigir isso Qualquer ajuda seria muito apreciadaDocumentação Fading Canais Visão geral dos canais de desvanecimento Usando o sistema de comunicação Toolboxx2122 você pode implementar canais de desvanecimento usando objetos ou blocos. Rayleigh e Rician fading canais são modelos úteis de fenômenos do mundo real em comunicações sem fio. Esses fenômenos incluem efeitos de dispersão de múltiplos caminhos, dispersão de tempo e deslocamentos Doppler que surgem do movimento relativo entre o transmissor e o receptor. Esta seção fornece uma breve visão geral dos canais de desvanecimento e descreve como implementá-los usando a caixa de ferramentas. A figura abaixo ilustra caminhos diretos e principais refletidos entre um transmissor de rádio estacionário e um receptor em movimento. As formas sombreadas representam reflectores, tais como edifícios. Os caminhos principais resultam na chegada de versões retardadas do sinal no receptor. Além disso, o sinal de rádio sofre dispersão em uma escala local para cada caminho principal. Tal dispersão local é caracterizada tipicamente por um grande número de reflexões por objectos perto do móvel. Estes componentes irresolúveis combinam no receptor e dão origem ao fenômeno conhecido como desvanecimento multipath. Devido a este fenómeno, cada caminho principal comporta-se como um caminho de desvanecimento discreto. Tipicamente, o processo de desvanecimento é caracterizado por uma distribuição de Rayleigh para um caminho sem linha de visão e uma distribuição de Rician para um percurso de linha de visão. O movimento relativo entre o transmissor e o receptor provoca deslocamentos Doppler. A dispersão local geralmente vem de muitos ângulos ao redor do celular. Este cenário provoca uma gama de deslocamentos Doppler, conhecida como espectro Doppler. O deslocamento Doppler máximo corresponde aos componentes de dispersão local cuja direcção se opõe exactamente à trajectória dos telemóveis. Implementar um canal de desvanecimento usando um objeto Um modelo de canal de banda base para cenários de propagação de caminhos múltiplos que você implementa usando objetos inclui: N caminhos de desvanecimento discretos, cada um com seu próprio atraso e ganho de potência médio. Um canal para o qual N 1 é chamado canal de desvanecimento de frequência-plano. Um canal para o qual N gt 1 é experimentado como um canal de desvanecimento selectivo de frequência por um sinal de largura de banda suficientemente larga. Um modelo de Rayleigh ou Rician para cada caminho. Modelagem de caminho de canal padrão usando um espectro Doppler Jakes, com um deslocamento Doppler máximo que pode ser especificado. Outros tipos de espectros Doppler permitidos (idênticos ou diferentes para todos os caminhos) incluem: Jakes planos, restritos, Jakes assimétricos, Gaussianos, bi-Gaussianos e arredondados. Se o deslocamento Doppler máximo for definido como 0 ou omitido durante a construção de um objeto de canal, então o objeto modela o canal como estático (isto é, o desvanecimento não evolui com o tempo) eo espectro Doppler especificado não tem efeito no processo de desvanecimento. Algumas informações adicionais sobre valores típicos de atrasos e ganhos estão em Escolher valores de propriedade de canal realistas Implementar canal de desvanecimento usando um bloco A biblioteca de blocos Channels inclui blocos de desvanecimento Rayleigh e Rician que podem simular fenômenos do mundo real em comunicações móveis. Esses fenômenos incluem efeitos de dispersão de trajeto múltiplo, bem como deslocamentos Doppler que surgem do movimento relativo entre o transmissor e o receptor. Nota Para modelar um canal que envolva tanto o ruído Gaussiano de desvanecimento como o branco aditivo, use um bloco de canal de desvanecimento conectado em série com o bloco de canal AWGN, onde o bloco de canal de desvanecimento vem em primeiro lugar. A tabela abaixo indica as situações em que cada bloco de canal de desvanecimento é apropriado. No caso de vários caminhos principais refletidos, uma única instância do bloco de canal de desvanecimento de multipath Rayleigh pode modelar todos eles simultaneamente. O número de caminhos que o bloco usa é o comprimento do vetor Delay ou do parâmetro do vetor Gain, qualquer que seja o comprimento maior. (Se ambos os parâmetros são vetores, eles devem ter o mesmo comprimento se exatamente um desses parâmetros é um escalar, o bloco expande-o em um vetor cujo tamanho coincide com o do outro parâmetro vetorial.) Escolhendo parâmetros de bloco apropriados para a sua situação é importante. Para obter mais detalhes sobre os parâmetros de desvanecimento de blocos de canais, consulte a seção Selecionar Realistic Channel Property Values em Configurando Objetos de Canal na documentação da Caixa de Ferramentas do Sistema de Comunicações Compensate for Fading Response Um sistema de comunicação envolvendo um canal de atenuação geralmente requer componentes que compensam a Resposta de desvanecimento. As abordagens típicas para compensar o desbotamento incluem: A modulação diferencial ou um equalizador de um toque ajuda a compensar um canal de desvanecimento de frequência-plano. Consulte a página de Ajuda do bloco de base do modulador M-DPSK ou o exemplo em comparar resultados empíricos com resultados teóricos para obter informações sobre a implementação de modulação diferencial. Um equalizador com vários toques ajuda a compensar um canal de desvanecimento seletivo de freqüência. Consulte Equalização para obter mais informações. O exemplo do Link de Comunicação com Adaptação de Equalização ilustra por que é necessário compensar um canal de desvanecimento. Visualizar um canal de desvanecimento Você pode traçar uma característica de canal de desvanecimento usando ferramentas de visualização de canal. Para sistemas de comunicação que você implementa usando objetos, consulte Visualização de canais. Para sistemas de comunicação que você implementa usando blocos, existem duas maneiras de visualizar a resposta de canal de desvanecimento. Uma maneira é clicar duas vezes no bloco durante uma simulação. A segunda forma é selecionar a visualização do canal aberto no início da simulação na caixa de diálogo do bloco. Os simuladores de canal de desvanecimento de múltiplos caminhos de Rayleigh e Rician no Communications System Toolbox usam o modelo de canal de caminhos múltiplos discretos de faixa limitada da seção 9.1.3.5.2 em 1. Esta implementação assume que o perfil de potência de atraso eo espectro de Doppler Do canal são separáveis 1. O canal de desvanecimento por caminhos múltiplos é, portanto, modelado como um filtro linear de resposta ao impulso finito (FIR). Vamos denotar o conjunto de amostras na entrada para o canal. Em seguida, as amostras na saída do canal estão relacionadas a: yi x2211 n x2212 N 1 N 2 si x2212 ngn onde está o conjunto de pesos de derivação dado por: gn x2211 k 1 K ak sinc x03C4 kT s x2212 n, x00A0 X2212 N 1 x2264 n x2264 N 2 Nas equações acima: T s é o período de amostra de entrada para o canal. . Onde 1 x2264 k x2264 K. é o conjunto de atrasos de percurso. K é o número total de caminhos no canal de desvanecimento por caminhos múltiplos. . Onde 1 x2264 k x2264 K. é o conjunto de ganhos de caminho complexos do canal de desvanecimento por caminhos múltiplos. Esses ganhos de caminho não estão correlacionados entre si. N1 e N2 são escolhidos de modo que gn é pequeno quando n é menor que x2212 N1 ou maior que N2. Duas técnicas, ruído gaussiano filtrado e soma de sinusoides, são usadas para gerar o conjunto de ganhos de caminho complexos, Ak. Cada processo de ganho de caminho a k é gerado pelas seguintes etapas: Técnica de Ruído Gaussiano Filtrado Um processo Gaussiano não correlacionado complexo (branco) com média zero e variância unitária é gerado em tempo discreto. O processo Gaussiano complexo é filtrado por um filtro Doppler com resposta de freqüência H (f) S (f). Onde S (f) denota o espectro de potência Doppler desejado. O processo Gaussiano complexo filtrado é interpolado de modo que seu período de amostra seja consistente com o do sinal de entrada. Uma combinação de interpolação linear e polifásica é usada. As formas de onda de desvanecimento Rayleigh mutuamente não correlacionadas são geradas utilizando o método descrito em 2. onde i 1 corresponde ao componente em fase e i 2 corresponde ao componente em quadratura. Z k (t) x03BC k (1) (t) j x03BC k (2) (t). X2003 k 1. 2. x2026. K x03BC k (i) (t) 2 N k x 2211 n 1 N k cos (2 x03C0 f k. n (i) t x03B8 k. n (i)). X2003 i 1. 2 N k especifica o número de sinusoides usadas para modelar um único caminho. F k. N (i) é a freqüência Doppler discreta e é calculada para cada componente sinusoidal dentro de um único caminho. X03B8 k. N (i) é a fase da nª componente de x03BC k (i) e é uma i. i.d. Variável aleatória com uma distribuição uniforme ao longo do intervalo (0. 2 x03C0, t é o tempo de desvanecimento do processo As frequências de Doppler discretas, fk. n (i) com deslocamento máximo fmax são dadas por fk. n (i) F max cos (x03B1 k. n (i)) f max cos x03C0 2 N k (n x2212 1 2) x03B1 k 0 (i) x03B1 k 0 (i) x225C (x2212 1) i x2212 1 x03C0 4 N K x22C5 k K 2. x2003 i 1. x2009 2 x2009 x2009 e x2009 x2009 k 1. 2. x2026.K Para avançar o processo de desvanecimento no tempo, é introduzido um parâmetro de tempo inicial, t init. As formas de onda de desvanecimento tornam-se X03BC k (i) (t) 2 N k x2211 n 1 N k cos (2x03C0 fk. n (i) (ttinit) x03B8 k. n (i)) .2003 i 1. 2 Quando t init 0, O processo de desvanecimento inicia-se no tempo zero. Um valor positivo de init t avança o processo de desvanecimento em relação ao tempo zero enquanto mantém a sua continuidade. Mudanças de desvanecimento de canal são geradas utilizando o algoritmo GMEDS1 2. Calcular Coeficientes Complexos O processo complexo resultante de qualquer técnica Ue, z k. É dimensionado para obter o ganho de caminho médio correto. In the case of a Rayleigh channel, the fading process is obtained as: a k x03A9 k z k x03A9 k E a k 2 In the case of a Rician channel, the fading process is obtained as: a k x03A9 k z k K r. k 1 K r. k K r. k 1 e j ( 2 x03C0 f d. L O S. k t x03B8 L O S. k ) where K r. k is the Rician K-factor of the k-th path, f d. L O S. k is the Doppler shift of the line-of-sight component of the k-th path (in Hz), and x03B8 L O S. k is the initial phase of the line-of-sight component of the k-th path (in rad). At the input to the band-limited multipath channel model, the transmitted symbols must be oversampled by a factor at least equal to the bandwidth expansion factor introduced by pulse shaping. For example, if sinc pulse shaping is used, for which the bandwidth of the pulse-shaped signal is equal to the symbol rate, then the bandwidth expansion factor is 1, and at least one sample per symbol is required at the input to the channel. If a raised cosine (RC) filter with a factor in excess of 1 is used, for which the bandwidth of the pulse-shaped signal is equal to twice the symbol rate, then the bandwidth expansion factor is 2, and at least two samples per symbol are required at the input to the channel. For additional information, see the article A Matlab-based Object-Oriented Approach to Multipath Fading Channel Simulation . located on MATLAB x00AE Central. References 1 Jeruchim, M. C. Balaban, P. and Shanmugan, K. S. Simulation of Communication Systems . Second Edition, New York, Kluwer AcademicPlenum, 2000. 2 Paumltzold, Matthias, Cheng-Xiang Wang, and Bjorn Olav Hogstand. Two New Sum-of-Sinusoids-Based Methods for the Efficient Generation of Multiple Uncorrelated Rayleigh Fading Waveforms. IEEE Transactions on Wireless Communications . Vol. 8, Number 6, 2009, pp. 312282113131. Specify Fading Channels Communications System Toolbox models a fading channel as a linear FIR filter. Filtering a signal using a fading channel involves these steps: Create a channel object that describes the channel that you want to use. A channel object is a type of MATLAB variable that contains information about the channel, such as the maximum Doppler shift. Adjust properties of the channel object, if necessary, to tailor it to your needs. For example, you can change the path delays or average path gains. Note: Setting the maximum path delay greater than 100 samples may generate an 8216Out of memory error. Apply the channel object to your signal using the filter function. This section describes how to define, inspect, and manipulate channel objects. The topics are: Select Your CountryCOMMERCIAL PROPANE RESIDENTIAL PROPANE OUTDOOR LIVING FORKLIFT CYLINDERS HEATING SEASON Houston Propane Company Greens Blue Flame Gas Co. Propane Service For Home, Business and Industry Propane is used in a number of applications, the most common being a heating fuel. While the Houston heating season is limited, our location, size and industrial presence brings an inherent need for propane in many capacities. Whether the demand for standby generator fuel increases due to a Gulf hurricane, or the unseasonal demand for home heating gas rises, Blue Flame Gas is prepared for meeting and exceeding the expectations of LP Gas users in the Houston area. In addition to propane tank installation, bulk commercial and residential delivery, we have unique capabilities that set us apart from the mainstream propane industry. We serve propane vehicle fleets, propane forklift users and can often work on the engines that power them. Propane engine conversion is available at our location in northwest Houston where we can convert vehicles, generators and small engines for propane use. Our main office is also the supply point for our bulk delivery bobtails and home to our service and operations staff. Greens Blue Flame Gas Company is Houston based, family owned and service oriented. For exceptional propane service, call us today Serving Houston, Magnolia, Tomball, Waller, Hockley, Hempstead, Katy, Cypress, and Pinehurst The Houston-Galveston Area Council established the Clean Air Champion award to recognize any business, government, or organization operating in our region that is taking proactive steps to improve air quality. Copyright copy 2017 Greens Blue Flame Gas Company. Todos os direitos reservados. Privacy Policy Sitemap Mon-Fri: 8am5pm Saturday: 8amNoon Sunday: Closed
No comments:
Post a Comment