Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Curso Especializado em Controle de Sistemas Discretos no Matlab, Notas de estudo de Engenharia Ambiental

Documento que apresenta um curso especializado em controle de sistemas discretos no matlab. O documento aborda a representação de sistemas no matlab, conversão entre sistemas discretos e contínuos, e aplicação de diferentes funções para simulação e análise de sistemas. Além disso, o documento fornece exemplos práticos e exercícios para ajudar no entendimento dos conceitos.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 16/11/2008

raquel-rissari-4
raquel-rissari-4 🇧🇷

5 documentos

1 / 41

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Centro Universitario do Leste de Minas Gerais
Unileste-MG
Curso de Especializac~ao
CONTROLE DE PROCESSOS
INDUSTRIAIS
Disciplina :
Nivelamento { Matlab
Ano: 2002
Prof. Roselito de Albuquerque Teixeira
CEE Teixeira, R. A. (2002) Unileste-MG
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Pré-visualização parcial do texto

Baixe Curso Especializado em Controle de Sistemas Discretos no Matlab e outras Notas de estudo em PDF para Engenharia Ambiental, somente na Docsity!

Centro Universitario do Leste de Minas Gerais

Unileste-MG

Curso de Esp ecializac~ao

CONTROLE DE PROCESSOS

INDUSTRIAIS

Disciplina : Nivelamento { Matlab

Ano: 2002

Prof. Roselito de Albuquerque Teixeira

Sumario

Intro duc~ao

O Matlab teve sua primeira vers~ao lancada no nal da decada de 70. Ho je e um sistema interativo e uma linguagem de programac~ao para computac~ao tecnica e cient ca em geral. A matematica e a linguagem comum de grande parte das ci^encias e da engenharia. Matrizes, equac~oes diferenciais, conjunto de dados, gra cos e di- agramas s~ao blo cos basicos tanto da matematica aplicada quanto do Matlab. Neste curso de nivelamento, veremos desde comandos de uso geral ate comandos para representac~ao e analise de sistemas em temp o contnuo e em temp o discreto.

Captulo 1

Tutorial do Matlab

1.1 Caractersticas Basicas

 O prompt: >>

 Distinc~ao entre letras mai usculas e min usculas, ate 19 caracteres;

 Nomes de variaveis, func~oes e programas n~ao p o dem ser formados p or caracteres esp eciais.

Incorreto Correto


calculo mnimo.m calculo_minimo.m predic~ao.m predicao.m

1.1.1 Matematica elementar

4+5+ ans = 12 46 + 2 ans = 32 total = 46 + 2 total = 32 total = 4a1 + 3a2 + ... 5*a

1.2 Caractersticas Cient cas 4


Variavel Valor


ans Nome de variavel padr~ao utilizado para resultados. pi Raz~ao entre o permetro da circunfer^encia e seu di^ametro. eps Menor numero que, somado a 1, cria um numero de ponto flutuante maior do que 1 no computador. inf Infinito, 1/0. NaN N~ao numero, 0/0. i e j i = j = (-1)^(1/2) realmin Menor numero real positivo utilizavel. realmax Maior numero real positivo utilizavel.


1.1.5 Outras caractersticas basicas

 O texto apos o smb olo (%) e considerado comentario;

 O p onto e vrgula (;) suprime a visualizac~ao;

 Ctrl+C interromp e a execuc~ao do Matlab e quit termina a execuc~ao do Matlab.

1.2 Caractersticas Cient cas


Func~oes Matematicas elementares


abs(x) Valor absoluto ou modulo de um numero complexo; angle(x) ^Angulo de um numero complexo; exp(x) Exponencial imag(x) Parte imaginaria de um numero complexo; log(x) Logaritmo natural; log10(x) Logaritmo na base 10; real(x) Parte real de um numero complexo; round(x) Arredondar para proximo numero inteiro; sign(x) Func~a0 sinal. Retorna o sinal do argumento; sqrt(x) Raiz quadrada cos(x) Cosseno; sin(x) Seno; tan(x) Tangente.

1.3 Ajuda 5

1.2.1 N umero complexos

Considere a seguinte equac~ao do segundo grau:

f (x) = ax^2 + bx + c Suas razes s~ao dadas p or:

x 1 ; x 2 =

b 

p b^2 4 ac 2 a

  1. Calcule as razes considerando a = 1, b = 5 e c = 6;
  2. Calcule as razes considerando a = 1, b = 4 e c = 13;

A entrada de n umero complexos e feita da seguinte forma:

c = 1 - 2i c = 1 - 2j c = 1 - 2i c = 1 - 2j

1.3 Ajuda

 O comando help;

 (^) help conj

CONJ Complex conjugate. CONJ(X) is the complex conjugate of X.

 O comando lo okfor, busca comando p or palavra chave.

lookfor complex

CONJ Complex conjugate. CPLXPAIR Sort numbers into complex conjugate pairs. IMAG Complex imaginary part. REAL Complex real part.

1.4 Op erac~oes de Conjuntos 7

x = linspace(0,3,11); % linearmente espacado x = [0 0.30 0.60 0.90 1.20 1.50 1.80 2.10 2.40 2.70 3.00]

x = logspace(0,2,7); % incio em 10^0 e termino em 10^2 com 11 elementos. x = [1.00 2.1544 4.6416 10.00 21.5443 46.4159 100.00];

a = [1:5]; ans = [1 2 3 4 5] b = [1:2:9]; ans = [1 3 5 7 9] c = [a b]; ans = [1 2 3 4 5 1 3 5 7 9]

1.4.4 Op erac~oes com conjuntos

 Conjunto-escalar;

a = [1:5]; ans = [1 2 3 4 5] a - 2 ans = [-1 0 1 2 3] 2*a -1 ans = [1 3 5 7 9]

 Conjunto-conjunto;

a = [1:5]; ans = [1 2 3 4 5] b = [1:2:9]; ans = [1 3 5 7 9] a + b; ans = [2 5 8 11 14] 2a - b; ans = [1 1 1 1 1] a.^2/2; ans = [0.5000 2.0000 4.5000 8.0000 12.5000] a.b; ans = [1 6 15 28 45] 2.^a; ans = [ 2 4 8 16 32]

 Orientac~ao de conjuntos.

a' ans = 1 % o smbolo ' significa a transposic~ao 2 3 4 5 a = [1;2;3;4;5]

1.5 Gra cos Simples 8

a = [1 2 3 4; 5 6 7 8; 9 10 11 12 ] a = 1 2 3 4 5 6 7 8 9 10 11 12 a = [1 2 3 4 a = 5 6 7 8 1 2 3 4 9 10 11 12] 5 6 7 8 9 10 11 12

1.5 Gra cos Simples

Considere a func~ao

f (t) = sen(t) Para plotar um ciclo desta func~ao p o deramos fazer:

t = linspace(0,2*pi,30); f = sin(t); plot(t,f)

−1 0 1 2 3 4 5 6 7

−0.

−0.

−0.

−0.

0

1

Figura 1.1: Func~ao seno

Para plotar m ultiplos gra cos na mesma gura:

plot(t,f1,t,f2,t,f3,...)

1.5 Gra cos Simples 10

u = [.5ones(1,20) ones(1,30) 0.3ones(1,40)]; t = linspace(0,50,length(u) ); y = lsim(num,den,u,t); plot(t,u,'-.',t,y,'-',t, u'- y,': ') grid xlabel('Tempo em segundos') ylabel('Velocidade em rpm') title('Resposta do motor CC') legend('Entrada','Saida' ,'E rro' ) %----------------------- --- ---- ---- ---- --- ---

1.5.1 Manipulac~ao de gra cos

Po de-se tambem dividir uma gura em varias sub guras.

0.2 0 10 20 30 40 50

1 Entrada

(^00 10 20 30 40 )

1

Saida

−0.8 0 20 40 60 80 100

−0.

−0.

−0.

0

Erro

− (^10 10 20 30 40 )

−0.

0

1

Figura 1.3: Simulac~ao de um motor CC

Programa que gerou a Figura 1.3:

clear num = [1 2]; den = [2 2 2]; u = [.5ones(1,20) ones(1,30) 0.3ones(1,40)]; t = linspace(0,50,length(u) );

1.5 Gra cos Simples 11

y = lsim(num,den,u,t); subplot(221) plot(t,u,'-.') title('Entrada') subplot(222) plot(t,y,'-') title('Saida') subplot(223) plot(u'-y,':') title('Erro') subplot(224) plot(t,u,'-.',t,y,'-',t, u'- y,': ') %----------------------- --- ---- ---- ---- --- ---

O comando axis altera os eixos do gra co.

axis([xmin xmax ymin ymax])

1.5.2 Outros tip os de gra cos

 loglog: e o mesmo que plot. Porem, escalas logartmicas s~ao usadas para amb os os eixos;

 semilogx: e o mesmo que plot. Porem, uma escala logartmica e usada para o eixo x;

 semilogy: e o mesmo que plot. Porem, uma escala logartmica e usada para o eixo y ;

 bar: bar(x,y)

 stairs: stairs(x,y)

 hist: hist(x,y)

Para sistemas discretos, o comando stem p o de ser usado no lugar do plot. Considere o sinal discreto:

n = [0:60]; y = sawtooth((pi/15) * n,0.5) stem(n,y,':')

1.8 Op erac~oes Logicas 13

Operador Descric~ao Exemplo


< Menor que a < b <= Menor ou igual a c <= 100

Maior que a > b = Maior ou igual a c >= 100 == Igual a c == 20 ~= N~ao igual a x ~= 0


1.8 Op erac~oes Logicas


Operador Descric~ao Exemplo


& E (a<=10) & (c> 100) | OU (a<=10) | (c> 100) ~ N~ao ~(a<=10)



Func~ao Descric~ao


xor(a,b) Ou exclusivo any(x) Retorna 1 para algum elemento diferente de zero. all(x) Retorna 1 se todos os elementos s~ao zero


1.9 Algebra Linear e Matrizes

Considere o seguinte conjunto de equac~oes lineares:

x 1 + 2 x 2 + 3 x 3 = 366 4 x 1 + 5 x 2 + 6 x 3 = 804 7 x 1 + 8 x 2 + 0 x 3 = 366

1.9 Algebra Linear e Matrizes 14

x 1 + 2 x 2 + 3 x 3 = 366 4 x 1 + 5 x 2 + 6 x 3 = 804 7 x 1 + 8 x 2 + 0 x 3 = 366

x 1 x 2 x 3

Ax = b

A = [1 2 3; 4 5 6; 7 8 0]; b = [366; 804; 351]; d = det(A); d = 27 x = inv(A)*b x = 25 22 99

1.9.1 Manipulac~ao de matrizes

A = [1 2 3 4 5 6 7 8 0];

B = A(:,1); B = 1 4 7

A = [A B] A = 1 2 3 1 4 5 6 4 7 8 0 7

A = [A;B'] A = 1 2 3 4 5 6 7 8 0 1 4 7

size(A) ans = 4 x 3 length(b) ans = 3

1.10 Controle do uxo de execuc~ao 16

1.10.3 Estrutura if-else-end

Estrutura de decis~ao de uma ou mais sadas.

Para uma sada -------------

if condic~ao comandos end

Para duas sadas -----------

if condic~ao comandos A else comandos B end

Para mais de duas sadas --

if condic~ao A comandos A elseif condic~ao B comandos B elseif condic~ao C comandos C else comandos D end

Exerccio: Entre p elo teclado com um n umero inteiro. Se este n umero for menor ou igual a 1 o programa devera terminar, caso contrario, a rotina abaixo devera ser rep etida ate que o n umero se torne igual a 1. Rotina: Se o n umero for par, divida-o p or 2, se for mpar, multiplique-o p or 3 e adicione 1.

Acumule os resultados obtidos (alterac~oes sofridas p elo n umero) ao longo das diversas iterac~oes e plote estes resultados. Dica 01: O comando rem retorna o resto da divis~ao entre dois n umeros.

Sintaxe : rem(numero1, numero2)

1.11 Func~oes de Arquivo M 17

Esta func~ao retornara o resto de (n umero1/n umero2)

Dica 02: O comando input p ermite entrada de dados via teclado.

Sintaxe : n = input('Entre com o n umero: ')

1.11 Func~oes de Arquivo M

Um arquivo M de func~ao e semelhante a um arquivo de instruc~ao. A diferenca esta nas variaveis lo cais a func~ao, que so existem dentro da propria. Logo, do lado de fora p o de-se enxergar ap enas os argumentos de entrada (par^ametros) e o retorno da func~ao, se este existir. Como criar uma func~ao de usuario:

function [retorno] = nome_funcao(parametros) % esta deve ser a primeira linha util de codigo

A func~ao tambem deve ser salva em um arquivo M. Exemplo : A func~ao baixo sera capaz de retornar a media do somatorio dos erros quadraticos entre a sada desejada sd e a sada real sr de uma planta (erro).

%----------------------- --- ---- ---- ---- --- ---- ---- --- % calcular a media do somatorio dos erros quadraticos %----------------------- --- ---- ---- ---- --- ---- ---- --- function [seq] = cal_seq(sd,sr) e = sd - sr; seq = (1/length(e))*sum(e.^2); %----------------------- --- ---- ---- ---- --- ---- ---- ---

1.12 Analise de Dados

Considere a temp eratura maxima medida em tr^es cidades durante 31 dias. Estas temp eraturas est~ao armazenadas no arquivo temps.mat e p o dem ser carregadas para a memoria com o seguinte comando:

load temps