Fuzzy Applications Using Control Logix

TW/PN Tangent alert!

Terry Woods said:

The point that I have always made, regarding PID (for these last 4 or 5 years), is that a programmer does NOT have control over how the response is generated, and ultimately, what the response is during the course of experiencing a particular situation.

There are PID gains to change how the system responds. What is it that you think you can do exactly with fuzzy control that you can't do with PID control or sliding mode control for that matter?

Some google searches:

inverted pendulum fuzzy logic
inverted pendulum PID
inverted pendulum sliding mode
 
Ron said...

Wouldnt it be fair to say that under the conditions you implied/stated that a 6TH case is involved?
Turn it ON, Turn it OFF, Increase it, Decrease it, or do nothing.
OR DO SOMETHING?


The act of turning something ON, OFF, Increasing or Decreasing is doing something!

Your explanation stated this to be a vector, 3D or maybe more dimensional aspect of control. Wouldnt that imply that the options of move up, down, left, right, 20 degrees SE, 200 degrees NW etc etc are involved? Therefore the 6th case could be DO SOMETHING, move right, slow down, speed up etc etc al?

I have reread this several times and I know increase it/decrease it was stated but that alone doesnt cover(all)movement if its involved..at least I dont think it does. Maybe it could though but not sure, seems to me it would make more sense to state it using move, turn or direction but DO SOMETHING kind of covers it for me.


Sounds like you are talking about a "robot" using that "6-Degrees of Freedom" thing. What I am describing includes that and goes well beyond.

The figure below shows a 3-D, orthogonal map. There are three axis: X, Y and Z. Each axis can represent any factor under consideration… Position, Velocity, Acceleration, Color, Temperature, … whatever!

There is an indication (at the end of the Blue arrow) of Where "it" is at. The "it" is the thing, or process that you are trying to control. There is another indication (at the end of the Red arrow) of Where "it" needs to be.

The Red and Blue Arrows are Vectors. The Blue Vector indicates the "current conditions" of the "factors" (X, Y and Z). The Red Vector indicates the "desired conditions".

3e6a43e00d6394cb.gif


In this example, each Vector is comprised of three components: an X-Component, a Y-component and a Z-Component. There could be any number of components… of course, the more there are, the more difficult it is to envision.

The direction of each component is fixed along its particular axis. The magnitude of the components is determined by projecting the vector onto each of the three axis.

The Blue Vector: Starting at the origin…
the X-Component extends to "a"
the Y-Component extends to "e"
the Z-Component extends to "c"

The Red Vector: Starting at the origin…
the X-Component extends to "b"
the Y-Component extends to "f"
the Z-Component extends to "d"

Now, assuming that this is a "simple" model, that is, the shortest path between "where it is" and "where it wants to be" is the best, then the Yellow Vector represents what needs to happen to get from "here" to "there".

The Yellow Vector is no different from the Blue and Red Vectors… except, the Yellow Vector represents the difference between those two vectors. The Yellow Vector starts at "Where it is" and ends at "Where it needs to be".

The Yellow Vector is not determined by projection onto the axis… rather, it is the other way round.
The difference between the Blue-X-Component and the Red-X-Component is indicated by the Yellow Arrow, on the X-Axis, from "a" to "b".

The difference between the Blue-Y-Component and the Red-Y-Component is indicated by the Yellow Arrow, on the Y-Axis, from "e" to "f".

The difference between the Blue-Z-Component and the Red-Z-Component is indicated by the Yellow Arrow, on the Z-Axis, from "c" to "d".

The Yellow Arrows along each axis represent the changes required, in each factor, to "Vector" (verb-form) the "current condition" to the "desired condition".

The Yellow Vector:
The X-Component of the Yellow Vector starts at "a" and extends to "b"
The Y-Component of the Yellow Vector starts at "e" and extends to "f"
The Z-Component of the Yellow Vector starts at "c" and extends to "d"

Each component of the Yellow Vector represents changes that need to be made in the particular factors to bring the system where it needs to be. Now, each of those factors is controlled by something. Those controllers can be made to operate independently or dependently. If left to run independently, then the resulting vector could end up looking like the path shown by the Green Arrows. In this case, the system resolved the X-difference, then the Y-difference and then the Z-difference. This might not be acceptable, but then again, it might be… "It Depends"!

If it is necessary to follow the Yellow Vector, then you want to have the three controllers dependent on each other. That is, you don't want any one of the controllers getting away from the other two. Now… you could use three PID Controllers…

With Fuzzy, your code looks at all three factors and makes decisions for all three factors based on the rules that you create and the "weighing" (the Yellow Arrows on each Axis) of the difference between "Where it is" and "Where it needs to be".

It could very well be that you don't want the Yellow Vector to be a straight line… maybe you need a curve of some type. That too can be developed by establishing the proper rules.

This same model can be extended to include any number of factors. You don't have to put 20-factors in one model… you can just as easily have 5-models, each with 4-factors. Not all of the factors in a model have to be controlled by that particular model… it could be that one or two of the factors are only monitored for the sake of controlling others.

As always, you are limited only by your imagination.
 
My understanding of fuzzy logic is one that is self modifying within constraints to acheive a specific output.

Traffic lights for instance. The output is the maximum traffic flow with the minimum of build back, else conjestion.

Fuzzy logic would thus modify timings such that in the morning traffic into the city would be given the longest time whilst in the evening traffic leaving the city is given the longest time. Major changes in the traffic volume on a specific day if not programmed are ignored in the modifications, eg unscheduled baseball matches, or non programmed holidays. The system would also increase the flows in a given direction if a substained increase in traffic happens, this might be say a new factory or shopping mall.

Contraints maybe that the lights have to complete a sequence within a given time, and say that a minimum of cars need to be allowed time to pass.

I used function blocks to acheive a program that would maintain a flow of jars to a machine. The program could learn new jar widths and adjust parameters to keep the flow constant. Contraints were that the feed line would run for the longest time before stopping. The feed of jars is not linear since jars are rejected if faulty or are layed horizontal, hence gaps appear and need to be closed up.

Hope this helps you with your thesis

Martin
 

Similar Topics

We have an input map that executes at the top of every scan. In most cases we are using the MOV instruction to copy the input data into a human...
Replies
7
Views
2,233
I meant to say most papers comparing fuzzy logic vs PID are frauds. Fuzzy logic can work but not better than PID with feed forwards. I know some...
Replies
13
Views
6,259
I am fan of expert system, and peter is trying to convince me of the opposite. BTW no hard feelings as both types have advantages/disadvantages...
Replies
19
Views
6,561
Can i use fuzzy controller for the controller purpose in programing? if yes how? any suggestion?
Replies
7
Views
2,075
Anyone use it? (we don't have it) A couple questions. If a function block were created in FD, would someone without FD be able to open the...
Replies
3
Views
2,293
Back
Top Bottom