Prévia do material em texto
Modelagem e Simulação Aula 26 – Material Base Autor: Anibal e FlexSim 1 Exercício 3: Em um cabeleireiro 3 tipos de clientes podem ser atendidos com diferentes tempos de chegada de acordo com uma função de distribuição de probabilidade triangular(7,8,9). Os tempos de corte obedecem uma distribuição uniforme com parâmetros dados abaixo de acordo com o tipo de item. Uniform(6,10) Uniform(9,15) Uniform(8,12) Homem: itemtype 3 Média: 10 Desvio: 2 Mulher: itemtype 2 Média: 12 Desvio: 3 Criança: itemtype 1 Média: 8 Desvio: 2 A probabilidade de chegada de uma criança é de 20%, uma mulher de 50% e um homem de 30%. O tempo de simulação é de 480 minutos. Quantos clientes de cada tipo são atendidos e quantos estão no salão? Desvio Função de distribuição triangular: Máximo Mínimo Moda Função de distribuição uniforme: Desvio Média Máximo Mínimo Lógica da operação: Chegada Triangular(7,8,9): 20% criança (item type 1) 50% mulher (item type 2) 30% homem (item type 3) Swtich(itemtype) Case 1 Case 2 Case 3 Uniform(6,10) Uniform(9,15) Uniform(8,12) Passo 0 – Definir as unidades do modelo Tempo, distância e unidade de fluídos(se necessário) – São as unidades para Chegada/Processamento. Deixe em metros e minutos as unidades de distância e tempo. Passo 1: Arrastar os objetos para a superfície de simulação e posicione-os conforme layout abaixo Dica de como editar os objetos Passo 2 – Nomear os objetos conforme abaixo Clique no objeto 3D e mude seu nome na aba “Quick Properties” que aparece ao lado direito da tela Passo 3 – Conectar os objetos conforme imagem abaixo Pressione a tecla “a”, clique no objeto de criação da entidade (Source) e em seguida no de entrada da entidade (Chegada): “A”+ clique(source) + clique(Espera) Dica de como conectar objetos Portas de Saída-Entrada (Output-Input) Porta Central Desconectar Q W Conectar A S As portas de saída-entrada são normalmente utilizadas para determinar o fluxo dos materiais ou itens (entidades); As portas centrais permitem o controle e automação de outras funções do Flexsim, e.g. operadores de máquina, transportadores, etc. Dica de como conectar objetos Passo 4 - Input dos Dados (Source) Após clicar em “Statistical Distribuition”, selecionar a opção “triangular” e defina os valores de mínimo, máximo e moda. Em seguida basta pressionar Enter ou clicar fora da caixa de distribuição estatística. Passo 5 – Diferenciando os objetos criados (itens) Para diferenciarmos os objetos criados pelo Source, utilizamos uma propriedade das entidades do Flexsim chamada: Item Type. Com ela podemos diferenciar os tipos de items (Item Type) através de uma variável numérica que também pode ser usada para mudar a cor da entidade. Para modificar/definir os valores dessas variáveis utilizaremos as triggers do Flexsim. Entidade Probabilidade Tipo de item Criança 20% 1 Mulher 50% 2 Homem 30% 3 Passo 5 – Diferenciando os objetos criados (itens) Triggers: São “espaços” no modelo de simulação onde podemos colocar códigos/algoritmos (as pré-definidas no FlexSim se chamam “Picklists” e também pode-se customizar de acordo com a necessidade do modelador) e, quando o modelo for executar a atividade descrita na triggers, ele executa o nosso código. Passo 5 – Diferenciando os objetos criados (itens) Então se colocarmos uma trigger no “OnCreation”, o código que definirmos lá será executado quando o Source for criar a entidade (item ou flowitem no FlexSim). Devido a isso, entidades diferentes (Source, Processors, Sinks,...) possuem triggers diferentes, uma vez que um processor não cria um item [por exemplo]. Se clicarmos no “+” ao lado da janela, veremos opções pré-definidas de códigos (Picklists). Passo 5 – Diferenciando os objetos criados (itens) Clique no “+” da trigger “OnCreation” e escolha a opção “Set Item Type by Percentage”; clique no “+” dentro da janela para adicionar novos casos (item types) e defina as porcentagens corretamente (deve somar 100%) Adiciona novos casos Porcentagem Tipo de item Passo 5 – Diferenciando os objetos criados (itens) Para facilitar a visualização, clique novamente no “+” da trigger “OnCreation” e clique no “+” no canto inferior esquerdo da janela (podemos adicionar mais de um código por trigger!) Passo 5 – Diferenciando os objetos criados (itens) Selecione a opção “Set Color By Case” e uma nova janela será adicionada. Não é preciso mexer em suas propriedades, o comando “getitemtype(item)” é próprio do Flexsim e associará a cada item uma cor correspondente ao tipo de item (1, 2 ou 3). Então feito isso, clique fora da janela e cliquem em “Apply” e “OK” Passo 6 – Diferenciando os tempos de processamento Já diferenciamos os itens e suas cores, agora devemos diferenciar o tempo de processamento de acordo com o tipo de item. Para isso vá no “Processor” e, ao lado de “Process Time” clique na seta e selecione a opção “Values by Case” Passo 6 – Diferenciando os tempos de processamento Adicione novos casos clicando no “+” e defina os tempos de processamento de cada item (lembre-se de que os tempos foram dados pela média e desvio, e devem ser convertidos para mínimo e máximo!) Desvio Média Máximo Mínimo Desvio Passo 6 – Diferenciando os tempos de processamento Adicione novos casos clicando no “+” e defina os tempos de processamento de cada item (basta adicionar um case e no campo “Time” de cada case, escrever a distribuição e colocar os valores dos parâmetros). Clique em “OK” e rode o modelo para checar se está tudo certo! A probabilidade de chegada de uma criança é de 20%, uma mulher de 50% e um homem de 30%. O tempo de simulação é de 480 minutos. Quantos clientes de cada tipo são atendidos e quantos estão no salão? Passo 7 - Definição do tempo de simulação e execução Clique na seta em preto localizado na barra principal entre “Run Time” e “Run Speed” para aparecer a tela abaixo. Selecione a opção “Specific Stop Time” e defina o valor referente ao que foi pedido: 480 minutos Durante a execução do modelo, a velocidade da simulação pode ser alterada deslizando-se o cursor da barra “Run Speed”, ou alterando seu valor na caixa ao lado: Passo 8 – Mostrando estatísticas básicas do modelo Clique em qualquer local do chão do modelo (para des-selecionar os objetos). A janela da direita deve ser de “Quick Properties”. Caso não seja, clique em “View”-> “Quick Properties”. Na barra em que deve aparecer “Show Names”, mude para “Show Name and Stats” Isso fará com que dados básicos sobre as entidades do modelo aparecem durante a execução. Alguns logo abaixo da entidade, outros disponíveis na janela da direita ao se clicar no objeto. Passo 8 – Mostrando estatísticas básicas do modelo Isso fará com que dados básicos sobre as entidades do modelo aparecem durante a execução. Alguns logo abaixo da entidade, outros disponíveis na janela da direita ao se clicar no objeto. Passo 9 – Direcionando o fluxo de itens Para sabermos quantos clientes de cada tipo foram atendidos, vamos redirecionar cada tipo de cliente para uma saída específica, para vermos o valor do “Input” em cada saída como o número de clientes “processados”. Para isso, clique duas vezes no “Processor” e vá na aba “Flow” Passo 9 – Direcionando o fluxo de itens Em “Output”, “Send To Port”, clique na seta ao lado e selecione a opção “Port By Case”. Com isso estamos indicando de que forma o processor deve proceder para enviar os itens na saída. Quando conectamos uma entidade a outra, criamos portas de entrada e saída de itens. Nesse caso temos 3 portas de saída do processor: para a “Saida1”, “Saida2” e “Saida3” Passo 9 – Direcionando o fluxo de itens Assim, definimos cada caso da mesma forma que nas porcentagens. Novamente o comando “getitemtype(item)” aparece, pois será utilizada [getitemtype(item)] a propriedade “item type” [getitemtype(item)] do item processado [getitemtype(item)]. Caso o tipo de item seja 1, então ele saíra pela Porta 1 e assim por diante.Passo 10 – Rodando o modelo Ao rodarmos o modelo obteremos: a quantidade de clientes do tipo 1, 2 e 3 processados (Input das “Saida1”, “Saida2” e “Saida3”, respectivamente); e a quantidade de clientes no salão (“CurContent” da “Espera”). É possível verificar que as porcentagens estipuladas inicialmente estão sendo cumpridas! Exercício 4: Resolver o mesmo problema anterior, porém deve-se verificar se é vantajoso ou não a contratação de um novo cabelereiro ao custo de R$0,25 por minuto (considerar o tempo no sistema de cada cliente). Desvio Exercício 4: Para isso considere que o custo de espera na fila por cliente de R$0,01 por minuto e que o ganho por cliente é conforme a tabela abaixo. Determine os ganhos por cliente, considerando os custos de espera e atendimento. Passo 1: A partir do modelo anterior, copie (Ctrl+c) e cole (Ctrl+v) o Processor “Cabelereiro” e faça as conexões como mostrado abaixo Passo 1: Dessa forma, todas as propriedades alteradas no “Cabelereiro” serão automaticamente copiadas para o segundo objeto. Passo 1: Lembre-se que a ordem de conexão das saídas é importante para a execução correta do modelo! Passo 2: Para avaliarmos o tempo no sistema de um cliente, precisamos adicionar um gráfico de “Time In System vs. Time”. Para isso, clique no botão “Dashboards” e em seguida em “Add Dashboard” Passo 3: Na nova janela é possível adicionarmos quantos gráficos se queiram. Na aba da esquerda, vá em “Staytime” e coloque um gráfico de “Time in System vs Time” Passo 4: Na mesma aba da esquerda, vá em “Staytime” e coloque um gráfico de “Average Staytime”. Uma nova janela se abrirá. Passo 5: Nesta nova janela deveremos selecionar o objeto do qual vamos coletar as estatísticas. Para isso clique no conta-gotas e em seguida clique na fila “Espera”. Passo 6: O nome da fila (“Espera”) deverá aparecer na janela como abaixo. Este gráfico registrará o tempo médio que um cliente permanece na fila (tempo de espera). Clique em “OK”. Passo 7: Para fazermos a análise financeira, ainda no dashboard devemos ir na biblioteca da esquerda e selecionar em “General” a opção “Financial Analysis”. Passo 8: Ao arrastá-lo para o dashboard, uma nova janela se abrirá. Da mesma forma teremos de adicionar os objetos que geram receitas e custos no modelo. Passo 8: Para isso vamos selecionar os seguintes objetos com o conta-gotas (Sample): “Cabelereiro2”, “Espera” , “Saida1” , “Saida2” e “Saida3”. Passo 9: O cabeleireiro 2 gera um custo de R$0,25 por minuto. Então definimos um nome para o custo e o valor de -0.25 na caixa “Amount Per Time”. Passo 10: A “Espera” gera um custo de R$0,01 por minuto por cliente. Então na caixa “FlowItems” adicionamos 3 itens clicando no “+”. Passo 11: Temos 3 tipos de itens, então devemos definir o custo para cada tipo na coluna “Amount Per Time” de -0.01 (note que após a digitação, o valor fica em vermelho entre parênteses). Passo 12: No caso das saídas, cada uma recebe um tipo de item diferente. Então para cada uma devemos clicar no “+” em “FlowItems” e definir o tipo de item e a receita por entrada (“Amount Per Entry”). Passo 13: No caso das saídas, cada uma recebe um tipo de item diferente. Então para cada uma devemos clicar no “+” em “FlowItems” e definir o tipo de item e a receita por entrada (“Amount Per Entry”). Passo 14: No caso das saídas, cada uma recebe um tipo de item diferente. Então para cada uma devemos clicar no “+” em “FlowItems” e definir o tipo de item e a receita por entrada (“Amount Per Entry”). Passo 15: Finalizado, clique em “OK” e seu “Dashboard” deve estar parecido com isso: Clique em “Run” para rodar o modelo e responda às questões propostas. Fixed: Custos/Receita fixos; Time: Custos/Receita proporcionais ao tempo; State Fixed: Custos/Receita fixos por estado da máquina; State Time: Custos/Receita proporcionais ao tempo que a máquina permanece em um estado; Flowitems Fixed: Custos/Receita proporcionais a quantidade de itens; Flowitems Time: Custos/Receita proporcionais a quantidade de itens por unidade de tempo; Conclusão Vemos então que a contratação de mais um cabelereiro é vantajosa, mesmo que o tempo ocioso aumente, uma vez que os custos fixos e variáveis da contratação e da espera dos clientes não superam a receita. Mini-Projeto: Refazer o problema anterior considerando as seguintes modificações: Considerar que o tempo entre as chegadas segue uma distribuição triangular de parâmetros 7, 9 e 11. Considerar os tempos de atendimento na tabela do próximo slide. Testar o sistema para 2, 3, 4 e 5 atendentes e verificar como se comporta a redução do tempo do cliente no sistema. Estruturar os resultados obtidos em 1-3 em um relatório. Mini-Projeto: Obrigado! Edit ando Objetos Movimentando Objetos – Para mover um objeto em torno do modelo, clique nele com o botão esquerdo do mouse e arraste para a posição desejada. Você também pode mover o objeto para cima e para baixo na direção z usando a roda do mouse ou segurando ambos os botões esquerdo e direito do mouse no objeto e arraste o mouse para frente e para trás Dimensionamento e Rotação – Para editar o tamanho e rotacionar o objeto, selecione a opção do menu principal em Edit> Resize and Rotate Objects. Quando você clicar no objeto, você deve ver três setas coloridas ao longo de cada eixo do objeto. Para redimensionar o objeto, à esquerda, clique no eixo que deseja redimensionar, e arraste o mouse para cima ou para baixo. Para editar a rotação do objeto, clique na seta correspondente ao eixo que deseja girar ao redor, e arraste o mouse para frente ou para trás. Você pode querer aumentar ou diminuir um objeto em 5% mantendo a tecla Ctrl pressionada e segurando as teclas K o u L. Nota : Você pode querer alternar entre r edimensionamento e r otação dos objetos para estar ativado ou desativado, ao selecionar a opç ão do menu principal em Edit > Resize and Rotate Objects . Prop riedades – Todos os objetos do Flexsim tem um número de páginas ou Guia s onde estão as variáveis de informação que podem ser alteradas pelo modelador com base nos requisitos atuais do modelo. Para abrir estas prop riedades d ê um duplo clique sobre os objetos (f ilas, equipamentos, operadores, esteiras ou outros). Destruindo ou deletando objetos – Para deletar um objeto, simplesmente selecione - o e pressione a tecla de lete.