Solid state equipment has operational characteristics differing from those of
electromechanical equipment. Safety Guidelines for the Application,
Installation and Maintenance of Solid State Controls (publication SGI-1.1
available from your local Rockwell Automation sales office or online at
http://literature.rockwellautomation.com
) describes some important
differences between solid state equipment and hard-wired electromechanical
devices. Because of this difference, and also because of the wide variety of
uses for solid state equipment, all persons responsible for applying this
equipment must satisfy themselves that each intended application of this
equipment is acceptable.
In no event will Rockwell Automation, Inc. be responsible or liable for
indirect or consequential damages resulting from the use or application of
this equipment.
The examples and diagrams in this manual are included solely for illustrative
purposes. Because of the many variables and requirements associated with
any particular installation, Rockwell Automation, Inc. cannot assume
responsibility or liability for actual use based on the examples and diagrams.
No patent liability is assumed by Rockwell Automation, Inc. with respect to
use of information, circuits, equipment, or software described in this manual.
Reproduction of the contents of this manual, in whole or in part, without
written permission of Rockwell Automation, Inc., is prohibited.
Throughout this manual, when necessary, we use notes to make you aware
of safety considerations.
WARNING
Identifies information about practices or circumstances that can cause
an explosion in a hazardous environment, which may lead to personal
injury or death, property damage, or economic loss.
IMPORTANT
ATTENTION
Identifies information that is critical for successful application and
understanding of the product.
Identifies information about practices or circumstances that can lead
to personal injury or death, property damage, or economic loss.
Attentions help you identify a hazard, avoid a hazard, and recognize
the consequence
SHOCK HAZARD
Labels may be on or inside the equipment, for example, a drive or
motor, to alert people that dangerous voltage may be present.
BURN HAZARD
Labels may be on or inside the equipment, for example, a drive or
motor, to alert people that surfaces may reach dangerous
temperatures.
Allen-Bradley, ControlLogix, RSLogix 5000, Logix, and RSLinx are trademarks of Rockwell Automation, Inc.
Trademarks not belonging to Rockwell Automation are property of their respective companies.
Use this manual to understand how to best use the features in RSLogix
5000 software version 16, FuzzyDesigner.
This manual describes the necessary tasks to:
• build fuzzy systems as block diagrams from components of the
FuzzyDesigner Component Library and use FuzzyDesigner
functions to complete the project.
• use, execute, and monitor the designed fuzzy system on
Rockwell Automation Logix5000 controllers.
• understand the fuzzy project, and how you can export it to the
XML format.
This manual is for application and control engineers, to enhance
functionality of control and decision making systems.
Conventions
Text that isIdentifies
BoldA value that you must enter exactly as shown
ItalicA variable that you replace with your own text or value
CourierExample programming code, shown in a monospace font so
you can identify each character and space
Enclosed in bracketsA keyboard key
7Publication LOGIX-UM004A-EN-P - March 2007
8 Preface
Notes:
Publication LOGIX-UM004A-EN-P - March 2007
Introduction
Get Started with FuzzyDesigner
TopicPage
Understanding FuzzyDesigner9
Fuzzy Logic and Fuzzy Control Essentials12
Specifications and Features18
Chapter
1
Understanding
FuzzyDesigner
FuzzyDesigner is a software package for designing a fuzzy system to
be implemented as a Hierarchical Fuzzy System (HFS). Fuzzy systems
can be used in the following applications:
• Industrial automation and control systems
• Process diagnostics and intelligent monitoring systems
• Artificial intelligence
• Decision-making and forecasting
Hierarchical Fuzzy System
FuzzyDesigner enables application and control engineers to enhance
the functionality of control and decision making systems in various
branches of industry.
FuzzyDesigner includes a library of components you can use to
design a fuzzy system that includes nonlinear input-output mapping.
You can use a hierarchical structure to decompose a complex fuzzy
system into smaller and simpler parts. This reduces the internal
complexity of a fuzzy model and results in fewer fuzzy rules and
provides easier insight into the system operation.
9Publication LOGIX-UM004A-EN-P - March 2007
10 Get Started with FuzzyDesigner
FuzzyDesigner is designed to work with Rockwell Automation's
Logix5000 family of controllers. A fuzzy system designed in
FuzzyDesigner can be exported to an L5X Add-On instruction (AOI)
format. You can then import the fuzzy AOI into any of your projects
as needed. Fuzzy AOIs can be used by any of the programming
languages (Function Block Diagram, Ladder Logic, or Structured Text).
With FuzzyDesigner, you can also monitor and update the selected
fuzzy AOI online, directly in the running controller. This is made
available through the RSLinx OPC Server.
The Intended Use of FuzzyDesigner figure shows the underlying idea
and intended use of the FuzzyDesigner software package used in
designing Fuzzy Add-On Instructions for Logix applications. You can
build smart components, based on the expert knowledge encoded in
fuzzy If-Then rules. You can use these components in the many
applications listed above.
Intended Use of FuzzyDesigner
Publication LOGIX-UM004A-EN-P - March 2007
Get Started with FuzzyDesigner 11
A Fuzzy Add-On instruction does not typically compete against
standard controls found in Proportional-Integral-Derivative Controllers
(PID). Fuzzy logic is a complementary tool, and fills functional gaps
not addressed in standard controllers such as PIDs or Model Predictive
Controllers.
A development cycle of fuzzy logic solutions for Logix applications
consists of multiple steps.
1. Design the fuzzy system in FuzzyDesigner.
2. Generate the fuzzy Add-On Instruction.
3. Integrate (import and instantiate) the fuzzy AOI to your RSLogix
5000 project.
4. Monitor and tune the fuzzy AOI running in Logix online by
using FuzzyDesigner.
Using FuzzyDesigner with RSLogix 5000 Software
np
o
q
If you are unfamiliar with fuzzy logic, the next section introduces
fuzzy logic terms and principles you might use in your fuzzy system.
Publication LOGIX-UM004A-EN-P - March 2007
12 Get Started with FuzzyDesigner
Fuzzy Logic and Fuzzy Control Essentials
This section introduces basic concepts used in a Fuzzy Add-On
Instruction. The designer should know how to deal with an
instruction’s inputs, outputs, and fuzzy If-Then rules that will be used
to define input-output mapping.
There are quite a number of systems or processes that are highly
nonlinear, not well understood from the formal description point of
view, or for which a mathematical model is not readily available. For
these systems or processes, there is often an expert that is capable of
supervising or controlling the process in a satisfactory manner. The
figure Nonlinear System Example illustrates the difference between
linear and nonlinear systems.
Nonlinear System Example
Publication LOGIX-UM004A-EN-P - March 2007
The decision making the expert uses in control system supervision
can be expressed as a set of Fuzzy Logic If-Then rules.
Get Started with FuzzyDesigner 13
An expert may be an operator, a maintenance person, or a control
engineer, who knows what adjustments are needed during process
instability. These adjustments may include defining setpoints for
process variables, defining control action in feedforward or feedback
contro,l or setting gains of conventional controllers, and may be as
simple as turning a valve or knob.
Rockwell Automation is introducing a tool for building smart
instructions that encode If-Then rules and use fuzzy logic internally to
describe vague and incomplete knowledge in a natural way. Fuzzy
Logic may serve in situations where:
• the process has not been automated and is running in Manual
mode.
• a well-tuned PID controller does not provide the desired
response, however, the expert knowledge is available to define
the rules for a fuzzy algorithm.
Let’s look at an example where we will discuss building a Heat,
Ventilation and Air Conditioning (HVAC) system that manipulates the
compressor speed based on room temperature and humidity. In HVAC
systems, room comfort is often associated with vague (fuzzy) values of
temperature and humidity that are more suitable for describing the
problem than numerical (crisp) values.
Fuzzy rules used in this example might be as follows.
IfThen
Temperature is high and humidity is
high
Temperature is medium and humidity
is very high
Speed is medium
Speed is high
Consider these factors when developing fuzzy rules:
• How do I specify High and other fuzzy values in fuzzy rules?
• How do the rules process numerical inputs provided by tags
associated with sensors?
• How do the rules derive outputs from inputs?
• If the output generated is vague (fuzzy), how do I get the
numerical (crisp) value at the output when needed?
Publication LOGIX-UM004A-EN-P - March 2007
14 Get Started with FuzzyDesigner
Crisp and Fuzzy
For temperature readings, you can classify a reading into three sets,
Low, Medium and High. Each set contains values in a given interval,
and the intervals do not overlap. This means that a single reading or
value is uniquely classified into one set.
degree of membership
degree of membership
(level of classification)
(level of classification)
Classification
Result
1.00
Medium
1.00
Medium
Medium
Medium
0.0
High
0.0
High
High
High
0.0
Low
0.0
Low
Low
Low
temperaturetemperaturetemperature
LowMedium
1
1
0
0
20
20
range
range20range
Crisp ValueCrisp Value
High
150
150
TIP
Degree of membership (DOM) is a value describing how well
the particular value of the variable (in this case, temperature)
fits the meaning of the label of the set, Medium. If the DOM is
1, the current temperature is understood as 100% Medium.
However, vague classifications are more realistic as there is usually no
sharp border between Low, Medium, or High temperatures. In this
situation, however, a single numerical value might fall into multiple
categories. For example, it might be partially Medium, and partially
High as shown in the following figure. A specification of how much
the particular value of temperature fits into the meaning of the label of
the category (fuzzy set) is described by the membership function,
which becomes a design parameter of the fuzzy controller.
Publication LOGIX-UM004A-EN-P - March 2007
Get Started with FuzzyDesigner 15
Similar fuzzy terms are designed for the output variables, that is, Low,
Medium, and High for compressor speed in our example.
Fuzzy rules
The way in which the classified inputs are treated when passing
through rules is shown in the following figure for our compressor
control example.
Publication LOGIX-UM004A-EN-P - March 2007
16 Get Started with FuzzyDesigner
First, the numerical values of Temperature and Humidity get their
meaning. In our case, the current setting of the Temperature is such
that it is both 85% Medium and 40% High. Humidity is both 80% High
and 50% Very High. The first rule is thus 80% true for the current
inputs while the second rule is 40% true when using minimum for
the and operation. The first rule states that, if 100% satisfied, the
compressor should run at Medium speed. Currently, the first rule is
only 80% fulfilled, so one method of how to consider that the rule is
only 80% fulfilled is to truncate the Medium fuzzy set for the output at
the level 0.8.
A similar situation happens with the second rule where High
compressor speed is only 40% fulfilled. As both rules are used at the
same time, their conclusions must be combined to get a fuzzy value
for the output, which is compressor speed. The partially-fulfilled
Medium and High fuzzy sets are unified, and a single fuzzy value is
assigned to Compressor Speed. As conventional control systems
cannot deal with fuzzy values, the fuzzy instruction includes
conversion from a fuzzy to a crisp value. For this case, the center of
gravity for the green area is computed and used to represent the
original fuzzy value.
To summarize, the designer has to:
• define input and output variables.
• cover the interval of the respective variable by fuzzy sets (that is,
membership functions).
• write if-then rules using labels of the fuzzy sets defined
previously.
Potential Use of Fuzzy Logic
FuzzyDesigner enables you to enhance the functionality of existing or
new control and decision making systems in various branches of
industry.
The fuzzy system designed and generated by FuzzyDesigner can be
used in control systems, for example, as a direct nonlinear fuzzy-rule
based controller, PID-feedback control system supervisor, or a process
model in a Model Predictive Control scheme. Input and output filters
are used for signal preprocessing such as filtering, deriving trends, and
many other functions that might add dynamics to the static I/O map
generated from fuzzy rules. Input filters can also be designed in
FuzzyDesigner. Output filtering is an option and contains, for
instance, a discrete integrator fed by the output of the Fuzzy Add-On
Instruction.
Publication LOGIX-UM004A-EN-P - March 2007
Get Started with FuzzyDesigner 17
Nonlinear, Fuzzy Rule Based Supervisor of a PID Controller
Plant States
Plant States
feedf orward
feedf orward
CV
CV
PLANT
PLANT
PLANT
PLANT
SP
SP
PV
PV
FUZZY
FUZZY
FUZZY
FUZZY
SUPERVISOR
SUPERVISOR
SUPERVISOR
SUPERVISOR
PID
PID
gains
gains
PID
PID
PID
PID
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
The great advantage of fuzzy supervision is that it can be applied to
existing control and there is little danger of making errors in design.
Most frequently used is a supervised PID controller where PID gains,
feedforward action, or setpoints are being modified dynamically by
rules depending on the process status and external conditions defined
through setpoints.
Smart Switching Between Conventional Controllers, Takagi-Sugeno Controller
Plant State
+
+
Plant State
+
+
CV
CV
+
+
PLANT
PLANT
PLANT
PLANT
Setpoints
Setpoints
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
1
1
1
1
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
2
2
2
2
CONTROLLER
CONTROLLER
CONTROLLER
CONTROLLER
3
3
3
3
Process Variables
Process Variables
FUZZY SUPERVISOR
FUZZY SUPERVISOR
FUZZY SUPERVISOR
FUZZY SUPERVISOR
Schedule weights ∈ [0,1]
Schedule weights ∈ [0,1]
×
×
×
×
×
×
Another popular control structure with fuzzy logic is smart switching
between local controllers. A local controller is an analytical controller
designed to work around specific process operation conditions. Once
the conditions change, the rule based supervisor decreases the
influence of one controller and gives more weight to another
controller that has been designed to work in the new conditions.
Publication LOGIX-UM004A-EN-P - March 2007
18 Get Started with FuzzyDesigner
Feedback Control System with Direct Fuzzy Controller
Control system statusPrimary controls
Control system statusPrimary controls
Setpoints
Setpoints
FUZZY
FUZZY
CONTROLLER
CONTROLLER
Input filter
Input filter
Process Variables
Process Variables
Control
Control
Variables
Variables
Output filter
Output filter
PLANT
PLANT
PLANT
PLANT
A fuzzy controller with the above structure typically handles multiple
inputs and generates multiple outputs. This system is recommended
for experienced designers since control variables are direct functions
of rules. The number of rules increases rapidly with the number of
inputs and fuzzy terms for inputs. The problem of dimensionality can,
however, be reduced by hierarchical structuring of the rule base of the
controller, which is supported by FuzzyDesigner.
Specifications and Features
FuzzyDesigner features and specifications are summarized in the
following tables.
For details, refer to the subsequent chapters.
Fuzzy System Components
Components are graphical objects, blocks you work with, to design a
fuzzy system.
ComponentMembership
functions
Type/method if applicable
Input Port
Input Linguistic
Variable
Rule BlockMin/product
Trapezoidal,
S-shape, and their
inverses
ANDORAggregationInference
t-norms
Defuzzification
(Activation)
Max
Output
Linguistic
Trapezoidal,
singleton
Variable
Output Port
Publication LOGIX-UM004A-EN-P - March 2007
Max s-normMamdani/ Fuzzy
Arithmetic
CA/MCA/
MOM/SOM/ LOM
Get Started with FuzzyDesigner 19
ComponentMembership
functions
Type/method if applicable
Intermediate
Linguistic
Variable
Output T-S
Variable
PID Controller
ANDORAggregationInference
(Activation)
Max s-norm
Max s-norm
Defuzzification
Fuzzy System Analysis Tools
ToolDescription
2D/3D mesh plotsVisualization of input-output static mappings generated
by the fuzzy system or its specified subsystem
Interactive plot controlColor, grid, texture, zoom, and viewpoint management
Tracing fuzzy system evaluationMarks output on the mesh when input is being changed
FuzzyDesigner Mesh Plot
Publication LOGIX-UM004A-EN-P - March 2007
20 Get Started with FuzzyDesigner
FuzzyDesigner Mesh Plot with Simulated Path
Fuzzy System Monitoring
FeatureDescription
Numerical and graphical display Monitoring of all internal variables
Archiving Recording specified internal or external variables
History graphPlotting history graph for on-line or off-line monitoring
Fuzzy System Monitoring Through Numerical Displays
Publication LOGIX-UM004A-EN-P - March 2007
Get Started with FuzzyDesigner 21
Fuzzy System Monitoring Through Plotting Historical Recordings and On-Line
Update
FuzzyDesigner Project Formats
File FormatDescription
XML.FSP – complete project file generated by
FuzzyDesigner, .XML – user-supplied fuzzy system or
project file
Publication LOGIX-UM004A-EN-P - March 2007
22 Get Started with FuzzyDesigner
Direct Support of Logix5000 controllers
FuzzyDesigner, version 16.00 and later, supports Rockwell
Automation's Logix5000 family of controllers. The fuzzy system
designed using FuzzyDesigner can be exported to an RSLogix 5000
Add-On Instruction (AOI) XML import file. You can then import the
fuzzy system into any of your projects as needed. Fuzzy AOI can be
used by any of the programming languages (Function Block Diagram,
Ladder Logic, or Structured Text). With FuzzyDesigner, you can also
monitor and update the selected fuzzy AOI online, directly in the
running controller. This is made available through RSLinx OPC Server.
FeaturesDescription
Export fuzzy AOIUtility for export of designed fuzzy system into L5X file.
On-line parameter changeChanging parameters of a fuzzy system downloaded to the controller
dynamically is enabled.
Real-time fuzzy system monitoringExact copy of the fuzzy system running on the PLC allows FuzzyDesigner to
monitor all internal variables on the computer when both copies are fed with
the identical inputs.
Some of the FuzzyDesigner features, summarized in the preceding
tables, are shown in this section.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Environment in Brief
Get Started with FuzzyDesigner 23
Publication LOGIX-UM004A-EN-P - March 2007
24 Get Started with FuzzyDesigner
Project Tree view
Input Linguistics
Variable
Input Port
FuzzyDesigner Environment - Component examples
Rule BlockOutput Liguistics
Variable
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Membership Functions
FuzzyDesigner Rule Base - Rule Editor
Get Started with FuzzyDesigner 25
Term Editor
Degree of
Fulfillment
window
Publication LOGIX-UM004A-EN-P - March 2007
26 Get Started with FuzzyDesigner
FuzzyDesigner Rule Interfacing
DOF(negative)
DOF(negative)
DOF(negative)
y*y
y*y
y*y
(MCA) (CA)
(MCA) (CA)
(MCA) (CA)
FuzzyDesigner Defuzzification Methods
DOF(negative) ismaximal
DOF(negative) is maximal
DOF(negative) is maximal
DOF(zero)
DOF(zero)
DOF(zero)
*
*
*
*y*y*
*y*y*
* y* y*
y
y
y
(SOM) (MOM) (LOM)
(SOM) (MOM) (LOM)
(SOM) (MOM) (LOM)
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner PID Controller
Get Started with FuzzyDesigner 27
Publication LOGIX-UM004A-EN-P - March 2007
28 Get Started with FuzzyDesigner
Notes:
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library
Chapter
2
Introduction
Component Interface
The FuzzyDesigner Component Library offers eight components from
which you can efficiently build distributed fuzzy systems.
TopicPage
Component Interface29
Library of Components30
Supported Membership Functions30
Input Port32
Input Linguistic Variable34
Output Linguistic Variable36
Output Takagi-Sugeno Variable42
Intermediate Linguistic Variable46
Rule Block47
PID Controller52
Output Port56
The connection between components is called a link. Generally, a
Hierarchical Fuzzy System (HFS) computes with data in the form of a
crisp (real) value and/or a fuzzy set. Not all components enable both
types of data to be transferred over the link. The data type on both
ends of a link should match. FuzzyDesigner uses icons to define a link
type as follows.
FuzzyDesigner Icons
IconDescription
Crisp value (input or output value link) – input crisp values and crisp values
29Publication LOGIX-UM004A-EN-P - March 2007
resulting from defuzzification are transferred over the link
Crisp value (input or output value link) – crisp values are transferred over
the link
DOF value (input or output logical link) – degrees of fulfillment of fuzzy
terms of a fuzzy variable are transferred over the link to a rule block
DOF value (input or output logical link) – degrees of fulfillment of fuzzy
terms resulting from rule block evaluation are transferred over the link to a
fuzzy variable
30 FuzzyDesigner Component Library
Library of Components
The FuzzyDesigner Component Library offers the following
components from which you can assemble fuzzy systems ranging
from single input – single output systems to multiple input – multiple
output systems with complex hierarchical structure of rules.
FuzzyDesinger Component Library Icons
IconNameDescription
Input PortPreprocesses and stores values of a fuzzy
system’s input variables.
Output PortStores values of a fuzzy system’s output
variables.
Input Linguistic
Variable
Rule BlockStores rules and computes degree of fulfillment
Stores linguistic terms and is used for
classification of the actual component input,
represented by a crisp value, into the fuzzy sets
defined for the respective linguistic terms. In
fuzzy control, the process where the input is
converted from a crisp value is commonly called
fuzzification.
of rule conditions .
Supported Membership
Functions
Intermediate
Linguistic
Variable
Output Linguistic
Variable
Output
Takagi-Sugeno
Variable
PID ControllerAllows intelligent supervision of a built-in PID
Bridges logical chaining of rule blocks.
Stores linguistic terms and computes the output
value from degrees of fulfillment of stored terms
(defuzzification). It implements the process of
activation of output linguistic terms defined as
fuzzy sets.
Stores parameters of functional terms and
computes the output value from degrees of
fulfillment of terms.
controller.
Library blocks let you work with fuzzy sets as defined by membership
functions. Let x be the linguistic variable and A(x) be the degree of
membership of x to the fuzzy set A defined by the sketched
membership function. FuzzyDesigner works with the following types
of membership functions.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 31
Trapezoidal Membership Function with Parameters (vertices): (a,b,c,d)
A(x)
A(x)
1
1
1
0
0
0
A(x)
ab
ab
ab
c
c
c
d
d
d
()
Ax
⎧
⎪
⎪
⎪
=
⎨
⎪
⎪
⎪
⎩
0
()/()[,)
xa ba if x ab
−−∈
1[,]
()/()(,]
xd cd if x cd
−−∈
0
ifx a
<
ifxb c
∈
ifx d
>
If a = b then A(a) = 1. If c = d then A(c) = 1.
Trapezoidal membership functions can be used in input and output
linguistic variable components.
S-shape Membership Function (cubic spline) with Parameters: (a,b,c,d)
A(x)
A(x)
⎧
⎪
23
()
Ax
⎪
⎪
⎪
=
⎨
⎪
⎪
⎪
⎪
⎩
()[,)
xa xif x ab
3
()2
ab
−
23
()(,]
xd xif x cd
3
()2
dc
−
0
ba
⎛⎞
2
−−∈
⎜⎟
⎝⎠
1[,]
cd
⎛⎞
2
−−∈
⎜⎟
⎝⎠
0
−
−
if x a
if x b c
∈
if x d
A(x)
<
1
1
1
0
0
0
>
ab
ab
ab
c
c
c
d
d
d
x
x
x
x
x
x
If a = b then A(a) = 1. If c = d then A(c) = 1.
S-shape membership functions can be used in input and output
linguistic variable components.
Inverse Trapezoidal Membership Function with Parameters (vertices): (a,b,c,d)
A(x)
A(x)
1
1
1
0
0
0
A(x)
ab
ab
ab
c
c
c
d
d
d
()
Ax
⎧
⎪
⎪
⎪
=
⎨
⎪
⎪
⎪
⎩
1
()/() (,]
xb ab if x ab
−−∈
0(,)
()/( ) [,)
xc dc if x cd
−−∈
1
ifxa
ifxb c
ifxd
≤
∈
≥
If a = b then A(a) = 1. If c = d then A(c) = 1.
Inverse trapezoidal membership functions can be used in an input
linguistic variable component.
x
x
x
Publication LOGIX-UM004A-EN-P - March 2007
32 FuzzyDesigner Component Library
Inverse S-shaped Membership Function (cubic spline) with Parameters: (a,b,c,d)
A(x)
A(x)
⎧
⎪
23
()
Ax
⎪
⎪
⎪
=
⎨
⎪
⎪
⎪
⎪
⎩
()(,]
xb xif x ab
3
()2
ba
−
23
()[,)
xc xif x cd
3
()2
cd
−
1
ab
⎛⎞
2
−−∈
⎜⎟
⎝⎠
0(,)
dc
⎛⎞
2
−−∈
⎜⎟
⎝⎠
1
−
−
ifx a
if x b c
∈
ifx d
A(x)
≤
1
1
1
0
0
0
≥
ab
ab
ab
c
c
c
d
d
d
If a = b then A(a) = 1. If c = d then A(c) = 1.
Inverse S-shaped membership functions can be used in an input
linguistic variable component.
Singleton Membership Function with Parameter (position, center) c
A(x)
A(x)
1
1
()
Ax
=
1
⎧
⎨
0
⎩
ifxc
=
otherwise
x
x
x
Input Port
0
0
c
c
x
x
Singleton membership functions can be used in an output linguistic
variable component.
The fuzzy system Input Port component stores an actual input value
entering the HFS. Optionally, you can preprocess the input values by
using the linear digital filter. This filter is defined by its pulse-transfer
operator H, expressed in terms of the backward-shift operator d, or
equivalently in time-domain as a difference equation, as follows.
bbdbd
bd
Hdyd Hdud
(),()()()
ytayta yt nbut butbut m
()( 1)()()( 1)()
()
===
ad
()
=−−− −− ++−+−
101
+++
01
+++
1
L
ada d
L
1
LL
nm
Filter numerator parameters : b
parameters : a
, …a
1
n
m
m
n
n
, b1, …bm ; filter denominator
0
There are two ways for designing the filter:
Publication LOGIX-UM004A-EN-P - March 2007
• user defined filter.
• butterworth low pass filter .
FuzzyDesigner Component Library 33
ω
ω
ω
User Defined Filter
You set the numerator and denominator coefficients b0, b1, …bm and
, …an directly (the parameters are entered in the specified order
a
1
separated by the space character).
Butterworth Low Pass Filter
This filter can be created by specifying a normalized cutoff frequency
q, taken from the interval [0.01, 1], and the order of the filter (1,2,3).
Bode Plot of the Butterworth Low-Pass Filter
|H(j
This normalized frequency q corresponds to the absolute frequency
ω
= q
c
period T
WARNING
0dB
)|
ω
, where
n
.
s
c
ω
= π / Ts is the Nyquist frequency for the sampling
n
All dynamical terms in a fuzzy system (filters, PID controllers)
have to share the common sampling period Ts; otherwise the
system will not work correctly.
Connections
The output link of the input port is connectable to all components
expecting a crisp value at the input. This includes the following
components:
, b1,,bm] , coefficients of the filter transfer function
0
, …,an], coefficients of the filter transfer function
1
Input Linguistic Variable
trapezoidtrapezoid
The fuzzy system Input Linguistic Variable component stores
membership functions (fuzzy sets) of terms and is used for
fuzzification (classification) of the component input – a crisp value.
The component output is a vector of degrees of fulfillment of all terms
for the crisp input or degree of overlapping for the input fuzzy set.
An Input Linguistic Variable component consists of linguistic terms.
Each linguistic term is defined by a fuzzy set, that is by the
membership function and the name. There are four supported
membership functions.
• Trapezoidal membership function
• S-shaped membership function
• Inverse trapezoidal membership function
• Inverse S-shaped membership function
inverse trapezoidinverse trapezoid
inverse s-shapeinverse s-shapes-shapes-shape
Publication LOGIX-UM004A-EN-P - March 2007
Linguistic terms are defined on specified range [x
min
, x
max
] (universe
of discourse).
The component crisp input is fuzzified. The result of fuzzification of
*
the crisp input value x
is a degree of fulfillment (DOF) of the terms,
which is computed for each term given by the membership function
A(x) as follows.
⎧
⎪
=
)(
ADOF
⎨
⎪
⎩
min
max
)(
)(
**
∈
*
<
xxifxA
*
>
xxifxA
min
max
],[)(
xxxifxA
maxmin
FuzzyDesigner Component Library 35
This value is simply membership degree of value x* to fuzzy set A and
*
can be interpreted as a degree to which the proposition (x
true. An example of fuzzification of the crisp input value x
IS A) is
*
is shown
in the figure Process of Crisp Input Fuzzification. The component
input value is -0.3191.
The component consists of three linguistic terms – negative, zero, and
positive. The output of the component is the vector [0.6383, 0.3617, 0]
– where 0.6383 is a degree of fulfillment of the term negative, 0.3617
is a degree of fulfillment of the term zero, and 0 is a degree of
fulfillment of the term positive.
This value is simply membership degree of value x
*
to fuzzy set A and
can be interpreted as a degree to which the proposition (x
true.
Process of Crisp Input Fuzzification
Current input value
Term DOF =
*
IS A) is
membership degree
DOFs of all terms are provided to connect rule blocks to complete the
fuzzy logic inference.
Publication LOGIX-UM004A-EN-P - March 2007
36 FuzzyDesigner Component Library
Connections
The input link of the input linguistic variable is connectable to any of
these components providing a crisp value:
• input Port component.
• output Linguistic Variable component.
• output Takagi-Sugeno Variable component.
• PID component.
The output logical link of the input linguistic variable is connectable
to components expecting a DOF value (as a result of fuzzification or
defuzzification), such as the Rule Block component.
Parameters
Output Linguistic Variable
• Name of the component
• Range of the input value of the component [x
min
, x
max
]
• List of terms described by
– Name
– Type of membership function
– Vector of membership function parameters [a, b, c, d]
The fuzzy system Output Linguistic Variable component stores output
linguistic terms and is used for defuzzification. The component has a
logical input link, degrees of fulfillment of all linguistic terms of the
respective linguistic variable. The link can be multiple, meaning that
the component can be connected to several rule blocks. The
component has two output links – value and logical links. Depending
on the selected inference algorithm and defuzzification method, the
component computes a crisp value y
*
. Such a result provides an
output value link. The output logical link enables the connection of
the component directly to another rule block. If the component input
link is connected to a single rule block, the output degrees of
fulfillment are the same as the input degrees of fulfillment. If the
component is connected to several rule blocks, the output degrees of
fulfillment of linguistic terms are computed as a maximum of the
corresponding input degrees of fulfillment.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 37
A
A
The Output Linguistic Variable component stores linguistic terms.
Each linguistic term is defined by its fuzzy set, that is, the membership
function and the name. The following membership functions are
supported:
• Trapezoidal membership function
• Singleton membership function
Linguistic terms are defined on the specified range [y
min
, y
max
]
(universe of discourse).
Defuzzification
Defuzzification converts fuzzy sets to a crisp value, taking into
account their degrees of fulfillment.
FuzzyDesigner supports the following defuzzification methods –
Centroid Average, Maximum Center Average, Mean of Maximum,
Smallest of Maximum, and Largest of Maximum.
y – output variable
Y – universe of output variable, defined by an
interval
*
y
– crisp output value (after defuzzification)
A
–membership function the output term i,
i
that is, its fuzzy set
(y)
(y)
…
…
…
…
c
c
c
c
j
j
j+1
j+1
*
*
y
y
y
y
A – fuzzy set, which is being defuzzified,
obtained as a union of all “clipped” output
membership functions.
A(y) – membership degree of variable y in
fuzzy set A
Publication LOGIX-UM004A-EN-P - March 2007
38 FuzzyDesigner Component Library
Centroid Average – CA generally
An output value computed by this method is equal to the weighted
average of the positions of the centroids of the output membership
functions A
weighted by their actual activation levels. The output
j
value is computed as follows.
M
()
Acc
=
Ac
1
⋅
jj
()
j
∑
1
=
j
*
y
=
M
∑
j
where:
) is the maximum of the degrees of fulfillment over all
• A(c
j
the rules with the consequent A
• cj is a position of the centroid of the membership function
which is calculated in advance
A
j
• M is a number of fuzzy sets A
j
j
This method is used for applications when output is to be a
continuous function of inputs for example, a control system
Maximum Center Average – MCA generally
This method is similar to the Centroid Average method except that ci ,
the center of maxima of B
, is calculated in advance. This method is
i
also continuous and allows the output value to reach the limits of the
range.
Trapezoids are automatically transformed to singletons.
CA = centroid method
MCA = mean of maxima (to allow
reaching limit values of the range)
CAMCA
The output value is then computed in the same way as for singletons.
CA
MCA
Mean of Maxima – MOM generally
This method computes the mean value of the interval at which the
output fuzzy set reached the largest membership degree. It is defined
as follows.
*
mean( )max( )
ycAcAc==
iiijj
{}
()
j
(y)
(y)
……
……
*
*
y
y
y
y
Smallest of Maxima – SOM generally
This method is similar to the previous one. Instead of mean value, the
minimum value of the interval is chosen. The defuzzified output is
computed as follows.
*
smallest( )max( )
ycAcAc==
iiijj
{}
()
j
(y)
(y)
……
……
Publication LOGIX-UM004A-EN-P - March 2007
*
*
y
y
y
y
40 FuzzyDesigner Component Library
A
A
Largest of Maxima – LOM generally
The only difference to the previous method is that the maximum
value of the interval is chosen. The defuzzified output is defined as
follows.
*
largest( )max( )
ycAcAc==
Mean of Maxima, Smallest of Maxima, and Largest of Maxima methods
are not continuous and are mainly used in applications on
decision-making and classification when the task is to choose from
several alternatives.
iiijj
{}
()
j
(y)
(y)
……
……
*
*
y
y
y
y
If no term is activated (DOF = 0) then the inference result is set to a
user defined crisp default value.
Defuzzification SOM, MOM, LOM for singletons
Output value is computed as a reference singleton with maximal term
DOF.
If more terms have the same maximal DOF>0, then:
• SOM: output = smallest of the singletons with maximal DOF.
• LOM: output = largest of the singletons with maximal DOF.
• MOM: output = mean of the singletons with maximal DOF.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 41
Output = term with maximal DOF = zero
Output = Default Value, if all DOFs = 0
DOF(zero) is maximal
Defuzzification SOM, MOM, LOM for trapezoids
Trapezoids are automatically transformed to singletons.
SOM
MOM
LOM
The output value is then computed in the same way as for singletons.
Recommendation
• Use singletons to have easier insight to the output inference
mechanism
• No functionality is lost
Publication LOGIX-UM004A-EN-P - March 2007
42 FuzzyDesigner Component Library
Connections
The input link of the output linguistic variable can be connected to a
component providing the DOF value (as a result of fuzzy inference),
that is, the Rule Block component.
The output value link of the output linguistic variable can be
connected to components expecting a crisp value, such as:
• PID component (only crisp values are considered).
The output logical link of the output linguistic variable can be
connected to components expecting the DOF value (as a result of
fuzzification or defuzzification), that is, the Rule Block component.
Output Takagi-Sugeno Variable
Parameters
• Name of the component
, y
• Range of the output value of the component [y
min
• List of terms described by
– The name
– The type of membership function
– The vector of membership function parameters [a, b, c, d] for
the trapezoidal membership function, [c] for the singleton
membership function
• Type of fuzzy inference
• Type of defuzzification method
• Default output value
The classical model by Takagi-Sugeno offers a fuzzy rule based,
smooth switching between analytical functions. The consequent is a
crisp function of the antecedent variables rather than a fuzzy
proposition. A general form of a Takagi-Sugeno model is:
max
]
Publication LOGIX-UM004A-EN-P - March 2007
R
: IF x is Ai THEN yi = fi(x)
i
FuzzyDesigner Component Library 43
The consequent functions fi are typically chosen as instances of a
suitable parameterized function, whose structure remains equal in all
the rules and only the parameters vary. Most often, these functions are
linear combinations of antecedent variables. In control engineering,
each rule usually represents local dynamics in different state space
regions and the consequent is given in the form of a state-space or an
ARX model. The overall model of the system is achieved by fuzzy
blending of these linear models.
FuzzyDesigner supports Takagi-Sugeno fuzzy systems with linear
functions in the rule consequents written in the following form.
THEN is andand is IF :
11011
xaxaayAxAxR+++=KL
niniiinnii
or
THEN is andand is IF :
ayAxAxR=L
011
iinnii
The Takagi-Sugeno fuzzy system with the constant value in the rule
consequents can be also considered as a fuzzy system with singleton
membership functions in the rule consequents. If the Centroid
Average or Maximum Centroid Average defuzzification and Fuzzy
Arithmetic Inference method is chosen, than the behavior of both
fuzzy systems is the same.
The fuzzy system Output Takagi-Sugeno Variable component stores
parameters of reference linear or constant consequent functions. The
component has two input links – a logical input link (degrees of
fulfillment of all reference functions) that can be multiple, meaning
that the component can be connected to several rule blocks, and a
value input link (connectable to components that produce crisp
values), which can be multiple too. The number of links depends on
the number of consequent variables.
The component has two output links:
• Valu e li nk
• Logical link
The output logical link enables the connection of the component
directly to other rule blocks. If the component input link is connected
to one rule block, the output degrees of fulfillment are the same as the
input degrees of fulfillment. If the component is connected to several
rule blocks, the output degrees of fulfillment of reference membership
functions are computed as a maximum of the corresponding input
degrees of fulfillment.
Publication LOGIX-UM004A-EN-P - March 2007
44 FuzzyDesigner Component Library
The output Takagi-Sugeno Variable component consists of functional
terms. Each functional term is defined by its parameters (a
0, a1,
… an)
and its name (the parameters are entered in the specified order
separated by the space character). The type of every linguistic term
can be different. There are two supported functions.
• Linear function: f(x
• Constant function: f(x1,x2,...xn) = a
,...xn) = a0 + a1 x1 + a2 x2 +...+ an x
1,x2
0
n
Where x1,x2,...xn are outputs from preceding components providing
crisp values.
The component calculates an inference result as a crisp value y
xxxfdof
∑
*
i
y
=
⋅
∑
21
dof
i
i
L
),,,(
nii
*
where dofi is DOF of i-th term. This value is finally limited to the range
, y
[y
min
]. If no term is activated (DOF = 0) the inference result is a
max
user-defined crisp default value.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 45
EXAMPLE
Different linear-state feedback controllers are to be smoothly activated for different process states and
setpoints – scheduling controller gains. There are three rules.
• IF (x1 IS A1 ) AND (x2 IS B1) THEN y = K0 + K1*x1 + K2*x2 (= y1)
• IF (x1 IS A2 ) AND (x2 IS B2) THEN y = G0 + G1*x1 + G2*x2 (= y2)
• IF (x1 IS A3 ) AND (x2 IS B3) THEN y = C0 (= y3)
Defined (functional) terms:
K, type LINEAR, parameters = K0 K1 K2
G, type LINEAR, parameters = G0 G1 G2
C, type CONSTANT, parameters = C0
x1
x2
y
from a rule block
Connections
The input logical link of the output Takagi-Sugeno variable can be
connected to a component providing a DOF value (as result of fuzzy
inference), that is, the Rule Block component.
to a rule block
Evaluation (weighted average of functions):
y1*DOF(K) + y2*DOF(G) + y3*DOF(C)
y =
y = Default Value, if all DOFs = 0
DOF(K) + DOF(G) + DOF(C)
Publication LOGIX-UM004A-EN-P - March 2007
46 FuzzyDesigner Component Library
The input value link of the output Takagi-Sugeno variable can be
connected to components providing a crisp value, such as:
• Input Port component.
• Output Linguistic Variable component.
• PID component.
• Output Takagi-Sugeno Variable component.
The output value link of the output Takagi-Sugeno variable can be
connected to components expecting a crisp value, such as:
• PID component (only crisp values are considered).
The output logical link of the output Takagi-Sugeno variable can be
connected to components expecting a DOF value (as result of
fuzzification or defuzzification), such as the Rule Block component.
Intermediate Linguistic
Variable
Parameters
• Name of the component
, y
• Range of the input value of the component [y
min
• List of functional terms described by
– The name
– The type of the function
– The vector of the function parameters [a
linear function, [a
] for the constant function
0
, a1, … , an] for the
0
• Default value
The fuzzy system Intermediate Linguistic Variable component is used
as a buffer allowing logical chaining of rule blocks.
The component consists of linguistic terms with symbolic meaning.
Each linguistic term is defined by its name. Degrees of fulfillment of
all terms are results of previous logic inference in preceding rule
blocks connected to this component.
max
]
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 47
If the component input link is connected to a single rule block, the
output degrees of fulfillment just copy inputs. If the component input
is connected to several rule blocks, the output degrees of fulfillment
of stored linguistic terms are computed as a maximum of the
corresponding input degrees of fulfillment.
Connections
The input logical link of the Intermediate Linguistic Variable can be
connected to a component providing a DOF value (as result of fuzzy
inference in a rule block), that is, the Rule Block component.
The output logical link of the Intermediate Linguistic Variable can be
connected to components expecting a DOF value (as result of
fuzzification or fuzzy inference in a rule block), such as the Rule
Block component.
Rule Block
Parameters
• Name of the component
• List of terms defined by their names
The fuzzy system Rule Block component stores rules, performs fuzzy
logic inference based on fuzzy rules and computes degrees of
fulfillment of linguistic terms for consequent variables (output logical
links) from degrees of fulfillment of linguistic terms used in the rule
for premise variables (input logical links).
Publication LOGIX-UM004A-EN-P - March 2007
48 FuzzyDesigner Component Library
Supported Format of Rules
Multiple notations are used in the explanation of the supported format
of rules.
• X
, X2,…, Xn – premise variables
1
• Y
, Y2,…, Ym. – consequent variables
1
• A
, Ai2,… – terms defined for the premise variable X
i1
• Bj1, Bj2,… – terms defined for the consequent variable Y
IF (X
IS A
EXAMPLE
1
IS B12) [w1] , (Y2 IS B21) [w2], … (Yn IS B
(Y
1
AND (X2 IS A21) AND … AND (Xn IS An1) THEN
13)
n3)
i
j
[wn]
where w
∈ [0,1] is rule weight of the k-th consequent.
k
Schematically the rule can be rewritten as follows:
This rule base format is very useful in manual design. It can be
represented in the form of a table where every column
corresponds to one variable and rows of the table are filled
with appropriate terms or optionally with their inversions
(applying the NOT operator).
FuzzyDesigner also supports the OR operator.
EXAMPLE
IS A11) OR (X1 IS A12) OR ... ] AND (X2 IS A21) AND …
IF [(X
1
AND (X
IS An1) THEN (Y1 IS B12)
n
You define the number of terms in the OR expression.
The NOT operator can be applied to the whole OR expression.
IF [ NOT [(X
AND … AND (X
[w
], …
2
IS A11) OR (X1 IS A12) OR ... ]] AND (X2 IS A21)
1
IS An1) THEN (Y1 IS B12) [w1] , (Y2 IS B21)
n
Publication LOGIX-UM004A-EN-P - March 2007
The rule block component performs fuzzy logic inference based on
fuzzy rules. In a simplified way, it computes degrees of fulfillment of
consequent variables from degrees of fulfillment of premise variables
by using fuzzy t-norms and s-norms (t-conorms).
FuzzyDesigner supports the following t-norms (fuzzy AND operators):
• Minimum: T
• Product: T
(x, y) = min (x, y)
min
(x, y) = x · y
prod
FuzzyDesigner Component Library 49
FuzzyDesigner also supports this s-norm (fuzzy OR operator):
maximum: S
(x, y) = max (x, y)
max
The evaluation of the Rule Block is completed in three steps.
1. DOFs of all rules are computed from DOFs of the rule premise
by using the selected t-norm.
2. DOFs of all conseqent variables terms are computed for every
rule.
These DOFs are obtained from DOFs computed in step 1,
multiplied by weights of consequent variables.
3. Total DOFs of all consequent variables are computed for the
overall fuzzy system.
Total DOF of one consequent variable is computed as maximum
value of DOFs computed in step 2 for the appropriate
consequent variable.
Assume a simple fuzzy system with these two premise variables
(temperature, pressure) with terms:
• Temperature: (small, large)
• Pressure : (negative, zero, positive)
This system also has two consequent variables: (voltage, current) with
terms:
• Voltage: (small, medium, large)
• Current : (zero, positive)
This system also has a minimum t-norm.
The rule base can be formulated as the following.
IfAndThen
Temperature is smallOressure is negativeVoltage is medium [0.9]
Current is positive [1.0]
Temperature is largePressure is negativeVoltage is small [0.8]
Pressure is positiveVoltage is small [1.0]
Current is positive [1.0]
Publication LOGIX-UM004A-EN-P - March 2007
50 FuzzyDesigner Component Library
You can also formulate the rule base schematically:
Example of a Block Diagram of the Rule Block Evaluation
Rule Block
0.4
0.80.8
0.1
0.2
0.2
0.50.5
smallsmall
negativenegative
lar gelar ge
negativenegative
positivepositive
medium [0.9]medium [0.9]
Æ
positive [1.0]posit ive [1.0]
small [0.8]small [0.8]
Æ
small [1.0]small [1.0]
Æ
positive [1.0]posit ive [1.0]
0.09
0.1
0.08
0.0
0.5
0.5
max
max
max
maxma x
maxma x
0.5
0.09
0.0
0.0
0.50.5
voltage
small
medium
lar ge
current
zerozero
positivepositive
voltage
Æ
current
Æ
Publication LOGIX-UM004A-EN-P - March 2007
52 FuzzyDesigner Component Library
Connections
The input logical link of the Rule Block can be connected to a
component providing a DOF value (as a result of fuzzification or
defuzzification), such as the:
• Input Linguistic Variable component.
• Output Takagi-Sugeno Variable component.
• Output Linguistic Variable component.
• Intermediate Linguistic Variable component.
The output logical link of the Rule Block can be connected to
components expecting a DOF value (as result of fuzzy inference),
such as the:
• Output Takagi-Sugeno Variable component.
• Output Linguistic Variable component.
• Intermediate Linguistic Variable component.
PID Controller
Parameters
• Name of the component
• List of links to premise variables
• List of links to consequent variables
• Type of t-norm
The fuzzy system PID component enables you to design an intelligent
supervision of a conventional PID controller.
The following symbols and terminology are used in description of the
component:
• PV – process variable
• CV – control variable
• SP – set point
• E – error, E = SP-PV
• P- proportional gain,
• I- integral gain,
• D- derivative gain
• Man – manually set value of CV
• Mode – controller mode
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 53
The component can be used as a conventional PID controller with
supervised parameters defined by component input links. The
component output link provides a crisp value representing the control
variable.
The component functionality is defined through the equation format
with the option of using either independent gains or dependent gains.
When the independent gains option is used, the proportional, integral
and derivative gains affect only their specific proportional, integral or
derivative terms respectively. When the dependent gains option is
used, the proportional gain is replaced with a controller gain, which
affects all three parts. Both formats are shown in the following
equations.
⎛
⎜
()
⎜
⎝
()
t
DdttEItPVtSPbPCV
)()()(
∫
0
t
∫
0
+⋅+−⋅=
DdttEItPVtSPbPCV
)()()(
dt
dt
⎞
tdO
)(
⎟
Bias
+
⎟
⎠
tdO
)(
Bias
++⋅+−⋅=
Where parameter b can be defined by the user and has to be in
interval [0,1]. The default value is 1. This parameter dampens the
influence of the setpoint on the proportional action.
The component allows two formats of derivative term O(t). Derivative
input to the controller can be either the process variable PV(t) or the
error E(t). Use of the process variable eliminates output spikes
resulting from setpoint changes. Use of the error allows fast responses
to setpoint changes when the algorithm can tolerate overshoots.
The algorithm is implemented in the discrete form.
Numerical integration is implemented as follows:
+=⋅
ItermTIEItermEdtI
1:−
∫
kskk
where T
is the loop update time.
s
Numerical derivation is implemented as follows:
OO
dO
dt
O
−
1:−
=Δ
k
kk
T
s
The calculation of the derivative term is enhanced by using a
smoothing first order low pass digital filter. This filter eliminates large
derivative term spikes caused by noise in the process variable.
Publication LOGIX-UM004A-EN-P - March 2007
54 FuzzyDesigner Component Library
OO
−
1
−
O
k
)1(
−=Δ
α
where .
kk
T
s
=
T
Δ+
O
αα
s
1161+
1
−
k
D
Finally the control variable CV is computed in the following way:
BiasODItermEPCV
+Δ⋅++⋅=)(
kkkk
BiasODItermEPCV
+Δ⋅++⋅=
kkkk
in the case of dependent gains and independent gains respectively.
The controller can be used in two different modes – Manual mode
and Automatic mode (default mode). During Manual mode the
parameter Mode, which is defined by the input link, has to be set to 1.
In this mode the controller calculates the user defined control
variable, which is connected to the input link Man. During this mode
the controller calculates the internal state of the integrator from the
user defined control variable to achieve a bumpless transfer when the
operator changes the control mode from manual to automatic. In the
Automatic mode, when the parameter Mode is set to 0, the controller
provides the computed value of the control variable. If input links
Man and Mode are not fed, the default (automatic) mode is applied.
The component also provides the user additional features – output
limiting with anti-reset windup, dead band control and gain forgetting
factor.
Output limiting allows applies limits CV_min and CV_max to the
control variable. If the output limiting is enabled, and the computed
control variable exceeds the limits, the CV is saturated. When the
value of the computed control variable reaches or exceeds limits, the
integration is paused until the value of the computed control variable
comes back into the range.
The adjustable dead band DB lets the user select an error interval DBI
= [SP-DB, SP+DB] around the setpoint where the controller output
does not change as long as the error remains within this range. This
dead band lets you control how closely the process variable matches
the setpoint without changing the value of CV. There are two choices
of dead band type – zero crossing and no zero crossing dead band.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Component Library 55
Zero crossing dead band control stops changing control variable (ΔCV
= 0) when the process variable crosses the setpoint. The control
variable is not changed as long as the process variable remains within
the dead band interval. Zero crossing dead band control can be
written as follows:
Once PV reaches SP (E = 0) and as long as PV∈ DBI , use ΔCV = 0
(consider E = 0)
No zero crossing dead band control stops changing control variable
immediately when approaching the setpoint and crossing the band
limits. The control variable is not changed as long as the process
variable remains in the dead band interval. No zero crossing dead
band control can be written as follows:
IF (PV∈ DB) THEN ΔCV = 0 (consider E = 0)
When the gain parameters of the PID controller are supervised by
fuzzy rules, rapid changes of premise rules variables may cause rapid
changes of controller gains. To avoid these changes the gain forgetting
factor g can be used. The value of g has to be in the interval [0.001 1].
Valu e g = 1 corresponds to exact parameter tracking (no forgetting
factor is applied) and g = 0.001 corresponds to very slow parameter
tracking. The default value is 1.
Connections
The Input links of the PID component can be connected to all
components providing crisp values, such as:
• Input Port component.
• Output Takagi-Sugeno Variable component.
• Output Linguistic Variable component.
• PID component (theoretically).
The output link of the PID component can be connected to all
components expecting a crisp value, such as:
• Controller Gain parameters (P, I, D), Bias – specified by links to
components providing crisp values or by user defined constant
values
• Setpoint value SP – specified by links to components providing
crisp values or by user defined constant values
• Sampling period T
• Output limiting of control variable – YES or NO
• Output limits – [CV
• Equation format – dependent or independent gains
• Derivative input format – error or process variable
• Manual control (None or the link to component which defines
the manual control variable)
• Mode – 0 (automatic) or 1 (manual)
• Parameter b - dampens the influence of the setpoint on the
proportional action
• Dead band – YES or NO
• Dead Band Radius (if YES)
• Dead Band Type – Zero Crossing or No Zero Crossing (if YES)
• Gain forgetting factor
s
min
, CV
] (if YES)
max
Output Port
The Output Port component stores an actual output value of the HFS
provided by a preceding component. The output is a crisp value.
Connections
The input link of the output port can be connected to all components
providing a crisp value, such as:
• Input Port component.
• Output Takagi-Sugeno Variable component.
• Output Linguistic Variable component.
• PID component.
Parameters
• Name of the component
Publication LOGIX-UM004A-EN-P - March 2007
Chapter
FuzzyDesigner Graphical User Interface
3
Introduction
The FuzzyDesigner graphical user interface (GUI) is illustrated by a
simple academic Ball and Beam experiment provided as one of the
sample projects when you install FuzzyDesigner.
TopicPage
Setting Options57
FuzzyDesigner Control Basics59
The objective is to stabilize the ball at the desired position on the
beam. The main screen of the FuzzyDesigner GUI with the opened
project named ball (this is our Ball and Beam example), can be seen
below.
Ball and Beam Project in FuzzyDesigner
Setting Options
57Publication LOGIX-UM004A-EN-P - March 2007
There are some FuzzyDesigner features that can be configured
according to personal preferences and for particular projects. You can
access the customization options from the View and Options menu
commands.
58 FuzzyDesigner Graphical User Interface
Tool Bar
The Tool Bar (see FuzzyDesigner Tool Bar) submenu on the View
menu enables access to the commands for customizing the
FuzzyDesigner tool bar. A tool bar button can be set as visible or
invisible by clicking the appropriate Tool Bar submenu commands.
FuzzyDesigner Tool Bar
Status Bar
The Status Bar (see FuzzyDesigner Status Bar) menu command on
the View menu enables you to set the status bar of FuzzyDesigner as
visible or as invisible. The status bar shows FuzzyDesigner modes (see
FuzzyDesigner Control Basics), and error messages.
FuzzyDesigner Status Bar
Tree View
The Tree View (see FuzzyDesigner Tree View) menu command on
the View menu enables you to set the Tree View tab control page
visible or invisible (see Working with Projects). You can also do this
by clicking the tool bar button with the same name (shown as a tool
tip).
To resize the Tree View tab control page, use your mouse and drag
the splitter on the right side of the tab control.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Tree View
FuzzyDesigner Graphical User Interface 59
FuzzyDesigner Control Basics
The controls in FuzzyDesigner are very similar to other Microsoft
Windows applications, and are easy to use.
FuzzyDesigner’s functions can be accessed from the main menu or by
clicking the tool bar button commands. By right-clicking the tree view
item or in the FuzzyDesigner project window, a related pop-up menu
appears. You can also control most of the functions using these
pop-up menus. These menus are context-sensitive; they offer the most
useful commands applicable to the current window.
Use the Project\Recent Projects menu command to reopen the most
recent projects in FuzzyDesigner. Up to four projects are shown in the
Recent Projects menu.
Detailed Help is accessible through the FuzzyDesigner main menu.
The Help button can be used in the Term and the Rule Editor tool
bars as well. Using this button, information about the particular editor
can be displayed.
You can apply the Edit\Undo and Edit\Redo menu commands to a
few changes made in the active project. The Undo menu command is
always applied to the last change in the active project and the Redo
menu command is always applied to the next change in the history of
changes made in the active project.
Publication LOGIX-UM004A-EN-P - March 2007
60 FuzzyDesigner Graphical User Interface
FuzzyDesigner has two main modes, Design mode and Monitoring
mode. FuzzyDesigner defaults to the Design mode, where you can
design the project, set or reset options and use all application tools
without any restriction. Use the Monitoring mode when you need to
change the project parameters only, and leave the project design
unchanged. Options and tools that can enable project design changes
are restricted in the Monitoring mode. The current mode is indicated
in the application Status Bar.
Main Menu
IMPORTANT
The Monitoring mode can be switched on or off directly from
the Edit|Go to Design mode …/Go to Monitoring mode main
menu item or the tool bar with the same name in the tool tip.
The Monitoring mode is automatically enabled when the
following dialoges are opened:
• Watch
• Simulation Watch
• Project Installation Wizard
• Online Connection Wizard Panel
• Monitoring Stand-Alone Component
After you close all of the open dialoges, FuzzyDesigner
switches to the Design mode.
You can minimize, maximize or restore all windows opened in the
FuzzyDesigner work area from the menu commands in the Window
menu.
This section lists all menu items in the main menu bar of the
FuzzyDesigner main window.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Main Menu
FuzzyDesigner Graphical User Interface 61
Project
FuzzyDesigner Main Menu Project Structure
• New – creates a new project
• Open … – opens an existing project
• Close – closes the active project
• Close All – closes all open projects
• Save – saves the active project
• Save As … – save the active project with a different name
• Project Information … – displays the properties for the current
project
• Preview – shows the preview of the currently active project
• Print … – prints the active project
• Recent Projects – shows the four most recent projects
• Exit – closes the FuzzyDesigner application
Edit
FuzzyDesigner Main Menu Edit Structure
• Undo – see section FuzzyDesigner Control Basics
• Redo – see section FuzzyDesigner Control Basics
• Refresh – updates the display of the active project
Publication LOGIX-UM004A-EN-P - March 2007
62 FuzzyDesigner Graphical User Interface
• Go to Design mode …/Go to Monitoring mode – switches the
project between the Design mode and Monitoring mode (see
section FuzzyDesigner Control Basics)
• New Port
– New Input Port … – see section Input Port
– New Output Port … – see section Output Port
• New Variable
– New Input Linguistic Variable … – see section Input
Linguistic Variable
– New Output Linguistic Variable … – see section Output
Linguistic Variable
– New Output Takagi-Sugeno Variable … – see section Output
Takagi-Sugeno Variable
– New Intermediate Linguistic Variable … – see section
Intermediate Linguistic Variable
• New Rule Block … – see section Rule Block
• New PID Controller … – see section PID Controller
View
FuzzyDesigner Main Menu View Structure
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Graphical User Interface 63
• Tool Bar
– Hide All Buttons – hides all tool bar buttons of the application
– Show All Buttons – shows all tool bar buttons of the
application
– Create New Project – shows or hides the Create New Project
tool bar button of the application
– Open Project – shows or hides the Open Project tool bar
button of the application
– Save Active Project – shows or hides the Save Active Project
tool bar button of the application
– Undo – shows or hides the Undo tool bar button of the
application
– Redo – shows or hides the Redo tool bar button of the
application
– Refresh Active Project – shows or hides the Refresh Active
Project tool bar button of the application
– Go to Design mode/Go to Monitoring mode – shows or hides
the Go to Design mode …/Go to Monitoring mode tool bar
button of the application
– Preview – shows or hides the Preview tool bar button of the
application
– Print – shows or hides the Print tool bar button of the
application
– Hide Tree View/Show Tree View – shows or hides the Hide
Tree View/Show Tree View tool bar button of the application
– New Input Port – shows or hides the New Input Port tool bar
button of the application
– New Input Linguistic Variable – shows or hides the New
Input Linguistic Variable tool bar button of the application
– New Output Port – shows or hides the New Output Port tool
bar button of the application
– New Output Linguistic Variable – shows or hides the New
Output Linguistic Variable tool bar button of the application
– New Output Takagi-Sugeno Variable – shows or hides the
New Output Takagi-Sugeno Variable tool bar button of the
application
– New Intermediate Linguistic Variable – shows or hides the
New Intermediate Linguistic Variable tool bar button of the
application
– New Rule Block – shows or hides the New Rule Block tool
bar button of the application
– New PID Controller – shows or hides the New PID Controller
tool bar button of the application
– Help – shows or hides the Help tool bar button of the
application
Publication LOGIX-UM004A-EN-P - March 2007
64 FuzzyDesigner Graphical User Interface
• Status Bar – shows or hides the status bar of the application
• Tree View – shows or hides the Tree View tab control page of
the application
Tools
FuzzyDesigner Main Menu Tools Structure
• Options
– Show in Status Area – check this menu item to set the
FuzzyDesigner to the server mode. The FuzzyDesigner icon
shows in the status area and the application should be closed
only through the icon context menu.
• Reset Internal States – resets the internal states of all Input Port
filters and PID Controllers in the just active project
• Process Membership Functions – appropriate output variables
process according to fuzzy sets in the just active project
• Set Port Order … – see section Port Order Editor
• Watch … – see section Watch
• Simulation … – simulate your process by entering values for the
variables defined on input ports (see Fuzzy System Simulation)
• 2D Graph … – see section 2D Graph
• 3D Graph … – see section 3D Graph
• Add-On Instruction … – create or monitor fuzzy Add-On
Instructions (see RSLogix 5000 Add-On Instruction)
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Graphical User Interface 65
Window
FuzzyDesigner Main Menu Window
• Tile – tiles all open windows in the application workplace
• Cascade – cascades all open windows in the application
workplace
• Arrange Icons – arranges icons in the application workplace
• Minimize All – minimizes all windows in the application
workplace
• Maximize All – maximizes all windows in the application
workplace
• Restore All – restores all windows to their normal size in the
application workplace
Help
FuzzyDesigner Main Menu Help
• Contents … – shows the help contents
• Index … – shows the help index
• Search … – shows the help search dialog
• Product Activation … – shows the Product Activation dialog with
the Computer ID. Send this together with the serial number to
technical support to get the Activation Key to access the desired
application features.
• About … – about the FuzzyDesigner
Publication LOGIX-UM004A-EN-P - March 2007
66 FuzzyDesigner Graphical User Interface
Tool Bar Menu
This section lists all menu buttons in the tool bar menu (see
FuzzyDesigner Tool Bar) of the FuzzyDesigner main window.
• Create new project
• Open project
• Save active project
• Undo – see section FuzzyDesigner Control Basics
• Redo – see section FuzzyDesigner Control Basics
• Refresh – evaluates static the just active project
• Go to Design Mode…/Go to Monitoring Mode – switches
FuzzyDesigner between the Design and Monitoring Mode (see
section FuzzyDesigner Control Basics)
• Preview – shows the preview of the current project
• Print
• Hide Tree View – see section FuzzyDesigner Tree View
• New Input Port
• New Input Linguistic Variable
• New Output Port
• New Output Linguistic Variable
• New Output Takagi-Sugeno Variable
• New Intermediate Linguistic Variable
• New Rule Block
• New PID Controller
• Help – shows the FuzzyDesigner help
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects
Chapter
4
Introduction
The basic working unit in the FuzzyDesigner is a project. This chapter
describes the concept of a project.
TopicPage
Working with Projects67
Designing a Fuzzy System72
Fuzzy System Components75
Term Editor102
Term Properties Dialog105
Rule Editor108
Port Order Editor113
Watch113
History Graph117
2D Graph122
3D Graph125
A project is a set of data containing information related to a particular
fuzzy system. Designing a fuzzy system involves several steps –
definition of components and links between components, design of
membership functions, and creating fuzzy rules.
Working with Projects
67Publication LOGIX-UM004A-EN-P - March 2007
Most of the commands used for basic operations with projects can be
found in the Project menu. This menu contains the following
commands:
• New – creates a new project
• Open – opens an existing project
• Close – closes the currently active project
• Close All – closes all opened projects
• Save – saves the currently active project
• Save As – saves the currently active project to new file
• Project Information – shows the information about the currently
active project
• Preview – shows the preview of the currently active project
window
68 FuzzyDesigner Projects
• Print – prints the project window of the currently active project
• Recent Projects – shows the four most recent projects
• Exit – closes FuzzyDesigner
All opened projects and their components are seen in the Tree View
tab control page. When you right-click a tree view node, a context
sensitive menu appears. When you right-click the Projects node, a
context menu with the following commands appears (see Projects
Tree View Node Context Menu):
• New – creates a new project (see section Creating a Project)
• Open – opens an existing project (see section Opening an
Existing Project)
• Close All – closes all opened projects (see section Closing a
Project)
Projects Tree View Node Context Menu
When you right-click the opened project node, a context menu with
the following commands appears (see Project Tree View Node
Context Menu):
• Close – closes the project (see section Closing a Project)
• Save – saves the project (see section Saving a Project)
• Save As – saves the currently active project to new file (see
section Saving a Project)
• Preview – shows the project preview
• Print – prints the project (see section Printing a Project)
Project Tree View Node Context Menu
Publication LOGIX-UM004A-EN-P - March 2007
There are project component type nodes of the applied components
under the node of each opened project. When you right-click the
component type node, a context menu with the following command
appears (see Component Type Tree View Node Context Menu):
FuzzyDesigner Projects 69
• Delete All – deletes all applied components with the appropriate
type from the project.
Component Type Tree View Node Context Menu
There are component nodes of the applied components under the
appropriate component type node of each opened project. When you
right-click the component node, a context menu with the following
commands appears (see Component Tree View Node Context Menu):
• Delete – deletes the selected component from the project
• Properties – shows the properties dialog of the selected
component (see section Fuzzy System Components)
Component Tree View Node Context Menu
Creating a Project
Create a new project by using the Project\New main menu command
or the New context menu command of the Projects tree view node.
When a new project is created, the appropriate tree view node and
project window will be added. A new project is not automatically
saved. To save a recently created project, use the Save As command
(see section Saving a Project) in the Project menu.
Opening an Existing Project
Follow these steps to open the existing project.
1. Select the Project\Open main menu command or the Open
context menu command of the Projects tree view node.
2. From the Open dialog, choose the appropriate file type (fsp)
and click or type the name of the project file.
Publication LOGIX-UM004A-EN-P - March 2007
70 FuzzyDesigner Projects
3. When you select a fsp-file type, a file in the XML format with all
project information will open.
When the selected file has no information about the project
graphical representation or about FuzzyDesigner GUI, the
project will be opened with a default graphical representation
and FuzzyDesigner GUI information (without the project
description, for example).
4. Click Open.
When the project opens successfully, the appropriate tree view
node will be added to the Tree View tab control page and the
project window will be opened in the application workplace
with appropriate recently opened dialogs.
FuzzyDesigner is a Multi-Document Interface (MDI) application, so
you can open more then one project at a time. Only one of the
currently opened projects can be active, so all the tool bar button
commands associated with a project are applied to this active project.
The FuzzyDesigner active window does not automatically relate to the
active project.
Changing the Active Project
You can switch between projects by clicking the appropriate project
window or project tree view node. When a new or existing project is
opened, it is automatically set as the active project. The name of the
active project is shown in the title of the FuzzyDesigner main window.
Project Information
Use the Project\Project Information main menu command to open the
Project Information dialog (see Project Information Dialog) for an
active project.
Properties group box – Specify additional information for the project,
in the appropriate text boxes.
• Project Name
• Description
• Author
• Company
• Project ID – free-form project identification code
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 71
OK button - Accept the entered properties for the project.
Cancel button – Click the button if you do not want to apply the
changes, but you want to close the dialog.
Project Information Dialog
Saving a Project
To save changes made in the active project, use the Project\Save main
menu command. To save newly created projects, or to save to another
project, use the Project\Save As main menu command. The standard
Save As dialog appears immediately, so you may click the directory,
where the project will be stored and type a new project name in the
dialog.
The FuzzyDesigner project can be saved to the file with .fsp
extension, where all the information about the project is stored in the
XML format. This file can be opened in any XML editor.
Closing a Project
You can close an active project using the Project\Close main menu
command or directly close the active project by clicking Close in the
top right corner of the project window.
Publication LOGIX-UM004A-EN-P - March 2007
72 FuzzyDesigner Projects
To close all open projects, use the Project\Close All main menu
command.
FuzzyDesigner may display a dialog, prompting you to save your
project before closing it. To save the project’s changes, click Yes. To
close the project without saving the project’s changes, click No. To
return to the project without saving or closing the project, click
Cancel.
Message Box of Closing an Unsaved Project
Designing a Fuzzy System
Designing a Project
The fuzzy system is designed in the project window, which is the
main window for every project opened in FuzzyDesigner. There is a
graphical representation of the designed hierarchical fuzzy system
with applied project components and an additional text comment. A
detailed description of how to work in the project window is available
the section Designing a Fuzzy System.
Printing a Project
You can print the active project using the Print main menu command
in the Project menu. You can also configure your printer from the
Print dialog that appears.
Having a graphical representation of a Fuzzy System speeds up the
design, and also makes the internal architecture more transparent and
interpretable. It also serves as natural project documentation. The
graphics consist of three parts - the workspace of the project window,
blocks, and text. These are explained in the following sections.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 73
Fuzzy System Project Window
The fuzzy system project window enables the designer to create block
diagrams of a fuzzy system by inserting and linking graphical objects,
library components, and text. The window size is user defined, and
accommodates any structure of a fuzzy system. Avoid moving any
object outside of this area. If you right-click the empty Design Sheet
window, the Design Sheet context menu (see Fuzzy System Project
Window Context Menu) appears. The following menu items are
available.
Fuzzy System Project Window Context Menu
• Select all – Selects all blocks and texts.
• New Input Port, New Output Port, – Adds a new block to the
sheet.
• Project Information – Opens a window with project information.
Working with Blocks
There are eight types of Fuzzy System Components (see section Fuzzy
System Components), referred to as blocks, which enable you to
design the fuzzy system as a block diagram. Blocks are graphical
objects.
Adding a Block
A new block can be added to the existing diagram in several ways.
The first is by using context menu. This menu is described in the
section Fuzzy System Project Window.
The other way to add a new block to the existing diagram is to use
the Main Menu or the Tool Bar.
Publication LOGIX-UM004A-EN-P - March 2007
74 FuzzyDesigner Projects
Selecting a Block
Click an existing block to select it. Other previously selected objects
are automatically unselected.
To select multiple graphical objects, draw a bounding box around
them with your mouse, or hold the CTRL key while clicking them.
To select all graphical objects (blocks and texts) use the Select All item
from Fuzzy System Project Window Context Menu (see section Fuzzy
System Project Window). You can also select a block through the Tree
View.
Removing a Block
A block can be removed from the graphical model using the keyboard
or the Tree View. Select a block and press the Delete key. Blocks are
removed from the project completely.
Moving a Block
Graphical objects can be moved by using a drag and drop operation
with your mouse or by using the CTRL and directional arrow keys on
a selected object. The final position of the object must lie inside the
working area. If one or more dragged objects are moved out of the
permitted area then the objects are moved by default to the nearest
permitted position.
Resizing a Block
Select an object and move your mouse over to any corner of object.
Resize the object by clicking and dragging on a corner. You can resize
only one block at a time.
Block Properties
A block has two sets of parameters - the graphical and the internal
parameters. All the parameters are accessible from the block context
menu (see Blocks Context Menu). This menu appears if you
right-click a block or a group of selected blocks.
Publication LOGIX-UM004A-EN-P - March 2007
You can change block appearance (graphical) parameters, foreground
color (the color of the border), background color, font and line width.
FuzzyDesigner Projects 75
You can change the internal parameters that define the block function
by clicking the Block Properties menu item or by double-clicking the
object. You can also modify internal parameters by using the Tree
View.
Blocks Context Menu
Working with Text
Fuzzy System Components
Use text to make comments in a fuzzy model. To insert text, select the
Text Properties command in the Design Window context menu. If you
enter only spaces or don’t enter any text, the text object is not created.
Text objects are not selectable from the tree view.
To edit a text object, double-click the object, or right-click the text
object and select the Text Properties command.
Texts Context Menu
There are eight fuzzy system component types:
• Input Port
• Input Linguistic Variable
• Output Port
• Output Linguistic Variable
• Output Takagi-Sugeno Variable
• Intermediate Linguistic Variable
• Rule Block
Publication LOGIX-UM004A-EN-P - March 2007
76 FuzzyDesigner Projects
• PID Controller
Components of the same type used more than once in the same
project must have a unique name. The Input Port and the Input
Linguistic Variable can share the same name. The name of the Input
Linguistic Variable, Output Linguistic Variable, Output Takagi-Sugeno
Variable and PID Controller used in the same project cannot be shared
by the other components. The Output Port can share names with the
Output Linguistic Variable.
Input Port
Use the Edit\New Port\New Input Port main menu command or the
New Input Port tool bar button to add a new Input Port (IP) to the
currently active project. Use the New Input Port project window
context menu command to add a port. First, the Input Port properties
dialog appears. A default name is assigned to a new component. Click
OK to apply the component to the appropriate project. All names
assigned to Input Ports belonging to a single project must be unique.
• General tab dialog – Specify the main properties of a new or
existing IP.
Input Port Properties Dialog– General Tab Dialog
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 77
– Port General group box – Enter general parameters of a new
or existing IP.
• Port Name – Specify the IP name. This name will be used
as the input parameter name when the fuzzy algorithm is
compiled to an Add-On Instruction.
• Use Filter – The IP input value can be filtered by a
user-defined filter. Click the Use Filter check box to set up
the Input Port filter.
• Butterworth Lowpass Filter – Click this radio button to set
the Butterworth Lowpass Filter parameters.
• Filter with Specific Transfer Function – Click this radio
button to set the user defined filter parameters.
• Get Transfer Function– When you want to read the transfer
function of the specified Butterworth Lowpass Filter (its
numerator and denominator), click this button. The
required numerator and denominator will be shown in the
appropriate text boxes of the Filter with Specific Transfer
Function group box.
– Butterworth Lowpass Filter group box – Specify parameters of
a Butterworth Lowpass filter.
• Filter Order – If you selected the Butterworth Lowpass
Filter radio button, enter the required filter order here.
• Cutoff Frequency – If you selected the Butterworth
Lowpass Filter radio button, enter the cutoff frequency
here.
– Filter with Specific Transfer Function group box – There are
two text boxes, for you to specify the filter parameters.
• Numerator Coefficients – If you selected the Filter with
Specific Transfer Function radio button, enter the
numerator coefficients here (see Input Port component
description). Separate coefficients with a space: b
…b
.
m
b1
0
• Denominator Coefficients – If you selected the Filter with
Specific Transfer Function radio button, enter the
denominator coefficients here (see Input Port component
description). Separate coefficients with a space: a
…a
1
n.
Publication LOGIX-UM004A-EN-P - March 2007
78 FuzzyDesigner Projects
• Description tab dialog – Specify the description of a new or
existing IP.
Input Port Properties Dialog– Description Tab Dialog
– Port Description – Enter the description of the IP. This
description will be used as the input parameter description
when the fuzzy algorithm is compiled to an Add-On
Instruction.
• Reset Filter State button – Click this button to reset the internal
state of the implemented filter.
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to close the IP properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 79
Input Linguistic Variable
Use the Edit\New Variable\New Input Linguistic Variable main menu
command or the New Input Linguistic Variable tool bar button to add
a new Input Linguistic Variable (ILV) to the currently active project.
Use the New Input Linguistic Variable project window context menu
command to add a variable.
First, the Input Linguistic Variable properties dialog appears. Click OK
to add the component to the appropriate project. Input Linguistic
Variable names must be unique in the same project.
• General tab dialog – Specify the main properties of a new or
existing ILV.
Input Linguistic Variable Properties Dialog – General Tab Dialog
– Variable Name – Specify the variable name.
– Input Link – Select a feasible ILV input link from the
drop-down list. The link can realize the connection between
the ILV and an Input Port, Output Linguistic Variable, Output
Takagi-Sugeno Variable or a PID Controller. When the dialog
for a new unconnected ILV is opened, then all feasible input
links are displayed.
Publication LOGIX-UM004A-EN-P - March 2007
80 FuzzyDesigner Projects
• Unit tab dialog – Specify the unit of a new or existing ILV.
Input Linguistic Variable Properties Dialog – Unit Tab Dialog
– Predefined – Click this radio button to select the variable unit
from the list of predefined units.
• Variable of – Select one of the predefined quantities,
which has the same meaning as the ILV.
• In – Select one of the predefined units as the requested
unit of the ILV.
– User Defined – Click this radio button to select a user-defined
variable unit.
• Unit – Specify a unit of the ILV, up to 100 characters.
Publication LOGIX-UM004A-EN-P - March 2007
• Range tab dialog – Enter the operating range of the variable.
Input Linguistic Variable Properties Dialog – Range Tab Dialog
– Minimum – Specifies the lower limit of the variable.
– Maximum – Specifies the upper limit of the variable.
FuzzyDesigner Projects 81
– Rescale Membership Functions of the Applied Terms – Click
this check box to rescale the membership functions of all
terms of the ILV.
IMPORTANT
The minimum value must be always lower then the maximum
value. When the dialog for a new ILV is opened the default
range is preset to –1 for minimum and 1 for maximum.
• Terms tab dialog – The ILV properties dialog defines the variable
through the following terms.
Input Linguistic Variable Properties Dialog – Terms Tab Dialog
– Count – Specify number of terms, fuzzy sets, related to the
variable.
– Type – Select either the trapezoid or s-function ILV term type.
When the ILV properties dialog is open for the existing
variable, the term type of the applied variable terms is
displayed. Other is displayed when term types for the
selected variable differ.
– Names – Select default names of terms for the variable. When
the ILV properties dialog is open for the existing variable, any
applied terms are shown.
IMPORTANT
When the ILV properties dialog is open for an existing variable,
then the terms count, the type and the names are visible, but
you cannot change them in the properties dialog.
Publication LOGIX-UM004A-EN-P - March 2007
82 FuzzyDesigner Projects
• Description tab dialog – Specify the description of a new or
existing ILV.
Input Linguistic Variable Properties Dialog – Description Tab Dialog
– Variable Description – Enter the description of the ILV.
• Term Editor button – Click this button to open the Term Editor
(see section Term Editor), where the predetermined variable
terms can be changed (count, names).
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to close the ILV properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Output Port
Use the Edit\New Port\New Output Port main menu command or the
New Output Port tool bar button to add a new Output Port (OP) to
the appropriate fuzzy system project. Alternatively, use the New
Output Port project window context menu command to add a port.
The Output Port properties dialog appears and a default name is
assigned to the component. Click OK to add the component to the
appropriate project. All Output Port names must be unique in the
same project.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 83
• General tab dialog – Specify all parameters of a new or existing
OP.
Output Port Properties Dialog – General Tab Dialog
– Port Name – Specify the OP name. This name will be used as
the output parameter name when the fuzzy algorithm is
compiled to an Add-On Instruction.
– Input Link – Set up the OP input link. The link can realize the
connection between the OP and the Input Port, Output
Linguistic Variable, Output Takagi-Sugeno Variable or the PID
Controller.
• Description tab dialog – Specify the description of a new or
existing OP.
Output Port Properties Dialog – Description Tab Dialog
– Port Description – Enter the description of the OP. This
description will be used as the output parameter description
when the fuzzy algorithm is compiled to an Add-On
Instruction.
• OK button – Accept the entered properties for the project.
Publication LOGIX-UM004A-EN-P - March 2007
84 FuzzyDesigner Projects
• Cancel button – Click this button to leave the OP properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Output Linguistic Variable
Use the Edit\New Variable\New Output Linguistic Variable main
menu command or the New Output Linguistic Variable tool bar button
to add a new Output Linguistic Variable (OLV) to the appropriate
fuzzy system project. Alternatively, use the New Output Linguistic
Variable project window context menu command to add a variable.
The Output Linguistic Variable properties dialog appears and a default
name is assigned to the component. Click the OK button to add the
component to the appropriate project. All Output Linguistic Variable
names must be unique in the same project.
• General tab dialog – Specify the main properties of a new or
existing OLV.
Output Linguistic Variable Properties Dialog – General Tab Dialog
– Variable Name – Specify the variable name.
– Fuzzy Inference Algorithm – Specify the fuzzy inference
algorithm to be applied.
– Defuzzification Algorithm – Select the Defuzzification
algorithm.
– Compute Output Fuzzy Set – Click this check box to generate
a fuzzy set as the component output.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 85
• Unit tab dialog – Specify the unit of a new or existing OLV.
Output Linguistic Variable Properties Dialog – Unit Tab Dialog
– Predefined – Click this radio button to select the unit of the
variable from the list of predefined units
• Variable of – Select one of the predefined quantities,
which has the same meaning as the OLV.
• In – Select one of the predefined units as the requested
unit of the OLV.
– User Defined – Click this radio button to enter a user-defined
variable unit.
• Unit – Enter the unit name of the OLV, up to 100
characters.
Publication LOGIX-UM004A-EN-P - March 2007
86 FuzzyDesigner Projects
• Range tab dialog – Specify the range of the variable and its
default value.
Output Linguistic Variable Properties Dialog – Range Tab Dialog
– Minimum – Specify the lower limit of the variable.
– Maximum – Specify the upper limit of the variable.
– Default Value – Set up the default value of the variable. The
default value must be within the specified range of the
variable.
– Rescale Membership Functions of the Applied Terms – Click
this check box to rescale the membership functions of all
applied terms of the OLV.
IMPORTANT
The minimum value must be always lower then the maximum
value. When the dialog for a new OLV is open the default range
is preset to –1 for minimum and 1 for maximum. The default
value is set to the middle of this variable range.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 87
• Terms tab dialog – When the OLV properties dialog is open for
defining the variable, you can specify the variable terms in the
same way as was explained for the Input Linguistic Variable.
Output Linguistic Variable Properties Dialog – Terms Tab Dialog
– Count – the number of terms.
– Type – the type of terms.
– Names– predefined names of terms.
IMPORTANT
When the OLV properties dialog is open for an existing variable,
then the terms count, the type and the names are visible, but
you cannot change them in the properties dialog.
• Description tab dialog – Specify the description of a new or
existing OLV.
Output Linguistic Variable Properties Dialog – Description Tab Dialog
Publication LOGIX-UM004A-EN-P - March 2007
88 FuzzyDesigner Projects
– Variable Description – Enter the description of the OLV.
• Term Editor button – Click this button to open the Term Editor
(see section Term Editor), where the default variable terms can
be changed, for example, count and names.
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to leave the OLV properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Output Takagi-Sugeno Variable
Use the Edit\New Variable\New Output Takagi-Sugeno Variable main
menu command or the New Output Takagi-Sugeno Variable tool bar
button to add a new Output Takagi-Sugeno Variable (OTSV) to the
active project. Alternatively, use the New Output Takagi-Sugeno
Variable project window context menu command to add a variable.
The Output Takagi-Sugeno Variable properties dialog appears and a
default name is assigned to the component. Click OK to add the
component to the appropriate project.
All Output Takagi-Sugeno Variable names must be unique in the same
project.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 89
• General tab dialog – Specify the main properties of a new or
existing OTSV.
Output Takagi-Sugeno Variable Properties Dialog – General Tab Dialog
– Variable Name – Specify the variable name.
– Applied Input Links –All pins and applied input links of the
OTSV are shown here. The component pins can be
connected to the Input Ports, Output Linguistic Variables,
Rule Blocks and the PID Controllers.
– Available Input Links – Select an available feasible input link
for the variable.
– Add Pin button – Click this button to add the pin to the
Applied Input Links table related to the OTSV.
– Remove Pin button – Click this button to remove the pin
selected in the Applied Input Links table.
– Connect button – Click this button to connect the link
selected in the Available Input Links combo box with the pin
selected in the Applied Input Links table.
Publication LOGIX-UM004A-EN-P - March 2007
90 FuzzyDesigner Projects
• Unit tab dialog – Specify the unit of a new or existing OTSV.
Output Takagi-Sugeno Variable Properties Dialog – Unit Tab Dialog
– Predefined – Click this radio button to select a predefined unit
of the variable.
• Variable of – Select one of the predefined quantities that
has the same meaning as the OTSV.
• In – Select one of the predefined units as the requested
unit of the OTSV.
– User Defined – Click this radio button to insert a user-defined
unit of the variable.
• Unit – Specify a unit of the OTSV. The unit name can be
up to 100 characters long.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 91
• Range tab dialog – Specify the range of the variable including its
default value.
Output Takagi-Sugeno Variable Properties Dialog – Range Tab Dialog
– Minimum – Specify the lower limit of the variable range.
– Maximum – Specify the upper limit of the variable range.
– Default Value – Specify the default value of the variable. The
default value must be within the variable range.
– Rescale Functions of the Applied Terms – Click this check
box to rescale functions of the all applied terms of the OTSV.
IMPORTANT
The minimum value must be always lower then the maximum
value. When the dialog for a new OTSV is opened the default
range is preset to –1 for minimum and 1 for maximum. The
default value is set up to the middle of this variable range.
Publication LOGIX-UM004A-EN-P - March 2007
92 FuzzyDesigner Projects
• Description tab dialog – Specify the description of a new or
– Variable Description – Enter the description of the OTSV.
• Term Editor button – Click this button to open the Term Editor
(see section Term Editor), where you can chage the terms of the
variable.
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to close the OTSV properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Intermediate Linguistic Variable
Use the Edit\New Variable\New Intermediate Linguistic Variable main
menu command or the New Intermediate Linguistic Variable tool bar
button to add a new Intermediate Linguistic Variable (IMLV) to the
active project. Alternatively, use the New Intermediate Linguistic
Variable project window context menu command to add a variable.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 93
The Intermediate Linguistic Variable properties dialog appears and a
default name is assigned to the component. Click OK to add the
component to the appropriate project. All Intermediate Linguistic
Variable names must be unique in the same project.
• General tab dialog – Specify the name of the IMLV.
Intermediate Linguistic Variable Properties Dialog – General Tab Dialog
– Variable Name – Enter the name of the variable.
• Terms tab dialog – The IMLV properties dialog defines the
variable through the following terms.
Intermediate Linguistic Variable Properties Dialog – Terms Tab Dialog
– Count – Specify the number of terms defined for the
intermediate linguistic variable. When the IMLV properties
dialog is open for an existing variable, the current number of
terms is shown.
Publication LOGIX-UM004A-EN-P - March 2007
94 FuzzyDesigner Projects
– Names – Change default names and specify names of terms
for the newly created intermediate variable. When the IMLV
properties dialog is open for the existing variable, the names
of terms already applied are shown.
IMPORTANT
When the IMLV properties dialog is open for an existing
variable, then the terms count and the term names are visible,
but you cannot change them in the properties dialog.
• Description tab dialog – Specify the description of a new or
existing IMLV.
Intermediate Linguistic Variable Properties Dialog – Description Tab Dialog
– Variable Description – Enter the description of the IMLV.
• Term Editor button – Click this button to open the Term Editor
(see section Term Editor), where you can change the default
terms of the variable (count, names).
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to close the IMLV properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
Rule Block
Use the Edit\New Rule Block main menu command or the New Rule
Block tool bar button to add a new Rule Block (RB) to the active
project. Use the New Rule Block project window context menu
command to add a block.
Publication LOGIX-UM004A-EN-P - March 2007
FuzzyDesigner Projects 95
The Rule Block properties dialog appears and a default name is
assigned to the component. Click OK to add the component to the
appropriate project. Rule Block names must be unique in the same
project.
• General tab dialog – Specify the main properties of a new or
existing RB.
Rule Block Properties Dialog – General Tab Dialog
– Block Name – Enter the block name.
– T-norm Type – Set up the t-norm type for the block.
Publication LOGIX-UM004A-EN-P - March 2007
96 FuzzyDesigner Projects
• Links tab dialog – Set up the RB input and output logical links.
– Block Description – Enter the description of the RB.
• Rule Editor button – Click this button to open the Rule Editor
(see section Rule Editor), where you can change the block rule
base, for example, add or delete rules.
• OK button – Accept the entered properties for the project.
• Cancel button – Click this button to close the RB properties
dialog. Any changes made are not applied. You can also click
Close, at the top right corner of the dialog.
PID Controller
Use the Edit\New PID Controller main menu command or the New
PID Controller tool bar button to add a new PID Controller (PIDC) to
the active project. Alternatively, use the New PID Controller project
window context menu command to add a controller.
The PID Controller properties dialog appears and a default name is
assigned to the component. Click the OK button to add the
component to the appropriate project. All PID Controller names must
be unique in the same project.
Publication LOGIX-UM004A-EN-P - March 2007
98 FuzzyDesigner Projects
• General tab control page – Specify the main properties of a new
or existing PIDC.
PID Controller Properties Dialog – General Tab Dialog
Publication LOGIX-UM004A-EN-P - March 2007
– PID Controller Name – Specify the controller name.
– Input Links group box – Set up all available input links or
values.
• Process Variable – Set up required process variable link.
• Set Point Link – Click the check box and select the set
point link.
• Set Point Value – When the Set Point Link check box is not
checked, enter the set point value in the text box.
• P Gain Link – Click the check box and select the P gain
link.
• P Gain Value – When the P Gain Link check box is not
checked, enter the P gain constant value.
• I Gain Link – Click the check box and select the I gain
link.
FuzzyDesigner Projects 99
• I Gain Value – When the I Gain Link check box is not
checked, enter the I gain constant value.
• D Gain Link – Click the check box and select the D gain
link.
• D Gain Value – When the D Gain Link check box is not
checked, enter the D gain constant value.
• Bias Link – Click the check box and select the bias link.
• Bias Value – When the Bias Link check box is not
checked, enter the bias constant value.
• Manual Control – Select the manual control link.
• Mode Switch – Select the mode switch link.
• Options tab control page – Specify all remaining options of a