Vous êtes sur la page 1sur 9

Curso de Introduo ao SIMULINK

4.3 - Modelando Sistemas No Lineares


O SIMULINK fornece uma variedade de blocos para a modelagem de sistemas no lineares. Esses blocos esto na biblioteca Nonlinear. O comportamento destes blocos no lineares com respeito a entradas vetoriais pode variar. Alguns blocos produzem sadas vetoriais na mesma dimenso da entrada. Outros blocos produzem somente sadas escalares, ou alternando entre escalares ou vetoriais, dependendo da dimenso das entradas. Uma explicao detalhada do comportamento de cada bloco est no help do SIMULINK. Exemplo Para ilustrar o uso de diversos blocos da biblioteca Nonlinear, ser mostrado a modelagem do movimento de um carro acionado por foguetes, como mostrado na figura:

O carro impulsionado por dois foguetes em oposio. O controlador aciona o motor esquerdo se a soma da velocidade e da posio do carro for negativa, e acionar o motor direito se a soma for positiva. O objetivo do controlador levar o carro ao repouso na origem. Este tipo de controle chamado Controle Bang-Bang. A massa do carro 5 Kg e a fora motor 1 N. A princpio, a equao do movimento do carro :

&= F . m& x
Cap.4 Sistemas Contnuos no Tempo 58

Curso de Introduo ao SIMULINK

Este um sistema de segunda ordem, ento dois integradores sero necessrios para se calcular a posio do carro. Abre-se uma nova janela de modelo e acrescenta-se a ela dois integradores da biblioteca Linear. Os integradores recebem os nomes Velocidade e Posio, como mostrado:

A entrada do primeiro integrador a acelerao. Resolvendo a equao do movimento para a acelerao, tem-se:

& &= x

F m

Acrescentam-se agora um bloco Ganho que multiplica a fora motora do foguete por

1 . A entrada do bloco Ganho ser a fora motora F. m


A fora motora F 1.0 se a soma da velocidade e posio for negativa e 1.0 se a soma for positiva. Pode-se construir um conveniente Controlador Bang-Bang utilizando um bloco de Soma (Sum) da biblioteca Linear e um Bloco Sign da biblioteca Nonlinear. A sada de um bloco Sign 1.0 se a entrada for positiva, 1.0 se a entrada for negativa e 0.0 se a entrada for exatamente 0. Acrescenta-se ento os blocos Sign e de Soma como mostrado. O bloco de Soma configurado com dois sinais de menos (- -) porque a fora motora oposta ao sinal da soma da velocidade com a posio.

Para visualizar o resultado da simulao utiliza-se um grfico XY (XY Plot) para se plotar um Grfico no Plano de Fase (Phase Plot) com o progresso da simulao. Um Grfico no Plano de Fase um grfico da velocidade x posio. Acrescenta-se ento um Grfico XY. Conecta-se a sada do integrador Posio entrada X (superior) e a sada do integrador Velocidade entrada Y (inferior).

59

Curso de Introduo ao SIMULINK

Para monitorar o tempo no progresso da simulao, acrescenta-se um bloco Clock da biblioteca de fontes (Sources) e um bloco Display da biblioteca de dispositivos de sada (Sinks) e conectam-se os dois conforme a figura:

No se sabe quanto tempo a soluo demora para atingir a origem, ento por convenincia, adiciona-se uma lgica ao modelo que pare a simulao quando o objetivo for atingido. Esta lgica ir parar a simulao quando a soma dos valores absolutos da velocidade e da posio cair a um valor menor que 0.01. Isto pode ser feito com xito adicionando um bloco de Parada da Simulao (Stop Block) da biblioteca de dispositivos de sada (Sinks). Este bloco fora o SIMULINK parar a simulao quando sua entrada for diferente de zero. Deseja-se que a entrada do bloco seja zero at que

& 0.01. x+x


Acrescentam-se ento dois blocos de Mdulo (Abs) da biblioteca Nonlinear e um bloco de soma da biblioteca Linear ao modelo. A seguir acrescenta-se um bloco Operador Relacional (Relational Operator) e escolhe-se <= na lista Operator. Insere-se agora um bloco Constante (Constant) da biblioteca de fontes e configurase seu valor para 0.01. Finalmente se acrescenta um bloco de Parada (Stop Simulation) e conecta-se as linhas de sinais como mostrado na figura.

Cap.4 Sistemas Contnuos no Tempo

60

Curso de Introduo ao SIMULINK

Supondo que no incio da simulao o carro estava em repouso afastado de 1 N para a direita. Ento a condio inicial do integrador Velocidade 0 e a do integrador Posio 1. O bloco Sign chaveia a sada instantaneamente de acordo com a entrada. Contudo qualquer sistema fsico de chaveamento realizvel leva um tempo finito para mudar a sada. Para modelar tal comportamento pode-se utilizar um algoritmo de tamanho de passo fixo (fixed-step-size). Vamos supor que o tempo de chaveamento seja 0.05 segundos, clica-se ento em Simulation:Parameters na barra de menu e na opo Type escolhe-se Passo fixo (Fixed-step) e ODE5 (Dormain-Prince). A seguir configura-se o tamanho do passo para 0.05 e o tempo final (Stop time) 200. A simulao agora est pronta para ser executada. Clica-se ento em Simulation:Start e a simulao ser executada at o carro atingir o repouso na origem. O grfico XY deve ser semelhante figura:

Ao se olhar com ateno nota-se que a trajetria da fase se aproxima da origem & = x . Este fenmeno chamado reticncia. mas oscila na linha x Tente substituir o bloco Sign por um bloco de Saturao (Saturation) configurando o limite superior (Upper limit) para 0.05 e o limite inferior (Lower limit) para 0.05. Tente tambm substituir o bloco Sign por um bloco de Zona Morta (Dead Zone), 61

Curso de Introduo ao SIMULINK

com o incio (Start of dead zone) em 0.05 e fim (End of dead zone) em 0.05. Ao se utilizar qualquer um destes dois blocos no lugar do bloco Sign pode-se ento configurar a simulao para um mtodo de passo varivel j que nenhum bloco do sistema muda instantaneamente de 1 para +1.

4.3.1 - Blocos de Funo (Function Blocks) Duas utilidades particulares de blocos no lineares so os blocos Fcn (C function) e MATLAB Fcn. Ambos executam operaes matemticas especificadas na entrada, mas os blocos tem algumas diferenas importantes. O SIMULINK executa o bloco Fcn muito mais rpido do que o MATLAB Fcn. Porm o bloco Fcn no aceita operaes matriciais. Devido vantagem na velocidade, sempre aconselhvel utilizar o bloco Fcn quando as capacidades especiais do bloco MATLAB Fcn no forem necessrias.

4.3.1.1 - Bloco Fcn O bloco Fcn mostrado na figura a seguir:

A caixa de dilogo contm um nico campo que deve conter uma expresso na sintaxe da linguagem C. A expresso ento executada nos elementos do vetor de entrada do bloco u[n], onde n a posio do elemento desejado. Vale lembrar que se devem utilizar os colchetes ([ e ]) no lugar dos parnteses (( e )) utilizados no MATLAB. O bloco pode ainda utilizar como parmetro qualquer varivel previamente definida na rea de trabalho do MATLAB. Se a varivel for um escalar, ela deve ento ser referida pelo seu nome. Por exemplo, se h uma varivel escalar a e um vetor com duas entradas no bloco Fcn, uma expresso vlida poderia ser a*(sin(u[1]+u[2]). Se a varivel da rea de trabalho for um vetor ou matriz, deve-se ento utilizar para esta varivel a sintaxe adequada ao MATLAB para se referir a esta varivel como a(1) ou a(2,3).

Cap.4 Sistemas Contnuos no Tempo

62

Curso de Introduo ao SIMULINK

O bloco Fcn pode executar todas as funes matemticas escalares padres como sin, abs, tan etc, operaes relacionais com a sintaxe da linguagem C (==, !=, >, <, >=, <=) e as operaes lgicas ainda na sintaxe C (&& - AND lgico e | | - OR lgico). O bloco Fcn produz sempre uma sada escalar. 4.3.1.2 - Bloco MATLAB Fcn Este bloco mais poderoso do que o anterior pois pode executar operaes matriciais e produzir sadas vetoriais. Em contrapartida muito mais lento do que o bloco Fcn, sendo ento usado somente quando o bloco Fcn no for adequado.

O bloco MATLAB Fcn mostrado na figura que se segue:

A caixa de dilogo contm dois campos. O primeiro deve conter uma expresso vlida com a sintaxe MATLAB. O valor da expresso a sada do bloco. O ensimo elemento no vetor de entrada do bloco u(n), similar ao bloco Fcn. Se a funo MATLAB no tiver argumentos como a da figura, a operao executada em todos os elementos de entrada. O segundo campo especifica a dimenso do vetor de sada. Entre com 1 se deseja que a sada tenha o mesmo tamanho da entrada. Independentemente de se especificar explici9tamente a dimenso da sada ou de se utilizar o valor default, a dimenso do vetor de sada com o resultado da expresso no campo MATLAB function deve ser a mesma especificada em Output Width. O exemplo a seguir ilustra o uso de blocos no lineares na construo de um modelo simples de um carro e um controle de ganho proporcional. O modelo inclui arraste aerodinmico, a fora gravitacional na subida de rampas e ainda o vento. 63

Curso de Introduo ao SIMULINK

Exemplo Considere o deslocamento do automvel numa pista montanhosa como mostrado na figura que segue:

H trs foras agindo no carro: a fora motriz produzida pelo motor do carro e transmitida aos pneus (ou fora de frenagem se esta for negativa) (Fe), a fora aerodinnica (incluindo o vento) (Fw) e a componente tangencial da gravidade quando o carro sobe ou desce as rampas (Fh). Aplicando a segunda lei de Newton, a equao do movimento do automvel pode ser escrita da seguinte forma:

& = Fe Fw Fh m& x
onde m representa a massa do automvel e x a distncia percorrida. Fe deve ter limites mximos e mnimos. O limite mximo a mxima fora que o motor pode transmitir pelas rodas para a pista e o limite mnimo a mxima fora de freio. Ento 2000 Fe 1000 , sendo a massa do carro 100 N. A fora aerodinmica o produto do coeficiente de arraste (CD), a rea frontal do automvel (A) e a presso dinmica (P), onde

P=

V 2 2

e representa a densidade do ar e V a soma da velocidade do automvel e do vento (VW ). Supondo que

C D A = 0.001 2
e que a velocidade do vento varia senoidalmente de acordo com a funo

VW = 20 sen( 0.01t )
ento a fora aerodinmica pode ser aproximada para

& + 20 sen(0.01t )) 2 . FW = 0.001( x


Supondo ainda que o ngulo da pista varie senoidalmente com a distncia de acordo com a funo

= 0.0093 sen(0.001x ) .
Cap.4 Sistemas Contnuos no Tempo 64

Curso de Introduo ao SIMULINK

A componente tangencial da gravidade ser ento

Fh = 30 sen( 0.0001x ) .
O controlador utilizado ser do tipo controle proporcional com a seguinte lei de controle

& DESEJADO x &) FC = K e ( x & DESEJADO a velocidade FC a fora do motor comandada de trao ou freio, x
controlada (ft/s) e Ke o ganho de realimentao (feedback). Seguindo esta lei, a fora comandada do motor ser proporcional ao erro de velocidade. A fora atual do motor (Fe), como dito antes, limitada pela fora mxima de trao e fora mxima de frenagem. O ganho de realimentao utilizado ser Ke = 50.

Um modelo SIMULINK para este sistema mostrado na figura que se segue:

A entrada do controlador proporcional a velocidade desejada do automvel em m/s. Este controlador foi implementado com um bloco de ganho do tipo Slider com a entrada ligada um valor constante. Este bloco permite que se modifique o ganho no decorrer da simulao. O controlador proporcional consiste de um bloco de soma (Sum) que calcula o erro da velocidade (diferena entre a velocidade comandada e a atual) e um bloco de ganho. Os limites superior e inferior da fora motora so impostos utilizando blocos MinMax. As constantes de nome Max Trao e Max Freio junto com os blocos MinMax so utilizados para se ilustrar o uso destes blocos. Esta parte do modelo poderia ser substituda por um bloco de Saturao (Saturation) da biblioteca Nonlinear. (Por que o aluno no tenta faz-lo?) As foras no lineares devidas rampa e aerodinmica so calculadas pelos blocos Fcn. O campo Expression da caixa de dilogo do bloco de nome Fora Aero 65

Curso de Introduo ao SIMULINK

contm 0.001*(u[1]+20*sin(0.01*u[2]))^2. Para o bloco da fora devido ao aclive deve ser 30*sin(0.0001*u[1]). O bloco Display serve como um velocmetro (em m/s) e a velocidade mostrada graficamente no osciloscpio. Este modelo um bom exemplo de um sistema levemente rgido. Para se observar o efeito desta rigidez, a simulao deve ser executada utilizando ODE45 e a seguir deve ser repetida utilizando ODE15S.

Cap.4 Sistemas Contnuos no Tempo

66

Vous aimerez peut-être aussi