Getting Started on Systems.

Activities and Entities.

All the systems that we are interested in can be broken down - analysed - into a sequence of activities. In addition, all these systems work on things. Sometimes they will be objects like machined parts or assemblies but they just as well may be intangible; for example, a telephone call or a piece of information. In general terms, however, the things that systems work on are called entities.

As an illustration, let's consider a simple manufacturing system:

Manufacturing Cell

Of course this is not a full engineering drawing, it's been simplified into a diagram that provides just the amount of information needed to see how it works.

In the system, the sequence of activities is as follows:

A machining process converts raw material into unfinished blanks that are then fed onto a carousel conveyor belt. At some point they are diverted off the line into a second machine that processes them into finished parts which are then fed back onto the carousel. There they join unfinished parts circulating around the carousel. Finally, at another point, the finished parts are diverted off the carousel into a packing process for dispatch.

Note, in simulation terms the unfinished blanks and machined parts are two different entities.

You can probably already imagine what such a system would look like in reality. And, no doubt, imagine its cost. Now, this is a simple system, relatively easy to design and optimise. But, what if it was more complex? Well, getting things right can be difficult and potentially expensive. Can you afford to make a mistake?

Thankfully, using SimKit, you can build systems just like the one above, but inside your computer, for nothing, simply by defining the activities that you want it to do. And what's more, you can add bits on, take bits off, make things run faster or slower.... In fact, you can do almost what you like with it without spending anything. When you're sure it's right - that's when you spend your money.

Convinced? Ok, so let's take it one stage further and look at our example system in terms of its activities and lay it out as we would do for a flow chart. It's a way of simplifying the representation of our system even further. In this technique we use blocks to represent activities and then connect them together using a line with an arrowhead to illustrate the direction of flow. SimKit uses an elaboration of this technique to represent systems. Quite simply, the blocks are replaced by symbols that represent standard activities. Look at the diagram below:

This is our manufacturing system as SimKit sees it. Note that each symbol is given a name designed to be representative of the activity or function that it represents. For example, 'Move' is used to represent the movement of entities (boxes, machined parts, television sets, etc.) on a conveyor belt, whilst 'Job' represents a machining activity (process).

At first view, this diagram may take a little time to understand, but the overall structure should be apparent. Note particularly the other activities associated with the conveyoring, particularly the two instances of ‘Dfilt’. In one case it is used to divert or ‘filter’ unfinished parts to the machining process and in the second, finished parts to the packing process. Note also, the symbols named Time and Count. These two activities are not part of the actual manufacturing system but are added so that the simulation can be controlled and the number of entities that the system outputs can be counted. Both of these activities can be programmed to stop the simulation when certain conditions are met. You will become familiar with these and other ancillary control activities as you learn how to use SimKit.

Another point to note is that only one ‘Move’ activity has been used in the above diagram. That is, all the activity associated with the movement of entities (finished and unfinished parts) on the conveyoring has been 'lumped' together into one activity. You can experiment with SimKit later, to see if this is a valid technique to use in order to keep models as simple as possible and still be able to extract valid behavioural information.

Models and Parameters.

Actually, the block diagram of interconnected system and control activities shown above is what we can call a model. Of course, modelling is a very useful technique in all sorts of fields from aircraft design to hydrodynamics. At one time the only way was physical modelling. That is, building a small version of the 'plane for a wind tunnel, etc., but these days much can be done by building models inside a computer and using programs like SimKit to make things easy.

SimKit enables you to build models in a very simple way. All that you do is place symbols in your computer screen workspace and interconnect them. If you have used any of the popular flow/organisation chart applications, then you can use SimKit.

Building a model of your system is the first phase in the process of obtaining information from it. Obviously, one thing that you have to do is provide parametric information about all the activities that your system involves, and this is the second phase. Again SimKit makes this process easy because it prompts you for all the right data. For example, in the above model you will choose a single entity character to represent unfinished parts and another one to represent finished parts. By entering this data in a parameter setting dialog box the two instances of the ‘Dfilt’ (filter) activity then know which is which and can act accordingly.

After setting parameters, you then run the model, watch the simulation and gather your data.

Running the Simulation.

From the screen shot of SimKit in action, you will notice that SimKit is more than just a flow chart drawing program. When you chose a symbol to represent a system activity, what you are doing is selecting a 'component', but, unlike in the real system it is not a piece of hardware but software, an autonomous module of computer code that mimics the activity of real hardware. When you interconnect the symbols, what you are doing is establishing links between all the model's software modules so that they can exchange information and data. Then during the simulation the symbols change into ‘active icons’ so that information can be displayed to indicate the behaviour of the system. This includes numerical data as well as in-context animations that convey the purpose of individual system components to the untrained eye. Actually, simulations can generate rather a lot of data, far more than can be displayed within the 'active icon', so SimKit supplies a range of monitors, a Process Activity Monitor is shown above, and supplementary data panels that can be used when required. You can arrange them on the screen anywhere you like. Finally, when the simulation halts, or you pause it for any reason, SimKit writes out a full report file giving you all the data in numerical form. But this isn't the end. It's not the amount of data that counts but what you can do with it, and here SimKit can help in two ways. Firstly an analyser utility enables you to quickly display all the important data - process activity, buffer/store content activity and much more - in graphical form. You can even clip and paste the graphs into your own documents. Secondly, another supplied utility allows you to filter just the data you need and convert it to a form that can be imported into standard office applications, for example, Excel, for further analysis.

Simulation, Events and Event Time.

Now we have seen what simulation can do for us let's look at the principle behind how it works.

Simulation works by enabling us to look into the future. Of course, we haven't a crystal ball but we simply postulate how systems might behave, or evolve, based on what they are made up of.

Of course, real systems work in a smooth continuous fashion but when considering them for analysis it can be just as valid, and much more convenient - because it imposes finite limits - to make them evolve in a series of discrete steps or Events. This is like breaking down a busy day into a time schedule. Here, an Event is something of significance, like a meeting or an appointment, and, really, we don’t have to consider what happens in between. SimKit has to work like this, but unlike our daily schedule, which may have irregular gaps, it requires a fixed time interval between Events - even if nothing actually happens. Remember, in simulation we are looking into the future so we can't be certain and have to accept that something might. SimKit, then, uses a regular 'clock' interval, the Event Time to mark the passage of events. The equivalent time interval in the real system that it represents is vitally important because everything is related to it. For example, in conveyoring systems it is usual to choose the time it takes for an Entity to move over its own body length as the Event Time. Process times are then calculated as a multiple of this period. Thus we can talk of Process Events, the number of events it takes to process an entity.

Simulation and the Event Period.

As we have seen, when running a simulation, SimKit uses a regular ‘clock’ to represent the Event Time. This simulator clock has a period termed the 'Event Period' . As far as the simulator is concerned the actual time interval between Events does not matter. What matters is the speed at which it runs and this is controlled by the Event Period. The Event Period is usually a compromise between simulation run-times and having the opportunity to watch how the system behaves - an important use for simulation. Actually, you can easily change it. A glance at the screen shot above reveals the presence of a model controller bar that contains appropriate buttons to either slow or quicken the simulation.

 


(c) ROSIM Systems. 2001.