Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
Application of Fuzzy Logic inControl
• Design and simulate a Fuzzy system that willcontrol a missile to follow/track a flying airplane
Application of Fuzzy Logic inControl (Cont.)
• Keep the missile pointed at the Aircraft at alltime!
Missile’s position
Aircraft’s Position
Tracking angle
Tracking error
Missile Azimuth
Build a Fuzzy System• Step 1
– Pick the nouns or variables• TrackingError Fuzzy set as an input• AzimuthAdjust Fuzzy set as control output
*Fuzzy Thinking:The new Science of Fuzzy Logic, Bart Kosko
Build a Fuzzy System• Step 2
– Define fuzzy subsets of the nounsTrackingError and Azimuth Adjust
• Assume that the airplane fly on the twodimension plane, X-Y plane, and that it can beany where on the horizon. TrackingError maytakes any value between -180 and +180 degrees
• Assume that the missile can not turn on thedime. ThusAzimuth adjust is limited to -45 and45 degrees
*Fuzzy Thinking:The new Science of Fuzzy Logic, Bart Kosko
Build a Fuzzy System• Step 2 {Cont.]
– TrackingError• Define 5 fuzzy subset
– LargePositive– SmallPositive– NearZero– SmallPositive– LargePositive
*Fuzzy Thinking:The new Science of Fuzzy Logic, Bart Kosko
Build a Fuzzy System• Step 2 {Cont.]
– AzimuthAdjust• Define 5 fuzzy subset
– LargePositive– SmallPositive– NearZero– SmallPositive– LargePositive
*Fuzzy Thinking:The new Science of Fuzzy Logic, Bart Kosko
Build a Fuzzy System• Step 3• Define the fuzzy rules
– If TrackingError is LargePositive then AzimuthAdjust LargePositive;– If TrackingError is SmallPositive then AzimuthAdjust SmallPositive– If TrackingError is NearZero then AzimuthAdjust NearZero– If TrackingError is SmallNegative then AzimuthAdjust SmallNegative;– If TrackingError is LargeNegative then AzimuthAdjust LargeNegative;
*Fuzzy Thinking:The new Science of Fuzzy Logic, Bart Kosko
Parameters
• Additional Information required– Airplane location, Plane_X and Plane_Y,– Airplane Speed,– Missile location, Missile_X and Missile_Y,– Missile Speed.
PreProcessing
• Compute tracking error as an input to theFuzzy system
IF (Plane_X = Missile_X) then IF (Plane_Y > Missile_Y) then TrackingError = 90; Else IF (Plane_Y < Missile_Y) then TrackingError = -90; Else TrackingError = 0;Else TrackingError = atand( (Plane_Y - Missile_Y) / (Plane_X - Missile_X) ) + if ( Plane_X < Missile_X, 180, 0);TrackingError = angle180(TrackingError - MissileAzimuth);
*CubiCalc:The Third Wave in Intelligent Software, HyperLogic Corporatiom
Simulation
• Once the Fuzzy System suggests theAzimuthAdjust, the new position of the aircraftand missile must be updatedMissileAzimuth = MissileAzimuth + AzimuthAdjust;MissileAzimuth = angle180(MissileAzimuth);# Update Missile and Plane positions.# Plane moves horizontally (no change in Plane_Y).# Missile chases plane.Plane_X = Plane_X + PlaneSpeed;#Plane_Y = Plane_Y;Missile_X = Missile_X + MissileSpeed * cosd(MissileAzimuth);Missile_Y = Missile_Y + MissileSpeed * sind(MissileAzimuth);
*CubiCalc:The Third Wave in Intelligent Software, HyperLogic Corporatiom
Simulation Result
*CubiCalc:The Third Wave in Intelligent Software, HyperLogic Corporatiom