Laboratório de Controle
Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
Roteiro 1 - Introdução ao MATLAB
Tela principal
Ajuda do Matlab
>> helpwin
Comandos para programação em linguagem MATLAB
Control flow:
if
- Conditionally execute statements.
else
- IF statement condition.
elseif - IF statement condition.
end
- Terminate scope of FOR, WHILE, SWITCH, TRY and IF statements.
for
- Repeat statements a specific number of times.
while - Repeat statements an indefinite number of times.
Comandos para inicialização de variáveis e gráficos:
close all
: fecha todas as janelas de figuras
clear all
: limpa o espaço de trabalho (“Workspace”)
clc
: limpa a janela de comandos (“Command Window”)
Exemplos:
1) for
N=3;
for I = 1:N,
for J = 1:N,
A(I,J) = 1/(I+J-1);
end
end
>> help if
>> help while
Laboratório de Controle – N7 – Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
Parte 1 – Programa introdutório
Exemplo:
% Introduçao a programacao Matlab
% Inicializaçao das variaveis do Matlab
close all
clear all
clc
% Desenho de uma funçao
t=0:0.1:10;
tamanho=length(t);
for i=1:tamanho,
y1(i)=(t(i))^2;
y2(i)=1/((t(i))^2);
end
figure(1)
plot(t,y1,'r');
hold on
plot(t,y2,'b');
xlabel('tempo')
ylabel('y1(t)-verm e y2(t)-azul')
title('Graficos das funcoes t2 e 1/t2')
grid
% Grafico - tres eixos
figure(2)
ezsurf('1/(x^4) + 1/(y^4)',[0.5,1,0.5,1])
grid
Análise
1 – Verifique o conteúdo da janela de ajuda do MATLAB.
- Verifique o item: matlab\lang
- Verifique o item: matlab\elfun
2 – Execute o programa.
Exercícios
Exercício 1.1 – Altere a faixa de valores do eixo das abscissas para -10 a 10 e desenhe o novo gráfico.
Altere o código do programa substituindo o comando for pelo comando while. Faça as alterações
necessárias para garantir a execução do programa.
Exercício 1.2 – Faça um programa que desenhe o gráfico da função:
v(t) = 100 sen(2πt)
num intervalo de tempo suficiente para que sejam apresentados dois períodos completos.
2
Laboratório de Controle – N7 – Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
Exemplo de Aplicação – Série de Fourier
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
Serie Trigonometrica de Fourier
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
x=linspace(0,4*pi,100);
y=5-10/pi*sin(x)-10/(2*pi)*sin(2*x)-10/(3*pi)*sin(3*x);
figure(1)
plot(x,y,'b')
title('Serie de Fourier - Dente de Serra com 3 harmonicos')
xlabel('tempo')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
y=5-10/pi*sin(x)-10/(2*pi)*sin(2*x)-10/(3*pi)*sin(3*x)-10/(4*pi)*sin(4*x)...
-10/(5*pi)*sin(5*x)-10/(6*pi)*sin(6*x)-10/(7*pi)*sin(7*x)-10/(8*pi)*sin(8*x)...
-10/(9*pi)*sin(9*x)-10/(10*pi)*sin(10*x)-10/(11*pi)*sin(11*x)- ...
+ 10/(12*pi)*sin(12*x)-10/(13*pi)*sin(13*x);
hold on
plot(x,y,'r')
title('Serie de Fourier - Dente de Serra com 13 harmonicos')
xlabel('tempo')
grid
Control Systems Toolbox
Parte 2 – Manipulação com polinômios no Matlab
% Inicializaçao das variaveis do Matlab
close all
clear all
clc
% Criaçao de um polinomio a partir de suas raizes
% poly(A): Funcao que cria o polinomio com as raízes armazenadas no vetor A
% Exemplo:
% B=[-4]
% P=poly(B)
% Resulta em P=[1 4], pois terá como conteúdo
% os coeficientes do polinômio: (x+4)
A=[-1];
B=[-2 -1];
P1=poly(A)
P2=poly(B)
% Construção dos polinômios P1=(x+1) e P2=(x2+3x+2)
P1=[1 1]
P2=[1 3 2]
% Produto entre dois polinomios
PP=conv(P1,P2);
% Calculo das Raizes de um polinomio qualquer
raizes_1=roots(PP);
3
Laboratório de Controle – N7 – Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
% Criacao de um polinomio a partir de um conjunto de dados
X=[0
1
2
3
4
5
6
7
8
9
10];
Y=[0
1
2
3
3.5 4.5 5
5.5 5.5 5
4 ];
% Grau do polinomio que sera gerado
N=5
% Geracao de um polinomio relacionado com os dados Y=f(X)
[P,S] = polyfit(X,Y,N)
% Verificacao de alguns valores de P
P(1,1)
P(1,2)
% Desenho do grafico dos valores experimentais
figure(1)
plot(X,Y);
hold on
% Desenho do grafico dos valores obtidos a partir do polinomio construido
t=0:0.1:10;
tamanho=length(t);
for i=1:tamanho,
y1(i)=polyval(P,t(i));
end
plot(t,y1);
grid
Exercícios
Exercício 2 – Dada a função de transferência abaixo, escreva um programa que calcule as raízes do
polinômio do denominador (pólos) assim como as raízes do polinômio do numerador. O sistema é estável?
F ( s) =
3s 2 + 2
s 6 + s 5 + 2 s 4 + 3s 3 + s 2 + s + 1
Parte 3
Estudo sobre funções de transferência.
Manipulação de sinais aplicados a sistemas dinâmicos.
Programa exemplo:
% Inicializaçao das variaveis do Matlab
close all
clear all
clc
% Criaçao de uma funcao de transferencia - Metodo 1
s = tf('s');
F = (s+1)/(s^2+3*s+1)
% Aplicaçao de um degrau ao sistema
figure(1)
step(F)
grid
% Criaçao de uma funcao de transferencia - Metodo 2
NUM1=[1 1];
DEN1=[1 3 1];
F=tf(NUM1,DEN1)
% Dada a seguinte
F = 1/(3*s+1)
% Aplicaçao de um
figure(2)
step(F)
grid
% Aplicacao de um
% Com a definicao
figure(3)
tempo=10;
impulse(F,tempo)
grid
funcao de transferencia
degrau ao sistema
impulso ao sistema
do intervalo de tempo que sera apresentado
4
Laboratório de Controle – N7 – Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
% Aplicacao de uma funcao qualquer ao sistema
t=0:0.01:10;
U=sin(2*pi*t);
figure(4)
lsim(F,U,t)
grid
Exercício 3.1 – Faça um programa que apresente o gráfico do sinal da tensão de saída
( vo(t) ) dos circuitos abaixo:
Obs.: Em todos os casos abaixo a chave mudou da posição B para a posição A no
instante t = 0 s e os dispositivos que armazenam energia estavam com energia inicial
igual a zero.
Nos exercícios a seguir considere sempre β igual à 12.
a)
Vo ( s )
= F ( s)
Vi ( s )
Z eq = R1 + R2 + Z C1 = R1 + R2 +
I TOT ( s ) =
1
sC1
Vi ( s )
1
sC1
Divisor de tensão:
Vi ( s )
1
Vo ( s ) = Z C1 I TOT =
1
sC1
R1 + R2 +
sC1
Vo ( s )
1
=
Vi ( s ) sC1 ( R1 + R2 ) + 1
R1 + R2 +
b)
5
Laboratório de Controle – N7 – Prof. Alexandre Brincalepe Campo
www.cefetsp.br/edu/brinca/engenharia.html
Exercício 3.2 – Desenhe o gráfico da tensão de saída supondo que a frequência do
gerador senoidal de entrada foi ajustada para ω = 0,1 rad/s e posteriormente faça o
mesmo gráfico supondo que ω = 10 rad/s.
Exercício 3.3 – Aplique um sinal senoidal ao sistema pêndulo invertido apresentado na
página da Carneggie Mellon:
(http://www.engin.umich.edu/class/ctms/examples/pend/invpen.htm).
6
Download

Introdução – MATLAB – Funções de Transferência