A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

EQ/UFRJ Carlos André Vaz Junior

Cópias: 1
EQ/UFRJ Carlos André Vaz Junior

Apresentações semelhantes


Apresentação em tema: "EQ/UFRJ Carlos André Vaz Junior"— Transcrição da apresentação:

1 EQ/UFRJ Carlos André Vaz Junior

2 EQ/UFRJ Mais de 150 mil resultados Mundo Simulink

3 EQ/UFRJ ? Ajuda

4 EQ/UFRJ Acessando o Simulink

5 EQ/UFRJ A programação no Simulink segue uma interface gráfica muito mais intuitiva e fácil de usar: Ambiente Simulink

6 EQ/UFRJ Ambiente de Trabalho Simulink Ambiente Simulink

7 EQ/UFRJ Exemplos

8 EQ/UFRJ Exemplo 1

9 EQ/UFRJ Biblioteca Math Biblioteca Sources Exemplo 1 – Comportamento Senoidal

10 EQ/UFRJ Ajuste automático da escala do gráfico: Exemplo 1 – Comportamento Senoidal

11 EQ/UFRJ Ajuste manual da escala do gráfico: Exemplo 1 – Comportamento Senoidal

12 EQ/UFRJ Agora quero multiplicar o resultado por -1: Exemplo 1 – Comportamento Senoidal Biblioteca Math

13 EQ/UFRJ Configuração do bloco Product: Número de termos da multiplicação. Multiplicação de matrizes ou termo a termo. Exemplo 1 – Comportamento Senoidal

14 EQ/UFRJ Alterando os parâmetros de simulação: Tempo inicial Tempo final Exemplo 1 – Comportamento Senoidal

15 EQ/UFRJ Criando um sub-sistema: Sub-sistema Exemplo 1 – Comportamento Senoidal

16 EQ/UFRJ Editando um sub-sistema: Sub-sistema Exemplo 1 – Comportamento Senoidal

17 EQ/UFRJ Algumas vezes é mais fácil tratar os dados gerados no ambiente Matlab. Usamos o bloco to workspace: Cria a variável A no workspace Biblioteca Sinks Exemplo 1 – Comportamento Senoidal

18 EQ/UFRJ Configuração do bloco To Workspace: Cria a variável A no workspace Formato da variável Exemplo 1 – Comportamento Senoidal

19 EQ/UFRJ >> plot(tout,A) No Workspace... Exemplo 1 – Comportamento Senoidal

20 EQ/UFRJ Rodando um bloco: CTRL R Exemplo 1 – Comportamento Senoidal

21 EQ/UFRJ Combinando dois sinais: Entre outras aplicações, permite exibir duas ou mais curvas no mesmo gráfico. Bloco MUX Biblioteca Signals & Sys. Exemplo 1 – Comportamento Senoidal

22 EQ/UFRJ Dois ou mais gráficos: Exemplo 1 – Comportamento Senoidal

23 EQ/UFRJ Dois ou mais gráficos: Configurando... Exemplo 1 – Comportamento Senoidal

24 EQ/UFRJ Exemplo 2

25 EQ/UFRJ Temos a simulação de um tanque de nível sob a influência de uma perturbação degrau na vazão da alimentação. A figura descreve o sistema físico que será simulado. q1q1 q3q3 q2q2 h A Exemplo 2 – Simulação de um modelo dinâmico

26 EQ/UFRJ Assumindo que: - a densidade do l í quido e a á rea da se ç ão transversal do tanque A são constantes. - a rela ç ão entre a vazão e a carga é linear: Deduzindo o modelo matemático que descreve o tanque: Exemplo 2 – Simulação de um modelo dinâmico m min m2m2 m3m3 =

27 EQ/UFRJ O modelo é descrito por uma equação de balanço transiente de massa no tanque: Substituindo a hipótese ii na equação anterior ficamos com: Exemplo 2 – Simulação de um modelo dinâmico m3m3 min g m3m3 m g m3m3 m2m2

28 EQ/UFRJ Introduzindo as variáveis-desvio e aplicando a Transformada de Laplace, chegamos as funções de transferência: onde: Exemplo 2 – Simulação de um modelo dinâmico

29 EQ/UFRJ Para o exemplo em questão considere um tanque de 0.5 m de diâmetro e uma válvula na saída na linha atuando sob uma resistência linear (R) de 6.37 min/m 2. Serão simulados um degrau de 1 ft 3 na vazão q 1 a partir do tempo igual a 0 min (step) e um degrau de 1 ft 3 na vazão q 2 a partir do tempo igual a 10 min(step1). A = * (0.5/2)^2 A = R = 6.37 Exemplo 2 – Simulação de um modelo dinâmico

30 EQ/UFRJ Corrente q1 Corrente q2 Exemplo 2 – Simulação de um modelo dinâmico

31 EQ/UFRJ Biblioteca Source Biblioteca Continuous Exemplo 2 – Simulação de um modelo dinâmico

32 EQ/UFRJ Degrau começa no tempo zero Degrau começa no tempo dez Bloco Função de Transferência Exemplo 2 – Simulação de um modelo dinâmico

33 EQ/UFRJ A amplitude do degrau é 1 Exemplo 2 – Simulação de um modelo dinâmico

34 EQ/UFRJ Resultado obtido: 1º estado estacionário 2º estado estacionário 1ª perturbação 2ª perturbação Exemplo 2 – Simulação de um modelo dinâmico

35 EQ/UFRJ Exemplo 3

36 EQ/UFRJ Considerando um sistema de controle de nível mostrado abaixo. O nível de líquido é medido e a saída do transmissor de nível (LT) é enviada para um controlador feedback (LC) que controla o nível pelo ajuste da vazão volumétrica q 2. A segunda vazão de fluido, q 1, corresponde à variável perturbação (corrente chegando de outra unidade, não posso controlar essa corrente). q1q1 q3q3 q2q2 h A LTLC hm Exemplo 3 – Controlando o tanque de nível

37 EQ/UFRJ Considerando uma válvula com a seguinte função de transferência: Considerando um medidor com a seguinte função de transferência: Exemplo 3 – Controlando o tanque de nível 15 psi 0 psi Linguagem de engenharia 0 m 3,60 m Linguagem de máquina

38 EQ/UFRJ Set-point Valor medido Erro: (sp - valor medido) Exemplo 3 – Controlando o tanque de nível

39 EQ/UFRJ Exemplo 3 – Controlando o tanque de nível Controlador Processo Medidor Válvula

40 EQ/UFRJ Bloco Ganho: Quando a função de transferência é simplesmente uma constante, como no caso do medidor, podemos representa-lá pelo bloco Gain. Exemplo 3 – Controlando o tanque de nível

41 EQ/UFRJ Bloco PID: O controlador é representado pelo bloco PID Controller. Podemos regular a sua ação proporcional, integral e derivativa. Exemplo 3 – Controlando o tanque de nível

42 EQ/UFRJ Ajuste de Controladores: Na prática o melhor ajuste para um controlador é obtido pela combinação da ação P (proporcional), I (integral), e D (derivativa). Podemos usar o Simulink para obter uma estimativa inicial desse ajuste. Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava. DICADICADICADICA Exemplo 3 – Controlando o tanque de nível

43 EQ/UFRJ Ajuste de Controladores: Na prática o melhor ajuste para um controlador é obtido pela combinação da ação P (proporcional), I (integral), e D (derivativa). Podemos usar o Simulink para obter uma estimativa inicial desse ajuste. Tente: P = I = D = Nem todas as combinações de valores para P, I e D são possíveis. As vezes o processamento numérico trava. DICADICADICADICA Exemplo 3 – Controlando o tanque de nível

44 EQ/UFRJ Revisão de fminsearch

45 EQ/UFRJ

46 Exemplo 4

47 EQ/UFRJ A seguinte malha de controle foi elaborada no Simulink. Usar o Matlab para ajustar o controlador. PIDPID degrau unitário no instante 5 Exemplo 4

48 EQ/UFRJ clear all close all warning off options = optimset('display','iter'); global P I D erro Pmin = fminsearch('custo', [1 5 1],options) Programa principal: Exemplo 4

49 EQ/UFRJ function [erro] = custo(x) global P I D erro P=x(1); I=x(2); D=x(3); [T]=sim('malha',[0 65]); erro=sum(erro.^2); Função custo: Exemplo 4

50 EQ/UFRJ Solução encontrada para degrau unitário no SP: Pmin = Exemplo 4

51 EQ/UFRJ Arquitetura Simulink usada para gerar o gráfico do slide anterior: Exemplo 4

52 EQ/UFRJ Exemplo 4b

53 EQ/UFRJ Ao invés de minimizar o somatório quadrático do erro, posso minimizar o somatório quadrático ponderado com o tempo. Ou seja, erros em tempos mais elevados são mais significativos. Exemplo 4b

54 EQ/UFRJ Exemplo 4b

55 EQ/UFRJ clear all close all warning off options = optimset('display','iter'); global P I D erro tempo Pmin = fminsearch('custo', [10 5 1],options) Programa principal: Exemplo 4b

56 EQ/UFRJ function [erro] = custo(x) global P I D erro tempo P=x(1); I=x(2); D=x(3); [T]=sim('malha',[0 65]); %erro=sum(erro.^2); % somatorio quadratico do erro erro=sum((erro.*tempo).^2); % somatorio quadratico do erro ponderado com o tempo Função custo: Exemplo 4b

57 EQ/UFRJ Resultado obtido: Pmin = Chute inicial usado: Exemplo 4b

58 EQ/UFRJ Ajuste de TF

59 EQ/UFRJ ?

60

61

62 Ferramenta completa para treinamento...

63 EQ/UFRJ Passando dados para o Simulink

64 EQ/UFRJ Gerador de dados experimentais:

65 EQ/UFRJ

66 Usando os dados experimentais:

67 EQ/UFRJ

68 Exemplo 5

69 EQ/UFRJ Equações para modelar um CSTR: Exemplo 5 – Bloco S-function

70 EQ/UFRJ dCa = (Fi*(cai-Ca)/V) - k*Ca; dV = Fi-F; dT = (Fi*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); Passando as equações para o formato Matlab: Exemplo 5 – Bloco S-function

71 EQ/UFRJ onde: Fi: vazão de alimentação do reator (ft3/h) Cai: concentração da alimentação do reator (lbm/ft3) Ca: concentração no reator (variável) k: é dado pela equação k = k0*exp(-E/(R*T)) V: volume do reator F: vazão de saída (ft3/h) Cp: calor especifico = 0.75 btu/lbm.R ro: densidade =50 lb/ft3 Ti: temperatura de alimentação (R) T: temperatura do reator DeltaH: calor de reação = BTU/ lbm U: coeficiente de troca térmica =150 BTU/(h.ft2.R) continua... Exemplo 5 – Bloco S-function

72 EQ/UFRJ onde: A: área de troca térmica = 250 ft2 Tc: temperatura do fluido de alimentação (R) E: energia de ativação = BTU/lbm R: constante dos gases = 1.99 BTU/lbm.R parâmetros freqüentemente alterados parâmetros raramente alterados parâmetros calculados Legenda: Exemplo 5 – Bloco S-function

73 EQ/UFRJ Exemplo 5 – Bloco S-function

74 EQ/UFRJ Parâmetros freqüentemente alterados Parâmetros raramente alterados (máscara) Biblioteca Functions & Tables Exemplo 5 – Bloco S-function

75 EQ/UFRJ Parâmetros calculados Exemplo 5 – Bloco S-function

76 EQ/UFRJ Fi Cai Ca Ko V F Cp ro Ti T DeltaH U A Tc E R Em resumo: Exemplo 5 – Bloco S-function

77 EQ/UFRJ Configurando o bloco S-function: Nome do arquivo com as equações Parâmetros alterados pela máscara Exemplo 5 – Bloco S-function

78 EQ/UFRJ Criando uma máscara: Exemplo 5 – Bloco S-function

79 EQ/UFRJ Localização do arquivo com as equações: O arquivo com as equações deve estar localizado no mesmo local dos arquivos Simulink! O Current Directory do Matlab deve apontar para esse local! Exemplo 5 – Bloco S-function

80 EQ/UFRJ Criando o arquivo com as equações: function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) % % Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina % 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 = ; %lbm/ft3, concentração inicial no reator T = ; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; continua... Exemplo 5 – Bloco S-function

81 EQ/UFRJ Criando o arquivo com as equações: function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) % % Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina % 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 = ; %lbm/ft3, concentração inicial no reator T = ; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; sys é a saída do modelo, cujo significado depende de flag x0 é o vetor de condições iniciais (funciona apenas quando flag = 0 ) t é o tempo de simulação x é o vetor de estados do modelo u é o vetor de entradas do modelo (recebido do bloco Mux) flag é um parâmetro que informa o tipo de informação que o integrador espera receber a cada chamado U,...,k0 são os parâmetros adicionais que podem ser passados à função através de uma mascara (devem estar declarados na configuração do bloco S-function). Exemplo 5 – Bloco S-function

82 EQ/UFRJ Criando o arquivo com as equações: function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) % % Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina % 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 = ; %lbm/ft3, concentração inicial no reator T = ; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; continua... Exemplo 5 – Bloco S-function

83 EQ/UFRJ function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) % % Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina % 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 = ; %lbm/ft3, concentração inicial no reator T = ; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; continua... sys = [número de estados contínuos número de estados discretos número de saídas número de entradas marcador de alimentação direta tempo de amostragem ] Exemplo 5 – Bloco S-function

84 EQ/UFRJ function [sys,x0] = reator(t,x,u,flag,U,A,DeltaH,ro,Cp,E,R,k0) % % Simula um reator CSTR (mistura perfeita) no qual se conduz uma % reação exotérmica (A->B), resfriado por serpentina % 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 = ; %lbm/ft3, concentração inicial no reator T = ; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; continua... Estimativas iniciais para o cálculo do sistema de equações diferenciais (cálculo numérico) Exemplo 5 – Bloco S-function

85 EQ/UFRJ case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % 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*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV]; continua... Exemplo 5 – Bloco S-function

86 EQ/UFRJ case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % 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*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV]; continua... Exemplo 5 – Bloco S-function

87 EQ/UFRJ case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % 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*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV]; continua... Exemplo 5 – Bloco S-function

88 EQ/UFRJ case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação=0.5; Fi = u(2); %ft3/hr, vazão de alimentação=40 F = u(3); %vazão de retirada=40 Tc = u(4); %R, temperatura do fluido de refrigeração=594.6 Ti = u(5); %R, temperatura da alimentação=530 % 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*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV]; continua... Exemplo 5 – Bloco S-function

89 EQ/UFRJ case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = []; end Exemplo 5 – Bloco S-function

90 EQ/UFRJ Exemplo 5 Bloco Integrador

91 A outra técnica para resolver sistemas de equações diferenciais no Simulink é utilizando o bloco Integrator. A vantagem dessa técnica é que podemos construir a equação de modo totalmente intuitivo, como veremos abaixo. Por simplicidade vamos trabalhar com uma única equação diferencial, mas a técnica pode ser estendida para sistemas de equações. Exemplo 5 – Bloco Integrador

92 EQ/UFRJ Exemplo 5 – Bloco Integrador 1/A ( h-hestrela )

93 EQ/UFRJ Exemplo 5 – Bloco Integrador Bloco Fcn (Functions & Tables)

94 EQ/UFRJ Exemplo 5 – Bloco Integrador K ( h - hestrela )

95 EQ/UFRJ Exemplo 5 – Bloco Integrador Fe - K( h - hestrela )

96 EQ/UFRJ Exemplo 5 – Bloco Integrador (1/A) (Fe - K( h - hestrela ))

97 EQ/UFRJ Carlos André Vaz Junior


Carregar ppt "EQ/UFRJ Carlos André Vaz Junior"

Apresentações semelhantes


Anúncios Google