Parametric Simulator of a Automated Ferris wheel

Design and implementation of a Ferris wheel's simulator and the GUI (graphical user interface) of the operator's control panel.


Authors:

Filippo Donida 667268
Gianmario Fontana 667030


Table of Contents

  1. Introduction
  2. How Ferris wheel works - Customer's point of view
  3. Physical model
  4. Block diagram
  5. Angular speed waveform study
  6. Cab Details
  7. Weighing Machine Details
  8. Default component details
  9. Abstractions
  10. How Ferris wheel works - Operator's point of view
  11. Main GUI
  12. Malfunctions Management
  13. Brief virtual instruments description
  14. Some considerations
  15. Known problems


Introduction

In this page is reported a model of a Ferris wheel, a possible control schema and a Labview 7 Student Edition implementation.
With the aim to make this program more original and interesting it has been decided to design a ferris wheel that serves contemporary two cabs a time for minimizing unloading and loading time.
Moreover, it has been added two weighing machines (one for each simultaneously served cab) that report the loading state of a cab (full, empty or overloaded). Each weighing machine has a near stair for entering on the cab (Loading Phase) and another one for leaving the cab ("Unloading Phase").
All the morphological and mechanical parameters of this project (such as number of cabs, radius of the wheel and many other parameters) can be setted in order to make a comparison between different configurations.
It is supposed that the Ferris wheel has a single A.C. engine, a gear transmission, a big bearing on the wheel rotation axis and an angle position sensor that determines the position of the cabs (for more details read the paragraph titled "Default component details").

The picture below shows a rappresentation of the enviroment where the ferris wheel is plunged:





How Ferris wheel works - Customer's point of view

A customer must follow these operations to get a run with the ferris wheel (these informations are relevant for main vi testing):
  1. Payment and queue in front of the turnstile
  2. Pass the turnstile (when it's unlocked)
  3. Choice a cab (A or B Cab) and wait for the opening of the door
  4. Go up the stairs near one of the weighing machine before the timer (setted in the settings panel) ends
  5. Enter in the input door of the cab (if the weight is too much he will get out and wait the next cabs)
  6. Wait the end of the "Loading" phase
  7. The wheel turns for some revolutions
  8. Wait for the opening of the output door
  9. Go out through the output door, go down the stairs and go to the way out.


Physical model

This Ferris wheel model is comprehensive of three main components: the electrical engine (with electrical scheme), the mechanical transmission and the wheel. The default engine is a Rotor A.C. electrical engine with a power of over 200KW.
The default transmission is a Bonfiglioli component, that has some parameters, such as the efficiency coefficient, transmission ratio (reported in equations).
The default bear is a SKF component, that has some parameters, such as the bear diameter, etc..
Below is reported a little picture of each one, with a brief legend (for more details refer to "Default Component Detail" paragraph). We think that it's more important (and easier to understand) to list and justify model's physical formulas than report a long description.


A short legend for parameters' abbreviations:


Now it's possible to write work balance equations:



And then considering all single components:



Another short legend for parameters' abbreviations:



Physical equations:



Remembering previous equations:



Replacing single work terms:



Observation:

Instead of M wheel parameter it is opportune to consider the bearing rolling friction coefficient B (derivated from bearing official site documentation), because it's supposed that all the friction of the wheel is caused by bearing. To calculate this coefficient (B) has been used the formula reported below (as it has been suggested from bearing official site):



Default paramenters:

Default parameter can be caluculated as follows:



After some passages we can obtain the general equation in time domain:



The previous equation transformed with Laplace in frequency domain:



Likewise the relation between the engine and the wheel's angular position can be written as follows:



Observation:

The electrical time constant, in mechanical study, can be simplified, in fact it is really small than the mechanical one, so the engine inductance be can ignored.



To simplify the formula we can assume that:



The equation becomes:



And with previous simplification:



Then we can identify time constant as below:



Remembering that:



Previous equation can be transformed:



The equivalent block diagram:


Block diagram regulation study

In this paragraph is reported a possible implementation of regulation control of the Ferris wheel model. In particular it's supposed that the model is:




Naming G1(s) and G2(s) as follows:



Supposing to use a falling down regulation:



The internal loop is analized separately from external:



It has got these formulas:



Considering loop function Bode diagram:



This can be resolved with a very simple regulator:



For the external loop regulation, the internal function has been trascurated because its critical frequency is more far than one decade from this one.
The H(s) function (in the figure below) is very important for external loop regulation:



H(s) function can be calculated as follows:



In picture below is shown a possible regulation. It's possible to impose equidistancy (one decade) of critical frequency (green) from zero (blu circle) and form pole frequency (blue x). This regulation grants about 80 degrees of phase's margin. It's important to remember that all values are parametric and this is only one of the possible Bode diagrams:



The zero and pole frequency of regulator can be calculated (with the imposition of two decades between them. These values help to determine the formula for desired loop function gain:



It's now possible to calculate the desired gain for regulator as follows:


Angular speed waveform study

In this paragraph is reported an accurate study of the waveform velocity imposed to the wheel, with particular attention to cabs' maximum acceleration. It's supposed to use a particular (trapezium) angular speed, as in picture below. To simplify it's supposed that acceleration and deceleration values are the same (in modulus).



The relative angular speed formulas are:



Acceleration:



Position:



The acceleration modulus is equivalent to the sum of two components: the normal one and the tangential one. The acceleration modulus can be calculated as follows:



Relative equations:



Imposing that acceleration modulus equals a rate of gravity acceleration and supposing that the time of maximum acceleration is for t=Ta:


Where alpha is a rate that will determine the constraints.

Previous equation can be transformed as follows:



The constraints comes out from preceding:



A possible interpretation could be:


These values have been saved as default values.

To verify if the previous considerations were correct, all the equations have been inserted into a worksheet, with the result below:


In this graph it is easy to note that the point of maximum acceleration is for t=Ta, and t=Tc, corresponding to the "ending acceleration" and "starting deceleration" phases.

Below is reported a paticular of the graph, the constraint is respected.



Observation:

The "Running" and "Unloading/loading" phases' acceleration constraints are the same, except for one parameter: the amplitude of time interval (from x1 to x2), that depends from the number of cabs.
This parameter represents the interval time in whici the wheel is moving at a constant speed. In particular, having N cabs and considering the unloading/loading phase, the wheel will move of:



The "Running" phase's interval time, before described, depends from cab's number but also from number of revolutions (R).
In this case the wheel moves:



With formulas described previously, it's possible to calculate the time necessary to move from the current couple of cabs to the next couple, that is:



Cab Details

Each cab can transport people during a run, it has two doors (the front one to get in and the back one to get out), two end stroke sensors (one for each door). These devices determine if the doors are opened or closed. There are also two obstacle detectors for each door (one for the opening and another one for the closing).



To allow that the weighing machines work correcytly (for more details see the next paragraph) each cab has a particular hooking with the wheel. This expedient permits to lift a cab (by the weighing machine) without any problem.




Weighing Machine Details

As reported before, the Ferris wheel has two weighing machines (one for each simultaneously served cab (A and B Cab)). They lift up when they have to weight and move down when they don't still serve (in order to permit the turning of the wheel).
Next to each weighing machine there are two stairs, one to permit people the access to the cabs and another one for getting out them.
A person, who wants to get a run, must do the in-stairs, walks on the weighing machine and enter in the cab. Then he must go out the cab, walk on the weighing machine and walk down the out stairs.
Each weighing machine has a weight sensor that has three possible states:



Four position sensors are installed on each weighing machine in order to signal the presence of both the cab (A and B).
The button "Position Sensor" present on the main panel simulates the activation of all these sensors.





Default component details

In this paragraph there are some references to three foundamental components that determine default values.

Engine
The engine that moves the wheel is a Rotor 200BLB electrical engine. The torque S1 duty is 840 Nm, standard speed range 610-2300 rpm, dimension 680x398x398 and about 600 kg weight.
The pictures below show the engine and his power diagrams.





Bear
The transmission is a SKF component (SKF-NU 6092 M). Other informations are avaiable at the
SKF's official site .
Below it has been reported a technical image.



Gear transmission
The default transmission is a Bonfiglioli 321 L4, visit Bonfiglioli's official site for more informations about it.

Structure
To determine sensible values for Ferris wheel weight, charging people time, rpm, etc. we have referred paricularly to Fabbri Gruop's official site.
Below has been reported an example:



Abstractions

At design time it has been made some semplifications (in order to making easier the control):


How Ferris wheel works - Operator's point of view

From the operator's point of view the ferris wheel has many function modes:

Initialization

When the main VI starts the program enters automatically in this function mode. The first thing that it does is to initialize all local variables and to create the array that contains all the cabs. Then, it closes all the doors and automatically goes in "Stop Mode".
In this mode all controls present in the main panel of the GUI are ignored (for reasons of security).





Running

In this modality the wheel turns for the selected revolutions and stops when the cab, that has been served at first, is in position. A pair of cabs are in Position when all the position sensors present on the weighing machine are active (for more details read the paragraph titled "Cab's Details").
At the beginning of this phase if "Position Sensors" is not true the program automatically goes in "Stop" (for a reason of security).





Unloading/Loading People

In this functioning mode the people present on the wheel are unloaded and new people are loaded. The operator must choose out of two different modality: "Automatic Mode" and "Manual Mode" (with the switch present on the main panel). In "Automatic Mode" the operator is not allowed to do nothing in order to concentrate his attention on the visual control of the flow of people that enter and exit from the cabs. Differently, in the "Manual Mode" is requied an active contribution as the operator must enable manually the sub-phases (from the main panel) and must manage manually the overloading of a cab (the automatic opening of a door when max weight exceed are disabled).
The operator have to choose the "Manual Mode" in different situations: As the wheel serves two cabs at time the first cab is called "A Cab" and the second is called "B Cab" (see the Weighing Machine details).
At the beginning, if "Position Sensors" doesn't see any cab, the program automatically goes in "Stop" (for a reason of security) and if the wheel is still moving the program stops it.
Now, each weighing machine goes up and the out-doors are opened in order to permit people to get out from the two cabs (A + B). Than people are allowed to go down from the out stairs present near the weighing machines and leave the attraction).
If "Automatic Mode" is activated, when both the values of the two weight sensors (one for A Cab and another for the B Cab) signal that the cabs are empty the out-doors can be closed. Else, in the "Manual Mode", the progamm waits the pushing of the button that shows the end of the unloading sub-phase ("End Unloading A + B Cabs").
Then, in-doors are opened and turnstile is unlocked in order to permit people going up the in stairs for entering the cabs. In Automatic Mode (when the timer stops) the program lock the turnstile and the people (who has passed it) have some seconds to go in the cabs before the in-doors are closed. In "Manual Mode" the timer that lock the turnstile is replaced by the button "End Loading A + B Cabs".
At this point, in "Automatic Mode" if the weight sensors value (of the Cab A and B) indicates that there is an overloaded cab, the in-door is opened and the program waits some seconds to permit people to get out from the cabs. After, the in-door is closed and the control is repeated.
If the weight is ok the weighing machines (present below the A and B Cabs) go down.
If "Automatic Mode" is on, the wheel turns to the next two cabs and repeats all the operations and when all cabs are served the program goes automatically in "Running mode".
In "Manual Mode" the user must select manually the button "Next Cabs" or "End Unloading/Loading people". In the first case the wheel turns until gathering two rising edges of the "Position Sensors" and in the second case the program goes to "Stop".

When the ferris wheel is empty (at the beginning of the working day) the wheel doesn't have to unload people so the operator can hold pressed the button "End Unloading A+B Cabs" to avoid the Unloading Phase.
In the same way when the operator wants to do the last run can hold pressed the button "End Loading A+B Cabs" for avoid to load other people.
Moreover if the operator wants to test the functioning of the wheel without people he can hold pressed both the buttons.





Stopping/Stopped

In this working mode the set point is setted to the first value taken by the process (the first value of teta out taken in this modality).
From this mode it's possible to select all the available functioning modes.





Setup

This modality must be selected by the operator: he sets the correct position of the wheel and resets the cab counter ("Current Cab"). In this modality the wheel turns very slowly, waiting the rising edge of the "Position Sensors".





Emergency

In emergency situatio the operator must select this functioning mode for blocking all current phases ("Emergency mode" has the maximum priority).
In this modality the operator is allowed to move "manually" the wheel by using "Manual SP" that permits to set the Set Point (for security only incremental/decremental variations are allowed).
The operator can also control the doors of each cab: first he has to type the password in the text field and then push the button "Cabs Manual Keylock". Now it's possible to select the functioning mode of each door with the choice "Manual Mode:". There are four modes: Stop, Open, Close and Free. When a door is in "Free Mode" the people can open it manually.
For exit from this modality the operator must press the "Stop" button.





Main GUI

The graphical user interface is divided into many parts:
  1. Chart
  2. Indicators
  3. Main Panel
  4. Turnstile Control
  5. Weighing machines Control
  6. Cabs' Control
  7. Internal and External PI Indicators
  8. Parameters and settings




Chart

This chart reppresents the trend of :


Indicators

This subsection is composed by many indicators:


Main Panel

This is the most important section of the GUI that control the basic phases of the system. If there aren't malfunction the operator can control all the process from here.
It's divided into tree parts:

The first part contains phase indicators (Running, Unloading/Loading People, Stop, ...), some button that control this macro-phases and a switch for Manual/Automatic Mode (for more details about the difference between Automatic and Manual mode view "Unloading/Loading People").
With the aim to make more clear the sequence of the operations this panel contains a text field that show information about the current operation.



The second section controls the sub-phases of the "Unloading/Loading People" phase. When the program needs a user's interaction, the "Status" shows a message that describes the requied interaction.



This part contains a button that simulate the position sensors present on the weighing machines and an indicator that shows the last cab identified by the sensors.
"Manual SP" permits to set manually the Set Point (for security only through a increment/decrement). This control is enabled only in "Emergency mode" and in the other functioning modes it's ignored (it follows the current process value for avoid peak on triggering).




Turnstile Control

This part shows informations about the turnstile that controls the flow of people, such as the status (locked/unlocked) and how many people are entered from when the turnstile is unlocked. The button "Incoming Person" simulate a person that goes through the turnstile.


Weighing machines Control

This panel shows the status of the two weighing machines, "Weight Sensor Output" allows to simulate the output of the weight sensor and "Create Malfunction" simulates a generic malfunction of the weighing machine (for more details view the paragraph "Malfunctions Management").


Cabs' Control

This part shows informations and permits to control the input and the output doors of all the cabs hooked on the wheel.
On the top of the panel is present "Cabs Manual Keylock" that permits, after the insertion of a password ("psw"), to control manually the doors ("In/Out door control"). Of course this is possible only in "Emergency Mode".
In the "In/Out Door Status Panel" are present indicators about the status of the door, a obstacle sensor and a failure sensor.
On the bottom "In/Out Obstacle/Failure" contains some buttons that simulate a door failure and an obstacle in opening and in closing.


Internal and External PI Indicators

This panel contains some indicators about the external and the internal PI


Parameters and settings

This part contains all the settings used in this simulation divided into class. On the bottom are present some parameters that are calculated in function of others.
"Response Velocity" controls the velocity of the response as it's directly connected with the "b" parameter of the external PI.
"Max cab Angular Acceleration" represents the maximum value of the global acceleration (tangential + angular) that a person present on a cab undergo.


Malfunctions Management

All the malfunctions are managed with the same approach: the current operation is stopped and the system waits for the interaction of the operator.
He has to choose out of two possibilities: The malfunctions managed are:


Brief virtual instruments description


In this paragraph is reported brief and basilar vi description. The implemented VIs are:

VI's Hierarchy:




The Ferris Wheel.vi

This is the main VI that controls all the system and contains the operator's GUI.
The block diagram interface is divided into some parts:

Create Cabs.vi

This VI creates the array that contains all the cabs hooked on the wheel. Clearly, it runs in initialization phase.


Init Cabs.vi

This VI initializes the array, that contains all the cabs (created by "Create Cabs"), to their default value.


Logic.vi

This VI contains all the logical control of cab's doors, the two weighing machines and the turnstile. The VI is organized in many nested case structures (that represent sub-phases) instead of using many sequence structures in order to obtains a continous update of the informations passed to the main VI ("The Ferris Wheel.vi") as the "main while" is here. In each case structure there's a dedicated variable that allows to control the correct sequence of operations.


Signal Generator.vi

This VI generates the waveform (set point) passed to the regulated system (for more details about the waveform view the related paragraph).
For each phase it has a different behavior and uses other VIs for revealing the end of a phase (it counts the rising edge of the Positon Sensor). These VIs are:

Calculate and verify Dynamical Parameters.vi

It calculates the dynamical parameters of the ferris wheel (such as Beff, Jeff, ...) and gets in input some parameters (Number of cabs, Wheel weight, Number of people,...).


Calculate and verify Waveform Parameters.vi

It calculates the parameters that are used to define the waveform passed to the regulated process (such as Acceleration/Decelleration Time,...). It can also verify the input parameters, in fact if it reaveals inconsistent constrains, it returns to output the default value of the parameters.


Cabs'Doors Controller.vi

This VI simultaneusly controls the input/output doors of the two cabs that are in loading/unloading zone.


A Cab's Controller.vi and B Cab's Controller.vi

These two VIs control the doors of a cab (A or B). It's been necessary divide the control in two different VIs in order to avoid conflicts from the timer present in the next VI.


A Cab's Door.vi and B Cab's Door.vi

These two VIs simulate the behavior of the cab's doors. Here it's been necessary to divide the control in two different VIs.


PI with Parameters.vi

This is a variant of a previous Proportional Integral regulator implementation, realized in class. The regulation parameters, in this vi, are not static values, in fact are passed before running, differently from original vi. This feature has been realized using paramenter's vectors.


Regulated Process.vi

This vi is a parametric model of both wheel dynamics and regulation (also these parametric). See paragraph that titles "Physical model" for more details.


Timer.vi

This vi represents the implementation of a timer that can be resetted on command and signals when expected time has elapsed.


Timer A.vi and Timer B.vi

These vi are a replication of Timer vi descipted below. This clones are necessary because are dedicated to Cab A/B (physically located in cabs).


Timer Turnstile.vi

This vi represents another timer model, analogue to precedent, but dedicated only to turnstile.


Transfer Function with Parameters.vi

This is a variant of a precedent transfer function implementation, realized in class. The transfer function parameters, in this vi, are not static values, in fact they are passed before running, differently from original vi. This feature has been realized using vectors of paramenter.


Trigger Edge.vi

This vi reveals the triggers of the input signal and reports it to output. There are three outputs:

Turnstile.vi

This is the turnstile implementation with malfunctions management. It's possible to set the maximum number of people that can go through it (per time), maximum time before auto-locking (it locks even if the number of people is minor that maximum allowed).
It signals if it is locked and how many people are gone through it. In the GUI is present a people counter. When a person go through the turnstile (the program detects a falling edge of the button "Incoming Person") this counter is incremented.
To unlock the turnstile is necessary to detect the higher value of "Unlock Turnstile" button.


Weighing Machine A.vi and Weighing Machine B.vi

These vi represent an implementation of two different weighing machines. The machines can go up (to weight) and go down, relative dynamics are granted by timers. The user must select manually the desired value of the weight sensor and he can also create a malfunction.


Some considerations


Know Problems


Simulation Speed

This project, to have a good simulaton, requires at least a Pentium IV and 512 Mb of fast memory (DDR). For slower computer is recommanded to press button at least for half second in order to permit the catching the event (however the simulation never seems near a real-time process).


References