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):
Payment and queue in front of the turnstile
Pass the turnstile (when it's unlocked)
Choice a cab (A or B Cab) and wait for the opening of the door
Go up the stairs near one of the weighing machine before the timer
(setted in the settings panel) ends
Enter in the input door of the cab (if the weight is too much he will get out and wait the next cabs)
Wait the end of the "Loading" phase
The wheel turns for some revolutions
Wait for the opening of the output door
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:
Empty Cab: when the weight sensor indicates that there are less than 10Kg
Loaded Cab: when the weight is less than 400Kg and more than 10Kg
Max Charge Exceed: when the weight is more than 400Kg
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):
Doors dynamics
Weighing machines dynamics
Cabs dynamics (swing,acceleration, ...)
The Manual mode of the PIs is considered totally managed by Emergency mode (view the related paragraph for more details)
The people weight, really present on the wheel, isn't considerated as in a normal condition as the difference between
the real case and the worst case is very small.
At design time it has been considered the worst case (all the cabs are full with person that weight "Max people weight")
Bearing and engine malfunctions aren't considered because the operator has no possiblities: he can only get to Emergency mode
How Ferris wheel works - Operator's point of view
From the operator's point of view the ferris wheel has many function modes:
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:
when there are many people and he wants to speed up the process (less death time and unuseful wait)
when there are few people and he wants to jump the loading phase for the empty cabs
when the weight sensor is in failure
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:
Teta set point (green). This is the value of the input of the Regulated Process
Teta of Process value (red). This is the value of the encoder connected on the wheel
Teta Tracking Value (white) used in manual control (Emergency Mode)
Indicators
This subsection is composed by many indicators:
First Cab Position: it shows the position of the first cab present in the wheel.
The operator can find it useful because he can know how long the end of a run.
Wheel Status: it contains information about the movement of the wheel with some alert about security.
Some Indicators that show the current velocity/acceleration that the cabs undergo.
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:
If the problem is critical he must press the "Emergency mode" button and unload people manually
Otherwise if the problem is easy to resolve he can repair manually it and resume the process.
The malfunctions managed are:
Door's Malfunction
Weighing machine's malfunction (if the weighing machine is blocked in the bottom position the operator must press "Emergency mode" and call fire dept)
Brief virtual instruments description
In this paragraph is reported brief and basilar vi description. The implemented VIs are:
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:
Computation of Dynamics and Waveform parameters with the proper VIs (in the top most)
Logical control of the phases (Running, Setup, ...) (in the left most)
In the middle-top there are two VIs: Logic and Signal Generator
In the middle, at the second level from up to down, there is the regulated process with its feedback
On the bottom of regulated process there is the computation of the tangential and angular velocities and accelerations
Finally there is a part that simulates the leds that represent the state of the Ferris Wheel (Moving, brakes, stopped) and the leds
that signal the exceed of the maximum velocity/acceleration
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:
Setup.vi: it controls the setup phase
One Step.vi: it controls the turning of the wheel in the phase "Unloading/Loading People"
Running.vi: it controls the turning of the wheel in the phase "Running"
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:
Falling Edge (integer): it's the difference between the current and the old value
Rising Edge (integer): it's the difference between the old and the current value
Changed (boolean): it's true when a trigger is revealed.
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
It's recommanded to not change the morphological parameters at run time
The number of the cabs must be pair
A person out from the output door of a cab is considered out from the attraction and it can't go back (he's out of danger)
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).