How should I tune the PID to improve 'Jog Axis' reponse?

In MAX the 'Jog Axis' reponse as the accessory.
When decelerating the velocity, it exceed zero more to a large negative velocity. And this makes the settling time long.
How should I tune the PID to disappear the phenomena? Anybody can tell me?
Thanks a lot.
Attachments:
Jog Axis.JPG ‏146 KB

Hi, Jochen. Thanks for your answer. Now I try to express my question in detail.
System: 2_D position table (50mm*50mm)
hardware:  PCI7344 + 2 voice coil motor + driver(no feedback,just a amplifier) + 0.5micron encoder(Renishaw) as the position feedback
software: Labview7.1 + MAX3.1
Aim: To get the setting time of single axis lower than 40ms (even if there is some overshot)
The document you mentioned I have read before. When I tune the servo,'Auto tune' can't get meaningful parameters. So all the time I tune it manually.
1, About Step reponse: I can get a setting time lower than 40ms(step 1000 counts + 200 sample) by accident, but the same PID I can't get the good result all the time.
2,When I use 'start motion.flx' moving 6000 counts (400000 counts/s+32000000 counts/s^2+S curve time 3) or use 'Jog axis',the setting time are more than 100ms (see axis.jpg). I try to increase the Td or Kd. It can change the overshot, but the setting time is not ideal.  IF Kd too large, the system will unstable.  I think maybe the aim is unpractical, right? Jochen, has you tune some table whose setting time lower than 40ms using 7344?
3,what's the relationship between 'step reponse' and 'Jog axis'.Should I tune the PID according to 'Step reponse' or 'Jog axis'? (In 'Jog axis', the velocity and Acceleration and Deceleration also play an important role.)
4,The driver have no current feedback.I guess it is an important problem.what'a your opinion?
Attachments:
jog axis.JPG ‏143 KB
jog axis2.JPG ‏143 KB

Similar Messages

  • How Can We Tune the Joins with "OR" Caluse ?

    Hi
    We've identified one Query in one of Our PL/SQL Stored Procedure which is taking huge time to fetch the records. I have simulated the problem as shown below. The problem Is, How can i tune the Jions with "OR" Clause. i have tried replacing them with Exists Caluse, But the Performance was not much was expected.
    CREATE TABLE TEST
    (ID NUMBER VDATE DATE );
    BEGIN
      FOR i IN 1 .. 100000 LOOP
        INSERT INTO TEST
        VALUES
          (i, TO_DATE(TRUNC(DBMS_RANDOM.VALUE(2452641, 2452641 + 364)), 'J'));
        IF MOD(i, 1000) = 0 THEN
          COMMIT;
        END IF;
      END LOOP;
    END;
    CREATE TABLE RTEST1 ( ID NUMBER, VMONTH NUMBER );
    INSERT INTO RTEST1
    SELECT ID, TO_NUMBER(TO_CHAR(VDATE,'MM'))
    FROM TEST ;
    CREATE TABLE RTEST2 ( ID NUMBER, VMONTH NUMBER );
    INSERT INTO RTEST2
    SELECT ID, TO_NUMBER(TO_CHAR(VDATE,'MM'))
    FROM TEST;
    CREATE INDEX RTEST1_IDX2 ON RTEST1(VMONTH)
    CREATE INDEX RTEST2_IDX1 ON RTEST2(VMONTH)
    ALTER TABLE RTEST1 ADD CONSTRAINT RTEST1_PK  PRIMARY KEY (ID)
    ALTER TABLE RTEST2 ADD CONSTRAINT RTEST2_PK  PRIMARY KEY (ID)
    SELECT A.ID, B.VMONTH
    FROM RTEST1 A , RTEST2 B
    WHERE A.ID = B.ID  
    AND ( (A.ID = B.VMONTH) OR ( B.ID = A.VMONTH ) )  
    BEGIN
    DBMS_STATS.gather_table_stats(ownname => 'PHASE30DEV',tabname => 'RTEST1');  
    DBMS_STATS.gather_table_stats(ownname => 'PHASE30DEV',tabname => 'RTEST2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST1_IDX1');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST2_IDX2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST1_IDX2');
    DBMS_STATS.gather_index_stats(ownname => 'PHASE30DEV',indname => 'RTEST2_IDX1');
    END; Pls suggest !!!!!!! How can I tune the Joins with "OR" Clause.
    Regards
    RJ

    I don't like it, but you could use a hint:
    SQL>r
      1  SELECT A.ID, B.VMONTH
      2  FROM RTEST1 A , RTEST2 B
      3  WHERE A.ID = B.ID
      4* AND ( (A.ID = B.VMONTH) OR ( B.ID = A.VMONTH ) )
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=94 Card=2 Bytes=28)
       1    0   TABLE ACCESS (BY INDEX ROWID) OF 'RTEST2' (Cost=94 Card=1 Bytes=7)
       2    1     NESTED LOOPS (Cost=94 Card=2 Bytes=28)
       3    2       TABLE ACCESS (FULL) OF 'RTEST1' (Cost=20 Card=100000 Bytes=700000)
       4    2       BITMAP CONVERSION (TO ROWIDS)
       5    4         BITMAP AND
       6    5           BITMAP CONVERSION (FROM ROWIDS)
       7    6             INDEX (RANGE SCAN) OF 'RTEST2_PK' (UNIQUE)
       8    5           BITMAP OR
       9    8             BITMAP CONVERSION (FROM ROWIDS)
      10    9               INDEX (RANGE SCAN) OF 'RTEST2_IDX1' (NON-UNIQUE)
      11    8             BITMAP CONVERSION (FROM ROWIDS)
      12   11               INDEX (RANGE SCAN) OF 'RTEST2_PK' (UNIQUE)
    Statistics
              0  recursive calls
              0  db block gets
         300332  consistent gets
              0  physical reads
              0  redo size
            252  bytes sent via SQL*Net to client
            235  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              2  rows processed
    SQL>SELECT /*+ ordered use_hash(b) */ A.ID, B.VMONTH
      2    FROM RTEST1 A, RTEST2 B
      3   WHERE A.ID = B.ID  AND(A.ID = B.VMONTH OR B.ID = A.VMONTH)
      4  ;
    Execution Plan
       0      SELECT STATEMENT Optimizer=CHOOSE (Cost=175 Card=2 Bytes=28)
       1    0   HASH JOIN (Cost=175 Card=2 Bytes=28)
       2    1     TABLE ACCESS (FULL) OF 'RTEST1' (Cost=20 Card=100000 Bytes=700000)
       3    1     TABLE ACCESS (FULL) OF 'RTEST2' (Cost=20 Card=100000 Bytes=700000)
    Statistics
              9  recursive calls
              0  db block gets
            256  consistent gets
            156  physical reads
              0  redo size
            252  bytes sent via SQL*Net to client
            235  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              2  rows processed

  • How should we get the out put file-name same as in put file-name in file to

    Hi frnds,
    having hundreds of files in the sender system with different names, how should we get the out put file-name  in the receiver system same as the in put file-name in file to file scenario ?
    Thanks in advance.
    truly,
    snrvakiti.

    Hi,
    In Receiver File Adapter you can set under 'Adapter-Specific Message Properties'
    check Use Adapter-Specific Message Properties
    check Fail on Missing Adapter Message Properties
    Check File Name
    Have a look at this link,  [File_to_File|http://allsapnetweavernotes.blogspot.com/2008/09/how-can-i-access-filename-from-fileftp.html]
    Regards,
    P.Rajesh

  • How should I set the iMac display in normal mode

    how should I set the iMac display in normal mode

    Not certain if this is what you're asking, but the normal setup would be System Preferences>Displays>Disply tab and select 'Best for display'.

  • To create apple US account i followed all the steps including none in the payment option. i dont have US address how should i fill the fields.

    to create apple US account i followed all the steps including none in the payment option. i dont have US address how should i fill the fields.

    You need to be in a country to use its store - if you are not in the US with a US billing address then you cannot use the US store.
    From the US store's terms of use :
    The iTunes Service is available to you only in the United States, its territories, and possessions. You agree not to use or attempt to use the iTunes Service from outside these locations. Apple may use technologies to verify your compliance.

  • How do I stop the Adobe Product Improvement Program prompt?

    How do I stop the Adobe Product Improvement Program prompt from coming up every time I open Photoshop CS5 on my Mac, even after I have responded that I do not want to participate?  This is becoming very annoying and I have looked on line for a method to turn this off without luck.
    Thanks,
    Alan

    It only asks once.
    So it sounds like your preferences might not be getting saved for some reason (usually a permissions problem on your system)..

  • How should I understand the parameters/argument values in the {} and [] right after a function?

    Hi,
    How should I understand the parameters/argument values in the {} and [] right after a function?
    For instance the {[Name="control"]}[Content] part in the
    control=Excel.CurrentWorkbook(){[Name="control"]}[Content]
    and also the [Control]{0} part in the periodctrl=control[Control]{0}.
    Thanks.
    Regards,

    The "[]" operator in M is like the "." operator in C-like languages, if that helps. It takes an aggregate value with named components and it selects one of those components. In the case of the record "Foo", "Foo[Bar]"
    returns the field named Bar. In the case of the table "Baz", "Baz[Quux]" returns the column named Quux.
    Similarly, the "{}" operator in M does subscripting of lists -- like the "[]" operator in C-like languages. If "Foo" is a list, then "Foo{0}" returns the first element of the list, "Foo{1}" returns the second
    element of the list, and so on.
    In the case of tables, it's also possible to use "{}" with a record argument, in which case it will return the row which matches the record criteria -- provided there is exactly one. So if "Foo" is a table, then "Foo{[Bar = 1]}"
    will return the row for which the Bar column has a value of 1.
    Many of the data access functions in Power Query return what we call "navigation tables". Sql.Database, for instance, returns a table with columns named Name, Schema, Object, Kind and Data. Each table in the database has a single entry in this
    navigation table. When we index into the table with "table{[Schema="dbo", Object="table"]}", we're selecting the single row that matches those criteria. This gives us a record. We then want to pick the "Data" field of
    that record, which contains the actual table data. That's why there's typically a "[Data]" at the end of expressions which fetch data from the SQL table.

  • How should I change the following SELECT QUERY?

    Requirement:
    There are checks in the program for material group 2, z93 AND z94 which should be skipped if the sales org = 'JP40'.
    sales organisation is taken from the layout(SE51) dictionary fields (MODULE POOL PROGRAM)
    The select query is:
    select single matnr
                      into t_mvke-matnr  "dummy
                      from mvke
                      where matnr = t_9000-matnr
                        and vkorg = vbak-vkorg
                        and vtweg = vbak-vtweg
                        and mvgr2 in (c_z93,c_z94).
    How should I skip the material group c_z93, c_z94 only for JP40(vbak-vkorg) sales organisation, except JP40 material group should be there for other sales org. but for JP40 material group should be skipped.
    What would be the select query or should I give any kind of IF conditions before select query.
    Please help me out.

    Hi Rani K
    You can try like
    IF VBAK-VKORG = 'JP40'.
    select single matnr
    into t_mvke-matnr "dummy
    from mvke
    where matnr = t_9000-matnr
    and vkorg = vbak-vkorg
    and vtweg = vbak-vtweg.
    ELSE.
    select single matnr
    into t_mvke-matnr "dummy
    from mvke
    where matnr = t_9000-matnr
    and vkorg = vbak-vkorg
    and vtweg = vbak-vtweg
    and mvgr2 in (c_z93,c_z94).
    ENDIF.
    Thanks
    Gaurav

  • TS1424 I was trying to update my apps and all I get is waiting, how should I resolve the problem?

    I was trying to update my apps and all I get is waiting, how should I resolve the problem?

    COntact iTunes by:
    Apple - Support - iTunes - Contact Us
    Is the credit card billing address in the same country as the iTunes/App store you are trying to use? It has to be.

  • I have forgot my ipod passcode how should i remove the passcode from it

    i have forgot my ipod passcode how should i remove the passcode from it

    Connect the iOS device to your computer and restore via iTunes. Place the iPod in Recovery Mode if necessary to allow the restore.
    If recovery mode does not work try DFU mode.
    How to put iPod touch / iPhone into DFU mode « Karthik's scribblings
    For how to restore:
    iTunes: Backing up, updating, and restoring iOS software
    To restore from backup see:
    iOS: How to back up
    If you restore from iCloud backup the apps will be automatically downloaded. If you restore from iTunes backup the apps and music have to be in the iTunes library since synced media like apps and music are not included in the iPod backup that iTunes makes.
    You can redownload iTuns purchases by:
    Downloading past purchases from the App Store, iBookstore, and iTunes Store

  • How should i get the delta data for those new object's previous delta data?

    Hallo all,
    i have 2lis_11_vahdr and i am using a standard and loading delta! now i have appended some new fields in the datasource then in infosource then in ods and infocube..! now how should i get the delta data for those new object's previous delta data???
    Jimmy

    Hi,
    After appending new fields in the datasoure.It is not possible to delta load, u should have to load everything
    Thanks,
    Shreya

  • All the my messages from my phone inbox disappeared.Why did it happen and how should i get the messages back?please help

    All the my messages from my phone inbox disappeared.Why did it happen and how should i get the messages back?please help

    Is the MacBook the computer you have synced with in the past? If not you can use the computer that you have synced with to restore your apps. Are you sure you are using the same Apple ID that you used to purchase the Apps?

  • How should i modify the hp54600a instrument driver for GPIB so i can use it for RS232 interface ?

    I try to modify the hp54600a instrument driver for GPIB, so i can use it with RS232. But somehow it didnt work. When i try to run the initilize it, the prgoram show VISA read error (time is up before the process is finish). How should I modify the VI so I can use it with RS232 interface ?

    First, check the instrument's user manual to see if the GPIB and serial command sets are the same. Also check to see what EOS(End of String) characters the instrument requires. Then, do a loopback test to test communication in LabVIEW.
    Search Results: Serial Loopback Test
    Ray K
    NI Applications EngineerMessage Edited by Molly K on 02-18-2005 10:57 PM

  • How should I set the parameters of PID Autotuning such as relay amplitude and PV noise level?

    I want to control the temperature of a room by changing the hot water flow of a radiator with a control valve. The desirable control accuracy is +/- 0.5 degree of centigrade.
    What number should I set for relay amplitude? And what number should I set for PV noise level?

    Hello loghmani,
    If your output is saturating try to reduce your relay amplitude and/or reduce the gain Kc of the PID controller before starting the autotuning procedure.  You can find more information about each of the parameters that you've inquired about at this KnowledgeBase article.
    I would recommend taking a look at the General Auto PID Simulator.vi example.  You can find this example by doing a search in the example finder or by clicking linked example at the bottom of the detailed help page of the Autotuning PID.vi.
    If you haven't looked at the PID user manual that also contains useful information on setting up PID algorithims and Autotuning.
    David A
    National Instruments
    FlexRIO Product Support Engineer

  • How do I get the PID of a child process in java using JNI?

    I am writing an app in Java (for **nix) that will spawn multiple processes (using Process objects). I want to be able to get the PID for a particular child process (not the parent). How can I do this?

    You could try an extreme hack of using JNI to read whatever field of the java.lang.Process-derived class may hold a native process id. This would be unsupportable beyond the exact JVM(s) you can test it on, and should only be a last resort, but within these constraints it may work well. The source code for package java.lang gives clues of where to start hacking.
    -slj-

Maybe you are looking for