apostila matlab

Upload: karina-keler-oliveira

Post on 09-Jul-2015

137 views

Category:

Documents


0 download

TRANSCRIPT

Engenharia de Controle 2009 Laboratrio Introduo ao uso do MATLAB Exemplos e atividades propostas Prof. Anderson Harayashiki Moreirandice ndice ndice ndice 1. 1. 1. 1.Introduo Introduo Introduo Introduo ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ ............................................... ............... ............... ............... 1 11 1 1.1Iniciando o MATLAB ...................................................................................................... 1 1.2Manipulao de matrizes ............................................................................................... 2 1.2.1Atividades .................................................................................................................................... 4 1.3Seqncias ...................................................................................................................... 5 1.4Obtendo ajuda................................................................................................................. 6 1.5Operaes matemticas .................................................................................................. 7 1.5.1Sistemas de equaes lineares.................................................................................................... 7 1.5.2Atividade ...................................................................................................................................... 8 1.6Outras operaes com matrizes ...................................................................................... 8 1.7Grficos ......................................................................................................................... 10 1.7.1Grficos tridimensionais ........................................................................................................... 12 1.8Polinmios..................................................................................................................... 13 1.8.1Avaliao, multiplicao, diviso e diferenciao.................................................................... 14 1.9Funes de transferncia.............................................................................................. 15 1.10Simulaes .................................................................................................................... 15 2. 2. 2. 2.Anlise de sistemas lineares de 1 e 2 ordemAnlise de sistemas lineares de 1 e 2 ordemAnlise de sistemas lineares de 1 e 2 ordemAnlise de sistemas lineares de 1 e 2 ordem atividades atividades atividades atividades ................................ ................................ ................................ ................................... ... ... ... 18 18 18 18 2.1Sistemas de 1 ordem ................................................................................................... 18 2.2Resposta temporal ........................................................................................................ 18 2.3Sistemas de 2 ordem ................................................................................................... 18 2.4Sistemas de 2 ordem sem zeros ................................................................................... 19 2.5Validade do Teorema do Valor Final............................................................................ 19 2.6Aproximaes ................................................................................................................ 19 3. 3. 3. 3.Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares ................................ ................................ ................................ ................................................ ................ ................ ................ 20 20 20 20 3.1Sistemas de 3 ordem ................................................................................................... 20 3.1.1Exemplo ..................................................................................................................................... 20 3.2Aproximaes para modelos de 2 ordem ..................................................................... 20 3.2.1Exemplos .................................................................................................................................... 21 3.3Conexes entre sistemas .............................................................................................. 21 3.4Estabilidade .................................................................................................................. 22 3.4.1Exemplos .................................................................................................................................... 23 4. 4. 4. 4.Programao Programao Programao Programao ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ .......................................... .......... .......... .......... 24 24 24 24 4.1Exemplo anlise de um sistema linear ..................................................................... 24 4.1.1Criando um script ...................................................................................................................... 24 4.1.2Anlise do script ........................................................................................................................ 25 4.1.3Criando uma funo .................................................................................................................. 26 4.1.4Atividade .................................................................................................................................... 26 4.1.5Convenes ................................................................................................................................. 27 4.2Controle de fluxo........................................................................................................... 28 4.2.1Estrutura condicional if ............................................................................................................ 28 Exemplo:28 4.2.2Estrutura repetitiva while ........................................................................................................ 29 4.2.3Estrutura repetitiva for ............................................................................................................ 29 4.3Vetorizao ................................................................................................................... 29 4.4Entrada de dados .......................................................................................................... 30 4.5Edio de funes existentes ........................................................................................ 30 4.6Subfunes .................................................................................................................... 30 4.7Exemplos de aplicao .................................................................................................. 31 4.7.1Aproximaes ............................................................................................................................. 31 4.7.2Anlise do erro em regime estacionrio ................................................................................... 32 4.7.3Atividade .................................................................................................................................... 33 4.7.4Atividade estabilidade em funo de um parmetro ........................................................... 33 5. 5. 5. 5.Lugar das razesLugar das razesLugar das razesLugar das razes introduo introduo introduo introduo ................................ ................................ ................................ ................................................................ ................................ ................................ ............................................... ............... ............... ............... 34 34 34 34 5.1Exemplo ........................................................................................................................ 34 5.1.1Atividade .................................................................................................................................... 35 5.2Anlise grfica do lugar das razes .............................................................................. 35 5.2.1Atividade .................................................................................................................................... 36 5.3Exemplos....................................................................................................................... 36 6. 6. 6. 6.Projeto usando lugar das razesProjeto usando lugar das razesProjeto usando lugar das razesProjeto usando lugar das razes introduo introduo introduo introduo ................................ ................................ ................................ ........................................................ ........................ ........................ ........................ 39 39 39 39 6.1Exemplo de projeto ....................................................................................................... 39 6.1.1Atividades .................................................................................................................................. 42 7. 7. 7. 7.Resposta em freqnciaResposta em freqnciaResposta em freqnciaResposta em freqncia introduo introduo introduo introduo ................................ ................................ ................................ ................................................................ ................................ ................................ .................................... .... .... .... 44 44 44 44 7.1Determinao manual da resposta em freqncia ...................................................... 44 7.1.1Atividades .................................................................................................................................. 44 7.2Diagrama de Bode ........................................................................................................ 45 7.2.1Exemplo ..................................................................................................................................... 45 7.3Sistemas de 2a ordem ................................................................................................... 46 7.3.1Atividades .................................................................................................................................. 48 8. 8. 8. 8.Simulink Simulink Simulink Simulink ................................ ................................ ................................ ................................................................ ................................ ................................ ................................................................ ................................ ................................ ................................................ ................ ................ ................ 49 49 49 49 8.1Exemplo de uso ............................................................................................................. 49 8.1.1Configurando os parmetros de simulao .............................................................................. 52 8.1.2Simulando .................................................................................................................................. 54 8.2Atividades ..................................................................................................................... 55 8.3Subsistemas .................................................................................................................. 57 8.3.1Exemplo controlador PI ......................................................................................................... 57 Foto da capa: "Motor driven XY table - Series MAXY6000 ". Obtida de: http://www.unislide.com/images/motor/maxy6012elite.jpg Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 11. 1. 1. 1.Introduo Introduo Introduo Introduo O MATLAB (Matrix Laboratory) um ambiente de programao de alto desempenho voltado paraaresoluodeproblemasquepossamserexpressosemnotaomatemtica.Projetoe simulaodesistemasdecontrole,anlisededadosecriaodegrficossoalgumasdas aplicaes possveis para esta ferramenta. Pacotes especficos, chamados toolboxes, permitem aexpanso do ambiente de trabalho do MATLAB para a resoluo de classes particulares de problemascomoprocessamentodesinais,identificaodesistemas,implementaoderedes neurais,lgicadifusa(fuzzy),simulao,etc.Adicionalmente,umprogramagrficochamado Simulink,quetrabalhajuntamentecomoMATLAB,permiteasimulaointerativade sistemas dinmicos lineares ou no-lineares, contnuos ou digitais. 1.1 1.1 1.1 1.1Iniciando o MATLAB Iniciando o MATLAB Iniciando o MATLAB Iniciando o MATLAB ExecuteoMATLAB6.5apartirdomenu"Iniciar".Atelaprincipaldoprograma (figura1.1) contm, em sua visualizao padro, uma janela de comandos (command window), uma janela para exibio da rea de trabalho (workspace), onde ficam armazenadas as variveis definidas pelousurioeohistricodecomandos.Ajaneladecomandoforneceaprincipalformade comunicaoentreousurioeointerpretadorMATLAB,queexibeumsinaldeprontido (prompt) para indicar que est pronto para receber instrues. Figura 1.1: Tela principal do MATLAB Antes de iniciar a sesso de trabalho conveniente aumentar a fonte da letra usada na janela de comando. Clique em File > Preferences > Command Window > Fonts & Colors, selecione a Avisualizaopadrodajaneladecomando(conformeafigura1.1)podeserobtida,a qualquer momento, clicando-se em View > Desktop Layout > Default. Novo modelo do Simulink Prompt do interpretador Workspace Histrico de comandos Janela de comandos Ajuda Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 2opo"Usecustomfont"(verfigura1.2)eajusteotamanhodafontepara(nomnimo)16 pontos. Acredite: muitos erros de digitao pode ser evitados com esta simples providncia! Figura 1.2: Ajuste da fonte usada na janela de comandos 1.2 1.2 1.2 1.2Manipulao de matrizes Manipulao de matrizes Manipulao de matrizes Manipulao de matrizes OtiponumricopadrousadopeloMATLABamatriz matriz matriz matrizdevaloresempontoflutuante: nmeros reais ou complexos so armazenados em matrizes 1x1. A maneira mais simples de se armazenar uma matriz na memria com uma atribuio, como em: >> A = [21345] O resultado do comando anterior mostrado na figura 1.3. Note que o comando passou a fazer partedohistricodoprogramaequeamatrizfoiarmazenadanoworkspace.Aalocaoda matriz tambm pode ser confirmada pelos comandos who who who who (que mostra os nomes das variveis armazenadas) ou whos whos whos whos (que mostra os nomes e espaos ocupados pelas variveis). Exemplo: >> whos NameSize BytesClass A 1x540 double array Grand total is 5 elements using 40 bytes OMATLABsensvel caixa sensvel caixa sensvel caixa sensvel caixa,ou seja,diferencialetrasmaisculas deminsculasealoca automaticamente o espao de memria necessrio para as variveis usadas. Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 3 Figura 1.3: Atribuio de valores A matriz deste exemplo chamada de vetor linha vetor linha vetor linha vetor linha, j que se trata de uma matriz com apenas 1 linha: na digitao, os valores do vetor podem ser separados por espaos, como no exemplo, ou por vrgulas. Para criar um vetor coluna vetor coluna vetor coluna vetor coluna deve-se separar cada linha das demais usando ponto ponto ponto ponto- -- -e ee e- -- -vrgula vrgula vrgula vrgula. Exemplo: >> B = [5; -4; 6.5] B = 5.0000 -4.0000 6.5000 Para criar uma matriz bidimensional bidimensional bidimensional bidimensional1 basta combinar as sintaxes anteriores: >> M = [2 1 3; 4 6 7; 3 4 5] M = 2 1 3 4 6 7 3 4 5 Quando for interessante omitir a exibio do resultado de qualquer comando basta encerr-lo com ponto-e-vrgula. Exemplo: M = [2 1 3; 4 6 7; 3 4 5];% Cria uma matriz 3x3 (3 linhas e 3 colunas)

1 A partir deste ponto, o termo matriz ser usado apenas para designar matrizes com mais de uma dimenso. Comando digitado Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 4 Oselementosdeumamatrizpodemseracessadospelonomedavarivel,seguidodendices entre parnteses, sendo que o primeiro elemento sempresempresempresempre o deo deo deo de ndice ndice ndice ndice 1 11 1. Exemplo de acesso: >> x = B(2) x = -4 Seumanovainformaoforatribudaaumvetoroumatrizosredimensionamentos necessrios sero feitos automaticamente. Exemplo: >> A = [4 5 9]; >> A(6) = 8 A = 4 5 9 0 0 8 Paraacessaroselementosdeumamatrizescreve-seoconjuntodendicesentreparnteses, separados por vrgula. Exemplo: >> x = M(2,3) x = 7 Oresultadodequalquercomandoquenosejaatribudoaumavarivelespecfica armazenado em uma varivel especial chamada ans ans ans ans. Exemplo: >> M(2,1) ans = 4 Parafacilitararepetiodecomandospossvelusarassetasparacimaeparabaixodo tecladooudarumduplo-cliquenositensdajaneladehistrico.Noexistemcomandos especficosparadesfazeratribuiesfeitasnajaneladecomando,apesardeexistiraopo undo no menu Edit Edit Edit Edit do programa. 1.2.1 1.2.1 1.2.1 1.2.1Atividades Atividades Atividades Atividades Antes Antes Antes Antes de iniciar as atividades a seguir, limpe a janela de comando digitando clc clc clc clc. Em seguida, removatodasasvariveisdamemria,usandoocomandoclear clear clear clear.Sequisereliminarapenas uma varivel, use a sintaxe clear clear clear clear . Anote os resultados obtidos. Osmbolodeporcentagemserveparacriarcomentriosdeumalinha,tantonajanelade comandos quanto no ambiente de programao do MATLAB. Valores inseridos automaticamente Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 5a) a) a) a)Armazene a seguinte matriz: ((((

=2 0 21 1 35 1 2M b) b) b) b)Obtenha a matriz transposta transposta transposta transposta de M MM M, digitando: m1 = M' c) c) c) c)Obtenha a matriz inversa inversa inversa inversa de M MM M, digitando: m2 = inv(M) A utilidade da inversa de uma matriz ser discutida futuramente. d) d) d) d)A indexao pode ser usada em conjunto com o sinal ":" para indicar "todos os elementos" deumacertadimenso.Porexemplo,ocomandoaseguircriaumvetorlinhacomtodosos elementos da segunda linha da matriz M MM M: v1 = M(2,:) O comando anterior pode ser traduzido como "armazene em v1 v1 v1 v1 os elementos de M MM M que esto na linha 2 e em todas as colunas". Da mesma forma, o comando a seguir cria um vetor coluna com os elementos da primeira coluna da matriz M MM M: v2 = M(:,1) e) e) e) e)Ousode":"tambmpermiteaatribuiodevaloresaumadimensocompletadeuma matriz. Por exemplo, verifique o efeito da seguinte instruo sobre a matriz M MM M: M(1,:) = 5 f) f) f) f)Seaatribuioenvolverumamatrizvazia matrizvazia matrizvazia matrizvazia,indicadaporumpardecolchetesvazios, possvel eliminar totalmente uma linha ou coluna de uma matriz. Por exemplo, a instruo M(2,:) = [] remove a segunda linha da matriz M MM M. g) g) g) g)Finalmente, matrizes podem ser concatenadas por meio de atribuies diretas. Exemplo: m3 = [[5; 5; 5] v2 v1'] % Cria uma nova matriz 3 x 3 1.3 1.3 1.3 1.3Seqncias Seqncias Seqncias Seqncias O uso de ":" tambm serve para denotar uma seqncia igualmente espaada de valores, entre dois limites especificados, inteiros ou no. Por exemplo, a instruo v3 = 3:8 cria um vetor linha com os valores 3, 4, 5, 6, 7 e 8 (o incremento padro unitrio). O incremento pode ser definido pelo usurio se a seqncia for criada sob a forma: Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 6 [Valor inicial: Incremento: Valor final] Exemplo: >> v4 = 2:0.5:4 v4 = 2.00002.50003.00003.50004.0000 Outraformadeseobterumvetorcomvaloresigualmenteespaadospelousodafuno linspace linspace linspace linspace. Por exemplo, a instruo y = linspace(10,200,25) gera um vetor linha com 25 valores igualmente espaados entre 10 e 200. Se o parmetro que controla o nmero de pontos for omitido, a seqncia ter 100 valores. Seqnciascomvaloreslinearmenteespaadossousados,normalmente,parafornecer valoresdevariveisindependentesparafunes.Porexemplo,asinstruesaseguircriam um vetor com 50 valores da funo( ) x sen y = , para x [0,2]: x = linspace(0,2*pi,50); % 'pi' uma funo interna que retorna o valor de y = sin(x); Neste tipo de operao, chamada de vetorizada, o MATLAB cria ou redimensiona o vetor y yy y com a mesma dimenso do vetor x xx x. Em situaes que exijam grandes variaes de valores, como na anlise de respostas em freqncia, interessante que a variao de valores seja logartmica, o quepodeserobtidocomousodafunologspace logspace logspace logspace,desintaxesemelhantedelinspace linspace linspace linspace.Por exemplo, a instruo f = logspace(0,4,50); cria um vetor com 50 valores espaados logaritmicamente entre1 100=e000 1 104. = . 1.4 1.4 1.4 1.4Obtendo ajuda Obtendo ajuda Obtendo ajuda Obtendo ajuda H diversas maneiras de se obter mais informaes sobre uma funo ou tpico do MATLAB. Se o nome da funo for conhecido pode-se digitar, na janela de comando: help Tambm possvel fazer uma busca por palavra-chave com o comando lookfor lookfor lookfor lookfor. Por exemplo, lookfor identity retorna uma descrio curta de funes relativas a matrizes identidade. Alm dessas formas, pode-seconsultaradocumentaodoMATLABclicandonoconedeajudadajanelade comandos. Adiferenaentreusarooperador":"eafunolinspace linspace linspace linspacequeaprimeiraformaexigeo espaamento espaamento espaamento espaamento entre os valores enquanto a segunda requer a quantidade quantidade quantidade quantidade de valores. Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 71.5 1.5 1.5 1.5Operaes matemticas Operaes matemticas Operaes matemticas Operaes matemticas OMATLABreconheceosoperadoresmatemticoscomunsmaioriadaslinguagensde programaonasoperaescomescalares(nmerosreaisecomplexos).Nasoperaescom matrizes preciso respeitar as regras da Matemtica em relao s dimenses envolvidas. Por exemplo, considere as seguintes matrizes: ((((

=1 0 69 3 25 4 1A((((

=5 4 32 6 45 5 5B Em seguida, considere as operaes: i ii i) )) )C = A+B(Soma) ii ii ii ii) )) ) C = A-B (Subtrao) iii iii iii iii) )) )C = A*B(Multiplicao matricial) iv iv iv iv) )) )C = A.*B(Multiplicao elemento-a-elemento) v vv v) )) )C = A./B(Diviso elemento-a-elemento) vi vi vi vi) )) )C = A.^2(Potenciao elemento-a-elemento) DeacordocomasdefiniesdaMatemticaeasconvenesdoMATLAB,deve-seobteros seguintes resultados: i ii i) )) ) ((((

=6 4 911 9 610 9 6Cii ii ii ii) )) ) ((((

=4 4 37 3 20 1 4Ciii iii iii iii) )) ) ((((

=35 34 3361 64 4938 49 36C iv iv iv iv) )) ) ((((

=5 0 1818 18 825 20 5Cv vv v) )) ) ((((

=2 , 0 0 0 , 25 , 4 5 , 0 5 , 00 , 1 8 , 0 2 , 0C vi vi vi vi) )) ) ((((

=1 0 3681 9 425 16 1C Ateno Ateno Ateno Ateno: 1) 1) 1) 1) Para obter o sinal de potenciao (^) preciso pressionar a tecla correspondente duas vezes; 2) 2) 2) 2) A multiplicao de uma matriz A AA A (n k) por uma matriz B BB B (k m) produz uma matriz n m. Para as outras operaes mostradas, as matrizes A AA A e B BB B devem ter as mesmas dimenses. 1.5.1 1.5.1 1.5.1 1.5.1Sistemas de equaes lineares Sistemas de equaes lineares Sistemas de equaes lineares Sistemas de equaes lineares Todo sistema de equaes lineares pode ser escrito sob a forma matricialb Ax = . Exemplo: = + += = + =0 2 47 24 2 33 2 13 23 2 1x x xx xx x xS ((((

=2 1 41 2 01 2 3A ; ((((

=321xxxx ; ((((

=074b Seamatrizdoscoeficientes(A)forquadradaeno-singular,ouseja,semlinhasoucolunas linearmente dependentes, a soluo (nica) do sistema dada por: b A x1 = . Esta soluo pode ser calculada de forma direta pelo MATLAB pelas instrues: Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 8 x = inv(A)*boux = A\b As duas formas fornecem as mesmas respostas, mas os clculos envolvidos no uso do operador "\" exigem menos memria e so mais rpidos do que os envolvidos no clculo de uma matriz inversa.OMATLABtambmresolvesistemassobaformab xA = ousistemascommaisde uma soluo (o que no ser discutido neste material, consulte a ajuda do programa). 1.5.2 1.5.2 1.5.2 1.5.2Atividade Atividade Atividade Atividade Resolva, se possvel, os seguintes sistemas lineares. = + += = + =0 2 47 24 2 33 2 13 23 2 11x x xx xx x xS = + += = + +=2 11 5 21 9 35 7 43 2 13 13 2 12x x xx xx x xS= += +=5 6 34 22 12 13x xx xS1.6 1.6 1.6 1.6Outras Outras Outras Outras operaes com matrizes operaes com matrizes operaes com matrizes operaes com matrizes HumasriedefunesdisponveisnoMATLABparageraooualteraodematrizese vetores, exemplificadas a seguir. a) a) a) a)x = max(A) Retorna o maior componente de A AA A. Se A AA A for uma matriz, o resultado um vetor linha contendo omaiorelementodecadacoluna.Paravetores,oresultadoomaiorvalor(ouonmero complexo com maior mdulo) entre seus componentes. Ainda para vetores, a sintaxe [vmax imax] = max(v) retorna o maior elemento do vetor v vv v em vmax vmax vmax vmax e o ndice correspondente em imax imax imax imax. b) b) b) b)x = size(A) RetornaasdimensesdamatrizA AA Aemumvetorlinha,x=[mn] x=[mn] x=[mn] x=[mn],contendoonmerode linhas (m) e colunas (n) da matriz. A sintaxe [m n] = size(A) determina o nmero de linhas e colunas em variveis separadas. c) c) c) c)x = length(A) RetornaocomprimentodovetorA AA Aouocomprimentodamaior dimensodamatrizA AA A.Neste ltimo caso caso, length(A) = max(size(A)) length(A) = max(size(A)) length(A) = max(size(A)) length(A) = max(size(A)). d) d) d) d)x = zeros(n) Criaumamatrizquadradanndeelementosnulos.Tambmpossvelobtermatrizes retangulares m n usando a sintaxe x = zeros(m,n) x = zeros(m,n) x = zeros(m,n) x = zeros(m,n). A sintaxe x = zeros(size(A)) produz uma matriz x xx x com as mesmas dimenses de A AA A, preenchida com zeros. e) e) e) e)x = ones(n) Semelhante a zeros zeros zeros zeros, gerando matrizes com valores unitrios (preenchidas com 1's). f) f) f) f)x = eye(n) Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 9Retornaumamatrizidentidadenn,isto,comvaloresunitriosnadiagonalprincipale nulos nas demais posies. g) g) g) g)x = det(A) RetornaodeterminantedamatrizquadradaA AA A.Nota:paraverificarseumamatrizpossui linhasoucolunaslinearmentedependentesomanualdoMATLABrecomendausarafuno cond cond cond cond (clculo do nmero de condio) ao invs de verificar se det(A) det(A) det(A) det(A) = == = 0 00 0. h) h) h) h)x = find(expresso) Encontraeretornatodososelementosdeumvetoroumatrizquesatisfazemaumacerta expressolgica.Normalmente,usa-seargumentosesquerdadainstruodebuscapara armazenar os ndices dos elementos de interesse. Exemplo: >> A = [3 -2 1; 0 2 -1; 4 1 2]; >> [L C] = find(A>2 & A> A = [3 -2 1; 0 2 -1; 4 1 2]; >> x = all(A) x = 0 1 1 Obs.:((((

=2 1 41 2 01 2 3A Para vetores, a funo retorna 1 se todos os elementos forem no nulos e 0 em caso contrrio. j) j) j) j)x = any(A) Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 10 Retorna1paracadacolunadamatrizA AA Aquecontenhaalgumvalornonuloe0emcaso contrrio, gerando um vetor linha. A funo tambm trabalha com vetores. Exemplo: >> x = any(A) x = 1 1 1 1.7 1.7 1.7 1.7Grficos Grficos Grficos Grficos OMATLABpossuidiversasferramentasparatraadosdegrficosbidimensionaisou tridimensionais. A maneira mais simples de traar um grfico xy pelo uso da funo plot plot plot plot. A forma plot(x,y) plot(x,y) plot(x,y) plot(x,y) desenha um grfico bidimensional dos pontos do vetor y yy y em relao aos pontos do vetor x xx x, sendo que ambos devem ter o mesmo nmero de elementos. No obrigatrio que osvaloresdey yy yrepresentemumafunoemrelaoaosvaloresdex xx x.Ogrficoresultante desenhado em uma janela de figura com as escalas automticas nos eixos x e y e segmentos de reta unindo os pontos. Por exemplo, para desenhar o grfico da funo ( ) 0472 1 5981 2 1547 1 15 1, x , sen e , yx ,+ =, no intervalo[ ] 10 0 , x , pode-se utilizar a seguinte seqncia de comandos: >> x = 0:0.1:10; >> y = 1-1.1547*exp(-1.5*x).*sin(2.5981*x+1.0472); >> plot(x,y) O resultado (ver figura 1.4) exibido em uma janela de figura identificada por um nmero. Figura 1.4: Exemplo de resultado grfico da funo plot plot plot plot Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 11 Emalgumasocasiesinteressantequeasescalasdoseixossejamrepresentadasemescala logartmica(aoinvsdaescalalinearpadro).Nestescasos,possvelusarasfunes semilogx semilogx semilogx semilogx, semilogy semilogy semilogy semilogy ou loglog loglog loglog loglog, que alteram, respectivamente, a escala do eixo x, do eixo y e de ambos.Normalmenteosvaloresquecompemtaisgrficostambmsogeradoscom espaamentos logartmicos, via funo logspace logspace logspace logspace. A funo plot plot plot plot pode trabalhar com vrias duplas de vetores, sobrepondo mais de um grfico em uma mesma janela. Exemplo: x = linspace(0,2*pi,100);% Cria vetor 'x' com 100 pontos de 0 a 2*pi y1 = sin(x);% Calcula y1 = sen(x) y2 = 0.5*sin(3*x);% Calcula y2 = 0.5*sen(3x) plot(x,y1,x,y2);% Traa os dois grficos xlabel('ngulo em graus');% Nomeia o eixo x ylabel('sen(x) e sen(3x)');% Nomeia o eixo y title('Grficos sobrepostos')% Atribui um ttulo ao grfico grid% Ativa as linhas de grade da janela Notequeforamusadasfunesparanomearoseixos(xlabel xlabel xlabel xlabeleylabel ylabel ylabel ylabel)eottulodogrfico (title title title title),almdeexibiodelinhasdegrade(grid grid grid grid).Oresultadodaseqnciadecomandos anterior est representado na figura 1.5. Figura 1.5: Grfico de duas funes superpostas Outra forma de se obter grficos sobrepostos com o uso da funo hold hold hold hold, que faz com que todos osresultadosgrficossubseqentesaoseuusosejamdesenhadosemumamesmajanelade figura. Exemplo (considerando as variveis do exemplo anterior): plot(x,y1); % Desenha o grfico de uma funo hold on % Ativa a 'trava' de exibio grfica plot(x,y2); % Desenha outro grfico na mesma janela de figura hold off% Desativa a 'trava' de exibio grfica Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 12 Todososresultadosgrficosaparecemnajaneladefiguraativa.Umanovajanelapodeser criada ou ativada pelo comando figure figure figure figure. Quando usada sem argumentos, esta funo cria uma janeladettuloFigureNo.xx,sendoxxumnmeroseqencial,consideradodisponvelpelo MATLAB.Ouso defigure(n) figure(n) figure(n) figure(n)criaajanelade figuran nn n, senecessrio,eatornaativa. Outros recursos da funo plot plot plot plot podem ser consultados na documentao do MATLAB. 1.7.1 1.7.1 1.7.1 1.7.1Grficos tridimensionais Grficos tridimensionais Grficos tridimensionais Grficos tridimensionais Grficos em trs dimenses podem ser traados pelo MATLAB com a mesma facilidade que os bidimensionais. A funo plot3 plot3 plot3 plot3 funciona de forma semelhante plot plot plot plot para o traado de grficos delinha.Porexemplo,aseqnciadecomandosaseguirproduzumgrficodeumahlice tridimensional. Note o uso da funo zlabel zlabel zlabel zlabel para nomear o eixo z do grfico. t = linspace(0,6*pi,100); plot3(sin(t),cos(t),t); xlabel('seno(t)'); ylabel('cosseno(t)'); zlabel('z = t'); title('Grfico de hlice'); grid on; O resultado est representado na figura 1.6. Figura 1.6: Grfico de linha tridimensional OMATLABtambmpodeconstruirgrficosdesuperfcies,apartirdeumconjuntode coordenadastridimensionaisxyz.Inicialmente,precisogerarmatrizesX XX XeY YY Ycom, respectivamente,linhasecolunasrepetidas,preenchidascomosvaloresdasvariveisxey. Isto pode ser feito diretamente pela funo meshgrid meshgrid meshgrid meshgrid, como no exemplo mostrado a seguir: x = linspace(0,2,20);% Gerao de valores para 'x' e 'y', y = linspace(1,5,20);% ambos com a mesma dimenso! [X,Y] = meshgrid(x,y); % Criao da matriz da malha 'xy' Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 13 Apartirdessasmatrizes,querepresentamumagraderetangulardepontosnoplanoxy, qualquerfunodeduasvariveispodesercalculadaemumamatrizZ ZZ Zedesenhadapelo comando mesh mesh mesh mesh. Exemplo para o grfico de um parabolide elptico: x = -5:0.5:5;% Definio da malha de pontos no eixo 'x' y = x;% Repetio da malha do eixo x para o eixo 'y' [X,Y] = meshgrid(x,y);% Criao da matriz da malha 'xy' Z = X.^2 + Y.^2;% Clculo da funo z = f(x,y) mesh(X,Y,Z)% Traado do grfico da funo 'z' Oresultadodesteexemplomostradonafigura1.7.Afunomesh mesh mesh meshcriaumamalha tridimensionalemquecadapontounidoporsegmentosderetaaosvizinhosnamalha. Usandoafunosurf surf surf surfpossvelgerarumgrficodesuperfcieemqueosespaosentreos segmentossocoloridos.Emambososcasos,umaquartamatrizpodeserusadacomo parmetroparaestabelecerascoresaseremusadasnodesenho.Seestamatrizforomitida, como no exemplo anterior, as cores das linhas sero relacionadas com a altura da malha sobre o plano xy. As duas funes podem receber somente a matriz Z ZZ Z como parmetro, traando um grfico de malha cujos valores de x e y correspondem aos ndices da matriz. Figura 1.7: Grfico de superfcie tridimensional 1.8 1.8 1.8 1.8Polinmios Polinmios Polinmios Polinmios O MATLAB possui funes especficas para operaes com polinmios, como a determinao de razes, avaliao, diferenciao, etc. Uma funo polinomial da forma ( )0 12211 a x a x a x a x a x pnnnn+ + + + + = podeserrepresentadanoMATLABporumvetordecoeficientes vetordecoeficientes vetordecoeficientes vetordecoeficientes,emordemdecrescentede potncia: [ ]0 1 2 1a a a a a pn n= . Por exemplo, o polinmio( ) 5 23 = x x x gpode ser representado pelo seguinte vetor: g = [1 0 -2 -5]; Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 14 Asrazes(reaisoucomplexas)deumpolinmiopodemsercalculadasdiretamenteemum vetor coluna pela funo roots roots roots roots. Exemplo: >> r = roots(g) r = 2.0946 -1.0473 + 1.1359i -1.0473 - 1.1359i Deformainversa,seforemconhecidasasrazesdeumpolinmio,afunopoly poly poly polyreconstrio polinmiooriginal.Porexemplo,oscoeficientesdovetorg gg gdoexemploanterior,podemser recuperados pela instruo: p1 = poly(r) % Ateno: o argumento da funo poly deve ser um vetor coluna! 1.8.1 1.8.1 1.8.1 1.8.1Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao Avaliao, multiplicao, diviso e diferenciao Avaliarumpolinmiosignificadeterminarovalorde( ) x p paraumdadovalordex.Para calcular, por exemplo,( ) 4 2. gusa-se a funo polyval polyval polyval polyval, como em: >> y = polyval(g,2.4) y = 4.0240 Asoperaesdemultiplicaoedivisoentrepolinmioscorrespondem,respectivamente,a operaesdeconvoluoedeconvoluo,implementadaspelasfunesconv conv conv convedeconv deconv deconv deconv.Por exemplo, considere: ( ) 1 32+ + = s s s n e ( ) 1 + = s s d . O produto( ) ( ) s d s npode ser calculado com a seguinte seqncia de comandos: >> n = [3 1 1]; >> d = [1 1]; >> prod = conv(n,d) prod = 3 4 2 1 Note que o grau do polinmio resultante dado pela soma dos graus dos polinmios envolvidos namultiplicao.Finalmente,aderivadadeumafunopolinomialpodeserobtida diretamente a partir do vetor que representa a funo com o uso da funo polyder polyder polyder polyder. NoteaformaderepresentaodenmeroscomplexosnoMATLAB(partereal+parte imaginria+i ii i).Defato,oMATLABreconheceautomaticamenteasletrasi ii iej jj jcomoa unidade imaginria da matemtica. Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 15 Por exemplo, a derivada de( ) x x x x f 3 22 3 + =pode ser calculada com: >> f = [2 1 -3 0] >> f1 = polyder(p) f1 = 6 2-3 1.9 1.9 1.9 1.9Funes deFunes deFunes deFunes de transferncia transferncia transferncia transferncia Considereumsistemalinearemquesepossamonitorarumavariveldesada,geradapela aodeumavariveldeentrada.Nestecaso,define-seafunodetransferncia funodetransferncia funodetransferncia funodetransfernciadosistema comoarelaoentreatransformadadeLaplacedavariveldesadaeatransformadade Laplacedavariveldeentrada,considerandocondiesiniciaisnulas.Existeumaclasse prprianoMATLABparafunesdetransferncia,criadaspelafunotf tf tf tfedefinidaspelo quociente de dois polinmios na varivel s. Por exemplo, a funo de transferncia ( )3 232+ +=s ss G pode ser armazenada em uma varivel no MATLAB pela seguinte seqncia de comandos: >> n = 3; >> d = [1 2 3]; >> G = tf(n,d) Transfer function: 3 ------------- s^2 + 2 s + 3 1.10 1.10 1.10 1.10Simulaes Simulaes Simulaes Simulaes Existemfunesespecficasparasimularocomportamentodesistemaslinearesaentradas tipoimpulso,degrauouentradasgenricas.Parasimulararespostaaumimpulsounitrio (emt=0s)deumsistemalinearutiliza-seafunoimpulse impulse impulse impulse,fornecendoospolinmios representativosdafunodetransfernciadosistemaouaprpriafuno.Considerandoas variveis n nn n e d dd d do exemplo anterior, pode-se usar indistintamente impulse(n,d)ouimpulse(G) Oresultadodasimulaoapresentadoemumajanelagrfica,comomostraafigura1.8. Opcionalmente, pode-se fornecer um valor em segundos para o tempo final de simulao: impulse(G,10);% Simula a resposta ao impulso por 10 s. possvel, ainda, armazenar os vetores do tempo de simulao (criado automaticamente pelo MATLAB) e da resposta do sistema, sem desenhar o grfico correspondente. Exemplo: [y t] = impulse(G,10); % Simula por 10 s. Retorna vetores de tempo e sada Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 16 Figura 1.8: Resposta ao impulso A simulao da resposta a uma entrada em degrau unitrio feita pela funo step step step step, como em: step(G);% Opo: step(n,d); O resultado desta simulao est representado na figura 1.9. Figura 1.9: Resposta ao degrau unitrio Engenharia de ControleLaboratrio01 Introduo ao uso do MATLAB 17 Nopossvelalteraraamplitudedodegrauusadonasimulao.Noentanto,possvel controlar o tempo de simulao e armazenar os vetores de resposta (sada e tempo). Exemplo: >> [y t] = step(G,10); Comosetratadasimulaodeumsistemalinear,asadaparaumaentradaemdegraude amplitudeApodesercalculadacomo() () t Ay t y =2.Finalmenteasfunesimpulse impulse impulse impulseestep step step step permitem que o usurio fornea um vetor de tempos a ser usado na simulao. Exemplo: t = 0:0.01:15; step(n,d,t); Assimcomonocasodafunoplot plot plot plot,pode-sesobrepordoisgrficosemumamesmajanelade figura.Finalmente,parasimulararespostadeumsistemalinearaumaentradagenrica preciso usar a funo lsim lsim lsim lsim, fornecendo a especificao do sistema e os vetores de entrada e de tempo de simulao. Exemplo (usando o sistema G GG G definido anteriormente): t = 0:0.1:10;% Vetor de tempo de simulao u = zeros(length(t),1);% Vetor de entrada, com mesma dimenso de 't' u(21:30) = 0.5;% Atribuio de valores no nulos lsim(G,u,t); % Simulao O resultado da simulao apresentado em uma janela grfica, como mostra a figura 1.10. Figura 1.10: Resposta a um sinal genrico Se for usada uma sintaxe com argumentos esquerda a simulao ser feita mas o grfico no serdesenhado.Ovetordesadacriadopelafunotersempreomesmonmerode elementos do vetor de tempo fornecido. Entrada Sada Engenharia de ControleLaboratrio02 Anlise de sistemas lineares 18 2. 2. 2. 2.Anlise Anlise Anlise Anlise de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem de sistemas lineares de 1 e 2 ordem atividades atividades atividades atividades 2.1 2.1 2.1 2.1S SS Sistemas istemas istemas istemas de 1 ordem de 1 ordem de 1 ordem de 1 ordem Obtenhaarespostaaodegrauunitriodossistemasdefinidospelasseguintesfunesde transferncia: a) a) a) a) ( )5101+=ss Gb) b) b) b) ( )28 , 02+=ss Gc) c) c) c) ( )1 01 , 013+=ss G Em seguida, determine: i ii i) )) )os plos do sistema; ii ii ii ii) )) )o valor final terico da resposta (usando o Teorema do Valor Final); iii iii iii iii) )) )o valor final do sinal de resposta (a partir da simulao); iv iv iv iv) )) )a constante de tempo do sistema. Finalmente,discutaaestabilidadedecadasistema,classificando-oscomoestveis(E), marginalmente estveis (ME) ou instveis (I). Teorema do Valor Final: X(s) Y(s)G(s) ( ) ( ) ( ) [ ] ( ) s Y s s G s X s ys slim lim0 0 = = 2.2 2.2 2.2 2.2R RR Resposta esposta esposta esposta temporal temporal temporal temporal Reescreva as funes de transferncia anteriores, sob a forma ( )1 +=sKs G everifiquearelaoentreestaformaeosparmetrosdarespostaaodegrau:constantede tempo e valor final. 2.3 2.3 2.3 2.3S SS Sistemas istemas istemas istemas de 2 ordem de 2 ordem de 2 ordem de 2 ordem Obtenhaarespostaaodegrauunitriodossistemasdefinidospelasseguintesfunesde transferncia: a) a) a) a)( )1124+ +=s ss G b) b) b) b)( )9 3925+ +=s ss G c) c) c) c) ( )25 72526+ +=s ss Gd) d) d) d) ( )25 102527+ +=s ss G Observao: Nas simulaes de resposta ao degrau criadas pela funo step step step step as principais caractersticas dedesempenhopodemserobtidasdiretamentenajanelagrfica:cliquecomobotodireitodomouse sobreumarealivredogrficoeselecione,nomenuCharacteristics,asopesPeakResponse (ultrapassagem ou sobressinal), Settling Time (tempo de assentamento), Rise Time (tempo de subida) e Steady State (valor final). Engenharia de ControleLaboratrio02 Anlise de sistemas lineares 19 Determine: i ii i) )) )os plos e zeros do sistema; ii ii ii ii) )) )o valor final terico da resposta (usando o Teorema do Valor Final); iii iii iii iii) )) )o valor final do sinal de resposta (a partir da simulao); iv iv iv iv) )) )o tempo de subida e de acomodao do sinal de resposta; v vv v) )) )o valor da ultrapassagem (ou sobressinal). Emseguida,discutaaestabilidadedecadasistemaeclassifique-osemsubamortecidos(SB), sobreamortecidos2 (SO), criticamente amortecidos (CA) ou oscilatrios (O). 2.4 2.4 2.4 2.4Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros Sistemas de 2 ordem sem zeros Reescreva as funes de transferncia do item anterior sob a forma ( )2 222n nns sK s G + += eidentifiqueosvaloresde e n .Verifiqueainflunciadafreqncianatural( )n na velocidade da resposta de sistemas com a mesma relao de amortecimento( ) . Em seguida, analise a influncia da relaoem sistemas com a mesma freqncia n . Para qual caso o sobressinal da resposta se mantm igual? 2.5 2.5 2.5 2.5Validade do Teorema do Valor Final Validade do Teorema do Valor Final Validade do Teorema do Valor Final Validade do Teorema do Valor Final UsandooTeoremadoValorFinal,determineovalorestacionriodarespostaaodegrau unitrio do sistema definido por: ( )1238++=sss G . Simule a resposta ao degrau e compare com o resultado analtico. Por que o teorema falhou? 2.6 2.6 2.6 2.6Aproximaes Aproximaes Aproximaes Aproximaes a) a) a) a)Obtenha em uma mesma janela de figura as respostas ao degrau de ( )1124+ +=s ss Ge( )10 11 11102 39+ + +=s s ss G Repita (em outra janela de figura) para uma entrada em impulso. O que se pode concluir? b) b) b) b)Obtenha em uma mesma janela de figura as respostas ao degrau unitrio de ( )2 22210+ +=s ss G e ( )2 22211+ ++=s sss G . Discuta os efeitos causados na resposta ao degrau de( ) s G10 pela incluso do zero( ) 2 = s .

2 Tambm chamados de superamortecidos. Engenharia de ControleLaboratrio03 Aproximaes e estabilidade 20 3. 3. 3. 3.Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares Aproximaes e estabilidade de sistemas lineares 3.1 3.1 3.1 3.1Sistemas de 3 ordem Sistemas de 3 ordem Sistemas de 3 ordem Sistemas de 3 ordem Acaractersticadominantedeumsistemade3ordemsemzerospodeseridentificadapor meio de expanso em fraes parciais. Por exemplo, a funo de transferncia ( )98 , 7 14 4 , 1198 , 72 3+ + +=s s ss G , pode ser reescrita como: ( ) ( ) ( ) ( )7908 , 0 3090 , 10893 , 07908 , 0 3090 , 17530 , 0091 , 100893 , 02 23 2 1+ ++ +++= + + =s sss s ss G s G s G s G3.1.1 3.1.1 3.1.1 3.1.1Exemplo Exemplo Exemplo Exemplo Obtenhaemumamesmajaneladefiguraasrespostasaodegraudecadatermodafuno ( ) s G , dada anteriormente. Verifique qual termo possui maior influncia na resposta dinmica do sistema. Confirme sua anlise a partir da resposta ao degrau do sistema de 3 ordem,( ) s G . 3.2 3.2 3.2 3.2Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem Aproximaes para modelos de 2 ordem Os passos a seguir descrevem uma forma de se aproximar um sistema de ordem superior, sem zeros, para um sistema de 2 ordem: 1) 1) 1) 1)Calcule (ou visualize no plano complexo) os plos originais da funo de transferncia use as funes roots roots roots roots e pzmap pzmap pzmap pzmap; 2) 2) 2) 2)Despreze o plo (ou plos) que tiver menor influncia na resposta dinmica do sistema para obter um novo denominador de 2 ordem; 3) 3) 3) 3)Obtenha um numerador que mantenha o ganho esttico (ganho DC) do sistema original; 4) 4) 4) 4)Verifique (por exemplo, graficamente) a qualidade da aproximao obtida. Engenharia de ControleLaboratrio03 Aproximaes e estabilidade 21 3.2.1 3.2.1 3.2.1 3.2.1Exemplos Exemplos Exemplos Exemplos a) a) a) a)Usando o conceito de plos dominantes, escreva modelos de 2 ordem para: i ii i) )) ) ( )98 , 7 14 4 , 1198 , 72 31+ + +=s s ss Gii ii ii ii) )) ) ( )( )( ) 542 , 24 4 3626 , 7322+ + +=s s ss G b) b) b) b)Considere um sistema definido pela funo de transferncia: ( )26 4 626 17 72 1178 12 278 12 3, s , s , s, s ,s G+ + ++= i ii i) )) )Reescreva a funo sob a forma( )( )( )( )( )3 2 11p s p s p sz sK s T = . ii ii ii ii) )) )Usando o resultado anterior, obtenha uma aproximao de 2 ordem para( ) s G . c) c) c) c)Escreva uma seqncia de comandos que crie uma aproximao de 2 ordem,) (2s G , para: ( )125 78 25 81 75 78 1625 1562 3 4 3, s , s , s s,s G+ + + += . Use apenas instrues literais, isto , que no envolvam valores numricos diretamente. 3.3 3.3 3.3 3.3Conexes entre sistemas Conexes entre sistemas Conexes entre sistemas Conexes entre sistemas O MATLAB possui funes para determinar o efeito de algumas formas de interconexo entre funes de transferncia. Nos exemplos a seguir, considere que se deseja obter ( )( )( )( ) s ds ns Xs Y= a partir das funes: ( )( )( ) s ds ns G111= e ( )( )( ) s ds ns G222= . a) Conexo em cascata a) Conexo em cascata a) Conexo em cascata a) Conexo em cascata X(s)G1(s) G2(s)Y(s) ( )( )( ) ( ) s G s Gs Xs Y2 1= Comandos: [n d] = series(n1,d1,n2,d2) [n d] = series(G1,G2) FT = G1*G2 3 opes para a mesma operao Engenharia de ControleLaboratrio03 Aproximaes e estabilidade 22 b) Conexo em paralelo b) Conexo em paralelo b) Conexo em paralelo b) Conexo em paralelo X(s)G1(s)G2(s)++Y(s) ( )( )( ) ( ) s G s Gs Xs Y2 1+ = Comandos: [n d] = parallel(n1,d1,n2,d2) [n d] = parallel(G1,G2) FT = G1+G2 3.4 3.4 3.4 3.4Estabilidade Estabilidade Estabilidade Estabilidade Sabe-sequeumsistemaemmalhafechadaestvelsesuafunodetransfernciano apresentar plos no semiplano direito do plano complexo, ou seja, se nenhum plo tiver parte real positiva. Por exemplo, considere o sistema da figura 3.1. G(s) +-X(s) Y(s)H(s) Figura 3.1: Sistema de controle em malha fechada A funo de transferncia em malha fechada deste sistema dada por: ( )( )( )( ) ( ) s H s Gs Gs Xs YFTMF+= =1. Odenominadordafunodetransfernciaemmalhafechadadorigemequao caracterstica do sistema, definida como: ( ) ( ) ( ) 0 1 = + = s H s G s q Paraumsistemacomoodafigura3.1,afunofeedback feedback feedback feedbackdoMATLABpermitedeterminar diretamente a funo de transferncia em malha fechada. Exemplo: >> MF = feedback(G,H) Opadrodafunofeedback feedback feedback feedbacktrabalharcomrealimentaonegativa.Parasistemascom realimentao negativa unitria, isto , quando( ) 1 = s H , usa-se: >> MF = feedback(G,1) 3 opes para a mesma operao Engenharia de ControleLaboratrio03 Aproximaes e estabilidade 23 3.4.1 3.4.1 3.4.1 3.4.1Exemplos Exemplos Exemplos Exemplos Investigueaestabilidadedossistemasaseguir,admitindoaconfiguraodafigura3.1,com realimentaonegativaunitria.Sistemasmarginalmenteestveisdevemserclassificados como instveis. a)a)a)a) ( )5 1 212 3, s s ss G+ + +=( ) Estvel( ) Instvel b) b) b) b) ( )4 212 +=s ss G ( ) Estvel( ) Instvel c)c)c)c) ( )2 5 11 14 5 612 3 4+ + + +=s , s s , ss G( ) Estvel( ) Instvel d)d)d)d) ( )3 2 212 3+ + +=s s ss G ( ) Estvel( ) Instvel *** Engenharia de ControleLaboratrio04 Programao 24 4. 4. 4. 4.Programao Programao Programao Programao Um dos aspectos mais poderosos do MATLAB a possibilidade de se criar programas em uma linguagemdeprogramaointerpretada3usandoamesmanotaoaceitanajanelade comando.ArquivoscontendocdigoMATLABsoarquivosdetextocomaextenso.m .m .m .m chamados de arquivos-M (M-files). Estes arquivos podem conter o cdigo de scripts scripts scripts scripts ou funes funes funes funes, cujas principais caractersticas esto relacionadas na tabela 4.1. Tabela 4.1: Caractersticas das formas de programao MATLAB Arquivos deArquivos deArquivos deArquivos de script script script scriptArquivos deArquivos deArquivos deArquivos de funes funes funes funes No aceitam argumentos nem retornam valores ao workspace. Aceitam argumentos e retornam valores ao workspace. Trabalham com as variveis definidas no workspace. Trabalham com variveis definidas localmente ao arquivo. Principal aplicao: automatizao de comandos que precisam ser executados em uma certa seqncia. Principal aplicao: adaptao da linguagem MATLAB a qualquer situao de programao necessria. 4.1 4.1 4.1 4.1ExemploExemploExemploExemplo anlise de um sistema linear anlise de um sistema linear anlise de um sistema linear anlise de um sistema linear Parailustrarasformasdeprogramaopossveisvamoscriarumscriptparaaanlisede desempenho de um sistema linear de 2 ordem definido, pela funo de transferncia: ( )5 252+ +=s ss F . 4.1.1 4.1.1 4.1.1 4.1.1Criando umCriando umCriando umCriando um script script script script OsscriptsconstituemaformamaissimplesdeprogramaoemambienteMATLABporque apenas automatizam uma srie de comandos. possvel usar qualquer editor de textos para a criao de scripts, mas o uso do editor embutido no MATLAB preferido por fornecer recursos teis ao programador como auto-indentao, destaque de palavras reservadas, ferramentas de depurao, etc. Digite edit edit edit edit na janela de comando ou clique em File > New > M-file para invocar o editor. Para este exemplo, digite o cdigo listado a seguir e salve-o com o nome A AA Analise1.m nalise1.m nalise1.m nalise1.m. Os comentrios podem ser omitidos. % ANALISE1.M - Script para anlise de desempenho. % Simula a resposta ao degrau e ao impulso de: %% 5 % F(s) = ------------ %s^2 + 2s + 5 %% Ateno: cria os polinmios 'n' e 'd' e a funo% de transferncia 'F' no workspace!

3 Como a linguagem de programao do MATLAB interpretada, todos os cdigos precisam ser executados a partir do MATLAB. possvel criar executveis independentes, assunto que no ser discutido neste material. Engenharia de ControleLaboratrio04 Programao 25 clear;% Limpa todas as variveis da memria clc;% Limpa a janela de comando n = 5;% Define o numerador da funo de transferncia d = [1 2 5];% Define o denominador da funo de transferncia F = tf(n,d);% Cria a funo de transferncia F figure(1);% Cria a janela grfica 1 step(F,10); % Simula por 10 s e desenha a resposta ao degrau de F figure(2);% Cria a janela grfica 2 impulse(F,10);% Simula por 10 s e desenha a resposta ao impulso de F Antes de executar o script preciso que o MATLAB reconhea a pasta em que o arquivo .m .m .m .m foi gravadocomoumdiretriodetrabalho.Digitecd cd cd cdnajaneladecomandoparadescobriro diretrio de trabalho atual e, se necessrio, altere-o para o diretrio onde o script foi gravado. Por exemplo, se o script foi gravado em C:\TEMP, digite: >> cd c:\temp Executeoscript,digitandoseunome(A AA Analise1 nalise1 nalise1 nalise1)najaneladecomando.Nesteexemplo,o resultado grfico exibido em duas janelas (ver figura 4.1). Verifique que as variveis F FF F, n nn n e d dd d (e somente elas!) permanecem no workspace aps a execuo do script. Figura 4.1: Resultados grficos do script 4.1.2 4.1.2 4.1.2 4.1.2Anlise doAnlise doAnlise doAnlise do script script script script Asprimeiraslinhasdocdigopropostocontmcomentriosquesoexibidospelocomando help help help help quando o usurio pede ajuda sobre o script: >> help Analise1 ANALISE1.M - Script para anlise de desempenho. Simula a resposta ao degrau e ao impulso de: 5 F(s) = ------------ s^2 + 2s + 5 Ateno: cria os polinmios 'n' e 'd' e a funo de transferncia 'F' no workspace! Engenharia de ControleLaboratrio04 Programao 26 A primeira linha de comentrio, chamada delinha H1 linha H1 linha H1 linha H1 usada nas buscas por palavra-chave do comando lookfor lookfor lookfor lookfor. Exemplo: >> lookfor desempenho Analise1.m: % ANALISE1.M - Script para anlise de desempenho. 4.1.3 4.1.3 4.1.3 4.1.3Criando uma funo Criando uma funo Criando uma funo Criando uma funo Funes so arquivos-M que estendem a capacidade de processamento dos scripts por aceitar argumentosdeentradaeretornarvaloresparaoworkspace.Cadafunotrabalhacom variveislocais,isoladasdoespaodememriadoworkspace.Almdisso,asfunespodem serexecutadasmaisrapidamentequeosscriptsporseremcompiladasinternamenteemum pseudo-cdigo que mantido em memria, aumentando a velocidade de execuo caso a funo seja chamada mais de uma vez. Aprimeiralinhadeumarquivodefunodepoisdoscomentriosiniciaisdevecontera palavra-chavefunction function function functionseguidapeladefiniodosvaloresderetorno,nomedafunoepela listadeargumentosdeentrada4.Comoexemplo,analiseocdigolistadoaseguirdeuma funo(Media Media Media Media)paraclculodamdiadoselementosdeumvetor(ousodaestruturaif if if ifdera explicado futuramente). % MEDIA.M - Funo para clculo da mdia dos elementos de um vetor % Verso simplificada, com verificao bsica de dimenso do vetor % Forma de uso: y = media(V) , sendo V um vetor linha ou coluna function y = Media(V) [nl nc] = size(V); % Obtm dimenses do vetor if (nl==1 & nc==1) % Se nl=nc=1, V um escalar disp('Erro: a funo no trabalha com escalares'); else y = sum(V)/length(V); % Se no for escalar, calcula a mdia end % Fim da estrutura condicional Exemplo de uso da funo: >> a = [1 2 4 6 7 7]; >> b = Media(a) b = 4.5000 Note que o valor de retorno da funo foi o ltimo valor atribudo internamente varivel y yy y. O final do cdigo de uma funo no precisa de nenhum identificador especfico. 4.1.4 4.1.4 4.1.4 4.1.4Atividade Atividade Atividade Atividade Pesquisedetalhesdefuncionamentodasfunesdisp disp disp dispesum sum sum sum,usadasnocdigodafuno Media Media Media Media. Consulte tambm a documentao da funo mean mean mean mean.

4 So vlidas as mesmas observaes feitas para os scripts em relao utilidade das primeiras linhas do cdigo. Engenharia de ControleLaboratrio04 Programao 27 4.1.5 4.1.5 4.1.5 4.1.5Convenes Convenes Convenes Convenes Os nomes de funes no MATLAB tm as mesmas restries que os nomes de variveis: devem ter,nomximo,31caractereseiniciarporumaletraseguidaporqualquercombinaode caracteres, nmeros ou caracteres de sublinhado. O nome do arquivo que contm o cdigo da funodeveserformadopelonomedafuno,comextenso.m .m .m .m.Sehouverdivergncias,o nome do arquivo prevalecer sobre o nome interno da funo. Alinhadedefiniodafunodeveseguirumaformapadronizadaqueidentifiquea quantidadedeparmetrosrecebidosoudevolvidospelafuno.ParaafunoMedia Media Media Media,usada anteriormente como exemplo, pode-se identificar: function y = media(V) Se a funo retornar mais de um valor deve-se especificar uma lista de argumentos de retorno, delimitada por colchetes. Argumentos de entrada, se existirem, devem estar entre parnteses. As duas listas devem ter seus valores, obrigatoriamente, separados por vrgulas. Exemplo: % PONTOMEDIO.M - Calculo das coordenadas do ponto mdio entre % pontos. A funo deve receber 2 vetores de coordenadas (x,y) function [x,y] = PontoMedio(coord_x,coord_y) if(length(coord_x)==length(coord_y)) x = mean(coord_x); y = mean(coord_y); else disp('Erro nas dimenses dos vetores!'); end Exemplo de execuo da funo PontoMedio PontoMedio PontoMedio PontoMedio: >> cx = [1 2 4 1 4 5]; >> cy = [7 2 3 5 0 8]; >> [x,y] = PontoMedio(cx,cy) x = 2.8333 y = 4.1667 A lista de retorno pode ser omitida ou deixada vazia se no houver resultado a ser devolvido, ou seja, pode-se escrever um cabealho como function Calcula(x)oufunction [] = Calcula(x) ComomostradonoexemplodafunoM MM Media edia edia ediaasvariveispassadasparaafunono precisam ter os mesmos nomes usados na definio da funo. Argumento de entrada (recebido pela funo) Nome da funo Argumento de sada (devolvido pela funo) Palavra-chave indicadora de funo Engenharia de ControleLaboratrio04 Programao 28 4.2 4.2 4.2 4.2Controle de fluxo Controle de fluxo Controle de fluxo Controle de fluxo Comoamaioriadaslinguagensdeprogramao,oMATLABpermiteousodeestruturas condicionais e repetitivas para controle de fluxo5. Neste material discutiremos algumas formas de uso dos comandos if if if if, while while while while e for for for for. 4.2.1 4.2.1 4.2.1 4.2.1Estrutura condicionalEstrutura condicionalEstrutura condicionalEstrutura condicional if if if if Ocomandoif if if ifavaliaumaexpressoe,dependendodeseuvalor,executaumdeterminado conjunto de instrues. Em sua forma mais simples, usa-se: if expresso end Seaexpressolgicaforverdadeira(diferentedezero),todososcomandosatofinalizador end end end endseroexecutados.Emcasocontrrio(expressoigualazero),aexecuodocdigo continuarnainstruoapsofinalizadorend end end end.Aformacompletadaestruturaincluia declarao else else else else para a indicao de comandos a serem executados se a expresso for falsa: if expresso else end As expresses podem incluir operadores relacionais e lgicos, como mostrado na tabela 4.2.

Tabela 4.2: Operadores relacionais e lgicos Operadores relacionais Operadores relacionais Operadores relacionais Operadores relacionaisOperadores lgicos Operadores lgicos Operadores lgicos Operadores lgicos =Maior ou igual ==Igual a~=Diferente de Exemplo: ... if x == 0 y = sin(3*t+a); else y = cos(3*t-a); end ...

5 O MATLAB reconhece 6estruturas de controle de fluxo: if, switch, while, for, try-catch e return. Engenharia de ControleLaboratrio04 Programao 29 4.2.2 4.2.2 4.2.2 4.2.2Estrutura repetitivaEstrutura repetitivaEstrutura repetitivaEstrutura repetitiva while while while while O lao while while while while executa um grupo de comandos enquanto uma expresso de controle for avaliada como verdadeira. A sintaxe para este tipo de lao : while expresso end Exemplo de um trecho de cdigo que simula a operao da funo interna sum sum sum sum: ... S = 0; i = 1; while i M M = V(i); end end % Neste ponto, M = max(V) ... 4.3 4.3 4.3 4.3Vetorizao Vetorizao Vetorizao Vetorizao Oacessovetorizadoumaopoaoslaosdeacessoindividualaelementosdevetoresou matrizes.Normalmente,oacessovetorizadomaisrpidoqueoacessoindividual,feitocom laos de repetio. Exemplo de uso: Verses recentes do MATLAB (verso 6 em diante) fazem operaes automticas de otimizao que, na prtica, produzem ganhos de desempenho compatveis com os da vetorizao. Acesso convencional Acesso convencional Acesso convencional Acesso convencional Acesso vetorizado Acesso vetorizado Acesso vetorizado Acesso vetorizado i = 0; for t = 0:0.001:99.999 i = i+1; y(i) = sin(t); end t = 0:0.001:99.999; y = sin(t); Engenharia de ControleLaboratrio04 Programao 30 4.4 4.4 4.4 4.4Entrada de dados Entrada de dados Entrada de dados Entrada de dados Afunoinput input input inputpermiteaentradadedadosouexpressesduranteaexecuodescriptsou funes, exibindo (opcionalmente) um texto ao usurio. Exemplo: Kp = input('Digite o ganho da ao proporcional: '); Se o valor de entrada for uma expresso, seu valor ser avaliado antes da atribuio varivel usada no comando. Se o valor de entrada for um texto o caractere 's' 's' 's' 's' (string) deve ser includo na lista de argumentos da funo. Exemplo: Titulo_Grafico = input('Ttulo do grfico: ','s'); Outra forma disponvel de interao via teclado dada pela funo pause pause pause pause. Quando usada sem argumentos,ainstruointerrompeaexecuodeumscriptoufunoatqueousurio pressionealgumatecla6.Afunopause pause pause pauseespecialmentetilparapermitiraousurioa leitura de vrias informaes impressas em tela ou durante a fase de depurao do programa. 4.5 4.5 4.5 4.5Edio de funes existentes Edio de funes existentes Edio de funes existentes Edio de funes existentes Ocdigodamaioriadasfunesdiscutidasnestematerialpodeservisualizadooueditado, digitando-se: >> edit No possvel editar o cdigo de funes internas do MATLAB como inv inv inv inv, max max max max, etc. Apesar de possvel,norecomendvelalterardiretamenteocdigodasfunesqueacompanhamo MATLAB. Se desejar7, crie uma nova verso com outro nome. 4.6 4.6 4.6 4.6Subfunes Subfunes Subfunes Subfunes Os arquivos-M podem conter mais de uma funo. A primeira delas, cujo nome deve coincidir comonomedoarquivo,afunoprimria primria primria primriaenquantoasdemaissosubfunes subfunes subfunes subfunes.As subfunespodemserdefinidasemqualquerordemapsafunoprimriaesuasvariveis sempretemescopolocal8.Noprecisousarqualquerindicaoespecialdefimdefuno porque a presena de um novo cabealho indica o fim da funo (ou subfuno) anterior. Como exemplo, analise o cdigo da funo Baskara Baskara Baskara Baskara, listado a seguir. % BASKARA.M - Exemplo de uso de uma subfuno para % clculo de razes de equao do 2o grau % Funo primria: mesmo nome que o do arquivo .M function x = Baskara(v) a = v(1); b = v(2); c = v(3); % Obtm coeficientes D = Delta(a,b,c); % Calcula "delta"

6Afunopause pause pause pausetambmpodeserusadacomargumentos.Quandousadasobaformapause(N) pause(N) pause(N) pause(N),afuno interrompe a execuo do cdigo atual por N NN N segundos. 7 E souber o que est fazendo. 8 possvel criar variveis globais, reconhecidas em todo o cdigo consulte a documentao do MATLAB. Engenharia de ControleLaboratrio04 Programao 31 % Calcula razes reais, se existirem if isreal(D) r1 = (-b+D)/(2*a);% Calcula raiz r2 = (-b-D)/(2*a);% Calcula raiz if r1 == r2 x = r1;% Retorna apenas uma raiz else x = [r1; r2];% Retorna razes distintas end else disp('A equao no possui razes reais'); x = []; % Retorno nulo end % Subfuno para clculo de "delta" function d = Delta(a,b,c) d = sqrt(b^2-4*a*c); 4.7 4.7 4.7 4.7Exemplos de aplicao Exemplos de aplicao Exemplos de aplicao Exemplos de aplicao 4.7.1 4.7.1 4.7.1 4.7.1Aproximaes Aproximaes Aproximaes Aproximaes Crie uma funo chamada Aprox2 Aprox2 Aprox2 Aprox2 que obtenha uma aproximao de 2 ordem a partir de uma funo de transferncia de 3a ordem, da forma: ( )( ) s dns G333= . Afunodeverecebercomoparmetrosonumerador(umnmeroreal)eopolinmiode3 graucorrespondenteaodenominador.Osvaloresderetornodevemserospolinmiosdo numerador e denominador da aproximao. Adicionalmente, devem ser superpostos os grficos da resposta ao degrau das duas funes de transferncia. Exemplo de uso: ( )98 , 7 14 4 , 1198 , 72 33+ + +=s s ss G Instrues: >> n3 = 7.98 >> d3 = [1 11.4 14 7.98]; >> [n2 d2] = Aprox2(n3,d3) Tcnica: eliminao do plo no-dominante (supostamente, o nico plo real). Valores de retorno da funo (para este exemplo) n2 = 0.7908 d2 = 1.00001.30900.7908 Resultado grfico: ver exemplo na figura 4.2. Engenharia de ControleLaboratrio04 Programao 32 Figura 4.2: Exemplo do resultado grfico da funo Aprox2 Aprox2 Aprox2 Aprox2 4.7.2 4.7.2 4.7.2 4.7.2Anlise do erro em regimeAnlise do erro em regimeAnlise do erro em regimeAnlise do erro em regime estacionrio estacionrio estacionrio estacionrio Para sistemas realimentados estveis o erro em regime estacionrio dado por: ( ) = te lim ( ) = t e0lim s( ) s E s . ComooMATLABsemprecalculaarespostadesistemaslinearesemtempo tempo tempo tempodiscreto discreto discreto discreto,isto, para apenas alguns instantes de tempo, pode-se calcular o vetor de erro (e ee e) a partir dos vetores de entrada (u uu u) e sada (y yy y) de uma simulao, usando: e = uy; % ATENO: u e y devem tem a mesma dimenso! Um exemplo deste clculo mostrado no cdigo da funo Erro Erro Erro Erro, listado a seguir, que desenha o grfico do erro e da resposta ao degrau do sistema mostrado na figura 4.3. function [ess] = Erro(K) clc% Limpa a tela G = tf(K,conv([1 1],[1 5])); % Cria a funo de ramo direto MF = feedback(G,1);% Cria a funo em malha fechada [y t] = step(MF);% Obtm os vetores de simulao u = ones(length(y),1); % Cria o vetor representativo da entrada e = u-y; % Calcula o vetor de erros plot(t,y,t,e)% Traa os grficos da sada e do erro ess = e(length(e));% Retorna o valor "final" do erro No cdigo, observe o uso da funostep step step step com argumentos esquerda e como a funoplot plot plot plot foi usada para sobrepor dois grficos na mesma janela (uma alternativa ao uso de hold hold hold hold). Engenharia de ControleLaboratrio04 Programao 33 G(s) +-X(s) Y(s)H(s)K ( )( )( ) 5 11+ +=s ss G ( ) 1 = s HFigura 4.3: Sistema de controle realimentado 4.7.3 4.7.3 4.7.3 4.7.3Atividade Atividade Atividade Atividade ModifiqueocdigodafunoErro Erro Erro Erroparaaceitarcomoargumentodeentradaotempode simulaoeosparmetrosde( ) s G e( ) s H .VerifiqueainflunciadovalordeKnaresposta dinmica do sistema. 4.7.4 4.7.4 4.7.4 4.7.4AtividadeAtividadeAtividadeAtividade e ee estabilidade stabilidade stabilidade stabilidade em funo de um parmetro em funo de um parmetro em funo de um parmetro em funo de um parmetro AfunoPolos Polos Polos Polos,listadaaseguir,calculaedesenhaemumplanoxyosplosdosistemade controle mostrado na figura 4.4, para alguns valores deKentre 0 e 20. % POLOS.M - Funo para desenhar a posio dos plos de um % sistema realimentado em funo do ganho K function [] = Polos K = [0:0.5:20]; % Cria vetor de ganhos for i=1:length(K) q = [1 2 4 K(i)];% Polinmio da equao caracterstica p(:,i) = roots(q); % Calcula razes para o ganho K(i) end plot(real(p),imag(p),'bx');% Desenha grfico dos plos grid on; xlabel('Eixo real'); % Nomeia os eixos ylabel('Eixo imaginrio'); % do grfico a) a) a) a)AnaliseogrficocriadopelafunoeverifiqueseexistemvaloresdeKparaosquaiso sistema realimentado instvel. b) b) b) b)Faa com que a funo aceite a entrada dos valores do ganho mximo e do passo. Exemplo: Kmax = input('Digite o valor do ganho mximo: '); c) c) c) c)Modifique a funo para detectar o valor de K que leva o sistema ao limite da estabilidade. +-X(s) Y(s)Ks3 + 2s2 +4s1 Figura 4.4: Sistema de controle realimentado Engenharia de ControleLaboratrio05 Lugar das razes 34 5. 5. 5. 5.Lugar das razesLugar das razesLugar das razesLugar das razes introduo introduo introduo introduo Odesempenhodeumsistemalinearpodeseranalisadopelosplosdasuafunode transferncia em malha fechada. Na prtica, tenta-se ajustar a posio destes plos para que o comportamento do sistema atenda a certas especificaes de desempenho (sobressinal, tempo de assentamento, etc). Por exemplo, considere o sistema representado na figura 5.1. G(s) +-X(s) Y(s)kp Figura 5.1: Sistema de controle em malha fechada Neste caso, percebe-se que as razes da equao caracterstica do sistema, dada por ( ) ( )( )( )0 1 1 = + = + =s ds nk s G k s qp p dependemdovalordoganhoKp.Otraadodolugardasrazes lugardasrazes lugardasrazes lugardasrazesdeumsistemaemmalha fechada,emfunodeumganhoderamodireto,podeserobtidodiretamentenoMATLAB pela funo rlocus rlocus rlocus rlocus. A partir da funo de transferncia em malha aberta, ( )( )( ) s ds ns G = obtm-se o lugar das razes do sistema em malha fechada, usando rlocus(n,d);ourlocus(G); % Sendo G = tf(n,d) Neste caso, o MATLAB utiliza um vetor de ganhos criado automaticamente, com kp variando de 0 a +. Este vetor tambm pode ser fornecido pelo usurio, como no exemplo a seguir: VG = [0:0.5:20];% Cria vetor com ganhos de 0 a 20 rlocus(n,d,VG);% Obtm o lugar das razes Oresultadoapresentadoemumajaneladefiguracomosplosezerosdemalhaaberta indicadospor" "e"",respectivamente.Afunorlocus rlocus rlocus rlocustambmpodefornecerasrazes calculadas e o vetor de ganhos utilizado nos clculos, sem traar o grfico, usando-se: [R Kp] = rlocus(n,d) % R = matriz de razes; Kp = vetor de ganhos Analisando-seestesvaloresderetornopossveldescobrir,porexemplo,quaisvaloresdekp podem tornar o sistema instvel. 5.1 5.1 5.1 5.1Exemplo Exemplo Exemplo Exemplo Considere um sistema como o da figura 5.1, com: ( )1 6 412 3+ + +=s s ss G . Engenharia de ControleLaboratrio05 Lugar das razes 35 O lugar das razes deste sistema pode ser obtido, digitando-se: >> MA = tf(1,[1 4 6 1]); >> rlocus(MA); Oresultadogrficoestrepresentadonafigura5.2.Assetasindicamosentidode deslocamento dos plos de malha fechada do sistema com o aumento de kp. Figura 5.2: Lugar das razes 5.1.1 5.1.1 5.1.1 5.1.1Atividade Atividade Atividade Atividade Descubraquantos(equais)valoresdeganhokpforamusadospelafunorlocus rlocus rlocus rlocusparaa obteno do lugar das razes do sistema da figura 5.2. 5.2 5.2 5.2 5.2Anlise grfica do lugar das razes Anlise grfica do lugar das razes Anlise grfica do lugar das razes Anlise grfica do lugar das razes A anlise dos plos do sistema em relao ao ganho kp tambm pode ser feita de forma grfica pelousodafunorlocfind rlocfind rlocfind rlocfind.Estafunocalculaoganhoderamodiretonecessrioparaque um certo plo, selecionado pelo mouse na janela do lugar das razes, seja obtido. Paraverumexemplodecomoistopodeserfeito,obtenhaolugardasrazesdosistema desejado e digite: >> [g p] = rlocfind(MA) A mensagem "Select a point in the graphics window" ser mostrada na janela de comando do MATLABeumcursoreformadecruzaparecernajaneladefigura,aguardandoqueum Plo de malha aberta Engenharia de ControleLaboratrio05 Lugar das razes 36 ponto seja selecionado. No exemplo a seguir (figura 5.3) foi considerado o lugar das razes do sistema descrito como exemplo no item 5.1. Figura 5.3: Seleo de um ponto sobre o lugar das razes Osresultadoscorrespondentessoexibidosnajaneladecomandoassimqueumpontofor selecionado. Para o exemplo da figura 5.3, tem-se: selected_point = -0.6836 + 1.3540i g = 5.1271 p = -2.5984 -0.7008 + 1.3664i -0.7008 - 1.3664i Osploscalculadosnovetorp pp pficamdestacadosnajaneladefiguraatqueogrficoseja redesenhado.Importante:afunorlocfind rlocfind rlocfind rlocfindsfuncionaseexistirumajaneladelugardas razes criada pelo comando rlocus rlocus rlocus rlocus. 5.2.1 5.2.1 5.2.1 5.2.1Atividade Atividade Atividade Atividade Use a funo rlocfind rlocfind rlocfind rlocfind para estimar o ganho kp que leva o sistema definido em 5.1 ao limite da estabilidade. 5.3 5.3 5.3 5.3Exemplos Exemplos Exemplos Exemplos Obs Obs Obs Obs.: todas as anlises a seguir se referem a sistemas com a estrutura mostrada na figura 5.1. a) a) a) a)Determine o ganho crtico (limite da estabilidade) para um sistema com: ( )( ) 3 2222+ ++ =s s ss ss G . Engenharia de ControleLaboratrio05 Lugar das razes 37 Na condio crtica, quais plos so dominantes? b) b) b) b)Considere um sistema realimentado definido por: ( )( )( ) 5 4 212+ + +=s s s ss G . Verifique sepossvel obterplosdominantescomparterealiguala-0,35edeterminepara qual valor de kpisto acontece. c) c) c) c)Considere um sistema definido pela funo de transferncia: ( )( )( ) 912++=s sss G . Determine o valor do ganho kp para o qual os trs plos de malha fechada so reais e iguais. d) d) d) d)Um colega traou o lugar das razes de um sistema com ( )( ) 144 24202+ ++=s s sss G , paradeterminarafaixadevaloresdekpquetornassemosistemarealimentadooscilatrio. Usandoafunorlocfind rlocfind rlocfind rlocfindeselecionandoopontoemqueosplosdosistema(realimentado) passavam a ter parte complexa, obteve: selected_point = -4.7698 g = 16.3718 p = -14.4939 -4.7698 -4.7363 O procedimento adotado pelo colega est correto, ou seja, o sistema em questo ter realmente comportamento oscilatrio para kp 16,37? Justifique. e) e) e) e)Considere o sistema de controle mostrado na figura 5.4 e os controladores: i ii i) )) )( )p ck s G = (Controlador proporcional) ii ii ii ii) )) )( ) s k s Gi c/ = (Controlador integral) iii iii iii iii) )) )( )||

\| += + =sskskk s Gpiip c1(Controlador proporcional-integral simplificado) Obtenha o lugar das razes de cada sistema compensado. Discuta a estabilidade dos sistemas em funo do ganho e, quando possvel, determine o valor do ganho crtico. 1+-X(s)Y(s)s2 + 5s + 6Gc(s) Figura 5.4: Sistema de controle em malha fechada Engenharia de ControleLaboratrio05 Lugar das razes 38 f) f) f) f)A funo rlocus rlocus rlocus rlocus do MATLAB utiliza a estrutura mostrada na figura 5.5. G(s) +-X(s) Y(s)kp Figura 5.5: Estrutura usada na anlise de lugar das razes Mostre que, para a anlise de lugar das razes, esta estrutura equivalente da figura 5.1. *** Engenharia de ControleLaboratrio06 Projeto usando lugar das razes 39 6. 6. 6. 6.ProjetoProjetoProjetoProjeto usando usando usando usando lugar das razeslugar das razeslugar das razeslugar das razes introduo introduo introduo introduo O MATLAB permite o projeto interativo de sistemas de controle por meio de uma ferramenta grficachamadaSISODesignTool.AabreviaturaSISOindicaqueoprojetolimitadoa sistemascomapenasumaentradaeumasada(single-input,single-output).possvelusar comobasedeprojetoodiagramadolugardasrazesdosistema,odiagramadeBodeouo diagrama de Nichols. A configurao padro para o projeto est representada na figura 6.1. G(s) +-X(s) Y(s)C(s) F(s)H(s) Figura 6.1: Configurao padro para a ferramenta de projeto SISO Nesta configurao: ( ) s F o pr-filtro do sistema; ( ) s C o compensador (ou controlador); ( ) s Grepresenta a planta ou processo controlado; ( ) s Hrepresenta o elemento de medio (sensor). Asfunesdetransfernciadocompensadoredaplanta,geralmente,soimportadasdo workspace, como ser mostrado a seguir. Por padro, adota-se( ) s F = ( ) s H =1. 6.1 6.1 6.1 6.1Exemplo de projeto Exemplo de projeto Exemplo de projeto Exemplo de projeto Considereoprojetodeumcontroladorproporcional-derivativo(PD)paraumaplantacoma seguinte funo de transferncia: ( )( ) 125000 . 1+=s ss Gp. O sistema controlado deve apresentar: i ii i) )) )Erro estacionrio nulo para entrada em degrau; ii ii ii ii) )) )Sobressinal mximo de 10%; iii iii iii iii) )) )Tempo de subida menor ou igual a 10 ms. Res Res Res Resoluo oluo oluo oluo: a funo de transferncia do controlador PD dada por ( ) ( ) s T k s k k s Gd p d p pd+ = + = 1 , sendo p d dk k T = , o tempo derivativo do controlador. Parautilizarmosodiagramadelugardasrazesnoprojetoprecisoqueexistaapenasum parmetrolivre.Assim,incluiremosacontribuiodinmicadocontroladornaplanta,para um valor fixo de Td , de modo que o ganho de ramo direto seja apenas kp. (ver figura 6.2). Engenharia de ControleLaboratrio06 Projeto usando lugar das razes 40 1.000+-X(s) Y(s)kps(s + 125)(1+Tds) Figura 6.2: Sistema de controle com ganho de ramo direto ajustvel Assim, as funes de transferncia necessrias para o uso da ferramenta de projeto so: ( ) ( ) 1 = = s H s F ; ( )pk s C = ; ( )( )( ) 1251 000 . 1++=s ss Ts Gd Nesteexemplo,ozerodosistema(ems=-1/Td)serposicionadoarbitrariamenteentreos plos de malha aberta, com Td = 1/80 (ver figura 6.3). Figura 6.3: Lugar das razes do sistema para Td = 1/80 Para executar a ferramenta de projeto com o diagrama de lugar das razes do sistema usa-se a funo rltool rltool rltool rltool. Seqncia de comandos: >> Td = 1/80; >> n = 1000*[Td 1]; >> d = conv([1 0],[1 125]); >> G = tf(n,d); >> rltool(G); Ainterfacedaferramentadeprojetosermostrada(verfigura6.4)comosplos correspondentes ao valor atual de kp (valor inicial = 1) destacados. Engenharia de ControleLaboratrio06 Projeto usando lugar das razes 41 Figura 6.4: Interface da ferramenta de projeto SISO Paraverificarseoscritriosdedesempenhoestosendosatisfeitosabraumajanelacoma resposta ao degrau do sistema controlado, clicando em Analysis > Response to Step Command. Inicialmente, so mostrados os grficos da sada do sistema e do esforo de controle (sada do controlador), conforme a figura 6.5. Figura 6.5: Resposta ao degrau do sistema controlado Configurao de realimentao Plos atuais (malha fechada) Mudana de estrutura Ganho atual Resposta ao degrau ( r to y ) Esforo de controle ( u to y ) Engenharia de ControleLaboratrio06 Projeto usando lugar das razes 42 As curvas que aparecem na janela de resposta podem ser alteradas clicando-se em Analysis > OtherLoopResponses.Nomomento,oculteogrficodoesforodecontrole,desmarcandoa opo "r to u (FCS)" (ver figura 6.6). Figura 6.6: Configurao da resposta ao degrau Clique com o boto direito na janela de resposta ao degrau e selecione Characteristics > Rise Time. Para1 =pko tempo de subida deve ser de aproximadamente 0,283 s. Mantenhaasjanelasdarespostaedaferramentadeprojetoladoaladoealtereoganhokp arrastando um dos plos atuais do sistema. O novo valor de ganho tambm pode ser digitado nacaixadeedio"CurrentCompensator".Odesempenhoexigidonesteprojetodeveser obtidoparakp27.Sefornecessriorepetiroprojeto,porexemplo,comoutrovalordeTd, altereafunodetransferncia( ) s G eimporte-aparaaferramentadeprojeto,clicandoem File > Import e selecionando a varivel G como "funo da planta" (ver figura 6.7). Figura 6.7: Alterao da funo de transferncia da planta 6.1.1 6.1.1 6.1.1 6.1.1Atividades Atividades Atividades Atividades a) a) a) a)RepitaoprojetocomTd=1/200.Verifiqueseaindapossvelatenderaoscritriosde desempenho exigidos e discuta os resultados obtidos.Esforo de controle Funo de transferncia da planta Engenharia de ControleLaboratrio06 Projeto usando lugar das razes 43 b) b) b) b)AindacomTd=1/200,repitaoprojetousandoumcontroladorproporcional.Discutaos resultados obtidos. c) c) c) c)Usando os mesmos critrios de desempenho dos projetos anteriores, projete um controlador proporcional-integral (PI) para a planta: ( )( )( ) 500 125000 . 1+ +=s ss GP. A funo de transferncia do controlador PI : ( ) ||

\| +=|||

\|+ = + =sT sks Tkskk s Gipipip pi1 11 , Adoteumvalorparaotempointegraledetermineovalordekpquepermitaatenders especificaesdedesempenhopropostas.Justifiqueaescolhafeita paraaposiodozeroem relao aos plos do sistema. *** Engenharia de ControleLaboratrio07 Resposta em freqncia 44 7. 7. 7. 7.Resposta em freqnciaResposta em freqnciaResposta em freqnciaResposta em freqncia introduo introduo introduo introduo Oestudodarespostaemfreqnciadeumsistemalinearestvelvisadeterminarcomosua sadaemregimepermanentevariaemfunodafreqnciadeumsinaldeentrada puramentesenoidal.Nestascondies,asadaetodosossinaisinternosdosistemaso senoidais com a mesma freqncia do sinal de entrada, diferindo apenas em amplitude e fase.7.1 7.1 7.1 7.1Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia Determinao manual da resposta em freqncia Considere um sistema linear estvel definido por uma funo de transferncia conhecida,( ) s G, submetido a uma entrada senoidal da forma( ) ( ) t sen A t x = . Neste caso, a sada em regime permanente da forma: ( ) ( ) ( ) + = t sen G A t y . O ganho do sistema, dado por ( ) ( )js G j G==s, um nmero nmero nmero nmero complexocomplexocomplexocomplexo cujo mdulo e fase podem ser calculados como ( ) ( ) ( ) ( ) ( )2 2 j G Re j G Im j G + =e ( ) ( ) ( ) ( ) ( ) j G Re / j G Im arctg = , sendo( ) ( ) j G Ree( ) ( ) j G Im , respectivamente, a parte real e imaginria do ganho( ) j G . 7.1.1 7.1.1 7.1.1 7.1.1Atividades Atividades Atividades Atividades a) a) a) a)Crieumscriptoufunoquecalculeovalor daamplitudeefase(emgraus)doganhode um sistema definido por ( )000 10 4 141000 102. s , s.s G+ += ( )( ) ( ) j , ..j G 4 141 000 10000 102+ = , para entradas senoidais de freqncias: 1, 10, 100, 1.000 e 10.000 rad/s. Use as funes abs abs abs abs e angle angle angle angle nos clculos e converta os ngulos de radianos para graus, multiplicando os valores por 180 e dividindo por . O que se pode concluir respeito do ganho do sistema? b) b) b) b)Analise o cdigo listado a seguir. function Ordem1(n,d,wmax) w = logspace(-2,ceil(log10(wmax)),100); for k=1:100 G = n/(d(1)*w(k)*i+d(2)); Mod(k) = abs(G); Fase(k) = angle(G)*180/pi; end figure(1); semilogx(w,Mod); title('Modulo'); figure(2); semilogx(w,Fase); title('Fase (graus)'); Teste a funo para n=1 n=1 n=1 n=1, d=[1 1] d=[1 1] d=[1 1] d=[1 1] e wmax = 100 wmax = 100 wmax = 100 wmax = 100. Explique, usando suas prprias palavras, qual a utilidade da funo. c) c) c) c)Crie uma nova verso da funo Ordem1 Ordem1 Ordem1 Ordem1 que use acesso vetorizado (ver seo 1.3, pg. 6). Engenharia de ControleLaboratrio07 Resposta em freqncia 45 d) d) d) d)Elabore uma funo (RespFreq RespFreq RespFreq RespFreq) que desenhe os grficos da resposta em freqncia (mdulo e fase do ganho) de um sistema linear da forma: ( )( )( ) c bs asKs ds ns G+ += =2. Sintaxe da funo Sintaxe da funo Sintaxe da funo Sintaxe da funo [Mod,Fase,w] = RespFreq(n,d,wmax); Dados de entrada Dados de entrada Dados de entrada Dados de entrada Funo de transferncia (polinmios do numerador e denominador); Freqncia mxima a ser usada nos clculos (em rad/s). Valores de retorno Valores de retorno Valores de retorno Valores de retorno Vetores de mdulo e fase dos ganhos calculados; Vetor de freqncias usadas nos clculos. Consideraes Consideraes Consideraes Consideraes Freqncia mnima = 0,01 rad/s; 1.000 valores de freqncia; Grfico de fases em graus. e) e) e) e)Altere o cdigo de RespFreq RespFreq RespFreq RespFreq para trabalhar com funes de transferncia genricas. 7.2 7.2 7.2 7.2Diagrama de Bode Diagrama de Bode Diagrama de Bode Diagrama de Bode A representao grfica do ganho de um sistema (mdulo e fase) em funo da freqncia do sinaldeentradaforneceinformaesimportantessobreseucomportamentodinmico. Normalmenteosgrficosdemduloefaseusamescalaslogartmicasdefreqncia,que facilitamarepresentaodegrandesvariaesde.Almdisso,usualrepresentaros valores de ganho em decibis decibis decibis decibis (dB), calculados como: ( )log 2010 G GdB= . OsgrficosdesenhadossobasespecificaesanterioresformamodiagramadeBode diagramadeBode diagramadeBode diagramadeBodedeum sistema, que pode ser obtido diretamente no MATLAB pelo uso da funo bode bode bode bode. 7.2.1 7.2.1 7.2.1 7.2.1Exemplo Exemplo Exemplo Exemplo A seqncia de comandos a seguir desenha o diagrama de Bode do sistema definido por: ( )000 10 4 141000 102. s , s.s G+ += . Comandos: >> n = 1e4; >> d = [1 141.4 n]; >> G = tf(n,d); >> bode(G); % Opo: bode(n,d); O resultado representado em uma janela grfica, conforme a figura 7.1. Engenharia de ControleLaboratrio07 Resposta em freqncia 46 Figura 7.1: Diagrama de Bode Neste caso, as freqncias usadas na criao dos grficos so determinadas automaticamente peloMATLAB.Comooutrasfunescomresultadosgrficos,afunobode bode bode bodetambmaceita maisdeumafunodetransfernciacomoargumento.Nestecaso,osdiagramasso sobrepostosnamesmajaneladefigura.Osvalorescalculadospelafunobode bode bode bode(ouseja,a resposta em freqncia) podem ser obtidos, sem o traado dos grficos, usando-se a sintaxe: [mod,fase,w] = bode(G) % Sendo G = tf(n,d), um sistema linear Nesta forma de uso, os ganhos retornados pela funo so adimensionais, e no em decibis. O vetor de freqncias a ser usado nos clculos pode ser fornecido pelo usurio, como no exemplo a seguir (que aproveita os polinmios do exemplo anterior): >> G = tf(n,d); >> w = logspace(0,3,200); >> bode(G,w); 7.3 7.3 7.3 7.3Sistemas de 2 Sistemas de 2 Sistemas de 2 Sistemas de 2a aa a ordem ordem ordem ordem Muitossistemaslinearespodemserrepresentadosouaproximadosporfunesde transferncia de 2a ordem padro, da forma: ( )2 222n nns sK s G + += . Desconsiderando-seoganhoK,cujoefeitopodeserincludoposteriormente,pode-setraaro diagramadeBodedosistemaparaumafreqncianormalizada(nu = )emfunoda relao de amortecimento(ver figura 7.2). Engenharia de ControleLaboratrio07 Resposta em freqncia 47 Figura 7.2: Diagrama de Bode para sistemas de 2a ordem padro Emgeral,htrsparmetrosdeinteressenarespostaemfreqnciadeumsistemade2a ordem: O pico de ressonncia (ganho mximo) do sistema, denominado pM(em dB); A freqncia de ressonncia( )rem que o pico de ressonncia ocorre; Alarguradebandapassagemdosistema( )B ,definidapelafreqnciaemqueoganho cai 3 dB abaixo de seu valor em baixas freqncias. Essesparmetrospodemserusadosparaestabelecercritrios dedesempenhonodomniodo tempo,apesardenoexistiremformulaesexatasquerelacionemarespostaem freqncia com a resposta temporal de um sistema. Engenharia de ControleLaboratrio07 Resposta em freqncia 48 7.3.1 7.3.1 7.3.1 7.3.1Atividades Atividades Atividades Atividades a) a) a) a)Determineopicoderessonncia,afreqnciaderessonnciaealarguradebandados sistemas definidos por: i ii i) )) ) ( )494 , 4 484 , 1494 , 421+ +=s ss Gii ii ii ii) )) ) ( )2122+ ++=s sss G b) b) b) b)A sada de um sistema linear excitado por uma entrada que no seja puramente senoidal pode ser obtida pela composio dos efeitos associados a cada componente espectral do sinal de entrada. Por exemplo, considere o sistema da figura 7.3. +-y(t)G(s)x1(t)++x2(t)x(t) ( ) ( ) t sen t x 51= ( ) ( ) t sen t x 50 5 , 02= ( )000 . 1 200 20000 . 12 3+ + +=s s ss GFigura 7.3: Sistema realimentado com duas entradas senoidais Obtenhaasimulaodasada() t y usandoafunolsim lsim lsim lsimeverifiqueaatuaodosistema como um filtro de freqncias. Sugesto para o vetor de tempo de simulao: t = 0: t = 0: t = 0: t = 0: 0.005: 0.005: 0.005: 0.005: 5 55 5; c) c) c) c)Simule a sada do sistema anterior para cada sinal de entrada,( ) t x1 e( ) t x2, isoladamente. Verifiqueadefasagemeatenuaosofridasemcadacasoeconfiraosresultadosusandoo diagrama de Bode do sistema realimentado. *** Engenharia de ControleLaboratrio08 Simulink 49 8. 8. 8. 8.Simulink Simulink Simulink Simulink OSimulinkumprogramaquefuncionadeformaintegradaaoMATLAB,usadopara modelagemesimulaodesistemasdinmicoslinearesouno-lineares,emtempocontnuo, tempodiscretoouumacombinaodosdoismodos.Osresultadosdassimulaespodemser visualizados, gravados em variveis do MATLAB ou em arquivos de dados.8.1 8.1 8.1 8.1Exemplo de uso Exemplo de uso Exemplo de uso Exemplo de uso A criao de modelos no Simulink feita de forma grfica pelo posicionamento, interligao e configurao de blocos funcionais. Para ilustrar o uso do Simulink ser mostrado como obter a simulao da resposta ao degrau do sistema representado na figura 8.1. +-X(s) Y(s)1,5s(s2 + 2s + 3)s2 - s + 2 Figura 8.1: Sistema de controle em malha fechada InicieoSimulinkapartirdalinhadecomando(digitandosimulink simulink simulink simulink)ouclicandonoconedo programa na barra de comandos do MATLAB. A janela principal do Simulink ser exibida com as bibliotecas de blocos disponveis para uso. Figura 8.2: Bibliotecas de blocos do Simulink Umajanelaparaediodeumnovomodelo(untitled)deveserabertaautomaticamente.Se isso no acontecer, clique em File > New > Model na janela do Simulink. Engenharia de ControleLaboratrio08 Simulink 50 OsblocosnecessriosparaasimulaodoexemploestonasbibliotecasSources Sources Sources Sources,Sinks Sinks Sinks Sinks, Continuous Continuous Continuous ContinuouseMathOperations MathOperations MathOperations MathOperations.Porexemplo,afigura8.3mostraalgunsblocosdabiblioteca de geradores de sinais. Figura 8.3: Biblioteca de blocos geradores de sinais Para inserir um gerador de sinal tipo degrau no sistema basta clicar no bloco Step Step Step Step e arrast-lo para a janela do modelo (ver figura 8.4). Figura 8.4: Janela do modelo em edio Engenharia de ControleLaboratrio08 Simulink 51 Emseguida,insiraumsomadornomodeloapartirdabibliotecaMathMathMathMathOperations Operations Operations Operationsedum duplo-clique no somador para editar suas propriedades. Altere a lista de sinais para ' ++++ - -- - ' (sem as aspas) e clique em OK OK OK OK (ver figura 8.5). Figura 8.5: Caixa de dilogo com as propriedades do bloco somador Crieumaligaoentreogeradoreaentrada'+ ++ +'dosomador.Paraisso,posicioneomouse sobre a sada do gerador at que o cursor mude para a forma de uma cruz. Em seguida, clique e arraste o cursor at a entrada do somador o cursor deve mudar para uma cruz dupla para completar a ligao (ver figura 8.6). Figura 8.6: Ligao entre dois blocos Insiraosoutrosblocos nosistema(naveguepelasbibliotecasContinuous Continuous Continuous ContinuouseSinks Sinks Sinks Sinks) ecomplete asligaesatobterummodelosemelhanteaodafigura8.7.Astcnicasvlidasnamaioria dos programas para ambiente Windows, como seleo mltipla de objetos, redimensionamento e movimentao tambm funcionam no Simulink. Operaes de rotao e espelhamento esto disponveis em menus acionados pelo clique do boto direito do mouse sobre os blocos. Engenharia de ControleLaboratrio08 Simulink 52 Figura 8.7: Modelo de simulao parcialmente construdo Crie a ligao de realimentao ligando a entrada do somador com a linha de ligao entre o blocodafunodetransfernciaeoosciloscpio(scope)podemsernecessriasalgumas tentativas.Outramaneiradesefazerestaligaoposicionarocursorsobrealinhade ligao,pressionarateclaCtrl Ctrl Ctrl Ctrlearrastaromouseataentradadosomador.Oprocessode clicar e arrastar pode ser feito em etapas para que as linhas de ligao sejam posicionadas de forma conveniente. Paracompletaromodelo,editeovalordoganhodoblocoamplificadorealtereafunode transferncia, digitan