(Parte 1 de 3)

Curso de ProModel

Professores: Diolino José dos Santos Filho

Paulo Eigi Miyagi Newton Maruyama

1. Modelo

Segundo Seila [1995], um sistema é um conjunto de componentes ou entidades interagindo, isto é, os componentes trabalham juntos para atingir algum objetivo. Neste contexto, um modelo é uma abstração e representação simplificada do sistema. O modelo representa os componentes mais importantes do sistema e a forma como eles interagem. Um modelo estocástico é um modelo cujo comportamento não pode ser predito com valores fixos, mas que é sujeito a aleatoriedades. A maioria dos modelos aproximados usa o paradigma do “entity-attribute-set”

(conjunto de atributos da entidade), onde um sistema é considerado como sendo composto por entidades, as quais possuem atributos que são itens de informação a respeito da entidade.

2. Modelagem Um modelo deve conter apenas os detalhes estritamente necessários para capturar a essência do sistema, dentro dos propósitos para o qual foi concebido, ou, em outras palavras, não se deve prender a detalhes desnecessários.

Para uma melhor modelagem, sugere-se a seguinte sequência de execução dos modelos: · fazer uma análise do sistema a ser modelado e definir os objetivos que se quer alcançar com a simulação;

3. Simulação De acordo com Seila [1995], o termo simulação é usualmente empregado para se referir à representação da dinâmica de um objeto ou sistema para análise de alguma atividade deste, considerada muito grande e/ou complexa.

Toda simulação se utiliza de um modelo para descrever o comportamento do objeto/sistema, que pode ou não existir e que é geralmente muito maior, custoso e complexo que o modelo. A idéia chave é que a simulação é uma realização alternativa que se aproxima do objeto/sistema e em muitos casos o propósito da simulação é analisar e entender o comportamento deste em função de ações e decisões alternativas.

A simulação é uma metodologia que não é específica para uma área em particular de aplicação, pelo contrário, pode ser aplicada para qualquer objeto/sistema que possa ser devidamente modelado.

Ela possui vantagens sobre outras alternativas (como por exemplo a análise matemática que é limitada a um certo número de objetos/sistemas cujo modelo matemático é conhecido). Como algumas de suas vantagens, pode-se citar: a capacidade de analisar modelos de complexidade arbitrária; a geração de resultados quantitativos e qualitativos para os responsáveis pela tomada de decisões; a flexibilidade do arranjo de métodos de simulação que pode ser usado para analisar sistemas estocásticos, etc. Segundo Kelton [1995], a simulação de sistemas pode ser de dois modos: DIDO

(entrada determinística – saída determinística: “deterministic input and output”) ou RIRO

(entrada aleatória - saída aleatória: “random input and output”). Os sistemas que se comportam como o primeiro caso são chamados determinísticos e, não importa quantas vezes sejam simulados, os resultados serão sempre os mesmos. Já os que se assemelham ao segundo são chamados estocásticos e, quando simulados, fornecem uma “distribuição” de resultados onde se pode considerar um intervalo de confiança.

A simulação é a ferramenta adequada para se modelar um sistema no qual a variação estatística e a interdependência de seus elementos são tais que a programação linear e outros métodos de otimização não se mostram práticos ou aplicáveis.

4. ProModel

ProModel é uma poderosa ferramenta de simulação para modelar todos os tipos de sistemas de manufatura, abrangendo desde pequenos job shops e células de manufatura até produção em grande escala e sistemas de manufatura flexível. O ProModel é um software desenvolvido para Windows com uma interface gráfica intuitiva e orientada a objeto, o que reduz em muito a necessidade de programação.

O ProModel permite o trabalho em grupo, possibilitando que diferentes partes do modelo sejam implementadas por diferentes grupos e posteriormente sejam agrupadas em um grande modelo final.

exemplo de modelo de simulação 5. Elementos de modelagem

O processo de se executar a modelagem de um sistema usando ProModel começa por definir o que o software denomina elementos de modelagem. A seguir, tem-se uma lista dos elementos possíveis no software, bem como, quando útil, uma referência ao sistema simples presente no tutorial que o acompanha, em que um operário utiliza em seqüência duas máquinas de usinagem para fabricar um tipo de peça:

a) Locais: local é um lugar imóvel de processamento ou armazenamento num sistema, para o qual entidades (ver mais adiante) são movidas para serem armazenadas, processadas ou tomar novo roteiro. Os locais podem ser simples (comportam apenas uma entidade de cada vez) ou múltiplos (comportam mais de uma entidade simultaneamente). Os locais podem possuir regras de entrada e saída: as regras de entrada são usadas para selecionar qual a próxima entidade a ser manipulada caso exista mais de uma destas com essa possibilidade, ao passo que as de saída são usadas num local de capacidade múltipla para determinar a ordem com que deixarão o mesmo. No exemplo do tutorial do ProModel, as máquinas de usinagem, o buffer de entrada, o buffer de saída e a esteira transportadora são modelados como locais.

b) Entidades: entidade é um item, como um produto em fabricação, que é processado no modelo. A dinâmica conferida pelo ProModel às entidades permite que estas sofram operações cujos resultados são novas entidades, como reunião, divisão e conversão. As entidades podem receber atributos (ver mais adiante), que podem ser testados para a tomada de decisão ou para se obter estatísticas específicas. A imagem que representa uma entidade pode ser trocada como resultado de uma operação para se ilustrar uma mudança física da entidade durante uma simulação. No exemplo do tutorial do ProModel, a peça fabricada e a matéria-prima desta são modelados como entidades.

c) Rotas: rotas são elementos opcionais e definem o caminho utilizado por entidades e recursos para se moverem no sistema. As rotas são constituídas de nós conectados por segmentos (que são definidos graficamente através de simples cliques de mouse) e de interfaces desses nós com locais. Várias rotas podem ser definidas, e várias entidades e/ou recursos (ver mais adiante) podem compartilhar a mesma rota. Os movimentos de entidades e recursos ao longo da rota podem ser definidos em termos de comprimento da mesma e velocidade de movimento, ou simplesmente pelo tempo de percorrimento da mesma. As distâncias são automaticamente computadas baseando-se na escala de layout definido pelo usuário, mas podem ser redefinidas manualmente.

d) Recursos: recursos podem ser pessoas, ferramentas, veículos ou qualquer outro objeto que possa ser usado para transportar materiais entre dois locais, realizar uma operação sobre um material em um local, ou realizar manutenção em um local ou em outro recurso que esteja quebrado. Recursos podem ser dinâmicos ou estáticos. O que difere estes dois tipos de recursos é o fato de o primeiro ser vinculado a uma rota e o segundo não. Regras de decisão podem ser utilizadas para alocar os recursos e priorizar os carregamentos e entregas. Características de movimentação dos recursos, como velocidades quando cheio e quando vazio, aceleração, desaceleração, tempo de carga e descarga, entre outros, podem ser especificados.

No exemplo do tutorial do ProModel, o operário é modelado como um recurso.

e) Processos: a lógica de um processo define qual a operação e o roteamento para cada tipo de entidade em cada local do sistema. Os tempos de operação ou serviço, requisições de recursos, lógicas de processamento, relações de entrada e saída, condições de roteamento e tempos de movimentação podem ser descritos. Os tempos de operação podem ser descritos por formas variadas como constantes, distribuições probabilísticas, resultados de funções, valores de atributos, resultados de sub-rotinas, etc., ou por uma expressão contendo uma combinação destas formas. Operações lógicas como IF-THEN-ELSE, malhas (loopings) e chamadas a subrotinas podem ser incluídas. Expressões relacionadas a recursos como GET, USE, JOINTLY GET juntamente com expressões booleanas e palavras reservadas como ACCUM, JOIN, GROUP simplificam a lógica de programação e utilização dos recursos.

f) Chegadas: Neste elemento é definido o mecanismo de determinação dos momentos em que uma entidade é introduzida no sistema. uma chegada indica como um entidade é introduzida no sistema. Um registro de chegada é composto de: número de novas entidades por chegada, freqüência das chegadas, locais das chegadas, o instante da primeira chegada e o número total de ocorrências de chegadas. Chegadas podem ser determinísticas, condicionais ou estocásticas; neste último caso, podem-se utilizar tanto distribuições probabilísticas pré-definidas quanto definidas pelo usuário para definir os horários e as quantidades das chegadas.

g) Horários de trabalho: Este elemento, determinando horários de funcionamento e paradas agendadas do sistema, é definido pela seleção de horas no dia e dias na semana. A cada horário de trabalho podem ser associados recursos e locais.

h) Atributos: Entidades e locais podem receber atributos de valor inteiro ou real.Pode-se definir atributos para entidades e locais e podem assumir tanto valores inteiros como reais. Nomes de locais, recursos e entidades podem ser associados a atributos. Estes atributos podem ser relacionados aos do E-MFG e são definidos para uma família de entidades, por exemplo, possuindo cada uma os seus respectivos atributos. Os atributos são geralmente empregados para representar características das entidades tais como cor, número de vezes que foi retrabalhada, tempo de operação da entidade para locais específicos, etc. Tanto para variáveis como para atributos é possível incrementar, decrementar ou executar qualquer operação matemática, com a diferença de que os atributos estão associados a entidades e locais específicos. (REESCREVER) i) Variáveis: As variáveis são usadas para tomadas de decisão e cálculo de estatísticas. O valor da variável pode ser monitorado a todo momento e mostrado ao fim da simulação em forma de gráfico ou histograma. Estas, assim como os atributos, podem assumir valores reais ou inteiros. Quando se utiliza um contador, é necessário definir uma variável e vincular o contador a esta.

j) Vetores / matrizes: São matrizes de variáveis, podendo ser uni ou multidimensionais.

k) Macro: É uma expressão complexa, ou um conjunto de expressões, que pode ser definida apenas uma vez e utilizada depois várias vezes. Macros são extremamente úteis quando pedaços de lógica se repetem em vários pedaços do modelo. (As macros assemelham-se à utilização da palavra reservada “#define” na linguagem C de programação. Em C encontraríamos: #define MAX 5.) Pode-se definir uma macro como uma interface de tempo de execução (RTI Macro); ao se definir uma macro como RTI, o o conteúdo de seu campo Text torna-se automaticamente o valor da lógica que a mesma está substituindo. As macros RTI permitem ao usuário trocar facilmente os parâmetros do modelo antes de executá-lo, além de permitir a preparação de cenários múltiplos para serem executados em lotes. As RTI podem ser acessadas através das opções Model Parameters ou Scenario existentes dentro do menu de simulação.

l) Subrotinas: São blocos definidos pelo usuário que recebem valores quando chamadas e podem retornar resultados após sua execução. Operações complexas desenvolvidas em várias partes do modelo podem ser definidas apropriadamente por uma única subrotina.

m) Distribuições do usuário: Estas podem ser definidas pelo usuário para substituir as distribuições probabilísticas fornecidas pelo software.

Para uma visão prática do significado de várias das definições acima, recomenda-se seguir o tutorial do ProModel, que leva aproximadamente uma hora para ser executado.

6. Instruções para geração de modelo

Tem-se a seguir instruções detalhadas para a criação de um projeto, do modelo e de seus elementos:

6.1. Criar novo projeto:

Acessar o menu File e selecionar New. O software criará um novo projeto e abrirá a janela de informações gerais (General Information) para que se defina:

janela para edição de cenário

6.2. Definir locais (locations):

Para se inserir um local no modelo, basta selecionar um elemento na janela Graphics e em seguida clicar na janela Layout. O objeto será inserido na janela, podendo ser redimensionado, e simultaneamente será inserido um novo elemento na tabela Locations. Caso seja necessário apagar um lugar, selecione o lugar na janela de Locations, selecione Edit no menu e em seguida Delete (este procedimento é válido para todos os elementos do ProModel). Nesta tabela pode-se:

• determinar os tempos mortos (DT) – tempos mortos são usados para simular falhas aleatórias de equipamentos, manutenção de rotina, ajustes, etc., e podem ser definidos tanto para os locais (locais de capacidade múltipla só aceitam tempos mortos definidos por clock) quanto para os recursos. Como parâmetros, define-se: freqüência com que estes tempos mortos ocorrem, o primeiro momento em que um deles ocorre, a prioridade, lógica (se houver), e se este está ativado ou não;

janela de edição de locais.

6.3. Definir entidades (entities):

Para se inserir uma entidade, basta selecionar um elemento na janela Entity Graphics e aparecerá uma imagem no quadro de edição da mesma janela e um nome correspondente a este elemento na janela Entities. Observação: aqui as entidades são apenas definidas; elas só aparecem na simulação quando inseridas através da tabela de chegadas (Arrivals). Na janela Entities é possível definir:

• escolher a velocidade com a qual a entidade se movimenta no sistema (Speed); • escolher o tipo de estatística que se deseja coletar ao final da simulação (Stats). Na janela Entity Graphics, pode-se:

· editar a imagem (botão Edit); • criar um vetor de figuras desmarcando-se a opção New (canto superior esquerdo da janela).

janela de edição de entidades

6.4. Definir rotas (path networks):

As rotas são os elementos de mais fácil construção; basta clicar (não é necessário manter o botão pressionado) sobre um ponto desejado da janela Layout e movimentar o mouse. Dando um clique é possível mudar a direção do segmento de reta e, com um duplo clique, inserir o nó final – como conseqüência surgirá um segmento de rota biorientado

(Parte 1 de 3)

Comentários