Board logo

标题: [讨论]有人用DSP做过模糊控制吗 [打印本页]

作者: bjxiong    时间: 2005-10-11 14:27     标题: [讨论]有人用DSP做过模糊控制吗

有人用DSP做过模糊控制吗,有的话,回一下,讨论一下吧
作者: ctypyb2002    时间: 2006-4-3 03:19

老大,我也想用以下模糊控制,能否指教??
邮箱:ctypyb2002@yahoo.com.cn
作者: blueseahaichao    时间: 2006-4-3 22:43

There are a lot of application now using DSP for fuzzy logic controls. Fuzzy logic doesn't require strange hardware or new programming languages, just a different approach to set membership. Plenty of physical systems, from elevators to boilers, can be done from fuzzy-logic programming.

You can use standard off-the-shelf microprocessors to build fuzzy-logic systems. But what if you're designing a real-time, safety-critcal system? Fuzzy-logic controllers sometimes require more processing power to work in real time. Conventional microprocessors are adequate for most applications—even fuzzy-logic applications—but not always for safety-critical ones that require extremely fast and predictable response times. When conventional processors aren't fast enough, a digital signal processor (DSP) may be just what your system needs.

DSPs, the specialized microprocessors with math-oriented features and instruction sets, were initially used only in signal-processing applications. Now they've become more popular as the variety and quality of DSP software-development tools have increased. DSPs are now cost-competitive with general-purpose microprocessors. Today any application that can benefit from high-speed multiply/accumulate (MAC) operations is a candidate for DSP processors.

Any fuzzy-logic-based controller has three components: the fuzzifier, the rule base, and the defuzzifier. Each component plays an important role in transforming a crisp (digital) input to a fuzzy value, operating on that value, and then converting the fuzzy value back into a crisp output. Although implementation of fuzzy controllers differs, they all have these three basic components.

The fuzzifier takes a crisp input value and converts it to a fuzzy value by scaling the input value if necessary and transforming it into a multi-valued entity. Scaling maps the input's domain into some internal format that all variables use. This multi-valued entity is the result of comparing the input value to its corresponding input set and mapping the value to reflect its membership characteristics.

The rule base takes the input from the previous stage and adds up the areas for each relevant statement. The rule base is made up of a series of one or more IF-THEN statements. Each statement is in turn composed of two parts: the antecedent (to the left of the keyword "then") and the consequence (to the right of "then"). A statement may have one or more antecedents and consequences. A typical rule statement looks like this:

if antecedent1 . . . antecedentN THEN
consequence1 . . . consequenceN

The antecedent and the consequence both take the form Variable is Condition, where Variable is an input variable for the antecedent or an output variable for a consequence. The condition portion of the consequence is a fuzzy membership function like "cold," "warm," or "hot." The rule base compares every rule against data from the fuzzifier. When it encounters an antecedent that's true, it triggers the statement's consequence action. This triggering action is referred to as firing.

An example of a rule base for an elevator might look like:

IF door is open AND velocity is zero AND distance is negligible THEN motor is nil
IF door is closed AND velocity is slow AND distance is great THEN motor is maximum
IF door is closed AND velocity is medium AND distance is moderate THEN motor is average
IF door is closed AND velocity is fast AND distance is moderate THEN motor is average

The rest of discussion I will leave to you guys




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0