FlexSim Knowledge Base
Announcements, articles, and guides to help you take your simulations to the next level.
Sort by:
O link que segue leva a um vídeo no qual é apresentado um exemplo de Análise de Sistema utilizando-se o módulo FloWorks FlexSim. No vídeo, um modelo Portuário é analisado com o objetivo de encontrar o gargalo do Sistema. Vídeo Tutorial: FloWorks - Análise de Modelo Esperamos que aproveitem mais este vídeo tutorial.
View full article
O link que segue leva a um vídeo no qual é apresentado um exemplo de modelagem utilizando-se o módulo FloWorks FlexSim. No vídeo, modela-se um processo de fabricação de Suco de Laranja, desde sua extração até seu envase. Recursos do FloWorks utilizados no vídeo: ItemToFlow: Extração do suco FlowPipe: Transporte do fluido FlowTank: Armazenamento FlowMixer: Processo de mistura de conservantes Vídeo Tutorial: FloWorks Exemplo de Modelagem Esperamos que aproveitem mais este vídeo tutorial.
View full article
O link que segue leva a um vídeo no qual é apresentada uma Visão Geral sobre o módulo FloWorks FlexSim. Os tópicos abordados no vídeo são: O que é o FloWorks? Qual a aplicação do módulo FloWorks? Qual a diferença entre FloWorks e o módulo de Fluidos? Quais os principais objetos da biblioteca FloWorks? Algumas propriedades interessantes do Módulo. Vídeo Tutorial: FloWorks Overview Esperamos que aproveitem mais este vídeo tutorial.
View full article
Rápida demonstração de como usar o Graphical User Interface para controlar todo o modelo de simulação, desenvolver um painel de controle ou cockpit para alterar propriedades específicas de objetos dentro do modelo de simulação ou ainda, destruir ou recriar variáveis de objetos de forma a customizar ainda mais seu modelo. Tudo isso usando a estrutura do 'Tree' no FlexSim e também o recurso GUI, disponível no ícone em 'Tools'. Veja em nosso canal da FlexSim Brasil no Youtube.
View full article
O presente vídeo tem como objetivo demostrar três formas de sincronizar eventos no FlexSim através da espera (Wait) por um período X, ou até algum outro evento (Wait for Event). Sincronização de Tarefas - WAIT no FlexSim (3 das n possibilidades)
View full article
O presente tutorial tem como objetivo demonstrar de forma resumida a construção e alteração de um modelo utilizando a biblioteca "Bottling", da qual utiliza o MassFlowConveyor, que é basicamente um conveyor desenvolvido pela equipe da FlexSim USA para a simulação principalmente de linhas de envase. Mass Flow Conveyor no FlexSim 2017 Update 1
View full article
We have released a beta version of our Emulation module. The Emulation module adds a tool that enables communication between FlexSim and OPC / Modbus Servers and PLCs. Help files are included in the FlexSim User Manual to assist you. This beta version must be installed with FlexSim 2017 Update 1. 32-bit and 64-bit installers can be downloaded through the downloads section in the Modules tab of the FlexSim website: FlexSim Downloads The following are known issues: Asynchronous Write for OPC Connections is not working. The option has been disabled. Please post any feedback or bug reports either as a comment to this article or you can email them to dev@flexsim.com
View full article
Lembre-se que para o desenvolvimento desse passo a passo, foi utilizado a versão 2017. Update 1, caso você esteja modelando utilizando outra versão algumas alterações podem ser necessários. Nesse exemplo será construído um modelo que usa listas para relações básicas de roteamento de itens. Os itens serão enviados de três filas para um dos quatro processos.Uma lista de itens (item list) será utilizada para resolver esse problema. As filas irão empurrar os itens para a lista e os processos irão puxar os itens da lista e processa-los. De início será construído um modelo puxado simples,e depois um modelo puxado com restrições e priorizações. Passo 1. Montar Layout Para esse exemplo, crie um novo layout. A Figura 1 mostra quais objetos devem ser adicionados Observe que NÃO há ligação entre as filas e os processos. Figura 1- Layout exemplo 2 Passo 2. Configurar source Na janela de propriedades do source, em inter-arrivaltime coloque exponential (0 ,2.5,0). Figura 2- Inserir inter- arrival time 2.Na aba FLOW, em send to port abra a lista de opções e escolha a opção random port. Figura 3- Sent to port 3. Na aba trigger, adicione uma Oncreation trigger para configurar o tipo e a cor. OnCreation> Data > Set item type and color> duniform(1,3). Figura 4- Configurar tipo e cor Passo 3. Adicionar lists Para adicionar a lógica é preciso criar um item list. Em Toolbox> > Global list> Item list(Figura 5). Figura 5- Adicionar item list Ao clicar em Item list irá abrir janela de propriedades da lista (Figura 6), por agora apenas feche a aba. A sua lista deve estar nomeada como ItemList1. Figura 6- Janela de propriedades Itemlist **Não é necessário definir nenhuma das configurações agora. Apenas feche a janela de propriedades.** Passo 4. Configurar queue Para configurar a queue para empurrar os itens para a lista, clique sobre cada uma das filas> Aba Flow> Send to port> abra a lista de opções> Escolha use list> Push to item list. CONFIRA se o o nome da lista corresponde ao nome da lista que você criou. Figura 7- Push to item list **OBS: Faça o Passo 4 para TODAS as filas** Passo 5. Configurar Processos Para fazer com que os processos puxem da lista, configure cada input de processos para todos os 4 processos. Clique em um dos processos, na aba Flow vá na parte de input, marque a opção pull strategy. Na aba de escolha da estratégia(Pull Strategy) >Use list>Pull from item list. Deixe o campo QUERY em branco. E confira se o nome da lista escolhida é o mesmo da lista que você criou no Passo 3. Figura 8- Estratégia puxada **Obs: Faça o Passo 5 para todos os processors.** Faça um test rápido! Reset seu modelo e confira como estão as entradas e saídas da sua lista, para verificar se até aqui as coisas estão funcionando da maneira correta. Nas propriedades do ItemList1, vá na aba General e clique no botão a esquerda “ View Back Orders”. Figura 9- View Back Orders Sua lista deve estar parecida com a da Figura 10. Mudando apenas os nomes dos processos de acordo como os seus estão nomeados. Figura 10- Janela de pedidos pendentes A Figura 10 representa que os processos começaram a puxar da lista, mas como não há itens que foram empurados para a lista, eles estão aguardando para poderem puxar e se tornarem fulfilled(preenchidos). Execute o modelo (Run) e você perceberá os itens entrando nas filas e sendo empurrados para a lista (View entries-Figura 9) fazendo com que os pedidos pendentes sejam atendidos e então começam a ser processados. Quando um item é empurrado para a lista e existe pedidos pendentes o item será imediatamente puxado da lista. Dessa forma o pedido pendente irá se tornar Fulfilled e será removido da lista de pedidos Back Orders. Eventualmente, todos os processos irão puxar os itens e dessa forma a lista de pedidos pendentes se tornará vazia, já que todos estão em operação. Então a lista de entradas vai crescendo(Figura 11) até que um dos processos termine o processamento e requisite puxar um item da lista. Figura 11- Entradas na lista aguardando serem puxadas Quando os itens são empurrados para a lista, eles são adicionados no fim da lista. Assim se o sistema puxado não utilizar prioridades como parte da sua tomada de decisão, os itens irão ser puxados como FIFO( first-in-first-out), ou seja, seguindo a ordem de quem chegou primeiro sai primeiro. O mesmo acontece com os pedidos pendentes, a primeira máquina que fica disponível puxa o primeiro item que está na lista. Salve seu modelo e ele está pronto para ser executado. ex2.fsm Modelos experimentos Para testar diferentes configurações das operações puxadas faça os seguintes cenários. Cenário 1- Filtrar por tipo de item Considere que um dos processos (Processor 1) pode apenas processar o tipo de item 2. Para vincular essa lógica na simulaçao utilize um Query nesse processo. Clique sobre o processo que deseja restringuir a entrada ao tipo 2 de item, na janela de propriedades, vá em FLOW > Pull strategy > em Query digite a restrição WHERE Type == 2 (Figura 12). Figura 12- Adicionar query para tipo de item Salve o modelo como Exemplo2_cenario1. Reset seu modelo e execute. ex2cenario1.fsm Cenário 2- Puxar pelo LIFO Agora todos os processos puxam seguindo a ordem último a chegar primeiro a sair (LIFO) ao invés do padrão FIFO, o que significa que o item mais recentemente adicionado na lista deve ser o primeiro a ser puxado . Crie essa lógica na simulação, implementando um Query. Abra o arquivo do exemplo 2, e salve como exemplo2_cenario2. Para cada um dos 4 processos faça o seguinte: Clique no processo >vá em FLOW > Pull strategy > em Query no adicionar> ORDER BY> AGE (Figura 13). Figura 13- Lógica LIFO Repita o 1) para TODOS os processos. Salve o modelo e coloque para executar. ex2cenario2.fsm
View full article
Nesse vídeo, fazemos um overview sobre o FlexSim e demonstramos como modelar diretamente pelo 3D usando as conexões padrão disponíveis no software e as diferentes formas de inserir os objetos na área de modelagem (Grid). Também demonstramos como analisar de forma bem básica as estatísticas de cada um dos objetos e uma rápida introdução sobre o Dashboard e a variável estatística presente em cada um dos objetos individualmente. Para assistir o vídeo, acesse nosso canal do youtube.
View full article
We have released a beta version of our bottling module. The module adds two new objects to the FlexSim 3D Library. The Mass Flow Conveyor (MFC) and the MFC Motor. The Mass Flow Conveyor allows you to define multiple lanes for flow items to move along. It is often used in bottling lines. Help files are included in the FlexSim User Manual to assist you. This beta version must be installed with FlexSim 2017 Update 2. 32-bit and 64-bit installers can be downloaded through the downloads section in the Modules tab of the FlexSim website: FlexSim Downloads The following are known issues: Acceleration implementation is not complete. Crossline Multiplier implementation is not complete. MFC.Motor property 'sections' is not working. Please post any feedback or bug reports either as a comment to this article or you can email them to dev@flexsim.com
View full article
Update June 27, 2017: Upgrade versions FloWorks 17.1.2 and FloWorks 17.0.5 are now available. These releases resolve an incompatibility that may result in errors on starting FlexSim when you install FloWorks in combination with certain other modules. If you want to use the (beta version of) the Emulation module, for example, you should upgrade FloWorks to this latest version. There are no functional changes. If you are using the LTS version (17.0.5) of FlexSim you should upgrade to FloWorks 17.0.5. Download FloWorks 17.1.2 if you are using FlexSim 2017 Update 1 (FlexSim 17.1.2). Both versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Bugs may be reported to support@talumis.com. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license. For any questions, please email support@talumis.com. Release notes From FloWorks 17.0.4 to 17.0.5, and from FloWorks 17.1.1 to 17.1.2: Bug fix: Fixed errors when loading FloWorks with other modules dependent on Process Flow, such as the Emulation module. From FloWorks 17.0.3 to 17.0.4, and from FloWorks 17.1.0 to 17.1.1: The following bug fixes and usability improvements are available in both versions: Bug fix: Flow Conveyor with multiple inputs sometimes created too many update events. Bug fix: Flow Conveyor now allows input port at end of conveyor. Usability improvement: Pick list options updated to dot syntax, e.g. centerobject(current, 1) is now current.centerObjects[1]. Usability improvement: Changed object list dropdown to be more descriptive about input, output and center connections. Usability improvement: Changed input/output amount trigger template to increase current input/output instead of previous trigger amount Usability improvement: Added FloWorks options to User Event code dropdown. The following bug fixes apply to version 17.1.1 (FlexSim 2017 Update 1) only. Bug fix: Fixed exception when changing to first product of product table using scripting (thanks to Julio for reporting it) (product table is only available in FloWorks 17.1). Bug fix: Flow To Item releases item when pulling object downstream is unblocked (Bug was only present in FlexSim 17.1). Bug fix: Flow To Item now uses item.Type labels instead of deprecated setitemtype (getitemtype/setitemtype was deprecated in FlexSim 17.1). The release notes of older versions of FloWorks can be found here.
View full article
Attached are three models that can be used to see the VR capabilities of FlexSim. oculus-warehouse-demo4.fsm (built with FlexSim 7.7) oculustouchdemo-6.fsm (built with FlexSim 17.1) The zombie production game was also updated for VR. These models were primarily designed and tested with the Oculus Rift, but they work with the HTC Vive as well. The HTC Vive requires a more powerful graphics card than the Oculus Rift does to achieve similar performance. You need to maintain 90+ frames per second (File > Global Preferences > Graphics > Show FPS Counter) in order to avoid judder with the HTC Vive. The Oculus Rift will remain smooth at 45 FPS or higher due to asynchronous spacewarp in their driver. In any model in 17.1, you can teleport around by pointing and pressing the Vive touch pads or Oculus Touch thumb sticks as buttons. The position where the thumb presses the button on the Vive or the direction that the thumb stick is rotated on the Oculus Touch will affect the direction you are looking when you teleport. This control scheme is similar to the Oculus Home controls. Moving via teleporting minimizes the motion sickness felt by users who are unaccustomed to VR. In the touch demo model, you can push buttons to release conveyor merge lanes, move operator figurines to change the operator assignments, and control the crane. The code that handles the touch inputs is in the ModelOnPreDraw user command. See VR model custom code for a version of the model with more comments in the code. The warehouse demo model was built in 2015 and doesn’t have any interactive elements that work with the Oculus Touch or HTC Vive controllers. For optimal tracking, after you press the VR Mode button in FlexSim and put on the headset, make sure you recenter the headset in the VR settings while standing or sitting in the middle of your play area and looking straight forward. On the Vive, push the system button to open the Steam VR overlay, then press the Settings button near the bottom-right corner, then look straight forward and press the Reset Seated Position button. On the Oculus, press the Oculus home button and then press the Reset View in App button in the upper-right corner.
View full article
We normally try not to introduce changes in a bug-fix release that require module developers to recompile their modules using new flexsimcontent headers. However, 17.0.4 included a bug-fix that added a virtual method on the SimpleDataType, which changes the virtual tables of any classes that inherit from that class. Because of this change, you will need to update your flexsimcontent and recompile your modules in order for them to work properly with 17.0.4. We apologize for this inconvenience. We have added a "v17.0" branch to the Module SDK repository that includes the updated flexsimcontent that you will need to compile for 17.0.4.
View full article
The FloWorks module has been updated for FlexSim 2017 Update 1 and FloWorks 17.1.0 is now available (10 April 2017). This release contains new features (see the Release Notes section below). It does not work with the LTS version of FlexSim 2017 (17.0.x). The upgrade version FloWorks 17.0.3 has been released for FlexSim 2017 (17.0.4). It contains all the bug fixes from FloWorks 17.1.0 but it does not contain new features and does not work with FlexSim 2017 Update 1 (17.1.0). NOTE: Due to a change in FlexSim, a new version was released on April 12. If you are using FlexSim 17.0.0 - 17.0.3, please use FloWorks 17.0.2, which is functionally identical. Both versions can be found in the Downloads section of your FlexSim account on the 3rd party modules tab. Bugs may be reported to support@talumis.com. About FloWorks FloWorks is a 3rd party module developed and maintained by Talumis BV ( talumis.com). It provides faster and more accurate modelling and calculation of fluid systems than the default FlexSim fluid library. It is especially useful within the oil, gas, and bulk industry both for production and supply chain optimization. This module requires a FloWorks license. Note that FloWorks 17.1.0 may require an upgraded license, see the Release Notes below. For any questions, please email support@talumis.com. Release notes FloWorks 17.1.0 (April 11, 2017) This version of FloWorks supports FlexSim version 17.1.0. Added a multi-compartment loading controller to allow multiple tanks on the same Task Executer to be loaded in sequence and/or in parallel. Added the mass flow conveyor, an accumulating version of the Flow Conveyor. Instead of using numeric product IDs, you can now pre-define a product table in your model, with fixed product names and colors. See the Products page in the FloWorks User Manual for more information. As of now, FloWorks license versions will need to be upgraded with every release, similar to your FlexSim license. (Existing users will automatically be requested to upgrade their license using the Request Upgrade button in the FlexSim License Activation window.) All bug fixes included in version 17.0.2, see below. FloWorks 17.0.3 (April 12, 2017) Version 17.0.3 of FloWorks supports FlexSim 2017 LTS versions 17.0.4 and onwards. This version is a re-release of FloWorks 17.0.2 (see below) due to a change from FlexSim 17.0.3 to 17.0.4. Which FlexSim version are you using? Which FloWorks version should you download? 17.0.0, 17.0.1, 17.0.2, 17.0.3 17.0.2 17.0.4 (LTS) 17.0.3 17.1.0 17.1.0 FloWorks 17.0.2 (April 11, 2017) This version of FloWorks supports Flexsim versions 17.0.0 - 17.0.3. Bug fix: Code headers correctly use Object instead of treenode for current and item so pick list items like "Object connected to center port" work again. Bug fix: Utilization no longer reported as -100% for object with maximum flow set to 0 on reset. Bug fix: Flow control no longer breaks down indefinitely once run with one connected object. Bug fix: Fixed exception when copy/pasting object with Flow Arrows enabled. Bug fix: Added missing icons for options in FloWorks submenu of Toolbox. Bug fix: Flow Conveyor now correctly detects changes in ratio of incoming components where total flow stays the same. Bug fix: ChangeTeEdgeSpeed command no longer throws exception when used on Task Executer not attached to Travel Network. Bug fix: Berth and loading point clear their contents on reset, like all Fixed Resources do. Older versions The release notes for older versions of FloWorks (FloWorks 17.0.0 and FloWorks 17.0.1) for FlexSim 2017 can be found here.
View full article
FlexSim 2017 Update 1 is available. If you have bug reports or other feedback on the software, please email dev@flexsim.com or create a new idea in the Development space. Release Notes Changed FlexSim to store strings using UTF-8 encoding. Added support for Oculus Touch controllers. Implemented OpenVR for HTC Vive compatibility. Improved the shadow frustum calculation in VR so that shadows look better. Added a global preference for changing the resolution of the shadow map. Added support for nested queries in SQL. Added ROW_NUMBER as a SQL keyword. Implemented F2 and Esc functionality in tables. Updated the table view and labels tab to be more robust with different datatypes. Added Table(name) method for referencing Global Tables. Added more FlexScript classes, including List, AGV, Conveyor, and TrackedVariable. Added more properties and methods to existing FlexScript classes, including Object stats and additional string methods. Improved scientific notation for literals in FlexScript. Added a start value to tracked variables. All tracked variables in the model now reset on model reset. Changed itemtype references to referencing an item's type label instead. Improved the Person flowitem's 3D shape. Added repeating events to time tables. Added a short description field to user commands. Made the gantt charts and time charts scroll with a fixed time window. Removed the global table Clear on Reset checkbox and replaced it with a reset trigger. Added new visualization options for the Rack. Added duplicate buttons to the Excel Interface window. Added a duplicate option to the Toolbox's context menu. Taskbar now shows experimenter/optimizer status and runtime based upon stop time. Disabled deleting objects while the model is running. Fixed an issue with the undo history when pasting over nodes with pointer data. Fixed issues with using the ternary operator after properties. Fixed an issue with writing to Access databases with read-only fields. Included fixes listed in 17.0.4. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Removed the FlexSim WebServer application from the default installation and developed a new WebServer application using Node.js that streams the 3D view much faster. The new WebServer can be downloaded through FlexSim's Online Content. Existing models will continue to work with itemtype, but new models should be built using a type label instead of the itemtype attribute and commands. Process Flow Added an Assign Released Resource(s) To field on the Release Resource activity. Added functionality to allow you to Ctrl+Drag activities in an activity block. Added a right-click menu option and Alt+Click to open the Token View. Added a sampler to the assign labels Label Name field so you can sample other activities or tokens to get label names. Added a right-click menu option to open multiple views of a Process Flow. Added an Assign To property to the Create Tokens activity. Added a Make Array label aggregation type to the Batch. Added Center in View buttons for fields with pointer data. Added a name property to the Token FlexScript class. Fixed a bug with duplicating Process Flows using the Toolbox. Backwards Compatibility Note: the following changes may slightly change the way updated models behave. Updated the Pull From List activity so it does not assign a null label when nothing was pulled or the token was released early (manually). Previously, if you used a Max Wait Timer or Max Idle Timer (or some other mechanism) to release a token from a Pull from List prematurely, the label specified in the Assign To field would be created with a value of NULL. Now, the label will not be created. This may break other models that are checking to see if the label value exists. For example, saying objectexists(token.pulled) will throw an exception if the pulled label is never created. This can be easily remedied by changing the code to objectexists(token.pulled?). The ? will cause the value returned to be nullvar when the pulled label does not exist. Universal Edit fields are now more strict when accessing labels on a token. Previously, typing token.labelThatDoesNotExist would happily return NULL and move on. Now the Universal Edit will throw an exception if the label doesn't exist. This does not include Universal Edit fields that assert labels, for example the Assign To fields.
View full article
Nesse vídeo demonstramos como importar modelos de animações para os executadores de tarefas ou recursos através de arquivos criados em software específicos para modelagem de animações e disponíveis em repositórios como o Mixamo. Veja o passo clicando em BoneAnimationVideo Também descrevemos o passo a passo de uma parte, logo abaixo. Estes são os passos que seguimos para criar os operadores com bone animation no FlexSim. (opção disponível a partir da versão 7.7) Copie o conteúdo deste diretório "Pasta Operador" para o seu diretório FlexSim/ fs3d / Operator para que ele tenha 5 opções de operadores ao invés de apenas 3; Abra o FlexSim; Arraste um Operador; Clique duas vezes nele para editar suas propriedades; Selecionar Masculino - High Res ou Feminino - High Res na opção do Shape na guia Operador; Pressione Aplicar; Reinicialize o modelo (Isso é necessário para atualizar as animações porque esses arquivos possuem mais animações do que o padrão); Clique com o botão direito do mouse no Operador na vista 3D e selecione Editar> Animações Existem agora 12 animações disponíveis; Execute estas animações usando listas de seleção, utilizando um Triggers para Iniciar e ou Parar a Animação eu sua Modelagem no 3D ou então use a atividade Run Animation na criação da sua lógica com o ProcessFlow. Abaixo você encontra os arquivos necessários para incluir os operadores em alta resolução em seu FlexSim e também uma grande quantidade de animações de dança extras adicionadas! Faça o download aqui do material explicando sobre o bone animation. Faça o download aqui do material usado no passo a passo do vídeo deste artigo. Inscreva-se e acompanhe nosso canal de videos no YouTube FlexSim Brasil -------------------------------------------------------------------------------------------
View full article
Neste modelo anexo simples mostramos como usar TrackedVariable para conseguir alguns outputs customizáveis dentro do FlexSim e uma das funções do recurso Global Variables, outro recurso que pode ser usado durante a modelagem para customizar os trabalhos de criação de lógicas e também customizar alguns outputs de seu sistema. O passo a passo como elaborar esse modelo encontra-se no vídeo em Passo a Passo TrackedVariable e Global Variable trackedvariables-e-global-variable.fsm somente na versão 2017 do FlexSim.
View full article
Neste exemplo passo a passo iremos demonstrar como fazer uma otimização em seu modelo no FlexSim, utilizando o Optimizer, ferramenta OptQuest da OptTek, a qual é um add-in opcional no FlexSim. Com esta ferramenta você incorpora Metaheurísticas e orienta seu algoritmo para Otimizar, buscar as melhores soluções. Essa abordagem utiliza soluções funcionaram bem e as recombina em novas e melhores soluções. Vamos lá! Assista o vídeo em nosso canal do YouTube e acompanhe a montagem do modelo passo a passo abaixo: Modelo de Otimização Passo a Passo Para este tutorial, vamos examinar uma situação muito simples. Um único operador carrega o item de uma fonte para um processador. Depois que o item é processado o operador o carrega para um segundo processador que leva mais tempo para processar do que o primeiro. Após o segundo processador termina de processar o item, o operador leva-o para a saída. Agora vamos supor que queremos aumentar a Produção (que também está vinculado à receita) deste sistema, ajustando a posição dos processadores. Se cada processador pudesse ser movido até três metros à direita ou à esquerda, onde cada um deveria ser colocado? Seria muito difícil intuitivamente saber como colocar ambos os processadores para maximizar a produção. A fim de resolver este problema com precisão, vamos usar o Otimizador. Agora, obviamente este é um cenário drasticamente simplificado, mas muitas vezes na vida real você tem situações em que você quer ver como vários layouts afetam a Produção geral. Esta é uma implementação muito simplista de tal experiência. Passo 1: Construindo o Modelo Modelo Crie um novo modelo usando Segundos, Metros e Litros para unidades. Objetos Crie um Source, dois Processors, um Sink, um Dispatcher, e um Operator. Coloque esses objetos como mostrado abaixo e faça as conecções. Posições Defina a localização dos objetos de acordo com a tabela abaixo: Dispatcher e Operator não precisam estar em um lugar específico, mas não devem estar alinhados com o resto dos objetos. Lógica Defina a seguinte lógica: Selecione no Source1, Processor2, e Processor3 para usar transporte (Use Transport disponível no menu de propriedades rápidas (Quick Properties). Selecione o tempo de processo para o Processor2: normal(10, 2) (também disponível no disponível no menu Quick Properties). Selecione o tempo de processo para o Processor3: normal(12, 3). Defina a posicão inicial do Operator na sua posição atual. Passo 2: Definindo o Experimento O restante deste tutorial trata do uso do Experimenter, encontrado no menu Statistics. O Otimizador usa a maioria das funcionalidades já presentes no experimentador. Criando Variáveis Abra a janela Experimenter. Posicione a janela para que você possa ver os processadores no modelo, bem como a janela. Em seguida, para Processor1 e, em seguida, Processor2, siga estas etapas: Clique no processador na vista 3D. Clique no botão Referência de Posição nas Propriedades Rápidas e defina a referência de posição para Direct Spatials. Clique na seta para baixo ao lado do botão +. Selecione Sample no menu variables. Isso coloca o cursor no modo de Amostra. Selecione uma amostra do campo de posição X no menu Propriedades Rápidas clicando nele. Isso adiciona uma nova variável no Experimenter. Defina o valor para o Cenário 1 da nova variável clicando duas vezes na célula e digitando o novo valor. Defina o nome da variável clicando duas vezes no nome atual. Defina o nome sendo Proc1X para o Processor1 e Proc2X para o Processor2. Criando Performances de Medida Selecione a aba Performance Measures na janela do Experimenter, então: Clique no botão + para adicionar uma nova medida de desempenho. Nomeie a nova medida de desempenho Produção. Clique no botão e selecione a primeira opção Statistic by individual object. Selecione o Sink para o objeto e Input para a estatística. Para selecionar o objeto simplesmente digite "/Sink" (sem aspas) no campo do objeto ou faça o seguinte: Clique no botão +. Selecione o Sink através da lista de objetos do modelo. Após clique no botão Select quando você terminar. Otimização Além de utilizar o Experimenter para definir explicitamente cenários, você pode usar o Otimizador. O Optimizer criará automaticamente cenários e, em seguida, testará esses cenários, tentando encontrar um cenário que melhor atenda a um objetivo. Projetando a Otimização Vá para a guia Design do Optimizador na janela do Experimenter. Você verá que as duas variáveis criadas anteriormente estarão presentes; Isso ocorre porque o experimentador e o otimizador compartilham as mesmas variáveis. No entanto, o otimizador precisa de informações adicionais sobre essas variáveis. Especificamente, você deve especificar: Type - O tipo de uma variável determina quais tipos de valores são possíveis para uma determinada variável. Variáveis contínuas podem ter qualquer valor entre o limite superior e inferior. Lower Bound - O limite inferior especifica o menor valor possível que o otimizador pode definir para a variável. Upper Bound - O limite superior especifica o valor mais alto possível que o otimizador pode definir para a variável. Step - Para Variáveis Discretas e Design, o passo especifica a distância entre valores possíveis, começando pelo limite inferior. Group - Para as variáveis de permutação, o grupo especifica qual conjunto de variáveis de permutação essa variável particular pertence. Para esta otimização, queremos permitir que os processadores se movam três metros para cada lado. Como não estamos limitados a posições específicas dentro desse intervalo, ambas as variáveis de posição são Contínuas. No entanto, precisamos definir os limites inferior e superior de cada variável. Para editar valores na tabela, clique duas vezes na célula de interesse e insira o novo valor. Insira os valores mostrados abaixo: O passo final do projeto é definir a função objetivo. A função objetivo está presente, mas em branco. Edite seu nome para Faturamento. Em seguida, clique no campo da função de seta. Um botão aparecerá no lado direito. Clique neste botão para exibir uma lista de todas as variáveis e medidas de desempenho. A função objetivo é um valor derivado de qualquer um ou de todos esses valores. Selecionar Produção, Isso irá adicionar essa medida de desempenho para a função objetivo, e colocar o cursor para a direita e para o final. Adicione o texto * 500 para que a receita seja igual o [Produção] * 500. Deixe a direção em Maximize, porque queremos maximizar o Faturamento. Como temos apenas um objetivo, o modo de pesquisa pode permanecer em Single. Passo 3: Executando a Otimização Vá para a aba Optimizer Run na janela do Experimenter. Então: Defina Run Time sendo 10000. Este é o tempo que o otimizador executará cada configuração do modelo (potenciais soluções) para a avaliação. Defina o Wall Time sendo 0. Normalmente, isso significa quanto tempo o otimizador pode ser executado em tempo real. O valor 0 significa que não tem limite de tempo. Defina Max Solutions como 50. Isso significa que o otimizador tentará não mais de 50 soluções diferentes para encontrar a solução ideal. Clique no botão Optimize. A janela do Experimenter alternará automaticamente para a guia Resultados do Otimizador, Optimizer Results. O otimizador então começará a executar a seguinte sequência: Determinar valores para Proc1X e Proc2X. Executar um modelo com esses valores para 10000 segundos. Avaliar as variáveis e medidas de desempenho. Calcula a função objetivo. Classifique esta solução. Usa as informações desta solução para criar uma nova solução - novos valores para Proc1X e Proc2X. Repete novamente a partir do passo 2. O otimizador pode avaliar várias soluções ao mesmo tempo. À medida que a otimização progride, o gráfico de Resultados do Otimizador é atualizado e mostra o progresso do otimizador. Uma vez que o otimizador avalie 50 soluções, uma mensagem aparecerá indicando por que o otimizador parou. Neste caso, ele dirá que o otimizador atingiu o número máximo de soluções. Se algo der errado, a mensagem conterá informações sobre o erro. Passo 4: Analizando os Resultados Assim que a otimização for concluída, o gráfico de resultados do otimizador será semelhante a este: O Eixo Y é chamado de "Single Objective". Para este exemplo, é sinônimo de Faturamento. As melhores soluções são destacadas. Os círculos com uma borda mais clara ao seu redor representam melhores soluções. Para um único objetivo, as 10 melhores soluções são marcadas desta forma. Como a otimização progrediu, o otimizador ficou melhor e melhor na criação de boas soluções, de modo que as últimas 15 soluções foram todas muito boas. Isso é chamado de convergência, e é uma maneira de saber se uma otimização é concluída; Se o valor objetivo não tiver melhorado por um tempo, pode ser que ele não melhore com mais pesquisas, e a melhor solução atual deve ser usada. Respondendo à Pergunta Inicial O objetivo dessa otimização foi descobrir onde posicionar os dois processadores. Agora podemos encontrar a resposta a esta pergunta com muita facilidade. Passe o mouse sobre a melhor solução (o maior círculo azul) no gráfico; Uma pequena janela aparecerá. Clique nesta solução para selecioná-la. Agora, no painel Opções de gráfico, altere o Eixo Y para Proc1X e o Eixo X para Proc2X. A melhor solução (e todas as outras melhores soluções) é encontrada onde Proc1X é maior, e onde Proc2X é menor. Lembre-se que todas as 10 melhores soluções produziram os mesmos resultados; Neste caso, ter os dois processadores próximos um do outro é a melhor configuração para este modelo. Configurando o Modelo para a Melhor Solução Pode ser muito útil configurar o modelo para visualizar a melhor solução. Para fazer isso, clique no botão Export Scenarios. Este botão leva todas as soluções selecionadas e cria cenários para elas. Volte para a guia Scenarios na janela Experimenter para ver a nova solução. Agora, a partir do menu suspenso " Choose default reset scenario" na extrema direita, selecione o novo cenário. Em seguida, resete o modelo para aplicar esses valores ao modelo 3D. Segue o modelo referente ao artigo: modelo-optimizer.fsm Inscreva-se e acompanhe nosso canal de videos no YouTube FlexSim Brasil
View full article
Neste Tutorial iremos demonstrar como criar uma apresentação do seu modelo no FlexSim, utilizando a ferramenta Flypath (Presentation Builder). Com esta ferramenta você poderá criar sua apresentação de forma rápida fazendo um filme de seu modelo. Nela você poderá definir vistas e os tempos entre as transições destas vistas no modelo. Apresentação a qual você poderá gravar em um vídeo de alta definição no próprio FlexSim, utilizando outra ferramenta chamada Video Recorder. Vamos lá! Assista o vídeo em nosso canal do YouTube e acompanhe as informações explicativas abaixo. Presentation Builder Após construir seu modelo acesse o Flypath para definir como o seu modelo se movimentará durante a apresentação, clicando em: Tools / Visual / Flypath Na janela Presentation Builder você irá criar um novo Flypath1 clicando em Então é só você selecionar a vista em seu modelo e clicar em , no centro da janela para definir uma vista, dentro do Flypath1 então movimente o cursor de tempo e selecione uma segunda vista, clicando novamente em . Este será o tempo em que a apresentação levará para chegar até a segunda vista definida por você. Você pode criar vários flypaths cada um com seu próprio conjunto de flypoints. Quando executado, a visualização 3D voará sequencialmente ou mover-se-á para cada flypoint no flypath. Por padrão, flypaths não estão associados com velocidade de simulação. Não se preocupe, o Presentation Builder vai definir para você todo o movimento entre as 2 vistas. Após concluir sua apresentação é só clicar em retornar para a primeira vista e rodar o Flypath , então você verá a apresentação levando em conta as vistas e o tempo definido no seu modelo em 3D. O Presentation Builder tem seu próprio conjunto de botões Iniciar e Parar. No entanto, ao usar o gravador de vídeo, você pode especificar um seu flypaths para ser executado durante a gravação de seu arquivo. Você também pode usar os botões e para caminhar entre as vistas, flypoints, definidas. Video Recorder Após construir sua apresentação utilizando o Flypath vamos gravar esta apresentação em vídeo! Para isso acesse: Tools / Visual / Video Recorder Na janela Video Recorder você irá configurar o seu vídeo para poder iniciar a gravação! Primeiro clicando em você cria um novo arquivo File Path de vídeo para ser exportado para seu computador. Lembramos que este procedimento pode ser feito para um conjunto de videos. Na seleção Codec, você pode escolher qual o codec que será usado para a gravação do seu vídeo, o mais comum é gravarmos em MPEG-4, (*.mp4). Selecione na sequencia a quantidade de frames por segundo que o seu vídeo será gravado, selecione por exemplo 30 para a opção FPS. Na etapa seguinte, Size, você poderá definir a resolução e o tamanho do seu vídeo Neste exemplo iremos utilizar a opção "use basic sequence" na qual iremos definir o Flypath1 criado como referencia para a gravação do vídeo. Logo é só definirmos o tempo para o início e fim do vídeo e sua velocidade no modelo 3D. Lembre-se que o tempo do Flypath tem que estar dentro do tamanho do vídeo, caso contrário o Flypath irá se repetir. Exemplo: Para um Flypath de 20 segundos e uma velocidade de Speed 4, teremos que gravar um vídeo de 5 segundos. Lembre-se de utilizar a Amostra "Sample" para selecionar no seu modelo 3D a vista a qual o vídeo iniciará a gravação em View, utilize a primeira vista definida no seu Flypath. Após concluir as configurações clique em Record, no canto esquerdo da janela Video Recorder. Pronto! Seu vídeo será gravado e poderá ser acessado em: Segue o modelo referente ao artigo: modelo-flypath-videorecorder.fsm Inscreva-se e acompanhe nosso canal de videos no YouTube FlexSim Brasil
View full article
Como criar animações customizadas em máquinas ou equipamentos no FlexSim é o que demonstramos nesse rápido vídeo. Customizamos uma animação no objeto processor, criando a movimentação real de uma maquina envolvedora de filme stretch. Veja o tutorial completo de como executar essa tarefa passo a passo, acessando o Canal Youtube da FlexSim Brasil. Ainda neste artigo, estou anexando uma pasta chamada 'Wrapper' com os arquivos em 3D para os interessados que quiserem criar as customizações acessarem e usarem os arquivos. wrapper.raranimationcreator.fsm
View full article
Top Contributors