TUTORIAL DE INTRODUÇÃO AO SIMULINK (Version 7.6) Carla Isabel Costa Pinheiro Departamento de Engª Química e Biológica do Instituto Superior Técnico
Setembro de 2012
Introdução ao SIMULINK
Introdução O SIMULINK é uma ferramenta computacional constituída por uma biblioteca de blocos integrada no MATLAB, para modelação, simulação e análise dinâmica de sistemas. O seu ambiente gráfico para modelação permite a construção de modelos na forma de diagramas de blocos. a sistemas lineares e não lineares, modelados em regime contínuo, discreto ou em regime híbrido. 0.2
23
y*
breact Time Delay
K 1 s Integrator
Plant
1 y
Scope
Divide
52 t
Cada bloco de um modelo em SIMULINK tem as seguintes características gerais: um conjunto de entradas (inputs), u, um conjunto de saídas, (outputs), y, e um conjunto de estados, x:
u (entradas)
x (estados)
y (saídas)
O vector dos estados pode consistir em estados contínuos, estados discretos, ou uma combinação de ambos. Depois do modelo definido, é possível simulá-lo usando diferentes métodos de integração a partir dos menus do SIMULINK. A simulação é interactiva, permitindo alterar parâmetros e imediatamente ver o que acontece. A análise do modelo inclui a linearização e diversas ferramentas a que se pode aceder através da linha de comando do MATLAB, e ainda todas as ferramentas das toolboxes do MATLAB.
Construção de um modelo Iniciar o SIMULINK escrevendo na janela de comando do MATLAB: >> simulink 1
Carla I.Costa Pinheiro
Introdução ao SIMULINK
Aparece uma janela com a biblioteca dos blocos do SIMULINK:
Significado de alguns blocos: o Sources
o Sinks
o Linear o Nonlinear
• Constant (gera uma saída constante) • Step (gera uma alteração em degrau) • Clock (tem como saída o tempo) • Scope (representa graficamente o seu valor de entrada em função do tempo) • Display (representa em tempo real o seu valor de entrada durante a simulação) • To Workspace (grava a variável de entrada para poder ser usada no espaço de trabalho do Matlab) • Sum (adiciona ou subtrai as suas entradas) • S-Function (função definida pelo utilizador)
2
Carla I.Costa Pinheiro
Introdução ao SIMULINK - Para criar um novo modelo, escolher New do menu File. O SIMULINK cria uma nova janela de trabalho. - Abrir a biblioteca Sources. Aparece uma outra janela que contém todos os blocos da biblioteca Sources; estes blocos representam diferentes tipos de entrada de sinal. - Para adicionar blocos ao modelo arraste-os da janela da biblioteca para a janela de trabalho. Comece por seleccionar e arrastar o bloco Signal Generator da janela Sources. - Com o rato clique duas vezes no bloco Signal Generator. Este bloco permite escolher o tipo de onda, bem como a amplitude, frequência e unidades do sinal gerado pelo bloco. Escolha por exemplo a função seno, a amplitude 5, a frequência 6 e as unidades rad/s. Clique em OK. - Em seguida, da biblioteca Sinks seleccione e arraste o bloco Scope para a janela do modelo à direita do bloco Signal Generator. Clique duas vezes com o rato no bloco Scope e verifique que este bloco corresponde a uma representação gráfica. - Carregue no botão esquerdo do rato e manter, para ligar estes dois blocos traçando uma linha desde a saída do bloco Signal Generator até à entrada do bloco Scope. Aí largue o botão do rato. O SIMULINK desenha uma linha com uma seta terminal que aponta no sentido da direcção do fluxo do sinal. - Mesmo para este modelo tão simples pode iniciar-se a simulação escolhendo no menu Simulation. Para seleccionar o algoritmo de integração e os parâmetros a serem usados, escolher Simulation Parameters no menu Simulation. Alterar o parâmetro Maximum Step Size para 0.01 e o Stop Time para 10, mantendo todos os outros parâmetros. Fazer OK e iniciar a simulação escolhendo Start no menu Simulation. - Abra a janela do Scope para obter o gráfico da função 5 * sen (6t). - Fazer Start no menu Simulation para inicializar a simulação. A simulação pára quando se atinge o Stop Time definido ou se se escolher Stop no menu Simulation.
Exemplo 1 – Modelo Simples O modelo seguinte gera uma onda do tipo seno através do bloco Signal Generator. É introduzido um factor multiplicativo de escala sendo criada uma cópia da mesma onda com amplitude duas vezes maior fazendo ar o sinal através de um bloco Gain. Ambos os sinais original e amplificado são guardados num vector sinal usando o bloco Mux. O sinal é representado graficamente usando o bloco Scope e é guardado como uma variável do espaço de trabalho do MATLAB com o nome teste. 3
Carla I.Costa Pinheiro
Introdução ao SIMULINK Crie este modelo utilizando os seguintes blocos: -
Signal Generator (da biblioteca Sources)
-
Gain (da biblioteca Math Operations)
-
Mux (da biblioteca Signal Routing)
-
Scope e To Workspace (da biblioteca Sinks)
A saída do bloco Signal Generator é por defeito uma onda seno com amplitude 1. Experimente outros tipos de onda e amplitudes. Abrir o bloco Gain e alterar o parâmetro Gain para 2. Abrir o bloco To Workspace e alterar o nome da variável para teste. Este é o nome da variável do espaço de trabalho que guarda os resultados da simulação. Para que seja possível abrir e ver a variável teste na “área de trabalho” do MATLAB, no mesmo bloco To Workspace escolher a opção array para o parâmetro Save Format. Bloco To Workspace: O bloco To Workspace grava a variável de entrada para poder ser usada no espaço de trabalho do Matlab. O bloco guarda a variável na forma de uma matriz (array) ou de uma estrutura (structure) que tem o nome especificado pelo parâmetro do bloco Variable name. O parâmetro Save format determina o formato de saída. A quantidade de dados guardados nessa variável e os valores de tempo aos quais a variável é guardada são determinados pelos parâmetros do bloco: - Limit data points to last, indica quantos pontos da variável são guardados. Para guardar todos os dados, deve ser indicado o valor inf. - Decimation, permite guardar dados a cada n pontos, sendo n o factor decimation. O valor decimation por defeito, 1, permite guardar valores para cada intervalo de tempo. - Sample time, permite especificar um intervalo de amostragem para a recolha de pontos da variável. O valor -1 permite este bloco manter o tempo de amostragem do bloco imediatamente anterior para guardar os valores da variável.
Para criar a linha ramificada da saída do bloco Mux para o bloco To Workspace, carregar na tecla Ctrl e desenhar a linha ou usar o botão direito do rato. Abrir o bloco Scope e antes de começar a simulação alterar as escalas dos eixos para 10 (escala do tempo) e o eixo vertical para 3. O diagrama de blocos deste modelo em SIMULINK é o seguinte:
Signal Generator
Scope
2 teste Gain To Workspace
4
Carla I.Costa Pinheiro
Introdução ao SIMULINK Com a janela Scope aberta correr a simulação durante 10 segundos, tendo ajustado o Stop Time para 10 e o Maximum Step Size para 0.1. Para gravar o modelo fazer Save as no menu File.
Exemplo 2 - Resolução de Equações Para modelar por exemplo, a equação que converte temperatura Centígrada para Fahrenheit:
TF
9 * TC 32 5
Primeiro considerar os blocos necessários para o modelo: -
Um bloco Gain, para multiplicar o sinal de entrada por 9/5
-
Um bloco Constant, para definir a constante 32
-
Um bloco Sum, para adicionar as duas quantidades
-
Um bloco Sine Wave para a entrada do sinal atribuído à temperatura Centígrada
-
Um bloco Scope para a representação da variável de saída.
Em seguida una os blocos e construa o modelo abrindo os blocos Gain e Constant e atribuindo os valores apropriados. Para obter maior variação de temperatura altere a amplitude do bloco Sine Wave para 10.
9/5 Sine Wave
Gain
Scope
32 Constant
Exemplo 3 – Simulação baseada em funções de transferência Considere a simulação de um processo de primeira ordem com um ganho de 2 e uma constante de tempo de 5 sujeito a uma perturbação em degrau numa variável de entrada. Este processo pode ser representado por um bloco Transfer Fcn alterando os coeficientes do numerador e do denominador, uma vez que este bloco tem definida por defeito uma função de transferência de um sistema integrador a que corresponde um pólo igual a zero. O bloco Clock pode ser usado para criar um vector tempo. Os blocos To Workspace permitem que os
5
Carla I.Costa Pinheiro
Introdução ao SIMULINK vectores guardados sejam transferidos para o espaço de trabalho da janela do MATLAB para posterior manipulação ou representação gráfica. Uma grande vantagem do SIMULINK em relação ao MATLAB standard é o facto das rotinas de integração poderem funcionar no caso de sistemas com atraso. Consegue-se introduzir o atraso no modelo usando o bloco Transport Delay. Experimente um atraso de 5, obtido através da alteração do valor de 1 existente por defeito no referido bloco. Também tem que ser dado um valor inicial para a variável de entrada no bloco Transport Delay. Tratando-se de variáveis de desvio, neste caso esse valor é zero. No bloco Step Input considere a perturbação em degrau unitário a ocorrer a t = 1. Corra a simulação para um tempo final de 25.
t Clock
tempo
2
y
5s+1 Step
T ransfer Fcn
T ransport Delay
saída
Tal como está definido o modelo, cada vez que quiser alterar os parâmetros do modelo tem que abrir os blocos respectivos e alterar os parâmetros. Torna-se mais rápido definir directamente nos blocos nomes de variáveis como k, tau, theta, associados a este sistema de primeira ordem com atraso. Depois altere simplesmente os valores (de k, tau, theta) na janela de comando do MATLAB antes de cada simulação. O novo diagrama de blocos é o seguinte:
t Clock
tempo
k
y
tau.s+1 Step
Transfer Fcn
Transport Delay
saída
Experimente correr simulações com diferentes parâmetros.
6
Carla I.Costa Pinheiro
Introdução ao SIMULINK Menu Simulation: As opções associadas ao método de integração (Solver) estão disponíveis quando se escolhe a opção Configuration Parameters do menu Simulation. Este menu permite atribuir os tempos de início e de paragem da simulação, escolher o solver e especificar os seus parâmetros, e seleccionar as opções de saída. - Simulation Time: podem ser atribuídos os valores do tempo de início e de fim da simulação, Start time e Stop time. - Solvers: a simulação de modelos dinâmicos no Simulink envolve a integração numérica de sistemas de equações diferenciais ordinárias (ODEs). O Simulink permite utilizar diferentes solvers para a simulação desses modelos. Devido à diversidade do comportamento dinâmico dos sistemas, alguns solvers são mais eficientes do que outros na resolução de um determinado problema. A escolha do solver e dos respectivos parâmetros deve ser feita com cuidado de forma a conduzir a resultados rigorosos e rápidos. Por exemplo, para um modelo contínuo, ode45 é habitualmente um excelente solver. No entanto, se se sabe que o sistema é rígido (“stiff”), e se o solver ode45 não permitir obter resultados aceitáveis, pode-se tentar utilizar por exemplo, o ode15s.
Exemplo 4 – Modelização de um sistema contínuo simples Neste exemplo pretende-se modelar em SIMULINK a seguinte equação diferencial:
dx 2 x u dt O bloco Integrator (da biblioteca Continuous) integra a sua entrada, dx/dt, e produz a saída x. Outros blocos necessários para este modelo incluem o bloco Gain e o bloco Sum. Para gerar uma onda quadrada use o bloco Signal Generator. Novamente visualize a variável de saída usando o bloco Scope. Unir os blocos e definir o bloco Gain. u
dx/dt
1 s Integrator
Signal Generator
-2x
x Scope
Gain -2
Neste modelo, para inverter a direcção do bloco Gain, seleccione-o e faça Ctrl+R ou Rotate Block do menu Format. Um conceito importante neste modelo é o ciclo que inclui o bloco Sum, o bloco Integrator e o bloco Gain. Nesta equação, x é a variável de saída do bloco Integrator e também a variável de entrada nos blocos que calculam dx/dt. Esta relação é criada usando um ciclo.
7
Carla I.Costa Pinheiro
Introdução ao SIMULINK O Scope representa x para cada intervalo de tempo. Corra uma simulação para um tempo total de 10 segundos. A equação modelada neste exemplo anterior também pode ser expressa na forma de função de transferência. O modelo usa o bloco Transfer Fcn, que recebe u como variável de entrada e apresenta x como variável de saída. Aplicando transformadas de Laplace à equação anterior obtém-se:
X 1 U s2 O bloco Transfer Fcn usa parâmetros para especificar o numerador e o denominador. Neste caso especificar ambos os termos como vectores de coeficientes sucessivamente decrescendo na potência de s; neste caso o numerador é [1] e o denominador é [1 2]. Deste modo o modelo torna-se muito simples:
u
1
x
s+2 Signal Generator
Transfer Fcn
Scope
Os resultados desta simulação são idênticos aos do modelo na forma acima apresentada.
Exemplo 5 – Linearização O SIMULINK inclui as funções linmod e dlinmod para obter modelos lineares na forma de matrizes de variáveis de estado (state-space) A, B, C e D. As matrizes de variáveis de estado descrevem as relações entrada-saída do tipo:
dx Ax Bu dt y = Cx + Du onde x, u, e y, são respectivamente os vectores das variáveis de estado, de entrada e de saída. Por exemplo atribua o nome ssmod ao seguinte modelo e grave o respectivo ficheiro numa directoria sua de trabalho que acrescentou previamente ao addpath no menu File do MATLAB: 1 y(2) 1 u
1 s2 +2s+1
2 y(1)
Processo
1 s+1
8
Carla I.Costa Pinheiro
Introdução ao SIMULINK Para obter o modelo linear correspondente a este modelo em SIMULINK, dar o seguinte comando na janela de trabalho do MATLAB: >> [A,B,C,D] = linmod (‘ssmod’) As entradas e saídas têm que ser definidas usando os blocos Inport e Outport. Neste caso os blocos Signal Generator e Scope não funcionam como variáveis de entrada e de saída. Para converter um modelo linear do tipo “state space” para a forma de funções de transferência: >> [num, den] = ss2tf ( A, B, C, D); Depois de ter o modelo na forma “state-space”, pode aplicar funções existentes em outras Toolboxes do MATLAB como por exemplo:
-
Diagramas de Bode >> bode (A,B,C,D)
-
Resposta Linearizada no tempo >> step ( A,B,C,D) >> impulse (A,B,C,D)
Exemplo 6 - Criar um Subsistema À medida que um modelo cresce em tamanho e complexidade, pode simplificá-lo agrupando blocos em subsistemas. Agrupar blocos é útil por várias razões: -
Ajuda a reduzir o número de blocos representados na janela do modelo.
-
Permite manter juntos blocos que de algum modo se relacionam.
-
Permite estabelecer de um modo mais fácil um diagrama de blocos mais hierarquizado.
É possível criar um subsistema de dois modos: adicionando um bloco Subsystem (da biblioteca Ports & Subystems) ao modelo, e depois adicionando os blocos que ele contém; ou adicionando os blocos que constituem o subsistema, e depois agrupando esses blocos num subsistema. Para criar um subsistema antes de adicionar os blocos que ele contém: 1. Copiar o bloco Subsystem para a janela do modelo. 2. Abrir o bloco Subsystem. 9
Carla I.Costa Pinheiro
Introdução ao SIMULINK 3. Na nova janela vazia criar o subsistema. Utilize os blocos Inport (da biblioteca Sources) para representar entradas do exterior no subsistema e blocos Outport (da biblioteca Sinks) para representar saídas do subsistema para o exterior. No exemplo seguinte os blocos Sum (da biblioteca Math Operations) e Transfer Fcn (da biblioteca Continuous) são os únicos blocos do subsistema: 2
1
1
s+3
In1
Out1
2 In2
Se já tiver criado os blocos que quer converter num subsistema: 1. Englobar com o rato os blocos e linhas de união que quer incluir no subsistema, ficando seleccionados. marcar por aqui
1
1
2.
Constant
simout
s+1 Processo
To Workspace
3. Escolher Create Subsystem do menu Edit. O SIMULINK substitui os blocos no grupo por um único bloco Subsystem. O exemplo seguinte mostra o modelo depois de escolher o comando Create Subsystem:
1
simout
In1 Out1
Constant
T o Workspace Subsystem
Exemplo 7 – Modelos com S-Functions Devido à complexidade de modelos não lineares de média e larga escala, torna-se mais eficiente usar um sistema de equações diferenciais escritas num m-file. O Simulink pode aceder a estes m-files através de um bloco S-Function. Deste modo, este método mistura as vantagens de um m-file que pode utilizar directamente solvers tais como o ode45, com as ligações gráficas a outros blocos do Simulink. 10
Carla I.Costa Pinheiro
Introdução ao SIMULINK
Por exemplo, no caso de se querer simular um reactor CSTR não isotérmico:
Descrito pelas seguintes equações do modelo dinâmico:
dV = Fi - F dt
dC A F i i = (C A - C A ) - k 0 e dt V
-
E RT
CA E RT
dT F i C P (T i - T )+ HVk 0 e = dt VC P
C A - UA(T - Tc )
As variáveis de entrada no modelo são: F i, T i,TC ,F , C iA Para construir o diagrama deste modelo no Simulink, além dos blocos já anteriormente utilizados, é também necessário o bloco S-Function que executa uma função definida, escrita em código-M, de acordo com as regras para criação de S-Functions. O diagrama do modelo do CSTR é o seguinte:
11
Carla I.Costa Pinheiro
Introdução ao SIMULINK O bloco Mux (u) do modelo concatena as 5 entradas num vector de 5 elementos. O bloco Demux (Saída) extrai do vector que recebe da S-Function as saídas do modelo. O que há de diferente neste modelo é a não linearidade que requer a S-Function (reator.m), que trabalha directamente com as equações diferenciais do CSTR. É preciso seguir algumas regras específicas das S-Functions. Quando usamos “solvers” do MATLAB para integrar ODE’s, usamos sintaxes (dentro do programa principal) do tipo ... [T, Y] = ode45(‘arq’,TEMPO,Y0,[ ],PAR1,...,PARN) ... A função “arq” calcula as derivadas com a seguinte sintaxe: function saida = arq(t,y,flag,PAR1,...,PARN) onde o vector vazio ([ ]) na chamada da ode45 é um marcador de lugar para o vector de opções, que desta forma não está a ser alterado (i.e.: defaults do MATLAB são assumidos. No caso do Simulink, não é necessário chamar a ode45, bastando apenas a declaração da função que calcula as derivadas, com as regras de chamada desta função. Esta função não calcula apenas as derivadas do modelo, como também irá informar ao integrador as condições iniciais. Uma S-Function deve ser declarada da seguinte forma: function [sys, x0] = model (t,x,u,flag,PAR1,...,PARN) Onde •
sys é a saída de model, cujo significado depende de flag
•
x0 é o vector de condições iniciais
•
t é o tempo de simulação
•
x é o vector de estados do modelo
•
u é o vector de entradas do modelo
•
flag é um parâmetro que informa ao model o tipo de informação que o integrador espera receber
•
PAR1,...,PARN são os parâmetros adicionais que podem ser ados à função model
12
Carla I.Costa Pinheiro
Introdução ao SIMULINK Vamos agora tentar entender como funciona a simulação de um modelo usando uma SFunction. Ao contrário do que acontecia com as funções de transferência, usando uma SFunction, pode-se trabalhar com valores absolutos das suas derivadas. Para isso, é preciso conhecer as condições iniciais das variáveis de integração. Além disso, o Simulink precisa de informações sobre o modelo, se as variáveis são contínuas ou discretas, quantas entradas, saídas e estados o modelo possui, etc. Antes de começar a simulação, o Simulink informa o integrador para chamar a função model com um valor de flag igual a 0. Isso significa que model deve devolver a sys um vector de configuração do modelo e a x0 o vector de condições iniciais dos estados. Assim, para flag = 0, o vector sys deve conter 6 elementos:
sys = [número de estados contínuos, número de estados discretos,
número de saídas,
número de entrada, marcador de alimentação directa, tempo de amostragem]
Quando se simulam modelos contínuos simples, apenas interessam os elementos 1, 3 e 4 do vetor sys. Os elementos referentes a modelos discretos e à alimentação direta de entradas devem ter valor zero. O tempo de amostragem para modelos contínuos é zero. É preciso ter muito cuidado ao inicializar o modelo. Assegure-se que o número de entradas e saídas correpondem às entradas e saídas do diagrama do Simulink, e que todos os estados têm sua condição inicial corretamente atribuída no vetor x0. Ao longo da integração, o Simulinik obriga o integrador a chamar model com vários valores de flag. Quando model for chamado com flag = 1, o integrador recebe dele os valores das derivadas dos estados contínuos. Ou seja, para flag = 1, sys deve conter os valores das derivadas. Para flag = 3, são calculados os valores das saídas. Nos casos de modelos simples (como o do CSTR), as saídas correspondem aos estados. Leia com atenção o código de reactor.m, a seguir.
13
Carla I.Costa Pinheiro
Introdução ao SIMULINK
function [sys,x0] = reactor(t,x,u,flag,U,A,DeltaH,ro,,E,R,k0) % % Simula um reactor CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), arrefecido por serpentina % U = 150 %BTU/(h.ft2.R), coeficiente de troca térmica A = 250 %ft2, área de troca térmica DeltaH = -30000 %BTU/lbm, calor de reação ro = 50 %lb/ft3, densidade = 0.75 %BTU/(lbm.R), calor específico E = 30000 %BTU/lbm, energia de ativação R = 1.99 %BTU/(lbm.R), constante dos gases k0 = 7.08e10 %1/h, termo pré-exponencial da constante de reação % switch flag case 0 % Dimensiona o sistema e inicializa os estados % sys=[estados,0,saídas,entradas,0,0] sys = [3,0,3,5,0,0]; % Condições iniciais ca = 0.1315; %lbm/ft3, concentração inicial no reactor T = 584.4115; %R, temperatura do reactor V = 200; %ft3, volume do reactor x0 = [ca T V]'; case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação Fi = u(2); %ft3/hr, caudal de alimentação F = u(3); %caudal de saída Tc = u(4); %R, temperatura do fluido de refrigeração Ti = u(5); %R, temperatura da alimentação % Cálculo das derivadas Ca = x(1); T = x(2); V = x(3); k = k0*exp(-E/(R*T)); dCa = (Fi*(cai-Ca)/V) - k*Ca; dV = Fi-F; dT = (Fi**ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*); sys = [dCa; dT; dV]; case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = []; end
14
Carla I.Costa Pinheiro
Introdução ao SIMULINK Após escrever o código-M da S-Function, basta inserir um bloco S-Function e configurá-lo. A configuração exige apenas o nome do m-file e a lista de parâmetros opcionais (caso a função os possua). O modelo já pode ser simulado. O código de reactor.m introduz uma nova estrutura de controle de fluxo de execução, a estrutura CASO. A sintaxe da estrutura CASO é a seguinte: AVALIE expressão CASO valor 1 bloco de código 1 CASO 2 bloco de código 2 ... DE OUTRA FORMA bloco de código de tratamento de exceções FIM Esta sintaxe é escrita da seguinte forma no m-file: switch <expressão> case
case
... otherwise
end
Exemplo 8 – Criar Masks Ao usar a função Mask do SIMULINK é possível definir blocos ou subsistemas criando novas janelas e opcionalmente novos ícones. Uma razão importante para criar um bloco oculto “masked” é o facto de permitir criar uma nova janela onde são introduzidos os parâmetros para mais do que um bloco num subsistema. Criar um bloco oculto envolve os seguintes os: -
Abrir cada bloco e dar nomes de variáveis aos parâmetros cujos valores se quer dar na nova janela do bloco.
-
Criar o subsistema.
-
Seleccionar o bloco do subsistema, e depois escolher Mask do menu Options.
-
Preencher a janela do bloco oculto assim definido.
15
Carla I.Costa Pinheiro
Introdução ao SIMULINK -
Clicar o botão OK para criar o bloco oculto. O bloco do subsistema apresentará o símbolo que tiver sido definido na janela do bloco oculto.
Imagine que quer criar um bloco para um sistema simples de segunda ordem, bem como definir novo símbolo para o bloco e janela para introdução dos parâmetros. Ao fazer o Mask do bloco Transfer Fcn é possível definir os seus parâmetros, como o tempo característico (1/w) e o coeficiente de amortecimento (zeta), como variáveis em vez de se ter que especificar o numerador e o denominador da função de transferência cada vez que se corre a simulação. Construa um modelo simples usando o bloco Sine Wave como entrada, o bloco Transfer Fcn, e o bloco Scope. Na janela do bloco Transfer Fcn defina o numerador como [w^2] e o denominador como [1 2*zeta*w w^2]. Quando unir os blocos obtém o modelo: w^2 s2 +2*zeta*ws+w^2 Transfer Fcn
Sine Wave
Scope
Para fazer o Mask do bloco Transfer Fcn, seleccionar o bloco e depois escolher Mask do menu Options. Aparece uma janela que permite que defina os seus campos dos parâmetros, os comandos de inicialização, símbolo e texto para o Help.
Exercícios 1) Obtenha o modelo para um controlador PID na forma das funções de transferência e com variáveis de desvio. Atribua valores aos parâmetros e variáveis envolvidas e corra uma simulação para o caso da variável de entrada (erro do controlador) ter uma variação do tipo sinusoidal. 2) Gere um input em pulso rectangular na forma representada na figura seguinte e represente-o graficamente: 1 0 1
2
tempo
16
Carla I.Costa Pinheiro
Introdução ao SIMULINK
Bibliografia
The Mathworks, Inc, www.mathworks.com, 2012. Bequette, B.W., Process Dynamics: Modeling, Analysis and Simulation, Prentice Hall Inc., New Jersey, 1998. Seborg, D.E., Edgar, T.F. and Mellichamp, D.A., Process Dynamics and Control, John Wiley and Sons, New York, 2004. Chau, P.C., Process Control: A First Course with MATLAB; Cambridge University Press, 2002. Techniques of Model-Based Control; C. Brosilow and B. Joseph, Prentice Hall PTR, 2002. Carla Costa Pinheiro Setembro 2012
17
Carla I.Costa Pinheiro