Sistemas não-lineares no Simulink

Slides:



Advertisements
Apresentações semelhantes
Carlos André Vaz Junior
Advertisements

Carlos André Vaz Junior
Pseudo-código: sintaxe
Métodos Computacionais
Algoritmo I Aula 05 Pseudo-Linguagem.
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
EQ/UFRJ Carlos André Vaz Junior
Carlos André Vaz Junior
COMUNIDADE VIRTUAL PRÓ-MENINO ENTRANDO EM UMA COMUNIDADE FECHADA.
Instrutor: Marcelo Escobar
Universidade Federal do Espírito Santo
Construção de Compiladores
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Contratos Modelagem Funcional.
O Portal do Estudante de Computação
3 - Equações Lineares de Segunda Ordem
Como instalar e executar o programa
DAC – Departamento de Atendimento ao Cliente
Animações no Power Point
CAPACITAÇÃO SME-SP.
Daniel Alexandro/Reniê Delgado/Vanessa Ogg
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
Sistemas e Sinais (LEIC) – Maquinas de estados em Tempo Real
Análise de modelos matemáticos por meio de simulações computacionais
Treinamento do Microsoft® Access® 2010
Universidade Federal de Alagoas – UFAL Centro de Tecnologia – CTEC
Gerenciador Financeiro
Criação de Grupos no Rooda TUTORIAL AGOSTO •Antes de tudo acesse o Rooda...
Monitoria de Sistemas Inteligentes
Instalação  A tela abaixo é a primeira a aparecer durante a instalação do Caché 5. O diretório selecionado será usado para salvar alguns arquivos usados.
07/04/2017 Linux Ubuntu 2.
Técnicas de Desenvolvimento de Programas
Capítulo 5 Structures. A - Sequence E - Formula Node B - Case F - Variável Global C - For Loop G - Variável Local D - While Loop ABCD FG E.
Linguagem de Programação JAVA
Prof.Celso J. Munaro (DEL-CT-UFES)
Aula 6 Disciplina: Sistemas de Controle 1 - ET76H
Programação e Aplicações Gráficas
Guia de Treinamento Fusion ECM Suite - Relatórios.
Introdução ao MATLAB 5.3 para Hidrólogos
Hardware Description Language Aula 5 -VHDL Prof. Afonso Ferreira Miguel, MSc.
JAVA Sintaxe.
Universidade Estadual de São Paulo Escola de Engenharia de Lorena Prof. Arnaldo Marcio Ramalho Prata Respiração Microbiana.
Unidades de Operações Lógicas em Simuladores de Processos
Backup DE DADOS DO USUÁRIO. Cópia de segurança dos dados no computador, alguns fáceis e outros trabalhosos, de acordo com a quantidade de dados. Utilizado.
Monitoria de Sistemas Inteligentes IF684
Modelagem e Simulação de Processos - Introdução
Casos de Uso Tarciane Andrade
Universidade Estadual de São Paulo Escola de Engenharia de Lorena
Fundamentos de linguagens de programação
Iº Workshop Linux da Unijorge
Fórmula Visual RM.
Acabias Marques Luiz. III – Variáveis, constantes e executáveis Parte 1 – Introdução a linguagem  Variáveis e Constantes  Atalhos na manipulação de.
Introdução à Programação
02/09/2014 Treinamento Mídias Online. Instruções -Campanhas devem conter valor, caso contrário não irão aparecer na Simulação de Plano de Custo. -Para.
Controle de Processos por Computador
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Automação de Escritório II Excel
Shell Script Parte 2.
13/14 Abril de 2004Trajectória de um Projéctil1 Trajectória de Projéctil - Funções Pedro Barahona DI/FCT/UNL Março 2004.
Programação para Web I AULA 2 BANCO DE DADOS.
PROJETO 2: ALUNOS UFRPE Parte 1. Dividindo para conquistar 1. Interação com o usuário 2. Leitura e escrita em arquivos 3. Regra de negócio para executar.
APRESENTAÇÃO PORTAL CITI CONTA CORRENTE
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Lição (Editando Lição) Autor: Skyup Informática. Lição – Página Principal Assim que for concluída a criação do módulo e a adição de suas configurações.
Modelagem de Banco de Dados através do ERwin
Principais Processos WMS Entrada Expedições Reabastecimento Inventário Cadastros.
Manual de Utilização. TELA INICIAL: Ao acessar o MonitoraSUS, você tem a tela inicial dos Eixos. No primeiro acesso você não terá nenhum eixo cadastrado,
Transcrição da apresentação:

Sistemas não-lineares no Simulink

Simulando um CSTR Entradas: F i, T i,TC ,F , C iA

Simulando um CSTR Para construir o diagrama Simulink deste modelo, além dos blocos já utilizados, serão necessários os seguintes: Simulink/Signals & Systems/Mux: concatena (ou “empilha”) escalares em um vetor (ou vetores em um vetor maior) Simulink/Signals & Systems/Demux: extrai (ou “desempilha”) constantes de um vetor (ou vetores de um vetor maior) Simulink/Continuous/Transport Delay: aplica um atraso a uma entrada Simulink/Functions & Tables/S-Function: executa uma função de usuário, escrita em código-M, de acordo com as regras para criação de S-Functions

Simulando um CSTR O diagrama do modelo do CSTR encontra-se abaixo.

Simulando um CSTR O bloco Mux (u) do modelo concatena as 5 entradas em um vetor de 5 elementos.

Simulando um CSTR O bloco Demux (Saída) extrai do vetor que recebe da função-S as saídas do modelo.

Simulando um CSTR O bloco Transport Delay aplica um atraso na entrada que recebe. Para configurá-lo, basta informar (i) o valor do (tempo de) atraso (Time Delay) e (ii) o valor inicial da saída do bloco, ou seja, o valor que o bloco Transport Delay irá gerar, até que o tempo de simulação iguale o atraso (Initial input).

Simulando um CSTR O que há de diferente neste modelo é a não linearidade que requer a função-S (reator.m), que trabalha diretamente com as equações diferenciais do CSTR.

Simulando um CSTR É preciso seguir algumas regras específicas das funções-S. Quando usamos “solvers” do MATLAB programas 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 vetor vazio ([]) na chamada a ode45 é um marcador de lugar para o vetor de opções, que não está sendo alterado desta forma (i.e.: defaults do MATLAB são assumidos.

Simulando um CSTR No caso do Simulink, você não escreverá a chamada a ode45, precisando se importar apenas com a declaração da função que calcula as derivadas e com as regras de chamada desta função. Esta função não apenas calculará as derivadas do modelo, como também irá informar ao integrador as condições iniciais. Uma função-S deve ser declarada da seguinte forma: function [sys, x0] = model(t,x,u,flag,PAR1,...,PARN)

Simulando um CSTR Onde sys é a saída de model, cujo significado depende de flag x0 é o vetor de condições iniciais t é o tempo de simulação x é o vetor de estados do modelo u é o vetor de entradas do modelo flag é um parâmetro que informa a model o tipo de informação que o integrador espera receber PAR1,...,PARN são os parâmetros adicionais que podem ser passados à função model

Simulando um CSTR Vamos agora tentar entender como funciona a simulação de um modelo usando uma função-S. Ao contrário do que acontecia com as funções de transferência, usando uma função-S, você pode trabalhar com valores absolutos das suas derivadas. Para isso, é preciso conhecer as condições iniciais da integração (o que não é pedido em nenhuma parte da configuração da simulaçã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.

Simulando um CSTR Antes de começar a simulação, o Simulink instruirá o integrador a chamar a função model com um valor de flag igual a 0. Isso significa que model deve retornar em sys um vetor de configuração do modelo e em x0 o vetor de condições iniciais dos estados. Assim, para flag = 0, o vetor 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 entradas marcador de alimentação direta tempo de amostragem ]

Simulando um CSTR Como nós sempre estaremos simulando modelos contínuos simples, apenas os elementos 1, 3 e 4 do vetor sys nos interessam. Os elementos referentes a modelos discretos e à alimentação direta de entradas devem ter valor 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.

Simulando um CSTR Ao longo da integração, o Simulinik instruirá o integrador a chamar model com vários valores de flag, dois dos quais de nosso interesse. Quando model for chamado com flag = 1, o integrador espera dele os valores das derivadas dos estados contínuos. Ou seja, para flag = 1, sys deve conter os valores das derivadas. ondições iniciais dos estados. Por fim, para flag = 3, o integrador espera em sys o valor 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 reator.m, a seguir.

Simulando um CSTR reator.m - 1ª parte 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 % 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 % Cp = 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 reator T = 584.4115; %R, temperatura do reator V = 200; %ft3, volume do reator x0 = [ca T V]'; reator.m - 1ª parte

Simulando um CSTR reator.m - 2ª parte case 1 % Calcula as derivadas % Atualiza entradas cai = u(1); %lbm/ft3, concentração da alimentação Fi = u(2); %ft3/hr, vazão de alimentação F = u(3); %vazão de retirada 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*Cp*ro*(Ti-T) + DeltaH*k*Ca*V - U*A*(T-Tc)) /(V*ro*Cp); sys = [dCa; dT; dV]; case 3 % Calcula as saídas sys = [x(1) x(2) x(3)]; otherwise sys = []; end reator.m - 2ª parte

Simulando um CSTR O código de reator.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

Simulando um CSTR Em código M, esta sintaxe é escrita como abaixo: switch <expressão> case <valor 1> <bloco de código 1> case <valor 2> <bloco de código 2> ... otherwise <bloco de código de tratamento de exceções> end

Simulando um CSTR Após escrever o código-M da função-S, basta inserir um bloco S-Function e configurá-lo. A configuração exige apenas o nome do arquivo-M e a lista de parâmetros opcionais (caso a função os possua).

Simulando um CSTR Após inserir e configurar o bloco, pode-se criar uma máscara para ele. A máscara do bloco irá gerar uma janela para entrada dos parâmetros opcionais pelo usuário. Para criar uma máscara, selecione o bloco S-Function e, no menu Edit, escolha a opção Edit Mask. Na aba Icon, pode-se entrar o nome do bloco que aparecerá no diagrama. Na aba Initialization, edita-se a lista de parâmetros que o usuário deverá entrar, antes da simulação.

Simulando um CSTR

Simulando um CSTR

Simulando um CSTR

Simulando um CSTR O modelo já pode ser simulado. As saídas são: