I'm going to control the position of a motor, but feedback compensation part I do not understand, ask the great spirit guide
My request is that: I to set a value to a motor, the motor running, I use sensors to b (a) is not equal to b, because there is a deviation, through the program is correct, I want to know the value is equal to the setting of the motor running a
CodePudding user response:
Ctrl<-- -- -- -- -- -- -- & gt; MotorA0 -- -- -- -- -- -- -- -- -- -- -- -- & gt; |
| & lt; -- -- -- -- -- -- -- -- -- -- -- b0
A1=a0 - b0 - & gt; |
| & lt; -- -- -- -- -- -- -- -- -- -- - b1
A2=a1 - b1 - & gt; |
General feedback control, probably just like this,
Retreat more fill less,
CodePudding user response:
Thank you, whales a great god, if can use VB shows so much the betterCodePudding user response:
Trying to say is, 10000 pulses to the motor, motor should exercise to point A stop in theory, however, due to the condition of the missing pulse stepper motor movement, so, usually, 10000 pulses, the motor can run only to point B (B is closer than A point away from the starting point), is this meaning?If is this meaning, the best thing to do is on the rotating shaft of the motor and an encoder, use it to detect the pulse number, that is to say, if one revolution of the motor must be 1000 pulses, the encoder will count to 1000, but the control pulse must be greater than or equal to 1000,
Say from design ideas, your this problem should not problems, but the electrical design, add a detection feedback device, problems will be easily determined,
CodePudding user response:
Concrete way is to send a big drive pulse motor, motor sports, with real effective in the process of electric motor encoder count pulse count, the number of pulses when the number of impulse to want to control after (i.e., motor sports to position to), immediately stop sending motor drive pulse,CodePudding user response:
@ veron:1, for this question, you say to the motor detection is generally use Timer cycle scanning, in order to real-time display (see the clear), generally longer, if the motor speed is high, will be more than the set value of,
2, I do want to make it similar to the CNC machine tool equipment, motor encoder, some 500 lines here precision can satisfy, but due to the load transmission gear clearance of what, not necessarily in motor position, can achieve want position, so we need to be that kind of feedback
CodePudding user response:
This kind of thing is usually done by the machine, PC usually pass task or periodic task to lower machine, they will take care of control that piece, do a state echo, most real-time acquisition and precision control this is done by the machine, so as to guarantee the accuracy,CodePudding user response:
In my experience, the idea of the original poster is unable to realize, usually control motor are using pulse output, or the PLC module to control, so as to the reading of the encoder, PC trying to keep up with the speed, it is not realistic,CodePudding user response:
@ veronMotor is private servers, a private servers as lower machine drive, drive control, I use VB primarily to detect the position of the external load, according to the actual location of the external load and setting up the position difference to continue to control the motor running, add the difference step on to the next in the operation of the motor
CodePudding user response:
This is the design of the automatic control problems. With the VB have what relation?The key is you have to understand the logic of closed loop control process, as for the feedback compensation amount, can slowly adjust. Until it is right.
CodePudding user response:
These problems are servo motor of the building Lord, for the upper machine, also is a command, told pulse output unit (or module, or the board) pulse and the control signal is, in plain English, the working principle of PC is impossible to achieve your requirements, recommend the original poster can understand the working principle of the servo motor, as long as you understand the working principle of the servo motor, I think your problem is not the problem,And servo motor drive is a pulse signal feedback, I said don't need the encoder, servo motor do very powerful now, these are all very basic functions, the principle is very simple,
Another way, if your machine is the stop motion to the same location specified every time, then it is recommended that you install a photoelectric switch in this position for localization, every time when the motor running to this position will stop sending pulse can, there is no need for pulse feedback compensation or something,
CodePudding user response: