Closed loop configuration question

I have a motor(with encoder feedback) attached to a linear actuator(with end limit switches).
The motor has a commercially bought servo drive for control. 
The servo drive will accept either a step/direction (2 seperate TTL
digital pulse train inputs) or an analog -10 to 10vdc input for
control. 
The purpose is to drive a linear actuator(continiously in and out) in
closed loop operation utilizing a ( (SV) Setpoint variable)value from a
file converted to a frequency to compare with an actual ( (PV) Position
variable) measured frequency.
I have created and experimented with individual vi's allows analog
control and digital pulse train control (thankfully with the help of
examples). 
Before I pose my question, I would like to make the following
observations:  It is my understanding that Closed loop control
means that I dont need to know an exact position at which to drive, but
constant comparision of PV and SV through PID applictation. 
Without getting into any proprietery information I can say that the
constant positioning of the linear actuator will produce a latency of 2
to 3 seconds based on the time the actuator moves to a new position and
when the PV will change.  While experimenting with the analog
input, i noticed imediate response to motor velocity, but after the
motor is stopped, position is not held in place.  However, while
experimenting with the Digital pulse train input, I noticed that the
servo drive can only accept one command at one time; if, halfway
through a move, position error produces a response to move the linear
actuator in the opposite or different direction, the origional move
must finish first. 
Can anyone recommend the proper configuration for the closed loop control i have described?
If I can make the system work with the servo drive/motor I plan to use
the simple (pci 6014) daq card with the Analog out, or utilize the
digital out.
If I cant get this to work, we do have a pxi with 7344 motion card(I
would like to exhaust all efforts to use the PCI 6014 card).
Depending on where I go from here, I planned to use the PID vi's for the loop control.
Thanks,
Wayne Hilburn

Thanks for the reply
Jochen.  I realize there is a built-in latency with windows but I
think the I/O control would be ok.  A change in actuator position
will not result in an immediate change in process variable;  Is
there a way to measure the latency or is it calculated?  A
satisfactory reaction time could be from 1 to 1.5 sec.
Use of the PCI-6014 is to supply the control output to the servo
drive/amp, and not to drive the motor itself.  As stated earlier,
while using the 6014 board, I have the choice of digital or analog
output.
Currently I am at a point where I must choose which configuration,
analog control or digital control(in the form of digital pulse train),
(i am inserting from first message)
While experimenting with the analog
input, i noticed imediate response to motor velocity, but after the
motor is stopped, position is not held in place.  However, while
experimenting with the Digital pulse train input, I noticed that the
servo drive can only accept one command at one time; if, halfway
through a move, position error produces a response to move the linear
actuator in the opposite or different direction, the origional move
must finish first.  .
I dont claim to understand all the limitations with the
specific boards, however, i am using an approach that is showing me the
characteristics(a couple are listed in the above paragraph)  of
the hardware and software configurations.
So I am really back to my origional question;  Which configuration
would be better for closed loop control, analog or digital pulse train?
Thanks,
Wayne Hilburn

Similar Messages

  • Stepper motor closed loop control using 7344

    I have some question about the closed loop control of stepper motor using 7344. From the NI website I got that closed loop steppers work differently from closed loop servos. Instead of adjusting the output on each PID iteration like a servo system, closed loop steppers will do a pull-in move at the end of a move to adjust for any difference between the target position and the encoder feedback. By default, it will attempt the pull-in move three times.
    Now for example I got five points: (0,0) (10,20) (30 40) ( 31 60) (50 65). The request time interval I set as 10ms. This mean that in the first 10ms, the machine should move from (0 0) to (10 20). But for some reasons the machine can not move to (10, 20), it moves to (8,16) and the first 10ms passed. In the second 10ms, how it move? Move from (8 16) to (30 40), If like this, the following error will accumulated. In practise, it is not accumulated. Is there anyone can explain something about the closed loop control of stepp motor? Thanks a lot!

    Requested Interval is additional data for the Position buffer type. The Position buffer type requires a Requested Interval parameter, and indicates the time between contouring data points in milliseconds. For all other buffer types, the Requested Interval parameter is ignored.
    The controller will use the closest value it can that is greater than or equal to the interval value you requested. Your time interval must be an even multiple of the PID rate.
    For example, given a PID rate of 250 ms, a time interval of 11.2 ms between points is physically impossible, so a call to configure buffer with an interval of 11.2 causes the  buffer to actually be configured for 11.25 ms, since 11.25 is the nearest possible interval greater than 11.2. The following table shows valid intervals for each PID rate.
    My question is like this. For example I got five points: (0,0) (10,20) (30 40) ( 31 60) (50 65). The request time interval I set as 10ms. This mean that in the first 10ms, the machine should move from (0 0) to (10 20).  If it is impossible for the machine to move from (0 0) to (10 20), there are two ways to solve this problem. First is the time interval is 10ms and assume it move to (8 16) within 10ms and take (8 16) as the start point and (30 40) as the end point of the second move. Second is extend the time interval, assume it takes 14ms to move from (0 0) to (10 20). After 14ms, the (10 20) is the new start point for the second move. I think it works as the second ways.If not, the following error will accumulated.  Is there anyone can explain something about the closed loop control of stepp motor in detail? Thanks a lot!

  • Closed loop control of step motors possible with 7344?

    Hi All
    I have been looking around here for a while for an answer to this question.
    For me, a closed loop control system is correcting for following errors all the time, also when the move is complete.
    If the load on a system changes, there will often be a need for compensation in order to keep the position right. Then you need a closed loop control system.
    I have made a system using DC motors with a 7342 controller. We are in the process og getting a new similar system, where the manufacturer chosed stepmotors in the believe that it can be used in closed loop.
    Is it really true that the NI version of closed loop is only performing a what you call a "pull-in" at the end of the move in order to correct for lost steps or flexibility of the connection between motor and object/encoder?
    I would call this "backlash compensation" or something like that.
    Why dont you make a real closed loop option. The control voltage from your servo motor control, could be fed into a voltage-frequency converter with a matchin sign signal.
    This shouldn't be too complicated to accomplish.
    /b

    You are right. NI motion control boards don't apply a control algorithm
    during moves when configured in closed loop stepper mode. In this mode
    the board monitors the following error during the move and generates an
    error when the following error limit is exceeded and they start the
    pull-in moves at the end of the move if necessary.
    If you really want to do PID control with stepper motors you still
    could connect an external V/f converter to the DAC outputs of the board
    and control the axes like DC motor axes. Some vendors implement this
    feature on their board but NI has decided not to do that as we don't
    think that this approach provides a good solution. Here are some reasons:
    The most important issue is the fact that you could easily exceed
    the maximum rate of change of the motor frequency in the case that the
    following error increases during the move. For a DC motor this would mean that the
    voltage of the controller increases to compensate for this error and
    the motor will follow - probably with some delay, but it will follow. For
    the stepper this could mean that the acceleration becomes so high
    that the motor stops immediately as it can't follow with a delay like a DC motor. What
    should the controller do then? Restart the move automatically? Generate
    an error? There is a big chance that you end up with a system moving in a stop and go mode.
    The second issue is related to the control algorithm itself. The transfer function of a stepper motor is not really linear so it will be quite hard to find good tuning parameters. A DC motor can be tuned by analyzing the step response and the Bode plot. For the reasons that I have described in 1.) this won't work for a stepper so how should you tune it?
    I have talked to some  motion control engineers who have tried to control steppers with a PID algorithm and they all agree that this is a real pain and it's not recommended.
    So if your system requirements involve online following error compensation I strongly recommend using a DC motor.
    Best regards,
    Jochen Klier
    National Instruments Germany

  • 7344 servo motion switching between open and closed loop operation

    I have a custom end-of-line test system presently using a 4-axis 7344 servo controller to perform various functional tests on small, brushed DC motors. The system is programmed in C/C++ and uses flex motion functions to control the motor during testing. Motors are coupled to external encoder feedback and third party PWM drives running in closed-loop torque mode from an analog command signal. The system uses all four motion axis channels on the 7344 board to independently and asynchronously test up to four production motors at a time.
    In closed-loop mode, the system runs without issue, satisfying the battery of testing protocols executed by this system. I now have a request to add additional test functionality to the system. This testing must be run in open loop mode. Specifically, I need to use my +/- 10v analog output command to my torque drive to send different DAC output levels to the connected motor.drive while monitoring response.
    I do not believe the flex motion library or 7344 controller includes functions to easily switch between open and closed loop mode without sending a new drive configuration. I am also under the impression that I cannot reconfigure one (or more) servo controller axis channels without disabling the entire drive. As my system runs each axis channel in an asynchronous manner, any requirement to shutdown all drives each time I change modes is an unworkable solution.
    I am open to all ideas that will allow asynchronous operation of my 4 motor testing stations. If the only solution is to add a second 7344 controller and mechanical relays to switch the drive and motor wiring between two separately configured servo channels, so be it. I just want to explore any available avenue before I place a price tag on this new system requirement.
    Bob

    Jochen,
    Thank you for the quick response. The 7344 board does an excellent job running my manufacturing motor assemblies through a custom end-of-line tester in closed loop mode. A portion of the performance history and test result couples the motor through a mechanical load and external shaft. The shaft is in contact with a linear encoder that closes my servo loop.
    My new manufacturing requirement is to also sample/document how the small DC motor behaves in open loop operation. Your solution is exactly what I need to perform the additional functional tests on the product I am manufacturing. I see no reason why this cannot work. I was originally concerned that I would need to reinitialize the 7344 board after changing axis configuration. Initialization is a global event and impacts all four channels on the 7344 board.
    Using flex_config_axis() to change axis configuration on a single channel without disturbing other potentially running axis channels will solve my concern. It will be several weeks before I can return to the manufacturing facility where the 7344-based testing machine is located. I will update this thread once I verify a successful result.
    Bob

  • Difference between open loop and closed loop mode when finding the index on a stepper motor axis.

    I have a test system which uses a PXI-7352 motion controller with a MID-7602 stepper motor drive to position a 200 step/revolution stepper motor with an attached 1000 line encoder.  The MID-7602 is configured for 64 microsteps per step, giving 12,800 microsteps and 4000 encoder counts per revolution.  The system is controlled using LabView 7.1 and NI-Motion 6.13.  To home the motor, I've defined a sequence in MAX which first finds the reverse limit switch and then moves forward to the encoder index pulse.
    When finding its reference in open loop mode, the system its reference at the same microstep each time.  When findings its reference in closed loop mode, the system finds its reference somewhere within about a 20 microstep wide range.
    I hope somebody out there with more experience with this controller can describe the difference between finding the encoder index in open loop mode and finding the encoder index in closed loop mode. 
    Thanks,
    Mark Moss

    Hello Mark,
    I suspect that the behavior you are experiencing has today
    with the resolution difference between your encoder and your
    microstepping.  Let me illustrate with an
    example:
    Example Setup
    Stepper
    Motor
    NI
    Motion Controller
    10
    steps per encoder pulse (Every 10 steps the controller gets an encoder
    pulse, therefore positions 0-9 all appear to be 0 to the controller)
    The
    system has a maximum of 3 pull in moves set
    Open Loop Scenario
    The
    system is commanded to go to position 9.
    The
    controller sends out 9 pulses.
    The
    motor moves to position 9.
    Closed Loop Scenario
    The
    system is commanded to go to position 9.
    The
    controller sends out 9 pulses.
    The
    motor moves to position 9.
    The
    controller checks its position and sees that it is still at position 0
    because it has not received an encoder pulse.
    Because
    the controller thinks it is still at position 0, it sends another 9 pulses
    as its first pull in move.
    The
    motor moves to position 18.
    The
    controller checks its position and sees that it is at position 10 because
    it has only received one encoder pulse.
    Because
    the controller thinks it is still at position 10, it sends1 reverse pulse
    as its second pull in move.
    The
    motor moves to position 17.
    The
    controller checks its position and sees that it is at position 10 because
    it has only received one encoder pulse.
    Because
    the controller thinks it is still at position 10, it sends and additional
    single reverse pulse as its third pull in move.
    The
    motor moves to its final position of 16.
    I believe something similar is happening with your
    application as it looks for the index pulse. 
    Because the controller does not compensate for what it perceives as
    position error in open loop mode, the motor always goes to the same commanded
    position.  In closed loop mode, the motor
    is bouncing around inside the single index encoder pulse trying to find a
    certain position.
    There are several recommendations I can make towards
    correcting this behavior.  These
    recommendations are in order of effectiveness:
    Setup
    your system so that there are more encoder counts per revolution than
    steps per revolution.
    Turn
    off pull-in moves by setting them to 0 in MAX.
    Use an
    open loop configuration.
    Play
    around with the pull in window in MAX.
    Regards,
    Luke H

  • Closed Loop or Open Loop

    Dear All,
    I'm currently using the DAQ card PIC-6221 to control a DC servomotor with an encoder displacement feedback. I'm using the labview program with a motor amplifier to start the motor and stop it at a specific rotational displacement, where it works by stopping the motor when the encoder feedback value reaches the input desired displacement value. The final displacement of the motor before it stops always exceeds the desired value marginally. May I know for my case,am I using an open or closed loop control? Is a PID controller a MUST for closed loop control? Is my DAQ card capable of desigining a PID controller? If so may I know how?
    Also, my project requires me to toggle between the current and voltage mode control. May I know if that is possible to carry out digitally using the Labview Program as my current motor amplifier requires me to push a switch manually to toggle between Voltage and Current mode. Finally, I hope my last question is not out of this world but is it possible to use 2 amplifiers(drivers) for a single motor such that there's a chance to use both the current and voltage modes of control?
    Really looking forward to the replys of you kind souls out there! Thanks!
    Regards,
    Oompa

    Oompa,
    to learn more about the general concepts of motion control, please visit this link.
    In general I widely agree with JB's suggestions. I'll just add some more comments to your questions.
    If you need closed loop control depends on what you try to accomplish. If you just want to generate a certain torque (current mode) that is proportional to the output voltage of your control device, you may not need to run a closed loop system. A similar statement is true for the voltage mode.
    Closed loop control is especially important if you need to control the position, or if you need to run a special trajectory profile (position/velocity/torque over time)
    Maybe it's possible to control the current/voltage mode of your drive with a digital signal. You will have to find out in the manual or check with the vendor.
    Using two drives with a single motor doesn't seem to be recommendable. If you want to do something like that, you will need to switch the power signals with relays between the two drives, but as you are working with inductive loads this might become quite tricky and there is a risk to burn both, the motor and the drives...
    Regards,
    Jochen Klier
    National Instruments

  • Why are my steppers misbehaving in closed loop mode, but work fine in open loop

    I have a 7344 controlling a 4 axis prototype machine, which is configured with 50,000 steps/rev and linear encoders providing 50800 counts per inch. The physical properties of the machine are less than perfect (prototype!), so there is a considerable amount of backlash in the hardware (about 0.008" - 0.010").
    The observed behaviour is as follows: when repeatedly blending in the X,Y plane using vector space 1 in closed loop mode, an axis will be driven (uncommanded) to the zero encoder reading (home position) occasionally (about 1 move in 600). I have kept a log of the commanded positions being passed to the controller (via the flex_load_vs_position function) and a move to zero is not being com
    manded. The application is single-threaded, so there is no chance of race conditions. The ready state of the board is being confirmed by means of the flex_check_blend_complete function call before any blend is commanded. The programmed relationship between steps and counts/revolution have been independantly confirmed as being correct.
    An A-B-A test with the only change being to initialise the X & Y steppers in open loop instead of closed loop then 'works' - although the physical positioning of the hardware is unsatisfactory due to the physical characteristics of the prototype machine already mentioned, hence the necessity to run closed loop.
    I am inclined to interpret the evidence as suggesting that the 7344 is causing an 'occasional' uncommanded move to zero as a result of some interaction between pull-in moves and commanded position on a system where there is a considerable degree of 'elasticity' between the commanded position and the achieved position allied to a rapid-fire de
    livery of blend moves.
    This problem can be replicated under versions 5.0.1 and 5.2 of the FlexMotion software.
    I can clearly run without bumping into the problem by running open loop, but unfortunately that is not acceptable in this situation. Any ideas, anyone?

    Hi, and thanks for coming back so promptly. I think I need to give you some more information - sorry if it turns into a long post!
    The system behaviour when it 'misbehaves' is that it starts the anomolous behaviour well clear of any home or limit switch (>6"). When it 'goes wrong', it then slews one or both axes to the zero position. Having arrived at the zero position, it then carries on with the next blend without killing the motor.
    The initialisation functions include a seek to home switch, a search for the nearest index point, and a zeroing of the encoder count at the index pulse: hence the zero point is a little displaced from the home microswitch.
    I believe that once the system has 'gone wrong', it is stopping at the zero point *not* the h
    ome switch.
    I have carried out some further tests that may be of help:
    If I place a large (1 sec) inter-blend delay in the calling functions, the anomalous behaviour is not noticed. However, the start/stop nature of each move means that this test is knocking the bejezus out of a rather fragile prototype machine, so I can't do this too often!
    The encoder positions are being read back on each move cycle and monitored, and they are not showing any anomolous behaviour, so I don't think they are the culprit. I have placed a 'scope on the quadrature encoder inputs and the edges are good and sharp with no real indications of noise.
    I could test with a blend factor other than -1 if you think that might be illuminating?"

  • Problem using PID toolkit and control design toolkit to design the closed loop system. (for DC motor closed loop)

    Hi, i have facing some problem during i upgrade a project. This project is an opened loop system, it only achieved up to controlling the speed of motor, detecting the speed of motor, and switching the direction of motor while controlling the motor (This motor is a 12 VDC motor).
    In order to improve the project, closed-loop dc motor control system will be implemented to correct the error of the motor's speed and maintaining the speed for the initial setting. I would like to use PID control method to do the closed loop system.
    I already installed the PID toolkit V8.2 and control design toolkit V2.1.2, and i'm using DAQ usb 6221, LabVIEW 8.5
    Below is my problem.
    http://img177.imageshack.us/my.php?image=howtocreatethesetpointnx2.jpg
    question: 1. How to generate a icon for set point? my setpoint is duty cycle...
                    2. How to feedback the output duty cycle to summing junction?
    below this is my basic concept
    http://img237.imageshack.us/my.php?image=closedloopbz5.jpg
    Problem 2:
    http://img357.imageshack.us/my.php?image=problem1yk2.jpg
    question: Why PID toolkit icon cannot wire to cd series.vi?
    Below is my original program...
    http://rapidshare.com/files/140538836/pwm_generate-final_PSMII.vi.html

    Hi Cyrus
    Have you had the opportunity to see our
    developer zone site on the PID toolkit? This article also has sample
    code at the bottom that may help you in developing your application. I
    have also linked below knowledge bases regarding setting a point
    profile and generating a PWM from a digital output line. 
    PID toolkit
    http://zone.ni.com/devzone/cda/tut/p/id/6440 
    How to generate a set point profile:
    http://digital.ni.com/public.nsf/allkb/125F27AC143B6AFD86256C2B0004A4DC?OpenDocument
     How to generate a PWM on a digital output line:
    http://digital.ni.com/public.nsf/allkb/1561D31534F07D608625727900391114?OpenDocument 
    Thank You
    Eric Reid
    Thank You
    Eric Reid
    National Instruments
    Motion R&D

  • Closed loop velocity control based on load cell force

    Hello,
    My application is for a drill, that drills into rocks of various densities for the purpose of collecting rock core samples.
    My setup has 2 motors which get controlled, one spins the drill bit at a constant velocity, the other moves the drill mechanism along a Z axis.
    For efficient cutting, it is desired to apply a constant force between the drill bit and the rock.  I have a load cell which measures the force being exerted by the drill bit on the rock surface, and this force can be adjusted by changing the velocity of the Z axis.  So I would like to employ closed loop control to adjust the Z axis velocity to maintain a constant force on the rock.
    Platform: cRIO 9073, with NI 9505 & 9215 Modules, Labview 2010 Full with RT and FPGA modules.
    The load cell is by Transducer Techniques, and I use their TMO-1 module to condition the signal, the output of which is attached to an input of the 9215 module, where 0-100 lbs equates to 0-8VDC.
    The motors and encoders for the Drill and Z axis are connected directly to the 9505 modules.
    Right now I am using a modified version the example found in ...\examples\CompactRIO\Module Specific\NI 9505\Velocity Control (closed loop)\Velocity Control (closed loop) - NI 9505.lvproj to accomplish velocity control of the motors.
    My questions are:
    1) Do I have the appropriate NI hardware/software for this task?
    2) With my current hardware setup, what would be an appropriate way to control my Z axis velocity rate based on Analog feedback from the load cell?
    3) Development time is a critical factor, so are there any toolkits etc that are easy to get started with that would drastically decrease my development time, or do I already have everything I need?
    Thank you for your time
    -MK Hokie

    1. Your hardware and software look appropriate assuming the motors are compatible with the 9505s.  You didn't mention the NI SoftMotion module in your software list which is something you will need.
    2.  There are a few ways of doing this.  One method would be to have a force PID loop that would attempt to maintain a force setpoint by directly outputting values to your torque loop.  In this case, the drill would essentially move as fast as it could while maintaining the force setpoint.  Another option is to have the force loop output a velocity setpoint.  You would then have a velocity PID loop that outputs torque values to the torque loop.  By adding this additional velocity loop you could have control over your maximum and minimum velocities.  There are likely other alternatives as well, but these are the first two that come to mind.
    3.  Unfortunately there are no shipping examples that close the loop on force feedback.  My advice would be to start with the NI 9505 shipping example and adapt it to your needs.  There are quite a few things you will want to change though.  Do you know if you will need to use the trajectory generator to move the drill into position before starting the force control?
    Assuming you don't need any trajectory generation, you can scrap the entire RT portion of the NI 9505 example and just create the necessary FPGA code.  On the FPGA, you won't need the Spline or Synchronization code either because this information would no longer be coming from RT.   You could take these out and replace the position loop with a force loop and possibly a velocity loop and your FPGA program would basically be finished.  In fact the only real motion IP that you will need is for the encoders (assuming you want velocity control) and PID.  Then you would need to create an RT VI that allows you to send down enable, disable, PID gains, and setpoints. 
    If you do need trajectory generation, you would want to keep most of the example code the way that it is, but then program in a 'Force Mode' that utilizes the force and velocity controly as described above.  You could think of it as having two different routines programmed side by side. 
    Regards,
    Burt S

  • Closing Cockpit configuration material

    < MODERATOR:  Message locked.  Please read [this|Before you post: Rules of Engagement; before posting next time. If you have a specific question on the closing cockpit, then ask it.  But don't ask for materials.  Search first. >
    Hi All,
    Pls If anybody has Closing Cockpit configuration material thn send me. I already have a link of SAP help data but which is very confusing. I want step by step configuration.
    Pls treat it as urgent.
    Thanks & Regards,
    JC

    closing stock showing in MB5B report for that date with the same filter conditions.
    In closing stock u have to consider Stock.Avail. @ my hands
    search for  table MARD in that MB5B
    refer.
    Re: closing stock of a particular date

  • SAP-JEE, SAP_BUILDT, and SAP_JTECHS and Dev Configuration questions

    Hi experts,
    I am configuring NWDI for our environment and have a few questions that I'm trying to get my arms around.  
    I've read we need to check-in SAP-JEE, SAP_BUILDT, and SAP_JTECHS as required components, but I'm confused on the whole check-in vs. import thing.
    I placed the 3 files in the correct OS directory and checked them in via the check-in tab on CMS.   Next, the files show up in the import queue for the DEV tab.  My questions are what do I do next?
    1.  Do I import them into DEV?  If so, what is this actually doing?  Is it importing into the actual runtime system (i.e. DEV checkbox and parameters as defined in the landscape configurator for this track)? Or is just importing the file into the DEV buildspace of NWDI system?
    2.  Same question goes for the Consolidation tab.    Do I import them in here as well? 
    3.  Do I need to import them into the QA and Prod systems too?  Or do I remove them from the queue?
    Development Configuration questions ***
    4. When I download the development configuration, I can select DEV or CON workspace.  What is the difference?  Does DEV point to the sandbox (or central development) runtime system and CONS points to the configuration runtime system as defined in the landscape configurator?  Or is this the DEV an CON workspace/buildspace of the NWDI sytem.
    5.  Does the selection here dictate the starting point for the development?  What is an example scenarios when I would choose DEV vs. CON?
    6.  I have heard about the concept of a maintenance track and a development track.  What is the difference and how do they differ from a setup perspective?   When would a Developer pick one over the over? 
    Thanks for any advice
    -Dave

    Hi David,
    "Check-In" makes SCA known to CMS, "import" will import the content of the SCAs into CBS/DTR.
    1. Yes. For these three SCAs specifically (they only contain buildarchives, no sources, no deployarchives) the build archives are imported into the dev buildspace on CBS. If the SCAs contain deployarchives and you have a runtime system configured for the dev system then those deployarchives should get deployed onto the runtime system.
    2. Have you seen /people/marion.schlotte/blog/2006/03/30/best-practices-for-nwdi-track-design-for-ongoing-development ? Sooner or later you will want to.
    3. Should be answered indirectly.
    4. Dev/Cons correspond to the Dev/Consolidation system in CMS. For each developed SC you have 2 systems with 2 workspaces in DTR for each (inactive/active)
    5. You should use dev. I would only use cons for corrections if they can't be done in dev and transported. Note that you will get conflicts in DTR if you do parallel changes in dev and cons.
    6. See link in No.2 ?
    Regards,
    Marc

  • Closed loop control of DC motor drive using PCI 6251

    Hi
    i am using NI PCI 6251 for closed loop control of dc drive.(shunt motor,220v, 0.5HP, 2.5A rated, 1500RPM)
    the dc motor is fed from a bidirectional dc-dc converter. this converter works in boost mode(forword motoring) and buck mode(braking mode/battery charging)
    the converter is built using mitsubishi IGBT module. at low voltage side of the converter a battery bank of 48V is connected and high voltage side the motor is connected.
    An IR sensor is developed to measure the speed of the motor and a hall current sensor is used to sense the converter current.
    in the control part i have an inner current control loop(PWM controller) and a outer speed control loop.both controllers are PI controller. To measure the speed i have used counter of the DAQ assistant, then frequency. then this frequency is converted to RPM using labview.after giving the speed and current signals  to the controllers , then i started  tunning the PI gain, but at the starting the duty cycles was 100%, so the IGBT got damaged immediately. now how to tune the controllers during the closed loop operation.  the switching frequency of the converter is 20KHz.   
    can any body suggest me how to run the dc drive in closed loop ?
    thanking you.

    Hi Premenanda
    The freq data receiverd from the daq assistant has the units of Hz, or in terms of motor speed, rps (rotations per second). I can see that you are trying to convert that to rpm (rotation per minute). which can be done by dividing the rps speed by 60. Instead, you are multiplying it by 60 and also comparing with 2000. the resultant multiplied value is displayed in your program only if it is smaller than 2000.which is causing the problem here.( as seen in file 'original code.png)
    I have attached a file named 'modified code.png' that shows how the conversion from rps to rpm is done. Please do the required changes in your code and let me know if it works.
    Attachments:
    modified code.png ‏18 KB
    Original code.png ‏15 KB

  • Creating a simple closed loop control

    Hi everyone,
    I need a bit of help creating a (very) simple closed loop control.
    Note: I am using 3 Measurement Computing boards: one USB-2416, and two USB-TC's. Since Measurement Computing has their own driver (called ULx), it might be a bit more difficult to understand than the NI drivers, but keep in mind ULx is the equivalent to DAQmx.
    I need to be able output a 0 or 1 binary value based on measurements from 4 voltage input channels compared to constants. Ie. if voltage measurement < 3.5 (constant), send a boolean value (see a, b, c, d in attached photo) which in turn gets sent to the ULx Write VI, and that outputs the binary value of 0 or 1. The problem I've run into is that I need to "compare" single chanels from different boards, which gives me single boolean values for each channel. The ULx Write VI only accepts boolean arrays. Is there a way (and there probably is, I just haven't been able to find it) of arranging these lone boolean values into a boolean array?
    (see attached file for what I have so far)
    PS. I am a COMPLETE rookie, only been using LV for a week or so, so please explain everything as if I have no clue what's going on.
    Thanks in advance!
    Solved!
    Go to Solution.

    Hi,
    the attached example I've made should demonstrate what you need to do.
    Some things to think about:
    1. It seems that the ULx vis return arrays of signals. If so you can select signals with "index array" as done in my example. That consumes less space and does not change the type of the signals to variant.
    2. If you compare the signals to your constants you will receive boolean arrays because every element of the measured signal is compared to the constant (see my example). You may then decide how to process that info - another hooray for signals :-)
    Regards
    Florian
    Attachments:
    Example01.vi ‏24 KB

  • Problems with a closed loop

    I will briefly describe what i am doing, but my problem is not with any hardware it is with programming iterative loops in labVIEW.
    What i am trying to do is get the input for an activex aircraft instrument. The attitude data is coming from an inertial sensor connected directly to com1. The activeX instrument that is causing problems is a turn coordinator. Which, in real life, includes a ball in a curved tube surrounded by a viscous liquid, sort of like a spirit level. I need to determine the position of this virtual ball based on the real acceleration data. My initial thoughts were, and would be possible in another language, start with an initial ball position. Using this initial position and body axis acceleration calculate th
    e tangential acceleration present on the ball and from this calculate the distance travelled in a small period of time. This short distance would then be added to the inital position to find the new position. The procedure would then start over with this new position. However i cannot just join the wires in labVIEW up like this as i get an error saying there is a closed loop that cannot be executed.
    Can anyone tell me how to construct a loop that uses an inital value which is then used in a calculation to update that inital value? Please find attached my very poor attempt at this VI. I hope things will be clearer by looking at my first attempt, and someone will be able to tell me what i am doing wrong
    Phil
    Attachments:
    TCtest.vi ‏102 KB

    Hello Laura,
    Basically what you'll want to do to get stated is to register your ActiveX object with the operating system. If the supplier's documentation of how to register is not complete, then I would suggest you take a look at the knowledgebase discussing manual registration of ActiveX objects.  
    Once the object is registered, you can open an ActiveX reference using the Automation Open VI on the block diagram. The registered object will show up as a selectable class in the class browser when you right click on the automation refnum. Now with the automation reference, you can use property and invoke nodes to interface with your remote control device. For an overview of ActiveX use in LabVIEW, please take a look at the linked application note. I hope this information is useful for you!
    Mike D.
    National Instruments
    Applications Engineer

  • CBO (optimizer) nest-loop join question

    OS: Red Hat Linux
    DB: 11gR1
    I have gotten two conflicting answers while reading books by Don Burleson and Dan Hotka. It has to do with the CBO and nested-joins:
    One says the CBO will choose the 'smaller' table as the driving table, the other states that the 'larger' table will be the driving table. And both stick by this philosophy as the preferred goal of any SQL Tuning -- that is, one states that the 'smaller' table should be the driving table. The other says the 'larger' table should be the driving table.
    I had always thought that the 'smaller' table should be the driving table. That in a nested loop the driving will not likely use an index even. Who is correct? (I am not going to say who said what, btw). :-)
    But I got to let one of them know they got a 'typo' ... :-)
    Thx.

    user601798 wrote:
    It is an over-simplistic scenario but, as I mentioned, if all other things are 'equal' -- which would include 'access time/work', then I think the small table as the driving table has the advantage.
    It is not possible for +"*all* other things to be equal"+. (my emphasis).
    If by +'access time/work'+ you mean the total is the same then it doesn't matter which table is first, the time/work is the same either way round.
    If you want to say that the +'access time/work'+ for acquiring the first rowsource is the same for both paths, and the +'access time/work'+ for acquiring related rows from the second table is the same FOR EACH DRIVING ROW, then the total +'access time/work'+ will be difference, and it would be better to start with the smaller table. (The example by Salman Qureshi above: Re: CBO (optimizer) nest-loop join question would apply.)
    On the other hand, and ignoring any idea of "all other things being equal", smaller tables tend to have smaller indexes, so if your smaller rowsource comes from a smaller table then acquiring those rows may be cheaper than acquiring rows from a larger table - which leads to the observation that (even with perfectly precise indexing):
    <ul>
    smaller number of rows * larger unit cost to find related rows
    </ul>
    may produce a larger value than
    <ul>
    larger number of rows * smaller unit cost to find related rows
    </ul>
    Regards
    Jonathan Lewis
    http://jonathanlewis.wordpress.com
    http://www.jlcomp.demon.co.uk
    A general reminder about "Forum Etiquette / Reward Points": http://forums.oracle.com/forums/ann.jspa?annID=718
    If you never mark your questions as answered people will eventually decide that it's not worth trying to answer you because they will never know whether or not their answer has been of any use, or whether you even bothered to read it.
    It is also important to mark answers that you thought helpful - again it lets other people know that you appreciate their help, but it also acts as a pointer for other people when they are researching the same question, moreover it means that when you mark a bad or wrong answer as helpful someone may be prompted to tell you (and the rest of the forum) what's so bad or wrong about the answer you found helpful.

Maybe you are looking for

  • Officejet Pro 8500

    I ran out of magenta ink, but only print in black ink anyway, and don't want to replace it.  But it won't let me print anything until I replace it.  Is there a way to override that?  Thanks!

  • IPhone 6 won't rotate my photos?

    I was just going through my photos and found some were upside down. I clicked on the photo and clicked edit in the right hand corner but no option to rotate comes up on crop, colour and the wand. how do you rotate your photos now? Very confused

  • Connecting Wired Router to Time capsule?

    Ok so i was wondering if anyone on here knew if i could connect like a regular linksys router to my Time Capsule and have it access the internet. See my issue (and I'm sure I'm not the only one) Is that I have more devices and only 3 ports to plug de

  • I need to download firefox 6 as an extension i use doesn't work with 7.x

    Can anyone tell me where I can download 6.x from. i need to use CSS validator and it's not compatible with 7.x

  • I book author is for mac book?

    I book author is for mac book? For the laptop? or it is only for i-pad????? Because I tried to download it and I though that I managed to do that but when I tried to run  the mac was dead. I had to restart. And when I restart the i book author was no