Você está na página 1de 32

MATLAB para o Laborat rio de Automacao II o

Ricardo Cury Ibrahim


(vers o preliminar) a

1 Introducao 2 Conceitos Gerais 2.1 Operacoes matem ticas simples . . . . . . . . . a 2.2 Armazenando dados em vari veis . . . . . . . . a 2.3 Formato dos n meros . . . . . . . . . . . . . . . u 2.4 Utilizando funcoes matem ticas elementares . . . a 2.5 Listas . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Operacoes matem ticas com listas . . . . a 2.6 Matrizes . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Operacoes matem ticas com matrizes . . a 2.7 Loops e tomadas de decis o . . . . . . . . . . . a 2.7.1 Loops usando for . . . . . . . . . . . . . 2.7.2 Loops usando while . . . . . . . . . . . 2.7.3 Tomadas de decis o usando if-else . . . . a 2.8 Plotando gr cos . . . . . . . . . . . . . . . . . a 2.9 Importando/exportando dados de/para um arquivo 2.10 Utilizando polin mios . . . . . . . . . . . . . . o

8 G' I4(& H G' @4(&

4 Criando Funcoes e Arquivos Script M-30 4.1 Funcoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Arquivos script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

H G' F2(& 5@2(& E' 1 E' F6(&

3 MATLAB Aplicado a Controle e Processamento de Sinais 3.1 Processamento de sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Controle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 M todo do lugar das razes . . . . . . . . . . . . . . . . . . . . . . . . . . e

M-25 . . .

E E' @2(& 7 8' CAD& 3 8' C9(& 3 8' BA(& 1 8' CA(& 1 8' CA(& ) 8' B9(& ) 8' BA(& 8@89(& ' 7' 2(& 56(& ' 3' 4(& 3' 4(& 1' 2(& )' 0(&

E' 6D&

$ "     %#   !
M-3 M-4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Esta apostila tem a intencao de ser um guia r pido para a utilizacao do MATLAB em atividades a das disciplinas PMC503 e PMC526, ou seja, alguns t picos de controle e alguns poucos t picos de o o processamento de sinais. Ela n o pretende simplesmente listar os diversos comandos do MATLAB a e dar alguns exemplos. O objetivo principal e inserir alguns elementos b sicos a partir dos quais se a possa progredir de maneira aut noma, fazendo com que o aluno se torne elemento ativo no processo o de aprendizagem. No caso do MATLAB, deve-se estudar praticando num micro com o software instalado. Lembre-se sempre que um problema complexo e, na verdade, um conjunto de v rios problemas a simples. O esforco empregado na boa assimilacao de conceitos b sicos sempre e recompensado. a Apesar disso, e fato que uma pessoa s pode ter bom aproveitamento no estudo de um determinado o assunto se possuir motivacao para tanto. No caso desta disciplina, Laborat rio de Automacao II, e importante considerar as in meras o u aplicacoes dos conceitos a serem estudados na vida prossional futura de um estudante de engenharia. Todo equipamento moderno tem algum sistema de controle. Portanto, um engenheiro sempre se defronta com os conceitos de controle, seja para um projeto ou mesmo para simples uso de um equipamento. Tome como exemplo esse grande mercado potencial que e o de casas com equipamentos inteligentes, que ser , provavelmente, a grande sensacao junto com a Internet. Esses equipamentos a compreendem desde eletrodom sticos at sistemas de alarme, de iluminacao, de condicionadores de e e ar, etc. Imagine que apenas uma pessoa esteja numa sala, usando um computador, e ligue o ar condicionado para se aquecer ou refrescar. Um bom sistema de controle, acoplado a sensores, poderia determinar a posicao desta pessoa e planejar o funcionamento do equipamento de forma a que apenas nas proximidades da pessoa o ar tivesse a temperatura desejada. Ou, ao contr rio, para uma sala com a v rias pessoas se movimentando, o sistema deve se encarregar de manter a temperatura uniforme por a toda a sala. Al m disso, tradicionalmente, autom veis, avi es, navios, rob s, foguetes, sat lites, e o o o e equipamentos m dicos, processos industriais diversos s o grandes mercados para sistemas de e a controle. A lista de aplicacoes e longa. Como se n o bastasse, areas que tradicionalmente n o tinham nenhuma relacao com sistemas a a de controle agora se beneciam com o seu uso. Diversas instituicoes nanceiras aplicam t cnicas e de controle para an lise de investimentos. A area de humanidades faz uso frequente de conceitos a sosticados de controle para elaboracao de softwares de traducao de textos para outros idiomas. Por outro lado, o MATLAB se tornou, provavelmente, a ferramenta mais popular no mundo inteiro para quem trabalha com controle. Existem in meros livros publicados sobre o uso do MATLAB. u Al m disso, as novas vers es de livros did ticos cl ssicos na area de controle j incluem exerccios e o a a a para serem resolvidos com o MATLAB. Existem vers es do MATLAB para os mais diversos tipos de sistemas operacionais. Praticamente o todos os comandos descritos nesta apostila para serem executados internamente ao ambiente MATLAB devem valer para qualquer plataforma. Entretanto, comandos para ler e salvar arquivos devem ser diferentes. Esta apostila descrever comandos v lidos para o sistema operacional Microsoft a a Windows, que e o mais utilizado atualmente. Por m, gostaria de lembrar que sempre e muito importante consultar livros textos no assunto para refer ncias mais detalhadas. e

!

G' 2D&

& ) 1 '# 0( %$

$  % # "

Esta secao apresenta conceitos b sicos do MATLAB para aplicacao geral. A assimilacao desses a conceitos e fundamental para a boa utilizacao do software, constituindo um ferramental b sico de uso a frequente. E interessante observar que MATLAB e uma abreviacao da juncao das palavras inglesas Matrix e Laboratory. Note, ent o, que o MATLAB existe basicamente para manipular matrizes. a Observacao importante: o tipo de fonte exemplicado abaixo ser usado sempre que for a necess rio indicar um comando a ser usado no ambiente MATLAB. Entende-se por ambiente a MATLAB a janela para se digitar comandos, que e aberta ao se iniciar o programa. Ao iniciar o programa MATLAB por meio de seu cone de atalho ou clicando a sequ ncia INICIAR e PROGRAMAS MATLAB MATLAB, abre-se uma janela para entrada de comandos. Todos os comandos para execucao de alguma atividade devem ser digitados em frente ao prompt .
$ % &% $ $ 3 1 ) ' 3 1 ) ' % 405420(%

O primeiro comando a ser apresentado e tamb m um dos mais importantes, pelo menos dentro e daquela perspectiva de que o aluno deve ser o mais autosuciente possvel. E o comando . Basta digitar seguido do nome de algum comando que se deseja obter informacoes e apertar a tecla . Experimente com
3 1 ) 40' 7 I 1 3 3 1 ) ' % P&C5420(% 3 1 ) 420' H E G F &E

Uma forma mais conveniente de usar o do MATLAB e abrindo uma janela pr pria de o . Do menu, escolha Help e selecione Help Window. Na nova janela aberta pode-se encontrar diversos t picos de ajuda organizados por um determinado tema. Tente abrir a tabela de o para operacoes elementares com matrizes ( ). Obviamente, uma outra forma de se obter ajuda nesse tema e dar o seguinte comando na janela de comandos:
3 1 ) 42Q' 3 1 ) 40' 3 1 ) 420' 7 6 R 1 Q42) 7 6 R 1 ) 3 1 ) ' % Q42S420(%

Por outro lado, se estiver disponvel a opcao Help Desk(HTML) no menu Help, ser aberto um a sistema bem mais complexo de ajuda no formato html no seu browser. Utilizando o comando sem argumentos far com que sejam listados todos os t picos gerais a o de ajuda, incluindo o Simulink e o Toolbox. Outra forma bastante pr tica de se aprimorar no MATLAB e executar alguns programas demos j a a includos no pacote. Use o comando para obter uma listagem dos demos com funcao geral. Ou use o comando para uma listagem dos demos do Simulink. Experimente tamb m e , e descubra quais os demos do Control Toolbox. Para rodar um demo basta digitar o seu nome ap s o prompt, na janela de comando, e seguir o as instrucoes pr prias o
q p h0u w Qu W I R ) T R B W 3 1 ) &VP20Y&X420' W I R ) T 3 1 ) &VU25P20' q u x v w u s q p t0(q yrQtr(i 3 1 ) P20' 1 I c 7 b I ` 3 1 ) 0&248a420' ge hfd

Operacoes matem ticas simples podem ser realizadas diretamente na janela de comandos com o a uso dos seguintes caracteres: soma (+), subtracao (-), multiplicacao (*), divis o ( ou ), pot ncia (). a e Exemplo:

!

)' 4D&

1 $

" #!   
(

 

7 B @ ) % DCA9%

' 7 6 3 % 80(%




E importante saber qual a ordem de preced ncia dos operadores mencionados acima. Para tanto, e teste voc mesmo com v rios exemplos para descobrir a ordem. Um dos testes para saber qual a e a preced ncia entre e poderia ser calcular e . Note que o uso de par nteses pode alterar a e preced ncia de acordo com a necessidade. e A listagem completa dos operadores pode ser obtida consultando o help de operators and special . characters, ou dando o comando A esta altura voc j deve ter reparado que muitas vezes o help de algum t pico e muito longo e a e a o informacao rola pela tela sem parar. Existe uma maneira de se apresentar a informacao de forma que ao se preencher uma tela o help pare e espere por um novo sinal para apresentar a tela seguinte. Basta usar o comando . Tente:
   

Para retornar ao modo default, de rolagem sem parar, e s usar o comando o


 I 

Armazenar dados em vari veis e uma maneira muito util de tratar com operacoes mais complexas. a A associacao de um determinado valor a uma vari vel e bem simples: a
7 6( 5 4  6 % 39%

que associa o valor a vari vel . ` a Podemos ter tamb m: e


@

Se voc esquecer e quiser relembrar o valor armazenado numa determinada vari vel, basta digitar e a a vari vel em seguida ao prompt: a
6 % 9%

! ! ""!

E claro que sempre se pode usar o mouse para rolar


tq
) u %) ) & u & 0('q %Cs $ u #

q 1 s u hty2u C1

1' 6D&

W 4SP20' 3 I 3 1 )

1 @5 ! E

) c I 2VR

W 4X420(% 3 I 3 1 ) ' %

7 64

b 4I

  6  A % C3&B%

7 9( 5 4

7 9( 5 4

) c I 2UVR

) c I 2UVR

7 4 C6E5

  W

d fd e

 86

 DA

 86

% % % % % % b U6

Para saber todas as vari veis j usadas, basta usar o comando a a . Experimente denir diversas vari veis com diferentes valores e use o comando a . Desta forma, e uma palavra reservada e n o deve ser empregada para armazenar suas vari veis. a a Algumas regras devem ser seguidas para denicao de vari veis. a o nome da vari vel deve sempre comecar por uma letra a
4

o nome da vari vel pode conter letras e n meros, mas n o se deve usar os smbolos especiais a u a ( )

a vari vel pode conter at 19 caracteres. Mas note que esse valor pode variar com as novas a e vers es do MATLAB. o

Algumas vari veis j s o predenidas e n o podem mais ser utilizadas. E o caso, por exemplo, a a a a a e a de que e a raz o do permetro de uma circunfer ncia pelo seu di metro, de ou que representam . Para deixar de usar uma determinada vari vel numa secao do MATLAB, basta usar o comando a seguido do nome da vari vel que se deseja excluir da mem ria. a o No MATLAB e possvel salvar em arquivo todas as vari veis denidas num determinado trabalho a para uso posterior. Para tanto, basta clicar no menu File e selecionar Save Workspace as. . . para salvar sua secao de trabalho atual. As vari veis podem ser recuperadas usando a opcao Load no menu a File.

O MATLAB pode utilizar n meros em diversos formatos. Uma listagem completa pode ser obtida u usando o comando . O formato default e o , em que n meros reais s o mostrados com 4 algarismos u a ap s o ponto decimal. o Para mudar o formato em uso basta dar o comando seguido do nome do formato desejado. Para mudar do formato default para o formato real longo, usa-se o comando:
7 6 R c I AQU0 7 c I ' W 7 6 R c I 8UCDXCU0 7 6 R c I QUQ 3 1 ) 40'

Como exerccio, experimente com os diversos formatos disponveis.


q s u Q0
& q '

O MATLAB cont m diversas funcoes matem ticas elementares (trigonom tricas, para n meros e a e u complexos, logartmicas, e num ricas) que s o muito uteis em v rios tipos de aplicacoes. Consulte o e a a help para funcoes matem ticas elementares (uma maneira e usar o comando a ) para uma listagem completa. Para o nosso curso, algumas funcoes podem ser destacadas. Pratique com elas Experimente com as seguintes funcoes:
` 7 H F @D b B W H F @D b B H F @D c I I 1 H F @D 1 B ) H F @D T b A I H C) RGhU26 EGhUD&W EGhT0 EShRA0A` RGhT2&0c EF @D R ) H F @D 7 c Y h`Pc RGh8VW 4 a b H F @D W 5 I H F @D 5 I H F @D 3 @ H F @D ) 1 5 b H F D 5 6 R H F @D 1 6 ) H F @D I b I H F @D A EGhX V1 EShTV1 RGhUA8) RGhQAQ$U6 EG@ TBQYB EShR2c RGhQPP8` EGhEW 6 b A  1 B)

# ! $" 

c I 1 6 U&2

3 1 ) 40'

&

c I 1 6 2

o MATLAB e sensvel ao uso de letras mai sculas e min sculas. u u s o tr s vari veis diferentes. a e a

5 C

!

5 C

5 C

I ' C

I ' C8

q tq

I ' C8

u w 0u

3' 2D&

(q yv w q u x

9 s q 4 &

&

4 @ 9

` 7 C)
)

) & 0(u $

Cs 3 u

5 bI 7 6 R c I % $41 CU0 %

   
h 0

c 6 ) 1 A88`

& '% 0 )

1e 2fd 6e 7fd

Entre um n mero complexo qualquer, como no exemplo abaixo, e experimente com as diversas u funcoes pertinentes ( , , , , )

Uma lista ou um vetor e uma colecao de dados de um mesmo tipo e unidimensional, ou seja, a cada elemento se pode associar um ndice unico. A lista e um dos elementos mais uteis no MATLAB. A maneira mais simples de se criar uma lista no MATLAB e escrevendo seus elementos um a um separados por vrgula ou por espaco dentro de colchetes.
 B

ou ent o, a
 B 9B

Note que esta e uma lista (ou vetor) horizontal. Para criar uma lista vertical (coluna), basta separar seus elementos por ponto e vrgula.
 B H B E3

Ou ent o, use o sinal de ap strofo para representar a transposta do vetor linha em seguida ao sinal a o de ponto:

B W W 0W ""W

B W W 0W ""W

F @D b 6 F @D W I F @D bB GhUU07 ShE&8` Gh`&W

Descubra se os argumentos das funcoes trigonom tricas como e ser em radiano ou em grau.
u &
e fd

F @D 5 6 R F @ 1 6 ) F @D I bI F @D ) 1 b F D W A GhTBCYB GhD 22c GhQ'48` ShQA05 U6 G@ EV6


   "    "
4 4

5' 6D&

 

 

 B4

5 4 9(

5 4 9(

 B 9B

B 3 B `AA) F D 3 @

H F D 3 @ EB `AA) H

B W W W 0"""W

B W W W 0"""W

F D 3 @ B U8A)

F D 3 @ B U8A)

4 E 4  

 X

 8W

 3        

W W "W "W W W "W "W W W "W "W W W "W "W


   "

W W "W "W

 

 ` b % BV(% 5 4 9( 4 ( 4 ( 4 ( 4 ( 4 4 E          

! % %

! % %

! % %

! % %

        

` Vb

devem

! ! ! !

E importante observar que se n o fosse usado o sinal de ponto antes do ap strofo o resultado seria a o o conjugado da transposta, no caso de listas com n meros complexos. Verique voc mesmo u e Utilizaremos, em seguida, um exemplo muito comum nos livros sobre MATLAB. Imagine que se queira plotar uma determinada funcao, co-seno por exemplo. Escolhe-se um determinado intervalo de interesse. Diversos elementos compreendidos no intervalo constituem uma lista, no eixo horizontal do gr co a ser plotado. Ent o, para cada elemento, calcula-se o valor correspondente da funcao a a desejada. Essa operacao formar uma outra lista (com mesmo n mero de elementos) de valores a a u serem plotados segundo o eixo vertical. Digamos que se queira plotar a funcao co-seno para valores compreendidos no intervalo de rad (aproximadamente ) a 20 rad. Uma maneira de se criar uma lista com, por exemplo, 50 elementos e usando a funcao :

Note o sinal de ponto e vrgula no nal da linha de comando. Ele foi usado para evitar que os 50 elementos fossem mostrados na tela. Tente usar o mesmo comando sem o sinal de ponto e vrgula e veja o que acontece. Em seguida, veja como e pr tico o uso de listas em MATLAB: para calcular o valor da funcao a co-seno para cada elemento da lista basta usar o comando

Tamb m e possvel utilizar a notacao de matrizes para se referir a uma lista. O quinto elemento e de uma lista horizontal seria ; enquanto que o quinto elemento de uma lista vertical seria . Uma outra maneira de se criar uma lista, em que se tem o primeiro e o ultimo elemento e o intervalo constante de variacao entre elementos subsequentes, ser mostrada em seguida. Vamos criar a de n meros reais entre e com espacamento u . Isto e feito da seguinte forma: uma lista

8 BH !

' D&

Analogamente, o quinto elemento da lista

e:

Desta maneira, foi criada uma nova lista tamb m com 50 elementos. e A cada elemento de uma lista corresponde um ndice. O ndice do primeiro elemento sempre e (e n o zero). O primeiro elemento da lista ( a ) pode ser mostrado com o comando:

F b

 T 

E @

@ Q04V21 D ) ` 6 3W bB

H 5 FF1 ! 8

H F EPW

D U'

 X

B W W W 0"""W

3 D ) ` 6 3 W b B 1 @ % U QA0DVD2 %

H F @D W I ` EGhE280

 8W

   "

 
5 7 C64  4 7

F D @ % B T%

F D

F B

5 4 9( 4 E 

 W

 W

E @

 X7

D 

% % % % % % b U6 b U6

7' 2D&

W ""W W W
4

 

W W ""W


W "
 C

W "" W W W
4

W W ""W


' 5 A I c ' 7 A$08

W b R A 1 V28I

W "

W W ""W

W "

W W ""W

W W "W $ W
4

W W W """ W
4 5

W "W W


W


W W W """W
4

' 5 A I c ' A$087

W b R A 1 V28I
 W

b U6

! B !
5 64

B CB


W W "W "W
4

W W ""W W W W ""W

 4

W
 C

W "W W


' 5 A I c ' 7 A$08

W W


W W ""W

W b R A 1 V28I W b R A 1 V28I

W W W """ W
4

W "W W

7 64

W W W ""$ W
4

W "W W

94

W
5

W " W W W
' 5 A I c ' A$087
4

W  DW
4 

B CB

Por outro lado, as operacoes matem ticas entre listas s o realizadas elemento a elemento. Por a a exemplo,
% %

W ""W W W
4

 

W
 C

W ""W W W
4

W W W """W


' 5 A I c ' 7 A$08

W b R A 1 V28I

4 (

W W W """W

W W "W "W
4

W W W """W

4 (7

W W "W "W
4

W W W """W

4 E5 5

W ""W W W
4

W W W """W


' 5 A I c ' A$087

W b R A 1 V28I
 W 

4 (

b U6

! 1 % A W %

A grosso modo, as operacoes podem ser divididas em operacoes com escalares (um valor num rico simples) e operacoes entre listas. e Uma lista pode ser multiplicada, dividida, adicionada ou subtrada por/de um escalar de uma maneira bem simples. Tomemos a lista denida anteriormente.

%  0 %6 #@98
W W W W ""$ W
4

$ % 6 0 4  '  0  ' % "$     ' 7! # ! 15321)(& # ! 


W W W "" W
4  C


% %

W "W W W W "W W
5

' 5 A I c ' 7 A$08


 64

64

W W


W W ""W W W W """W

W b R A 1 V28I

64

W "W W

7 64

W W W """ W
4

W "W W

5 94

W W ""W


' 5 A I c ' A$087

W b R A 1 V28I

W W b " 
4 

! % %

H 8' C9(&

Note a maneira de se executar um multiplicacao ou uma divis o entre listas. Deve-se usar o sinal a de ponto ( ) antes do smbolo da operacao de multiplicacao ou divis o. a Operacoes entre listas s podem ser executadas se as listas forem de mesma dimens o (mesmo o a n mero de elementos). u Repare a diferenca entre a divis o direita ( ) e a divis o esquerda ( ). a a Note tamb m os resultados e os avisos de divis o por zero. e a
4

W "W
7


4

  W

b U6

) ) c 5 26

7 4W A R

W b I B W b ) R B V4A2VUQYVT

 4 BE

! A !
E

B CB

%   5 b B W 2CD$&VA

@ PBCc&6QRcA0&b 7 ) b  c I c U0&c

! A !

B CB

W W W "$ W W "W W W W "$ W W "W




64

7 C64

 4

W W ""W

7 64

W W "W "W
4

 5

  
4

 

W
  
5 4

W W "W "W
4

W W ""W

7 4

4 C C9(

Repare, entretanto, nas seguintes operacoes:

W "W W W
 4  C 64

W " W W 
' 5 A I c ' 7 A$08
4

W W " W


W b R A 1 V28I

W W  "" W
4 5

W W W W
' 5 A I c ' A$087
 4

W b R A 1 V28I
 W

b U6

! VA

4 (

B CB

W W W """W W W "W

4 (  C

W ""W W W
4

' 5 A I c ' 7 A$08


 CC   4 5

4 CCC6(

W b R A 1 V28I

7 C 4

W


W
W b R A 1 V28I
 W

' 5 A I c ' A$087

b U6

I c QA)

a
A

) T B 24V B

b c A86

   CCC 4

W
 C  4 5

W W

' 5 A I c ' 7 A$08

7 C64

 

$B 5 b ! 4 ( !
 4

B CB

W b R A 1 V28I


W W W """W

W ""W W W

4 (

' 5 A I c ' A$087




W b R A 1 V28I
 W

b U6

I c QA)

a
A

) T B 24V B

5 b b c $B A86

( ! CB B 4

A maneira mais simples de se criar uma matriz em MATLAB e inserindo seus elementos um a um, como uma lista, mas separando cada linha da matriz por ponto e vrgula:
b 6 A 7 6 R c I UQ8CU0 BCB B CB

Repare que o formato dos n meros (ver secao 2.3) foi modicado para bank. O que aconteceria u se a mesma matriz fosse denida com o formato default do MATLAB (short)? Um elemento de uma matriz bidimensional pode ser referenciado atrav s de seus dois ndices: e

As listas (vetores) vistas anteriormente podem ser consideradas um caso particular de matriz unidimensional. Em geral, as matrizes bidimensionais em MATLAB podem ser consideradas como sendo formadas por linhas (ou colunas) de listas. Por exemplo, sejam dadas duas listas denidas abaixo:
7 6 R c I CU0

Pode-se facilmente criar matrizes com estas listas:




W W ""W

5 94

W 

W W "W " W

W W ""W

7 4

W "W

W "W W W

W "W

 "

8 8' @9(&

64

4 E

W W "W $ W

W W H B A W " E&1

W W ""W

W W W """W

64

W "W

W W "W W

64

F W P

4 (

 5

F W W D ) ` 6 3W bB 1  W B P  "Q04V2 B8C!  

 

W ' 5 AI c ' 7  A$08 V28I W b R A 1

 7 T

W "W W

W "W W

' 5 A I c ' A$087

' 5 A I c ' A$087

W Q04V2 8C! D ) ` 6 3W bB 1 W B

W B ! 8CH

64

 64

H EB 3

W "W

W "W

W "W W  W

64

W B ! 8C

s Cu
4 E 4 ( 4   

W W W "" W

W W ""W

 T

W b R A 1 V28I

W b R A 1 V28I

 

 

7 6

 W

CB B

CB B

 W B BC!

e fd

W B C!

7 A6

BCB B CB

B CB

b U6

E 8' 9(&

F B 1D 

W W ""W

7 6
5 64

W
4 E5

CB B

W W W """W F W "W W
7 64

 W

b U6

1D


7 6
4 (7

W W W """W

CB B  W

b U6

W W W """W
4

W "W W W
5

W ' 5 AI c ' 7  A$08 V28I W b R A 1 W "W W


64

 64

W W

F D 6 CB 7 X7 B W W ""W  W
4

W W ""W

5 94

W W "W " W
4

W W ""W

7 4

W W "W $ W
4

W W ""W

64

W W W "" W
4 

' 5 A I c ' A$087

W b R A 1 V28I
 W

b U6

 X

D


7 6

CB B

E possvel referenciar todos os elementos de uma linha ou coluna utilizando-se o sinal de dois pontos ( ),

W ""W W W W "W W

W "W W W "W W W "W W W "W W W "W W

4  64

W W ""W W  W
4 4 ( 4 4E5  4 4 (7 4 4 E 4 ( 4   

W
4

W W W """W W W W W W """W W W W """W W W W """W W W W W """W W W W """W W W W W W """W W W W """W W W W """W





5 94 4

W "" W W W W "$ W W W
4 94 64 4 7 64

W " W W W


7 A6

 4 B(

W B 8C!

 B4
 64 4 (

W B ! 8C


7 6

4 4

CB B

W W W """W
4 4

W "W W W ""W W W W "W W W ""W W W

W W ""W

W


W W W W """W  W W ""W W W W """W

W W W """W W

W ' 5 AI c ' 7  A$08 V28I W b R A 1 W


4 E 64 4 (

5 94

W
4 5

W W "W " W
4 4

W W ""W


7 4 4 (7

W W "W $ W
4 4

W W ""W


64

W W W "" W
4 4

W W "W "W

W W W """W

W W "W "W

W W W """W

W W W """W

G 8' C9(&

W
 

7 b ) &UT

F Q) & 2U2T D ) 7 b ) a

B CB

F X) &W D B

W W W """W W W ""W W W W """W


5 94

4 5

W W "W "W
4 4 4

W W W """W W W ""W

7 4

W W "W " W W W "W "W

4 (7

4 5

W W W """W

4 (7

Extendendo ainda mais o conceito de criacao de matrizes, uma matriz tamb m pode ser formada e de outra matriz,

ou seja, a matriz Mat2 tem dimens o a . A matriz identidade pode ser criada com a funcao

H C8

W 
 W

b U6

F 6 X) &W 7 D B

B CB


A dimens o de uma matriz pode ser obtida com a funcao a

W W W W """W 
4 4 4

W ""W W W W "W W
 64

4 (

W W W """W
4

W W W """W

W W ""W


4 4

W


W W W W """W  W W "W "W


4 4 4 

W ""W W W W ""W W W W "W W

W ' 5 AI c ' 7  A$08 V28I W b R A 1

4 (

W W W """W W W W """W W
 4 4 4

W W W """W W W ""W
 64

W W "W $ W W W "W "W

4 E

4 (

64 4 (

W W W "" W W W W """W


W W W """W

4 E 5

W ""W W W

' 5 A I c ' A$087

W b R A 1 V28I

7 A6

 

W B ! 8CH


7 6


7 6

CB B

W 



5


7    W

b U6

) 8' B9(&
O que veremos nesta secao pode ser bastante util em diversas situacoes. Loops podem ser usados para criar listas, executar diversas operacoes de forma repetitiva, etc. Tomadas de decis o podem ser a
x u h w ) q q ) u ) u % 5q p

e fd

W W W """W
4

 4

W  W W
4 4

W W "$


4 4

W
 

W W ""W W " W W W "W


  4

W ""W W W

 

W W ""W W

W ' 5 AI c ' 7  A$08 V28I W b R A 1

W
4 ( 

W "W


94 4

W


W "W

7 C 4

W
4 7 (C

W "W

 
4

W
4

W "W W W
 4

W $ W W W
4 4

W W "W W
4 4  

W W W """W

W W "W "W

W W W """W

W ""W W W

 

W W W """W

4 ( 5

W ""W W W

W W W """W

' 5 A I c ' A$087

W b R A 1 V28I
 W

b U6

) ) c 5 B6

7 W 4VA R

W 4A&VQYCT b I B W b ) R B c I c U0&c

 4 B(

7 6

A
4

7 6

@ B c 7 4C&A6 E


CB B

A
4

%   5 b B W 2CD$&VA
7

7 6

A
4

7 6
7 64 4 (7

CB B

W W W "W W


7 64

4 E

W W ""W W W ""W W


 W

b U6

7 6
 

A 7
 C  

7 6
4 4 4

CB B

B Q W "W W
4 4 4

C7

W "W W
4 4 4

B A

W W W
4 4 4 

 "W   4 4 4 

B A

W "W W
4 4 4

W " W W W W "
 W

B  W AW "W B   W 0"W

W W W ""W " W W ""W W


B

B  W A"W W
7 

W "W W  W
5

W W ""W W W

W W W

W W W

B 0  "W W

  W ""W

b U6

F D b B  B

B CB

 W

B  W C3"W

 ) 3W

W "W

94

W  "W 3)

 3C6E  4

b U6

F D 7 ) B 2T
b A 7 6 B AQR 3 1 ) P20'

B CB

As operacoes com matrizes s o bem convenientes com o MATLAB. Uma lista de todas as a operacoes pode ser obtida com o comando . Veja alguns exemplos:

% 0  & 6 21)'

$ % 6 0 '  0  % "$    ' 7! # ! @14  &@1)' & # ! & 




W W


W W

utilizadas na criacao de suas pr prias funcoes, conforme ser visto mais adiante. A utilizacao dessas o a ferramentas no MATLAB e bastante semelhante ao uso em linguagens de programacao populares.
 $ $

O pode ser usado quando se quer repetir certas operacoes um n mero bem denido de vezes, u atribuindo os valores de uma lista a uma vari vel. Isto pode ser entendido mais facilmente atrav s de a e um exemplo. Para se criar uma lista que tenha ordem de formacao mais complexa do que o visto na secao 2.5, podemos usar o comando
c I UQ

Note que as operacoes compreendidas entre um par for end s o executadas em cada iteracao. a Descubra o por qu do uso do sinal de ponto e vrgula no nal das express es. O que aconteceria se e o n o fosse usado o ponto e vrgula? a

O comando e usado de forma an loga ao comando a . A diferenca fundamental e que com o uso do os comandos s o repetidos at que se satisfaca uma determinada condicao. Veja a e no exemplo a seguir.
c I U0 ) 1 ' 8AB 8 ) 1 ' AAB 8

1 8' 9(&

 

 "

 CC 4

 C7 4

37 4

86

W "

W "

  

H F @D bB W  EGh`&0F 1

 

5 37

W "W W

 64

% %
7 64

W % "P  8AB 8 ) 1 '

 1   

$ %  $ $ %  $
H @ 8 H U  H
3

 

  "

5 37 4

c I UQ

a a

T b 2)

 A T! b  F bD

c I U0

  Bb

 4

 64

 

c I U0

W "

CB B

T b U)

BCB BCB B CB

BCB BCB B CB


E usado de forma an loga a outras linguagens de programacao. N o h muito o que explicar j a a a a que deve ser do conhecimento de todos. Repare que deve terminar com o comando . Exemplo:
T b U)

Note que se houver apenas duas possibilidades a vericar deve-se usar if-else-end, enquanto que se houver tr s ou mais possibilidades a vericar deve-se usar if-elseif-...-elseif-else-end. e
 w u s  
) & u 0(

O MATLAB e bastante vers til para criacao de gr cos em diversos estilos (bidimensional, a a tridimensional, barras, polar, etc.). a Vamos plotar a funcao co-seno com as listas e criadas na secao 2.5. Para gr cos simples bidimensionais deve-se usar a funcao .

3 8' C9(&

W "W W

 &  6 $ %8 

7 4 6(

7 I 1 PC3

W "W

 9%

7 6E 5 4

$ "  6 ! %   ' $ %  

H  F TW b R D

  F b

W ""W W W

 F b

b  UR

4 (7

b  C R

RD

RD

 UQ  b c I  R cI  U0

B ) W 1 022)

) W 1 22)

H


T b U)

W W W """W

 
T b 2U)

4 (7

H W W



B CB

  b  BABb

!

 

 B  
 e fd

T b U)

T b U)

B CB

B CB

Logo em seguida a esse comando, deve ser aberta uma nova janela gr ca com o gr co da funcao a a desejada. Para se obter o gr co com grades para facilitar a leitura, use a funcao a . Note que o MATLAB ajusta os eixos automaticamente.
1

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1 5

10

15

20

Como salvar o gr co num formato que possa ser inserido por um editor de textos? Na janela do a gr co, e s clicar no menu File Export. . . e escolher o formato desejado. Ou, se preferir trabalhar a o na janela de comandos, use a funcao adequadamente. D um e . Para adicionar ttulos aos eixos e ao gr co, siga o modelo abaixo: a
7 b B c 2C23 3 1 ) 420' 7 b B c &V23 $

Para plotar mais de uma curva ao mesmo tempo:

b 4I

T B c 4C5

5 8' 9(&

F FS@hDEW&I8S88C c Q8QDV7 % ` I ` B 6 D ) 1 7B %   F I @ 04B R2QA1 D 1 ) A 6 % % E  a a F 904B R2QA0% @ I @ D 1 ) A 6 1 @ % E 

F F @D bB "Gh`&W @ @D 7 I 1 3 % hUPC(%    a

a 

@D 7 I 1 3 % hUPC(% % %

Grfico cos(x) e sen(x) 1

cos(x) sen(x)

0.8

0.6

0.4

0.2 Eixo y

0.2

0.4

0.6

0.8

1 5

5 Eixo x

10

15

20

Outras opcoes da funcao , tais como cor ou tipo da linha do gr co, smbolos dos pontos a plotados, podem ser vistas no correspondente. Procure tamb m alguma informacao sobre e legendas ( ). Em seguida, veremos um exerccio muito importante. Modique o n mero de elementos da lista u para um valor bem menor que 50 e, depois, para um valor bem maior que 50. Note bem o que acontece com a curva plotada.
3 1 ) 420' 7 I 1 PC3 b I T B c H 4S4C5 RF @D 7 I 1 3 % hUPC(% a  H F @D W I ` EGhE280 % % a H F W EP W 3 D )`63WbB1 @ % B U QA0DVD2 %  X 

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1 5

10

15

20

8' 9(&

b I T B c H 4S4C5 RF @D 7 I 1 3 % hUPC(% a  H F @D W I ` EGhE280 % % a H F W W W EG"" W 3 D )`63WbB1 @ % B U QA0DVD2 %  X 

F @D W I GhE28`

T b ) 5 ) 1 3 1 ) 2U2AX420'

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1 5

10

15

20

Note como a curva com poucos pontos cou bem distorcida. Isso e bastante importante em aquisicao de sinais: o n mero de dados amostrados deve ser suciente para revelar a informacao u correta do sinal. Este t pico dever ser visto em detalhe no decorrer das atividades do laborat rio. o a o
1 9
 s u

Entre as diversas atividades do curso, estaremos aquisitando dados experimentais atrav s de uma e placa de aquisicao conectada ao computador e controlada por funcoes programadas usando o software LABVIEW . Desta forma, ser gerado um arquivo em formato ASCII com a tabela dos dados a num ricos aquisitados. e Ap s esse processo, voc dever realizar diversas an lises com os dados utilizando o MATLAB. o e a a Existem diversas maneiras de se importar os dados de um arquivo usando o MATLAB. Analogamente, voc pode querer salvar (exportar) um conjunto de dados obtidos no MATLAB e para uso posterior. Existem v rias maneiras de importar ou exportar dados no Matlab. J vimos anteriormente o uso a a das funcoes e para salvar e carregar todas as vari veis de uma secao de trabalho. Verique a agora e . Com uma pequena variacao, e possvel selecionar as vari veis a a salvar ou carregar. Para salvar somente os dados e em arquivos com formato bin rio que s o a o Matlab entende:

Para salvar ou recuperar dados em formato texto (ascii), o procedimento e um pouco mais complicado. Se voc j vericou e a , ent o entender o procedimento seguinte: a a

T 6 I A81

Para recuperar esses dados, basta usar o comando


c 6 ) 1 8A8`

u s u Qp


q )

7 8' C9(&

) u %)

) 6  AW

) & u 0(s

3 1 ) 40'

H F W W RP" W 3 D )`63WbB1 B U QA0DVD2 @  X 

q p  T 6 I AA1

 

3 1 ) 42Q' T 6 I AA1

7 6 CR

7 6 CR

) & u 0(s 4 4

 W I T 6 B&QA2T

 W I T 6 B&QA2T

)  6 BW P20' 3 1 ) ) 6 0 W

H F @D bB W EGhUD&0

 p
 

) 6  W

T 6 I AA1

e fd

BCB BCB B CB BCB B CB

Abra os arquivos dados1.mat e dados1.txt com um editor de textos qualquer e observe a diferenca. A recuperacao dos dados e feita da seguinte forma com a funcao :
T 6 I 8A1 c 6 ) 1 8A8`

Repare que os dados s o inicialmente guardados na vari vel com o mesmo nome do arquivo mas a a sem a extens o (dados1). a Existe uma outra maneira de se exportar/importar dados em que se pode ter um controle melhor do formato do n mero a ser salvo/importado em/de um arquivo. Veja em seguida. u para criar um arquivo e/ou para A primeira operacao a ser realizada e usar o comando disponibilizar um arquivo j criado para um dos seguintes modos: para escrever ou para ler ou para a incluir dados. Aproveite e d um e . Por outro lado, a ultima operacao com um arquivo dever ser seu fechamento com o comando a . O comando , se usado corretamente, dever retornar um n mero inteiro maior ou igual a 3, a u n mero esse que representar a identicacao do arquivo aberto. u a Tomemos como tarefa armazenar os elementos de duas listas e de mesma ordem num arquivo a ser denominado, por exemplo, dado1.d. Obviamente, deveremos primeiro criar as listas e o arquivo:

O arquivo denominado dado1.d foi criado no diret rio atual (verique a criacao do arquivo), o e foi atribuido o valor 3 como identicacao deste arquivo. Com isso, sempre que se desejar fazer refer ncia ao arquivo basta referenci -lo com o valor 3. Se for criado mais um arquivo antes do e a fechamento do 3, ele receber a identicacao 4, e assim por diante. a Em seguida, deveremos exportar os dados para o arquivo 3. Existem diversos comandos para se executar essa tarefa, todos muito semelhantes aos comandos da linguagem C. Uma listagem . Neste texto completa das funcoes de entrada/sada do MATLAB pode ser obtida com vou mencionar apenas a funcao , que penso ser a mais adequada para nossas necessidades. Vejamos como utiliz -la: a
b A  I B 3 1 ) &BA42Q'

b ) 3 I 040

H E' F2(&

W A 6 7 V b ) 3 I U0P0


7 b B c 3 2C2A

B B ` W 6 2 3 1 ) 420'

H F W W RP" W 3 D )`63WbB1 B U QA0DVD2 @  X 

B B ` W 6 2

F T  "" 4  

a
@

) c 6 W ) 1 A6B c 6 D2A9AVUCA0

7 @ 827 7 @ 827
4

H EF

H EF

b ) 3 I UQ40

4 

 X

 W I T 6 B&QA2T  W I T 6 B&QA2T

I0T82T U040 6 D b ) 3 I  H F @D bB W EGhUD&0

  W I T 6 T "D B&0828

D B&0828  W I T 6 T

c 6 ) 1 8A8`

) 6  W T 6 I AA1 I ' C8
 W

 W I T 6 B&082T

) W I 1 ` &Q

c 2A I

B CB BCB BCB B CB BCB B CB BCB BCB BCB B CB


b U6

signica formato de n mero real (ponto utuante), enquanto u E muito semelhante a linguagem C. ` que signica nova linha. Outros formatos e comandos possveis podem ser encontrados no correspondente. Informe-se tamb m sobre a funcao e . Outra maneira seria utilizar uma matriz formada das listas e :
3 1 ) 420'

Veja que foi criada uma matriz com as lista e e essa matriz foi armazenada no arquivo. Observe tamb m, no exemplo seguinte, o controle do formato de sada dos n meros reais e u (elementos das listas):
  7 7  I Q B BY AV&U2PB T &DC2A A c 6  B 7 b ) T D 7 bB c 3 4  E7   4  H RF 6 T I T 6 D b ) 3 I  I 0AT UUQ403 C B A Y 8 V2U24B c 6 B 7 b ) T   " E  4 

Para importar dados de um arquivo em formato ascii, basta usar a funcao . Por exemplo, para importar os dados do ultimo arquivo dado2.d para plotar, pode-se proceder da seguinte forma:


Note que apesar de o arquivo dado2.d conter 100 linhas e 2 colunas, n o e possvel armazenar esses a dados nessa forma numa matriz de ordem . A melhor opcao e proceder como no exemplo

b 6 ` W UC

H EF

  b

' 7 5 b ) 88$U81

8 2(& E'

H H @C8

HEF"FD FbT@ b   b D D 7 bB c 3 T &C28 a  "  b"T   F @D ' 7 5 b )   c I GhU8$UA1 Bb U0

b4ST4C&5 RF I B c H @D 7 I 1 hUPC3 B CB a  H EF D  B  a CB H F EB D  @ CB B  H  CB  B H T ) W 1 ` EFS4B DQ2I8Q CB B HRFG  bB   T D b ` W 4B T U6&Q3 BCB "  "  H EF c T I0A62T DUU04IQ3 T4B T b ) 3  BCB   " 4(  B CB

H F I B c 6 B 7 b ) T D ) W I 1 ` E$Q A Y A V&U4B Q28Q

H EF

" b 

  "

F Q28Q D ) W I 1 `

F Q28Q D ) W I 1 `

H H  U@ a

D 7 bB c 3 T &DC2A

c 6 ) 1 8A8`

 W

 W

T b U)

B CB B CB BCB BCB B CB BCB BCB B CB


b U6 b U6

acima e armazenar numa matriz . Isso e devido a ordem de leitura dos dados pela funcao ` . O ultimo par metro (terceiro) usado na funcao a ( ) cont m duass vari veis que e a indicam o n mero de elementos a serem lidos no arquivo em quest o. Apenas a vari vel da direita u a a pode receber o valor , que signica innito e foi utilizado para que a importacao de dados fosse at o m do arquivo. e Se n o for utilizado esse terceiro par metro, a matriz a a ser um vetor coluna contendo todos os a dados do arquivo. Teste voc mesmo. e
 

Nesta secao veremos como trabalhar com funcoes polinomiais. A manipulacao de polin mios e o feita, basicamente, com seus coecientes formando uma lista (vetor) horizontal. Por outro lado, as razes de um polin mio formam uma lista vertical. o Vejamos um exemplo simples, o polin mio o , o qual tem como razes os valores e . Sua representacao pode ser feita com a lista . Repare a ordem de disposicao dos coecientes:

Descubra o que faz a funcao . Qual seria o resultado de ? Em seguida, veremos como determinar o valor de uma funcao polinomial para um determinado valor da vari vel de entrada. Para o mesmo polin mio a o denido acima, qual seria o resultado se ? Basta usar a funcao .

Mais interessante do que isso, a vari vel pode ser uma lista ou matriz. Veja como plotar a funcao a para valores entre e :

F G H

D &C3 1 I a

W 7 I I CPQc

Suas razes podem ser encontradas com a funcao

b B

8 %

b 6 ` W U&Q

E E' @2(&

H H @C8

& h p

1 6 

1 I C3

H F W EP"W

F   @ @ R2QA1 D 1 ) A 6  7   a F @ R2QA0@ D 1 ) A 6 1   b4I TPBC5 EF 5 c H   hUPC3 @D 7 I 1  "  a H EFB @  3 R V  D 1 6 1 I 3  a a D ) ` 6 3W bB 1 Q00DV  @

1 I V3

H FE

4  7 6(C

H FE

b DB

) & 0(u 6 $

F 3D W 7 I I c B ECPQ8  c

3 R D 1 6

 

hQ8

W  ) "W 3

1 I 3 V

  

E BF1 ! 7

 "

 

4 6E

b 6 ` W U&Q 3
g e hfd

   

 

B CB B CB B CB BCB BCB BCB BCB B CB


  

8 %

600

500

400

x2 5x +6

300

200

100

100 20

15

10

0 x

10

15

20

Diversas operacoes podem ser efetuadas entre dois polin mios: soma, subtracao, multiplicacao, o divis o. Para soma e subtracao deve-se considerar as listas dos coecientes dos polin mios e efetuar a o , enquanto a operacao conforme visto na secao 2.5.1. Para multiplicacao deve-se usar a funcao que para divis o a funcao a . Em todas as operacoes mencionadas acima, as listas devem ter n mero de elementos compatvel u com a ordem do polin mio. Deve-se completar com zeros at que essa condicao seja satisfeita. Al m o e e disso, no caso de soma e subtracao, as listas devem ser de mesma ordem. Por exemplo, para efetuar a multiplicacao do polin mio o usado acima com o polin mio o :

Mas, para executar a soma dos dois polin mios devem ser utilizadas listas de mesma dimens o: o a
6 T 6 ` B  B T I A8CCUVR


Por m, veremos como determinar os resduos, polos e termos diretos de uma fracao de dois polin mios no m todo da expans o em fracoes parciais. o e a

 bI $48`

8 %

G E' F2(&

3 6 7 W B 481

 bI ` ) $482T
 

 

 

F 3

W W

W W  W

3 (

3  40 D bI `

 

E %

    

3 

3 3 3 3
  

 

B CB B CB B CB B CB


3 3 3 3

Para isso, usa-se a funcao , que retorna como resposta tr s listas: resduos, polos e termos e livres. Por exemplo, para a fracao de polin mios o

teramos a seguinte operacao no MATLAB:



5  7  

Note que neste caso o numerador e um polin mio de ordem maior que o denominador, resultando, o portanto, num termo livre n o nulo. a A funcao do MATLAB tamb m serve para executar a operacao inversa, ou seja, dadas e as listas verticais dos resduos e dos polos e a lista horizontal dos termos livres, ela determina as listas horizontais dos polin mios do numerador e do denominador: o

) 2(& E'

Ou seja,

 %  0 

Dada uma fracao de dois polin mios o parciais,

, podemos decomp -la numa soma de fracoes o


""! ! !

E  8

E % 0 8 % 0   E 8 7

) A T B W ) 0B422c

F b ) R A D ) A TB W ) c U2T 8"b QQB4&8

F 3 c Q0B4228  T b D ) A TB W ) c   

F G

) A T B W ) 0BP&2c

D CABU2T 1 I 3  b ) a

 

R A 8"b
      

   

 b ) D2T

 D3

 Db

R A "b

B CB B CB B CB B CB
c T

O MATLAB e uma ferramenta poderosa em controle e processamento de sinais, com v rias a funcoes especcas. Entretanto, a maioria dessas funcoes s est disponvel com a compra de pacotes o a adicionais, chamados de Toolbox. Portanto, deve-se instalar o Control System Toolbox e o Signal Processing Toolbox. Cada um desses pacotes cont m um n mero muito grande de funcoes, incluindo t picos bem e u o avancados. Nesta apostila trataremos apenas das funcoes a serem utilizadas em nosso curso. Para uma abordagem mais detalhada, o estudante deve consultar a documentacao de ajuda que vem com a pr pria distribuicao ou os in meros livros publicados. o u Deve-se levar em conta que houve v rias modicacoes entre as vers es antigas do MATLAB e as a o mais recentes. Diversas funcoes e uma otima interface gr ca para o usu rio foram acrescentadas. a a Em particular, a interface gr ca agiliza bastante o trabalho no projeto de elementos de controle. a
u h & 0 q )
& 'q

Nesta secao, descreveremos algumas poucas funcoes para tratamento de sinais aquisitados. Basicamente, utilizaremos a transformada simples de Fourier para analisar o espectro de um sinal (conte do de frequ ncia) amostrado. u e No exemplo seguinte, com ns did ticos, faremos o caminho inverso: criaremos um sinal j a a sabendo de antem o as suas componentes em frequ ncia. Seja um sinal no intervalo de tempo de a a e dado pela equacao: Esse sinal pode ser plotado como na gura abaixo. Pratique: como foi plotado o sinal em MATLAB? Dena um vetor de tempo variando de a e contendo elementos e determine . Note que escolhemos um valor (512) que e pot ncia de 2 como n mero de elementos porque o e u algoritmo interno do MATLAB para a funcao (a ser utilizada mais tarde) e mais r pido nesse a caso.
15

10

10 0

10

Para encontrar seu espectro de frequ ncias (o qual j se pode determinar da equacao acima), e a utiliza-se a transformada r pida de Fourier, dada pela funcao a ,
7  8C

 $ 8

 D  

 
1


(

E 8 1


$




H #! %B8 $") 0  5  & 1  1  & E




H C8

$  %

1 E' @2(&


7  8C


1

 $
1

        2q w s  u
1

g he 1

H C8

Ao sinal, corresponde um tempo (perodo) de amostragem dado pelo intervalo entre dois instantes de tempo sucessivos em que e feita a medida do sinal. No nosso caso, pode ser determinado de duas maneiras, pelo menos:

ou, ent o, considerando que tomamos 512 elementos no intervalo de tempo entre 0 e 10: a

Lembrando dos conceitos do Teorema da Amostragem, a frequ ncia de amostragem deve ser e maior que o dobro da maior frequ ncia do sinal sendo amostrado. Caso contr rio, ocorre aliasing. e a Portanto, s devemos considerar o espectro de frequ ncia at o e e . S iremos plotar o espectro at o e a frequ ncia m xima e a dada por:

Com isso, note, tamb m, que limitamos os pontos a metade. Deniremos o intervalo de frequ ncia e ` e para o gr co como: a

Por m, devemos lembrar que a transformada de Fourier resulta em valores complexos. S nos o interessa o m dulo desses valores. Ent o: o a

E @

3 E' F2(&

H RF

H F E"F

U885 F 7D ' 7

S`88$U81  D a a EV2B3 "a CB F 7D ' 7 5 b ) D W A 6  B a

Ao perodo de amostragem
W G

corresponde a frequ ncia de amostragem e

b ) UA1

F  B

 " 

F D 7 B U F UAW D 7 

W QA0DVD2 D ) ` 6 3W bB 1

D F W WD  RP" "XW

H D 7 RF 8 a
3

a a "

B DA 3

D 7 I 1 UPC3

W W

7 C64 7

 W

 W

 3  W 4 4 4

 Bb

a "a


W  "

 W

 W

 W

 Db

B CB B CB B CB B CB B CB B CB B CB
G G

1400

1200

1000

800

600

400

200

0 0

20

40

60

80

100

120

140

160

180

Para analisarmos mais detalhadamente a regi o do espectro at 15 rad/s (equivalente a dar um a e zoom), utilizaremos a funcao ,
T b B 2C

1400

1200

1000

800

600

400

200

0 0

As novas vers es do MATLAB cont m uma interface gr ca especial para an lise de sinais, que o e a a pode ser aberta com o comando . Experimente com a nova janela aberta.
 '  # ! & %$"     

Com o pacote Control System Toolbox e possvel resolver facilmente diversos problemas de controle. Nesta apostila s iremos tratar dos conceitos a serem usados no curso, e veremos somente o sistemas de uma entrada e uma sada (SISO), lineares e invariantes no tempo (LTI). Uma listagem completa das funcoes desse pacote pode ser obtida com o comando .
 5 4 1 $60320%(  ) B @ 8 CA97

b 4I
5 Frequncia, rad/s 10 15

F 2 A2c W T 6

T B c H 4C5 EF

 "  
A

6UB&`Vb) A Y2c R2QA0@ ) D 1 ) A 6 1  F D D 7 I 1 S UPC3

F D S U3

H EF

a a "

  C

D T bB  T2DC3

BCB BCB B CB

No MATLAB, a representacao de um sistema pode ser feita de tr s modos: com funcao e de transfer ncia; funcao zero-polo-ganho; espaco de estados. S utilizaremos as duas primeiras e o representacoes. Dado um sistema LTI, com condicoes iniciais nulas, representado por uma equacao diferencial no domnio do tempo,

Mostraremos duas maneiras de denir uma funcao de transfer ncia nas vers es mais recentes do e o MATLAB, fazendo uso da funcao . Na primeira maneira, deve-se explicitar uma vari vel ( por a exemplo) e, ent o, entra-se com a funcao: a

Outra maneira e entrar em forma de dois polin mios, um para o numerador e outro para o o denominador da funcao de transfer ncia: e

Ou ent o, a

procede-se da seguinte maneira:

Para representar um sistema LTI com forma zero-polo-ganho, usa-se a funcao representar um sistema

  "

! !  C @ !"!"!  A " ""!

% 0  0

 B@ @   @  !  

! ! ""! % E% 0 0 ! "! ! 0  C 0

H EF

F G

E' 2(&

b 3


4 4 CC4

3C7@ @ 1 5) 60( 3 @ 1& 4C2@ ) 0(

H F W W ES "



F W W W P" A

'

sua funcao de transfer ncia e




e obtida tomando a Transformada de Laplace:

% # &$

     "  ! "

! "8 ! !

!  

 

 

 

   

! "8 ! !

4 4 CC4

H W  W 

H F b ) R A D 7 EU2T 8"b  A 

 D

 

b I B 7 ` b A 48V4V

b I B 7 ` b A 48V4V


 

W "W  W    W 

'

H W  

F W  AW D 7   

@


W D 7   A

W D W  R 

D  3

 BU2T  b )

W 

c )  W b 6 82VUc

c )  W b 6 82VUc

R A 8"b

B CB B CB BCB BCB B CB B CB B CB
W G G

Para

Por outro lado, uma vez denido um sistema, pode-se obter seus dados utilizando ou . A funcao retorna os vetores dos coecientes dos polin mios formadores da funcao o de transfer ncia ( e e ). Enquato que retorna os vetores dos zeros e dos polos e o valor do ganho .
6 7 6 T A2 7 6 7 6 T A2&3

Uma vez representada a funcao do sistema, pode-se determinar sua reposta no tempo a v rios tipos a de entrada utilizando a funcao correspondente. Verique voc mesmo para que servem as funcoes: e , , , , , . A resposta em frequ ncia de um sistema pode ser obtida com as funcoes e e . Para explicitar as frequ ncias mnima ( e ) e m xima ( a ), dar o comando na seguinte forma: . As novas vers es do MATLAB t m uma interface gr ca para controle. Para utiliz -la, primeiro o e a a representa-se o sistema como visto acima. Ent o, d -se o comando a a . Deve-se abrir uma janela pedindo para selecionar um sistema a analisar. Ap s a selecao, abre-se uma nova janela em o que se pode escolher interativamente as respostas obtidas para v rios tipos de sinais de entrada. Esta a e uma maneira bastante pr tica de trabalhar. a Al m das funcoes contnuas vistas at agora, o MATLAB trabalha muito bem com funcoes e e , discretas. Uma vez denido um sistema contnuo, ele pode ser discretizado usando-se a funcao a qual pode realizar a discretizacao por v rios m todos. Em vers es antigas do MATLAB, usar a a e o funcao ao inv s. e Para utilizar a funcao , deve-se entrar como par metros a funcao do sistema, o perodo de a amostragem, e o m todo de discretizacao desejado. D um e e . Por exemplo, para discretizar a funcao contnua , denida acima, pelo m todo zero order hold, e
T

Analogamente, emprega-se a funcao para converter um sistema de discreto para contnuo. Note que e possvel criar diretamente uma funcao discreta usando ou bastando inserir mais um par metro que represente o perodo de amostragem . Veja nos exemplos abaixo: a
3 

Uma outra maneira possvel para inserir uma funcao discreta e explicitar a vari vel ( por a exemplo) e o perodo de amostragem e denir a funcao na vari vel, a

7 1 B PAC

Ainda com relacao a funcoes discretas, descubra o que faz a funcao

b B c 6 C5 AQR

) T I 2UCA

V VP1 ) B B 7

3 1 ) P20'

7 E' F2(&

b A 3 ) 7 &B UPW

H EF

&

 64

5B W b ) RB W 1 6 B 7 b ) W 1 A 3 R 3 ) 7 &V25 Y2&1 2VDB B &V"&YB U04W

F  D 6 7 6 T 7 b ) R A QA2 A  U2T 8"b   T  

H ' EF 4I W D ` TT 0  " G T  

H EF W

 5 1  % 7  6 7 6 T

H EF W

G

F @ 6 R bB R PAQA A bQ2CA 5D ) T I  

G

W 

W W "



b ) U2T

H EF W

 U 

D D RF  T 

'

G "   

R A D 7 "b T 8

D 3

R T

D 7  A

6 7 6 T 2& 3 `


 b ) D2T

R A "b

B CB B CB BCB B CB BCB B CB

A funcao de transfer ncia de malha fechada de um sistema e dada por: e

onde H(s) representa um compensador e G(s) a planta. A equacao caracterstica correspondente e:

que pode ser representada em funcao do ganho

como:

Para obter o gr co do lugar das razes usa-se a funcao a . Existe uma interface gr ca especial contida neste Toolbox para controle. Ela pode ser aberta a com o comando .

E conveniente criar suas pr prias funcoes em situacoes em que se necessite executar certas o operacoes repetidamente. E, tamb m, a criacao de arquivos script pode ser muito util para evitar e ter que digitar grande quantidade de funcoes na tela de comando. Portanto, a criacao de funcoes e de arquivos script s o recursos que devem ser utilizados para agilizar o trabalho. a A grande diferenca e que ao invocar uma funcao ela trabalhar em background sem interferir nos a comandos ou nas vari veis da janela de comando, enquanto que invocar um script e o mesmo que a digitar linha por linha seu conte do na janela de comando. u As funcoes e arquivos script podem ser criadas em qualquer editor de texto, desde que ao salvar se use o formato text, ou no editor pr prio do MATLAB. Para abrir o editor do MATLAB, clique no o menu File e escolha a opcao New M-le. O arquivo de funcao ou script deve receber a extens o a .m e deve ser salvo no diret rio atual de trabalho ou num diret rio que faca parte do caminho (path) o o do MATLAB.
$ x q yv w
&

A criacao e a utilizacao de funcoes em MATLAB e muito similar ao procedimento usado em linguagens de programacao. Imagine que voc necessite criar uma onda quadrada. Abra o editor de e texto e digite a funcao como abaixo e salve em formato texto com o nome quadrada.m:

F b ) R D W ` I 1 2T 8A b EVA 20c 



' '
(

 !

'

H G' @4(&

1 5 D %

6 T 6 c T 6 A 282A0BY

 

F b

$

I #6 2$W

F b

% 3 4 #  %
8

6 T b I ) T 6 R c I  6 R 245QAU08Q8A

I #6 ! ` b A 2$"&B

W 7

  

W 7

)  

  U

3 D 6 T 6 c T 6 Y 8X2A280A " 

&(

6 T 6 2T

3 D 6 T 6 c T 6 Y 8bQ2A2&A0A " 

 

 #

1 I I 7 1 QPQc

8 $

6 W

 $ 

) 2T

6 c 2A)

$ $ 0 4
a 

W ) c I 1 6 2U

a 

H    7 PAV4V&B b I B 7 ` b A

 

4 3

7 8W I


g he 6 W 0#
 

 

8 G' I4(&
6 c 6 2AQ3 H E G F &8&E ) 7 c ) 3  8A08$b A2AQA Y W 6 T 6 c T 6

W 6 T b I c 6 7 I 1 3 6 c 6 3 I #6 6 c ) 7 0224SAUC2A0(2! ` 2A4B W 6 W c )  B T W 6 T 6 c T 6 0QAC2AA0A Y

6 2T

I ) R ! ` QDI

W 6 T b I c 6 7 I 1 3 6 c 6 24SAPV(2803

D 7 A 3 b &"&B
7 3 B c ` &CP&W

Note que a funcao tem duas sadas ( e ) e quatro par metros de entrada (Vp, P, t0, tf, n). a Todas as linha que comecam com o smbolo % s o utilizadas para a . Assim, se voc estiver e na janela de comandos e digitar as mensagens de ajuda contidas nas linhas % aparecer o. a Note que se uma funcao tem apenas uma sada ent o ela pode ser denida na primeira linha do a arquivo .m correspondente como, por exemplo: . Ou seja, sem os colchetes.

Se voc desejar usar a funcao quadrada denida anteriormente para plotar v rios tipos de onda e a quadrada, ent o ser conveniente criar um arquivo script para tornar o processo menos trabalhoso. a a Abra o editor de textos e crie o arquivo com nome script1.m como abaixo:
p Cs w
1 9

 s

de 6

F D 1 6 B c I 7 6 b R2CUQ

b I B 7 ` b A PAV4V&B

3 1 ) 40'

6 T 6 c T 6 2A2&A0A Y

3 1 ) 420'

T b U) T b 2U)

H 3   F `8S D a D a H 3 `8 W
  CDF

) W 1 &2)

S  F

F 3 3 F 7 F D 7D D 1 B ) `D R ) &4 PW A S h"RA0A`P2c
b I T 0UI
c ) 3 I B ) A0(A0QR

H 7 6 7 1 )  F  D 7  F D ` P B AS 7

c I 0
 

3 3

H F  bD F 7 7D  7 6 7 1 ) EB R PW A  XB P
W I T 6 I ) W ) &08"T 6 T 6 c T 6 A2AQA Y 6 T b I I #6 ! ` b A 2452$"&B

H 7  F D TW AB"7 
b

1 6 A 5 B 20XA I

c I B 6 U80QR

c ) AW ) 2T

) ) T  25b I c ) R 0AQ A b

6 T W I 7 b I (2Q&4C3 1 6 B ` b U&8B DB 6 T b 24I I ` 88B 3

1 6 b B  ) 7 b 6 7 b B 20V80&U4W S 7 ) 7 b 6 7 b 0&U4W B 6 T I T 20UI

  

W P7
3  W 0#


c ) 803

) 2T

I #6 W b ) 2$V7

   

I #6 $W

I #6 ! ` b A 2$"

6 T 6 T 6 c 7 b ) ) T W I c 7 ) R c 6 29282&&U92&02QP6 803 ) T W ) c I 1 6 (02U20 ) T W ) c I 1 6 (02U20 R I D` R I D` 6 7 W B 04821 6 7 W B 04821

W ) 7 b ) T b I 3 W ) c c I 0&U22PCD2&U8`

I #6 W b ) 2$V7 I 3 R ) C&U7

a "
7

E 4(& G'

Diversas funcoes utilizadas no arquivo acima merecem algumas consideracoes. A funcao e utilizada para imprimir uma mensagem na tela e pode ou n o esperar pela entrada de algum dado a (exemplo, . No caso de se querer utilizar uma vari vel do tipo string, a coloc -la entre aspas: a . Note tamb m e que e utilizado (como na linguagem C) para fazer o cursor ir para a pr xima linha. o Dentro do script foi feito uso da funcao quadrada denida anteriormente. Os smbolos e s o operadores l gicos. a o

Por m, note que e possvel reinicializar o trabalho do script bastando invoc -lo de dentro do a script ( ).
#

7 3 B c ` W b A 2CPXBc

F W  "  

A I

cA60A"bDBV7&b4I8`6I")AW DU7&A"C34&VD) ) 3 b B  6 7 W I 3 W H  F  @ 2&&b &"&Q  @ ) c 7 D 7 A 3 bB E 

7 A 3 b &"DB

F W  ""  

F b 

W ) 7 ) ' ` 1 I ` R ) 00D&&8XU5 8QR @ 6

F W  ""  

F 

6 T b 24I

Operador Descricao identidade OR AND NOT


 C

 C

T b U)


7 3 B c ` W b A &DCPXBc

A I

) 7 b ) R 6 I 0&UQP0 Cb

7 3 B c ` &CUW

W    C  B   H  X H c 6 T I c 6 I ) W ) D 7 A 3 b B A205"A U&"C

T b U)

H F 6 1 6 ` W D W B @ EPA) R8CA6 a
b B R

@ 6 R @ b R AQA5B @

) c 7 2&&b

E

D 7 A 3 bB  6 1 6 ` W &"&Q3A)
W
   C 

F  F F F   

  H X H  AI ` W W B T I 6 I ) W ) D 7 A 3 b B F  W06A1260) 6 cA6A`8BC CVR "A  U&"C H H`PIX4BCbEF b T c 5H  P&C3 D 7 I 1  a a H EF @ @ @  @ C@ Q62A2&TA0A "  D T 6 c 6 Y  7 T X    a a D 7 A 3 bB 2"Q @
I ) c 7 S2&2b I ) c 7 S2&2b I ) c 7 S2&2b I ) c 7 S2&2b I ) c 7 S2&2b E E E E E

D 7 A 3 bB  2"Q C@ D 7 A 3 bB 2"Q @ D 7 A 3 bB 2"Q @ D 7 A 3 bB 2"Q  @


c 6 A b B 7 b I AQ"V&P8`

0A"A2T &Q&PC(T QAQ8 A b I T 6 I ) W ) W I 7 b I 3 ) I c ) R 883 22$W U25U2 I ` B ) T I #6 b ) 7 6 T c I 1 6 20DC &UPVB 05U2 1 6 b B ) 7 b 6 7 W b I T c I 1 6 1 6B ` B bB ) 7 b6 7W b I T cI 1 6 2U&8S&UPVB 05U2
c ) A03

) T 6 R c I  6 T I T 2CU0820UI

I T c I 1 6 05U2

F 

Você também pode gostar