computação e programação - fenix.tecnico.ulisboa.pt · •a linguagem de programação...

20
1 Computação e Programação Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII MEMec - LEAN 1º 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

Upload: ngoanh

Post on 16-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

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

borges
Typewriter
Nota: ver também ficheiro AT_2_links.pdf

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