Laboratório de Controle Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.html NOME 1 dígitos β 2 5 Prontuário 4 5 6 3 7 8 8 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. 9 Laboratório de Controle – E4 – Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.html 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 2) if if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end 3) while i=1; T=0; while i <= (N), frequencia(i)=1/(periodo(i)*(10^(-3))); T=T+(periodo(i)*(10^(-3))); tempo(i)=T; if T<60, I1=i; end; i=i+1; end; 2 Laboratório de Controle – E4 – Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.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.01:10; N=size(t); tamanho=N(1,2); 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 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) no intervalo de 0 a 1 s. 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 3 Laboratório de Controle – E4 – Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.html 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(P2); raizes_2=roots(PP); % 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; N=size(t); tamanho=N(1,2); for i=1:tamanho, y1(i)=polyval(P,t(i)); end plot(t,y1); grid % Grafico - tres eixos figure(2) ezsurf('1/(x^4) + 1/(y^4)',[0.5,1,0.5,1]) Exercícios Exercício 2 – Dadas as funções de transferência de diversos sistemas, escreva um programa que calcule as raízes dos polinômios do denominador (pólos) assim como as raízes dos polinômios do numerador (zeros) de cada uma delas. a) F1 ( s ) = 3s 2 + 2 s 6 + s 5 + 2 s 4 + 3s 3 + s 2 + s + β 4 Laboratório de Controle – E4 – Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.html b) F2 ( s ) = 3s 2 + β s 5 + βs 4 + 25s 3 + 7 s + 10 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 funcao de transferencia s = tf('s'); F = 1/(3*s+1) % Aplicaçao de um degrau ao sistema figure(2) step(F) grid % Aplicacao de um impulso ao sistema % Com a definicao do intervalo de tempo que sera apresentado figure(3) tempo=10; impulse(F,tempo) grid % 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 em 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 = 0s e os dispositivos que armazenam energia estavam com energia inicial igual a zero. a) b) 5 Laboratório de Controle – E4 – Prof. Alexandre Brincalepe Campo www.cefetsp.br/edu/brinca/federal.html c) Exercício 3.2 – Apresente um sistema dinâmico de segunda ordem estudado na disciplina Controle I e escreva um programa que execute a simulação do referido sistema quando for aplicada uma entrada qualquer. 6