Upload
ngoanh
View
217
Download
0
Embed Size (px)
Citation preview
1
Computação e Programação
Instituto Superior Técnico,
Dep. de Engenharia Mecânica - ACCAII
MEMec - LEAN1º Semestre 2010-2011
Aula Teórica 2
José Borges Computação e Programação 2010 / 2011 2
• Computação
• Programação
• Aplicações
• MATLAB
Alinhamento da AT 2
2
José Borges Computação e Programação 2010 / 2011 3
• Computação
• Programação
• Aplicações
• MATLAB
Alinhamento da AT 2
José Borges Computação e Programação 2010 / 2011 4
Computação
Termo genérico para identificar processos, ou sequências de acções, que visam a procura de soluções para um dado problema com base nas suas entradas e utilizando um algoritmo.
Até meados do século XX o processo de computaçãobaseava-se na utilização de suportes físicos, tipo caneta e papel, recorrendo por vezes a tabelas e ferramentas manuais ou mecânicas.
Desde os anos 50 do século XX , com o advento dos computadores, que o termo Computação tem estado associado à produção de programas (software).
3
José Borges Computação e Programação 2010 / 2011 5
Computação
Em termos matemáticos, a computação pode ser usada para determinar a solução de um problema, por exemplo,
“resolver um sistema de 3 equações lineares e 3 incógnitas”
Em termos informáticos, a computação apoia-se em processos definidos com base
em modelos estruturados, por exemplo, algoritmos, protocolos ou arquitecturas.
𝑎11 𝑥 + 𝑎12 𝑦 + 𝑎13 𝑧 = 𝑏1
𝑎21 𝑥 + 𝑎22 𝑦 + 𝑎23 𝑧 = 𝑏2
𝑎31 𝑥 + 𝑎32 𝑦 + 𝑎33 𝑧 = 𝑏3
José Borges Computação e Programação 2010 / 2011
1950 1960 1970 1980 1990 2000 2010 2020 2030 2040
6
Ondas tecnológicas
Onda “Mainframe”:
Computação Centralizada
Cap
acid
ade
Co
mp
uta
ção
Onda “Internet”:
Computação Descentralizada
Onda “Global”:
Computação em Nuvem
http
://ww
w.la
wso
n.co
m/
4
José Borges Computação e Programação 2010 / 2011 7
Computação Centralizada
• Estruturada em termos de Centros de Computação (CC)
• O acesso ao CC realizava-se através de um terminal cliente
• Software instalado apenas nos CC
• O trabalho computacional totalmente executado no CC
• Foco no desenvolvimento de hardware
José Borges Computação e Programação 2010 / 2011 8
Computação Descentralizada
• Centros de Computação descentralizados, i.e. arquitectura “cliente-servidor”. Reinado do Computador Pessoal (PC).
• Redes de computadores à escala global: internet e banda larga.
• Software partilhado no caso “cliente-servidor”, ou instalado no PC. A computação processa-se, maioritariamente, ao nível local.
• Foco no desenvolvimento de software
5
José Borges Computação e Programação 2010 / 2011 9
Computação em Nuvem
O termo Computação em Nuvem (Cloud Computing) caracteriza e define processos de computação que ocorrem na internet.
htt
p:/
/ww
w.b
rianke
ithm
ay.
com
A informação, os recursos e o softwaresão partilhados / disponibilizados na cloud como serviços, que só
serão fornecidos / cobrados porsolicitação do utilizador.
O utilizador apenas necessita de um terminal de acesso, e.g. computador
pessoal ou telemóvel, com acesso à net.
A utilização da cloud centra-se no browser de internet. Os programase os ficheiros estão na cloud – Google Docs, Mail, Chrome OS, etc.
José Borges Computação e Programação 2010 / 2011 10
Computação em Nuvem
• Virtualização dos sistemas e partilha de recursos
• O software está desacoplado do hardware
• Globalmente disponível e acessível: omnipresença
• Foco no utilizador
6
José Borges Computação e Programação 2010 / 2011 11
• Computação
• Programação
• Aplicações
• MATLAB
Alinhamento da AT 2
José Borges Computação e Programação 2010 / 2011 12
Programação
Programação é um processo que inclui as fases de projecto, escrita, teste, depuração de erros e manutenção do código fonte,
tendo por objectivo produzir um programa de computador.
O código fonte é normalmente escrito numa linguagem de programação de alto nível, como por exemplo C++, Fortran ou MATLAB, embora seja possível a sua escrita
directamente em código máquina, que também é identificado por linguagem de baixo nível.
7
José Borges Computação e Programação 2010 / 2011 13
Programação
A programação requer competências em diversas áreas, incluindo, conhecimento pericial no domínio da aplicação,
conhecimentos de algoritmia e lógica formal, conhecimento da linguagem de programação seleccionada.
José Borges Computação e Programação 2010 / 2011 14
Programa
• Um programa de computador é uma sequência de instruções que especificam COMO resolver um problema.
• O termo programa é normalmente uma referência ao código fonte, escrito numa linguagem de programação, mas também pode ser uma referência ao arquivo que contém a forma executável desse código fonte.
Olá
Mundo!
8
José Borges Computação e Programação 2010 / 2011 15
Linguagem de Programação
• A Linguagem de Programação (LP) é uma notação que permite a escrita de programas a partir de um algoritmo, ou seja, de uma sequência finita de passos que resolve um dado problema.
• A linguagem de programação providencia um método padronizado para transmissão de instruções a um computador mediante uma especificação da sintaxe e semântica.
• O conjunto dos termos da linguagem, quando compostos de acordo com as regras da mesma, constitui o código fonte de um programa. O código fonte é depois traduzido para código máquina, que é executado no processador.
José Borges Computação e Programação 2010 / 2011
• Linguagens compiladas
16
Processadores das LPs
Código
fonte Compilador Código
Objecto
OS ----
VM /OSExecutável
Linguagem
C++
Microsoft
Visual Studio
Ficheiro
.obj
Ficheiro
.exe
Linguagem
JAVA
Eclipse Compiler
for Java (ECJ)
Ficheiro
.obj
Ficheiro
.jar
9
José Borges Computação e Programação 2010 / 2011
• Linguagens interpretadas
17
Processadores das LPs
Código
fonteInterpretador
OS
Linguagem
MATLAB
.m, .p
Programa
MATLAB
Linguagem
Python
.py, .pyw
Python
interpreter
José Borges Computação e Programação 2010 / 2011 18
Instruções base das LPs
Instruções base de uma linguagem de programação
entrada: vão buscar dados do teclado, ficheiros ou outro periférico
saída: enviam dados para o ecrã, ficheiros ou outro periférico
selecção: execução sequencial de uma ou mais instruções mediante uma condição de selecção
repetição: execução repetitiva de uma ou mais instruções mediante uma condição de paragem
10
José Borges Computação e Programação 2010 / 2011 19
• Computação
• Programação
• Aplicações
• MATLAB
Alinhamento da AT 2
José Borges Computação e Programação 2010 / 2011 20
Aplicações de CP
• (alguns) projectos em curso na Área Cientifica de Controlo Automação e Informática Industrial / Centro de Sistemas Inteligentes / IDMEC:
• Robôs móveis “Rasteirinhos”
• Robôs Humanóides
• Reconstrução da superfície do fémur
• Cirurgia robótica
• Sistemas de cuidados de saúde
• Cariotipagem automática
• Controlo de colunas de destilação
11
José Borges Computação e Programação 2010 / 2011 21
Robôs móveis “Rasteirinhos”
• Área: robótica móvel
• Objectivo: controlar um robô móvel no seguimento autónomo de uma trajectória
• Características: a base contém dois motores, respectivos controladores e carta de Entrada/Saída para o PC. A posição do “rasteirinho” é adquirida por processamento de imagem. O controlo é feito no PC.
• Ambiente de programação: Simulink / MATLAB
• Aplicação prática: desenvolvimento de Automatic Guided Vehicles
+ =
José Borges Computação e Programação 2010 / 2011 22
Robôs Humanóides
• Área: robótica de Humanóides
• Objectivo: controlar robôs humanóides na reprodução de movimentos especifosdos humanos tais como andar, correr, saltar, andar de skate, fazer o pino, etc
• Características: Humanóide constituído por 18 servos, ligados a um controlador CM5 que comunica com o PC através de RS232 onde recebe e envia instruções dos servos de a para o PC. O controlo é feito no PC.
• Ambiente de programação: C, C++, MATLAB, SIMULINK
• Aplicação prática: desenvolvimento de Robôs domésticos e de entretenimento.
12
José Borges Computação e Programação 2010 / 2011 23
Reconstrução da superfície do fémur
• Área: sistemas de processamento de imagem médica
• Objectivo: reconstrução da superfície de órgãos ou ossos baseada na utilização de imagens médicas
• Ambiente de programação: MATLAB
• Aplicação prática: simulação de procedimentos cirúrgicos pré-operatórios, navegação intra-operatório
José Borges Computação e Programação 2010 / 2011 24
Reconstrução da superfície do fémur
• Características:
• através de leitura de imagens médicas TAC e US, o algoritmo converte-as numa nuvem de pontos tridimensionais.
• a partir da nuvem, vários tipos de superfícies do fémur (implícita, explicita e paramétrica) são obtidas para diferentes aplicações.
13
José Borges Computação e Programação 2010 / 2011 25
Cirurgia robótica
• Área: sistemas robóticos de apoio à cirurgia ortopédica
• Objectivo: facilitar o processo de inserção de um espigão no fémur, requerendo uma elevada precisão e exactidão em termos do posicionamento e orientação
• Ambiente de programação: MATLAB/SIMULINK
• Aplicação prática: sistemas de apoio à cirurgia ortopédica nas intervenções de substituição de superfície da anca
José Borges Computação e Programação 2010 / 2011 26
Cirurgia robótica
• Características:
•Aquisição em ambiente pré-operativo de imagens médicas TAC/US do osso e reconstrução da sua superfície.
•Determinação pré-operativa da posição e orientação óptima da prótese através das propriedades geométricas e estruturais do fémur (Elementos finitos).
•Navegação intra-operativa através do registo em tempo real e não invasivo com US para seguimento do fémur.
•Navegação assistida por robô através da co-manipulaçãoCirurgião-Robô
14
José Borges Computação e Programação 2010 / 2011 27
Sistemas de cuidados de saúde
• Área: sistemas de cuidados de saúde
• Objectivo: conceber sistemas para melhorar as taxas de sobrevivência em pacientes internados nas UCIs sujeitos aos riscos de morte por septicémia ou “auto-extubação”
• Ambiente de programação: MATLAB
• Aplicação prática: sistemas de apoio e suporte à vida em Unidades de Cuidados Intensivos
José Borges Computação e Programação 2010 / 2011 28
Sistemas de cuidados de saúde
• Características:
• os sinais vitais do paciente são armazenados em bases de dados, sendo depois processados para remoção de ruído ou reconstrução de dados
• algoritmos baseados em árvores de decisão e optimização por colónias de formigas são usados para reduzir a complexidade e o número dos sinais a processar
• os dados armazenados são processados com algoritmos de modelação inteligente
• redes neuronais
• lógica fuzzy
• os modelos são utilizados para classificação e/ou predição
15
José Borges Computação e Programação 2010 / 2011 29
Cariotipagem automática
•Ambiente de programação: MATLAB
• Aplicação prática: cariotipagem automática para apoio ao diagnóstico em ambiente laboratorial
• Área: diagnóstico médico baseado em processamento de imagem e classificação
• Objectivo: construir o cariótipo a partir da imagem de uma metafase e identificar alterações cromossómicas, numéricas e estruturais
José Borges Computação e Programação 2010 / 2011 30
Cariotipagem automática
• Características: os cromossomas são agregados em pares, de acordo com características inerentes ao indivíduo:
O processamento de imagem remove artefactos da imagem e individualiza os cromossomas para classificação com lógica fuzzy ou redes neuronais.
• número
• dimensão
• forma
• disposição.
16
José Borges Computação e Programação 2010 / 2011
• Área: controlo de processos químicos
• Objectivo: modelação e controlo de uma coluna de destilação à escala piloto de funcionamento contínuo (do DEQ do ISEL) para a separação de uma mistura binária etanol/água
• Ambiente de programação: Simulink / MATLAB e LabView
• Aplicação prática: industrias petrolífera e alimentar
31
Controlo de colunas de destilação
José Borges Computação e Programação 2010 / 2011
• Características:
• a coluna é instrumentada com sensores de pressão, temperatura, densimetros e caudalímetros
• resistências eléctricas fazem o aquecimento da mistura
• diversos tipos de bombas e válvulas controlam os fluxos/caudais dos líquidos.
• as comunicações de dados são feitas via FieldPoint / LabView bus
• controlo e operação do sistema é realizado a partir de um PC via LabView e Simulink/MATLAB
32
Controlo de colunas de destilação
17
José Borges Computação e Programação 2010 / 2011 33
• Computação
• Programação
• Aplicações
• MATLAB
Alinhamento da AT 2
José Borges Computação e Programação 2010 / 2011 34
A ferramenta MATLAB
• MATLAB (MATrix LABoratory)
• Programa optimizado para cálculos de engenharia e científicos
• Programa MATLAB implementa a linguagem de programação MATLAB.
• Conjunto alargado de funções pré-definidas, normalmente agrupadas em toolboxes.
Objectivo: escrever, depurar e optimizar programas em MATLAB.
18
José Borges Computação e Programação 2010 / 2011 35
Vantagens do MATLAB
• Fácil de utilizar: é uma linguagem interpretada, sendo fácil de escrever e testar programas.
• Independente da Plataforma: o código desenvolvido corre em diferentes SOs:
• Windows
• Linux
• Unix
• Macintosh
• O código pode ser compilado, mas é mais lento que Fortran ou C (C++), por exemplo.
José Borges Computação e Programação 2010 / 2011 36
Vantagens do MATLAB
• Grande número de toolboxes desenvolvidas pela Mathworks em diversas especialidades:
• engenharia, economia, bioinformática, finanças, etc
• Utilizado por uma vasta comunidade:
• Aproximadamente 96.200.200 (eram 15.400.000 em Setembro de 2009) entradas no google.com
• Existência de toolboxes resultantes de várias contribuições
• Cálculo matemático / manipulação numérica de matrizes
• Geração de gráficos
• Pode ser utilizado para construir aplicações do tipo Graphical User Interfaces (GUI)
19
José Borges Computação e Programação 2010 / 2011 37
Desvantagens do MATLAB
• É uma linguagem interpretada, logo a execução é mais lenta que as linguagens compiladas
(Este problema poderá ser reduzido usando o compilador do MATLAB para gerar um executável)
• A licença do MATLAB é cara.
José Borges Computação e Programação 2010 / 2011
Mathworks
38
• Site oficial da Mathworks
• MATLAB Central – comunidade de utilizadores
• Documentação em pdf
• Exemplos de utilização
• Demos / Vídeos / Tutoriais
L I N K
L I N K
L I N K
L I N K
L I N K
20
José Borges Computação e Programação 2010 / 2011
Ambiente do MATLAB
39
José Borges Computação e Programação 2010 / 2011
Referências
40
• Wikipedia:• http://pt.wikipedia.org/
• Capitulo 1 de Matlab: A Practical Introduction to Programming and Problem Solving, Stormy Attaway(2009) Elsevier.
• MATLAB@MathWorkshttp://www.mathworks.com/
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/getstart.pdf
http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matlab_prog.pdf
http://www.mathworks.com/demos/matlab/getting-started-with-matlab-video-tutorial.html