Prévia do material em texto
A Modulação e Programação O que tem a Haver?
Pratica- Unidade 2
Primeiro: para se entender o que é modulação e como se aplica em
várias situações, deve-se definir o que significa e segundo a definição em
engenharia mecânica que também envolve engenharia de controle e
automação e engenharia elétrica é isso:
O processo de modulação consiste numa operação realizada sobre
o sinal ou dados a transmitir e que produz um sinal apropriado para a
transmissão sobre o meio de transmissão em causa. A escolha da técnica
de modulação permite “moldar” as características do sinal a transmitir e
adaptá-lo às características do canal.
Industrialmente o controle escalar é o método mais utilizado no
acionamento de motores de indução trifásicos, por consequência da sua
robustez e baixo custo. Entretanto, o controle é aplicado em malha aberta,
método este que apresenta um desempenho inferior quando comparado
ao controle em malha fechada, no qual é considerada a variação da carga
aplicada no eixo do motor. O uso de sensores para a realimentação da
velocidade eleva o custo de aquisição e manutenção do motor, além de
modificar suas dimensões físicas. Uma possibilidade para a estimativa
precisa da velocidade mecânica é o uso do estimador Filtro de Kalman
Estendido. A técnica de controle direto do torque com modulação por
vetores espaciais em conjunto com o estimador Filtro de Kalman
Estendido, baseado no modelo matemático do motor, é uma possibilidade
para o controle em malha fechada. Ou seja, mesmo em física é necessário
se ter um controle de um sistema para que esse mesmo sistema tenha
um retorno de trabalho que possa ser aplicado de maneira efetiva e esse
trabalho gere u resultado que pode ser aplicado de maneira inteligente em
vários setores.
A oprimira vista pode as duas ciências como física e programação
não ter nada a haver uma com a outra, mas, estão intimamente ligadas,
principalmente quando se refere a novas tecnologias as quais advém
quando se misturam o que pode se dizer que uma é um complemento da
outra.
A MODULARIZAÇÃO
Claro que naturalmente apesar do exemplo acima e computação
estar ligado em muitos lugares da nossa sociedade ela continua como
abstrata pois ela não pode ser tocada, mas pode ser vista pois necessita
de aparelhos de processamento não sendo necessariamente
computadores pois há muitos equipamentos que possuem, outros tipos
de procedimentos diferentes, mas iguais aos computadores que usam
softwares para seu funcionamento. E a Modularização pode ser entendida
como um conceito computacional que é empregado para dividir o seu
programa em partes funcionais, partes essas que conversam umas com
as outras. Observando bem, toda a nossa solução de software é, no final
das contas, sequencial, isto é, o software é executado linha por linha, uma
após a outra. Porém, às vezes, uma linha manda o seu programa para
outra parte dele e depois volta, isso é o que aprendemos com as Funções.
Ainda assim, ao entrar na Função, a execução continua linha a linha. Mas
note que a Função é uma parte do seu programa que está em uma região
diferente e é acessada por meio de uma chamada a ela e, quando a sua
execução termina, volta para quem a chamou.
Aqui está um exemplo abaixo:
#include
#include
int main ()
{
int i; //Imprime a linha com 3 +.
for (i =0; i
#include
void imprimeLinha_3 ()
{ int i;
for (i = 0; i fat = fat *c; 1 => 1 * 1 = 1; 2 => 1 * 2 = 2; 3 => 2 * 3 = 6; 4 => 6 * 4 = 24
Agora um exemplo de código usando o mesmo tema de fatoração, mas com
modularização:
def fatorial ( numero):
fat = 1
c = 1
while cprincipal()
Dos programas e subprogramas se entende que o programa é o corpo
do todo que vai executar uma dada função em algum lugar específico que
contém todas as necessidades para executa-lo em qualquer plataforma que se
use, como o exemplo em Python, é a parte que começa em def fatorial (numero):
até principal ().
Esse mesmo programa é dividido em dois subprogramas que
começam respectivamente em def fatorial (numero): e vai até return fat o
primeiro e o segundo em def principal (): até principal ().
Abordagem Top-Down E Bottom-Up
A abordagem top-down basicamente divide um problema ou algoritmo
complexo em várias partes menores (módulos). Estes módulos são ainda mais
decompostos até que o módulo resultante seja o programa fundamental
essencialmente compreendido e não possa ser mais decomposto. Depois de
atingir um certo nível de modularidade, a decomposição de módulos é
interrompida. A abordagem top-down é o processo passo a passo de quebrar o
grande módulo do programa em módulos mais simples e menores para organizar
e codificar o programa de maneira eficiente. O fluxo de controle nessa
abordagem está sempre no sentido descendente. A abordagem top-down é
implementada na linguagem de programação “C” usando funções.
Assim, o método top-down começa com o design abstrato e, em
seguida, sequencialmente, esse design é refinado para criar níveis mais
concretos até que não haja exigência de refinamento adicional.
A abordagem botton-up funciona de maneira oposta à abordagem top-
down. Inicialmente, inclui o projeto das partes mais fundamentais que são
então combinadas para fazer o módulo de nível superior. Esta integração de
submódulos e módulos no módulo de nível superior é repetidamente executada
até que o algoritmo completo requerido seja obtido.
A abordagem botton-up funciona com camadas de abstração. A
principal aplicação da abordagem de baixo para cima é testar como cada
módulo fundamental é testado pela primeira vez antes de mesclá-lo ao maior.
O teste é realizado usando certas funções de baixo nível.
Como exemplo prático em modularização de aqui está um programa
em C que escolhe o tipo de microprocessador para uma tarefa em para uma
determinada função para PICs, que como já foi dito são microprocessadores
muitos utilizados em processos de automação, IOT, embarcados e outros
seguimentos e para a compilador IDE foi utilizado o MPLAB que é um software
proprietário e específico para microprocessadores:
/////////////////////////////////////////////////////////////////////////////////////////////////////
// SELEÇÃO DO TIPO DE PROCESSADOR
//>>>>>>>>>>>>>>>>>>> Apenas um define pode existir
// Coloque como um comentário os que não estiver usando
//#define 458
//#define 452
//#define 877
//#define 877A
////////////////////////////////////////////////////////////////////////
///////////////////////// OS AJUSTES SÃO AUTOMATICAMENTE REALIZADOS
//////////////////// CONFORME O MODELO DO PROCESSADOR SELERCIONADO
#ifdef 458
#include // Define processador 18F458
#IFDEF mododebugger
#device icd = true
#fuses noWRTD, noWRTB, noCPD, noCPB, noWRT, noWRTC, no
EBTR, no EBTRB
#fuses NOOSCSEN, noSTVREN, NOLVP, noPROTECT, noWDT,
WDT128
#fuses noBROWNOUT, BORV27, HS, PUT, debug
#else
#fuses noWRTD, noWRTB, noCPD, noCPB, noWRT, noWRTC, no
EBTR, no EBTRB
#fuses NOOSCSEN, noSTVREN, NOLVP, noPROTECT, noWDT,
WDT128
#fuses noBROWNOUT, BORV27, HS, PUT, nodebug
#ENDIF
#endif
#ifdef 452
#include // Define processador 18F452
#IFDEF mododebugger
#device icd = true
#fuses noWRTD, noWRTB, noCPD, noCPB, noWRT, noWRTC, no
EBTR, noEBTRB
#fuses NOOSCSEN, noSTVREN, NOLVP, noPROTECT, noWDT,
WDT128
#fuses noBROWNOUT, BORV27, HS, PUT, debug
#else
#fuses noWRTD, noWRTB, noCPD, noCPB, noWRT, noWRTC, no
EBTR, no EBTRB
#fuses NOOSCSEN, noSTVREN, NOLVP, noPROTECT, noWDT,
WDT128
#fuses noBROWNOUT, BORV27, HS, PUT, nodebug
#ENDIF
#endif
#ifdef 877
#include // Define processador 16F877
#IFDEF mododebugger
#device icd = true
#fuses HS, NOWDT, PUT, NOPROTECT, NOBROWNOUT, NOUVP,
NOCPD, NOWRT
#fuses HS, NOWDT, PUT, PROTECT, NOBROWNOUT, NOUVP,
NOCPD, NOWRT
#ENDIF
#endif
#ifdef 877A
#include // Define processador 16F877A
#IFDEF mododebugger
#device icd = true
#fuses HS, NOWDT, PUT, NOPROTECT, NOBROWNOUT, NOUVP,
NOCPD, NOWRT
#fuses HS, NOWDT, PUT, PROTECT, NOBROWNOUT, NOUVP,
NOCPD, NOWRT
#ENDIF
#endif
Neste trecho do código temos quatro defines um que indica 4521,
458,877 e 877A, dos quais um será usado por vez, sendo os que não serão
usados deverão ser precedidos de comentários “// “. Em nosso exemplo todos
estão pré habilitados para o 16F1877A.
Em vários pontos do programa teremos os indicadores de compilação
condicional, isto é, o compilador decidirá, baseado em qual ‘define’ está ativo,
qual trecho do código será compilado. Desta forma podemos ter um único
programa fonte para mais de um modelo de Pic.
O assunto é deveras longo e detalhado e se o assunto for de muito
interesse do leitor averigue na parte de pesquisa bibliográfica mais detalhe das
obras aqui incluídas, desde já dou por concluída esse trabalho.
Pesquisas Bibliográficas:
Sem autor: Logicas de programação: top down, modulação, estruturas de
controle, confiabilidade, manutenibilidade e Portugol. Cursos CPT, 2023.
Disponível em: https://tinyurl.com/4np2emp6. Acesso em 06/05/2023.
Gomes, Rodolfo. Métodos: módulos de programa em Java. DEVMEDIA, 2012.
Disponível em: https://tinyurl.com/2wazzyv8. Acesso em 07/05/2023.
Carvalho, Victorio Albani de. Lógica de Programação: Curso técnico de
Informática. 1º edição. Espírito Santo: Instituto Federal do Espírito Santo, 2010.
Gatto, Elaine Cecília. Funções e Procedimentos- Modularização.
EMBARCADOS, 2018. Disponível em: https://embarcados.com.br/funcoes-e-
procedimentos-modularizacao/. Acesso em: 08/05/2023.
Gado, Wesley. Modularização: Funções e Procedimentos. TREINAWEB, 2021.
Disponível em: https://www.treinaweb.com.br/blog/modularizacao-funcoes-e-
procedimentos. Acesso em: 08/05/2023.
Delgado, Armando Luiz Nicolini. Funções: O que são e porque usa-las. UFPR,
2013. Disponível em:https://www.inf.ufpr.br/cursos/ci067/Docs/NotasAula/notas-
11_Fun_c_coes.html. Acesso em: 08/05/2023.
Silva, Gabriel Bueno da. Procedimento e Funções. REA-AED, sem data.
Disponível em: https://gabrielbueno072.github.io/rea-aed/aula_func.html.
Acessado em: 09/05/2023.
Sem autor. Diferença entre abordagem top-down e botton-up.Gadget-
info.com,2019. Disponível em: https://pt.gadget-info.com/difference-between-
top-down. Acessado em: 09/05/2023.
Zottis, Jônatas Lemuel Bispo. Uso de técnicas de modulação e de estimadores
de estados de controle da velocidade de motores elétricos. UFPEL, 2019.
Disponível em: https://institucional.ufpel.edu.br/projetos/id/p8646. Acesso em
12/05/2023.
Junior, Vidal Pereira da Silva. Microcontroladores PIC 16F e 18F – Teoria e
Prática. 1º Edição. São Paulo: Instituto Newton C. Braga, 2013.