Personally I like top posting...  :-)

I think automatic tuning PID controllers have improved in the last 30 
years, the software has become friendlier, but there are still things 
that need manual tuning, or at least some type of manual intervention.

I'm sure you can get a PID controller that can do a decent job 
autotuning a cascaded loop, but it won't be a cheapie.

I was working on commissioning a new 45 kw servo drive/motor 
yesterday.   Everything was working fairly well and it was time to tune 
the drive,  so I put the drive config software into autotune mode and it 
ran its routine.   After it finished
doing its thing, we did some tests via some fast moves and the drive 
control loops became unstable.    The drive is very smart so it shut 
itself down before I could hit the estop button.

I ran the autotuning routine again and the software produced the same 
tuning numbers.   I had to override the auto tuning test setup 
parameters via the drives "expert mode" (you can override everything - 
but at your own risk).  After tweaking the autotuning test parameters, I 
reran the autotune routine again and this time the results were very 
good.   The drive response was excellent.

This was a linear axis on a large custom machine.    The servo motor was 
coupled to a ballscrew via a timing belt 2:1 reduction drive.   The 
inertial load on the drive was relatively light compared to the high 
power of the drive and I think that is why the autotuning software 
became confused - inertial mismatch.

Still on a drive/motor setup that costs in excess of  $10K, you would 
think that the tuning software would be able to adjust to the situation. 
   But that was not the case.

Dave

On 2/19/2011 1:55 AM, dave wrote:
> On Fri, 2011-02-18 at 23:08 -0500, Dave wrote:
>
> I'm going to top post for brevity.
>
> http://www.redlion.net/Products/ProcessControl/PIDControllers.html
>
> 30 years ago I used something like this for controlling a muffle furnace
> to 600 C +- a degree or so. Self tuning pid loop.
> I would hope the stuff today is better. ;-)
>
> Dave
>
>
>    
>> I think you are talking about cascaded PID loops.   Where there is an
>> outer loop that drives an inner loop.
>>
>> The classic example is a vat, vessel, or reactor that is used to combine
>> or mix ingredients which has a steam jacket around it.
>>
>> Here is a description:
>> http://www.controlglobal.com/articles/2005/547.html
>>
>> This control scheme is very common in process control applications.
>> It gets even more interesting when the ingredients in the vat become
>> exothermic or endothermic during the processing.    Some systems have
>> three ways valves on the steam jacket so that in the case of
>> an exothermic reaction, chilled water can be run through the steam
>> jacket to cool off the ingredients.
>>
>> In your application, you might want to consider a using a cartridge
>> heater embedded in the Al block and use PWM to drive a solid state relay
>> that controls the heater.   That is a very common setup for plastic and
>> rubber processing machines where they have to control surface temps
>> closely in dies and extruders, etc.
>>
>> I think you could try using the EMC2's Hal layer and Classic Ladder to
>> do this.    (Read the EMC2 manual on loadable Hal components - it is
>> very interesting)  Classic ladder would make "hooking everything up"
>> logically much simpler.  You could make up a PyVCP screen to monitor and
>> control all of it.    I don't think the Gcode interpreter portion of
>> EMC2 would be very useful for this.
>>
>> You would need some scheme to get the temp values into the PC.
>>
>> The traditional industrial solution to doing this would be to use a
>> small PLC, like a Siemens S7-1200 which has two onboard analog inputs
>> and also has outputs that can be driven via built in PWM functions.   If
>> you can find them used, you can buy them for about $100.
>>
>> Dave
>>
>>
>>
>>
>> On 2/18/2011 8:27 PM, cogoman wrote:
>>      
>>> I have an unusual application that might be great for EMC2.  I have a
>>> small block of aluminum that need to be heated to a specific
>>> temperature.  Currently we put it in a chamber, and heat the chamber
>>> to... let's say 80 degrees C.  Soak for 1/2 hour an it's ready to test.
>>> When it comes out, and I need to cool it off, I put it in contact with a
>>> big block of Al at room temperature, and in about 2 minutes it's close
>>> enough to room temperature for further use.
>>>
>>>      I imagine a setup where three 500 watt halogen bulbs in series
>>> (giving maybe 250 watts worth of heat, and a lifetime that will outlive
>>> me) are nestled in an aluminum plate.  One of those glass bead
>>> thermistors (see Re: [Emc-users] Multiplexers) senses the surface
>>> temperature on the side opposite the heating elements.  It should be
>>> simple to set up EMC2 to accurately set that temperature quickly with
>>> proper PID values.  Now I sandwich my block of aluminum between this
>>> heat source, and a plate underneath it with another thermistor.  I set
>>> the temperature of the top block to be 10 degrees hotter than I want,
>>> assuming the center of my object is halfway between the temperature of
>>> the top plate, and the temperature of the bottom plate.
>>>
>>>      When the bottom plate gets to 9 degrees short of the temperature I
>>> want, I start to back the temperature of the top plate down, with the
>>> intention of having them meet in the middle.  When the temperature
>>> difference between top plate and bottom plate is about 1 degree, I could
>>> have the PC buzz a speaker, letting me know I can make a measurement.
>>>
>>>      The nesting of PID loops occurs because the temperature of the top
>>> plate becomes the commanded temperature for my block of aluminum, and
>>> the temperature of the bottom plate becomes my actual temperature for
>>> the inside PID loop.
>>>
>>>      Since the temperature control doesn't need sub second speeds, any old
>>> PC, even one still using the on-board video should be fast enough for
>>> this purpose, unless we read temperature using the game card method.  A
>>> fast thread can discharge a capacitor to ground, then release it and
>>> start counting.  A comparator will change state when the voltage passes
>>> that of the thermistor.  Then EMC2 takes that integer value, looks it up
>>> in a table, and passes on the temperature in degrees C to the PID loop.
>>>
>>> *  What I need help with is how to implement this.  I can picture
>>> setting the target temperature using G-code, perhaps setting it up as a
>>> very slow spindle that needs to come up to speed, but that sounds too
>>> kludgey.  I suspect that a separate GUI program tied into HAL might be a
>>> more appropriate way to do this.  I am also wondering if classic ladder
>>> would be appropriate.  Any ideas?*
>>>
>>>      I think temperature control is one area that if we set up some good
>>> instructions to make it easy on a beginner, or perhaps even set up some
>>> temperature configurations in the drop down list of sample machines, we
>>> might get some users outside of the CNC arena.
>>>
>>>      As I wrote that, I thought about the wiki page on stepper motors
>>> (guilt, guilt) that I have in the works.  It's fairly far along, so
>>> maybe I should post it, and tweak it as others read, and point out
>>> anything that's unclear.
>>>        
>
>    
>>> ------------------------------------------------------------------------------
>>> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
>>> Pinpoint memory and threading errors before they happen.
>>> Find and fix more than 250 security defects in the development cycle.
>>> Locate bottlenecks in serial and parallel code that limit performance.
>>> http://p.sf.net/sfu/intel-dev2devfeb
>>> _______________________________________________
>>> Emc-users mailing list
>>> Emc-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/emc-users
>>>
>>>
>>>        
>>
>> ------------------------------------------------------------------------------
>> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
>> Pinpoint memory and threading errors before they happen.
>> Find and fix more than 250 security defects in the development cycle.
>> Locate bottlenecks in serial and parallel code that limit performance.
>> http://p.sf.net/sfu/intel-dev2devfeb
>> _______________________________________________
>> Emc-users mailing list
>> Emc-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/emc-users
>>      
>
> ------------------------------------------------------------------------------
> The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
> Pinpoint memory and threading errors before they happen.
> Find and fix more than 250 security defects in the development cycle.
> Locate bottlenecks in serial and parallel code that limit performance.
> http://p.sf.net/sfu/intel-dev2devfeb
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>
>    


------------------------------------------------------------------------------
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to