|
Post by fabi on Sept 2, 2014 7:13:50 GMT
In a recent release PID values have been changed to to increase the resolution of the PID. Another digit has been added to the values. So P=30 now is as 3 on the old firmware, I=150 (15) and D=30 (3). The remaining question I have is: If PID values on AMC1280USB are normalized, in other words, can we use those values for the "Ziegler–Nichols method"? en.wikipedia.org/wiki/PID_controller#Ziegler.E2.80.93Nichols_methodOn my setup, I've got a Ku of 25 and a Pu of 2.4 Hz This brings me following values P = 15 I = 72 D = 0.78125 Q1: So what should I configure now for D??? Q2: Is the assumption right that P / I / D = 0 means 1 on the AMC1280USB?
|
|
|
Post by tronicgr on Sept 2, 2014 20:26:14 GMT
Hmm, I'll have to adjust the PID values range more so you can use more broad range of settings. I haven't been using floating point math for the PID to avoid slow down the process. Its not easy to make it really accurate while trying to keep the update rate near 1000 times per second. What I'll do is probably add a secondary alternative PID that will be slower but more accurate for use just in AC motors. The servomotor I got recently has autotuning procedure, that takes 30 mins to complete even though its fully automated...!!! I might take a video of that. I had to leave it running while I was in the other room, and I kept hearing clanking noises and squeaking!! Thanos
|
|
|
Post by fabi on Sept 3, 2014 15:29:59 GMT
If not floating point is there an offset of 1? I mean if D = 0 is that on the board D = 1? *** From measuring in production, I think the closest method to set PID correctly is the Ziegler–Nichols method: en.wikipedia.org/wiki/PID_controller#Ziegler.E2.80.93Nichols_method1- From there I think the higher priority would be first to have AMC1280USB measuring the oscillation period P_u and display it to the user. I'm still not able to measure this due to the signal on the sensor is small compared to the noise. It seems AMC1280USB has very good noise filters for A/D converts. So AMC1280USB is best to measure and display it. Following the Ziegler–Nichols calculation, it appears if P_u time changes, that D remains always around 0.4...1.8, whereas I range is huge: 30...120! So it is very important to have exact value for P_u. Can't you make following: If user confirms <p> in the PID settings, that the AMC1280USB measures (e.g. via sub-menue) P_u? 2- Second priority, we should allowing the user to set 3 or 4 different PID values for 3 or 4 different ranges. 3- Only as third priority I would look into floating-D value. 4- Allow to set P-I-D via the serial port. (I will write a windows app to send the needed data, only need the capability in the communication protocol). It seems that x-Sim with Car-Races need some more aggressive settings also allowing some additional shakes/vibration then BFF for simulating real flying. With that, I'm sure AMC1280USB and AC motors becomes a very smooth, powerful and cheap solution!
|
|
|
Post by tronicgr on Sept 3, 2014 17:49:31 GMT
Hi Fabi, I understand. I'll add a counter that measures the oscillation of the sensor until it settles down and display it, I think I'll have to make the PID values 4 digits so you can use the very low values for the D value. Its easier to deal with larger numbers than having to deal with floating point. Remember I'll change the offline park mode to speed controlled as well, instead of step controlled. Just be a little patience. It takes time to implement this as it has to be done in steps and verify each change myself first. I just hope to have enough time as along moving to new house in about a week, I might get hired to new job as well (repairing CNC and Servomotor equipment ) Thanos
|
|
|
Post by fabi on Sept 3, 2014 19:15:44 GMT
Wow, a lot of things going on! "new house" --> make sure you have a room for a 6DOF :-)
More than happy to test new features!
Good luck!
|
|
|
Post by tronicgr on Sept 3, 2014 22:42:22 GMT
Thanks! This time, I have space!!!! I have a whole big garage just for me! I'll leave the car on the driveway... It never rains to get dirty anyways
|
|
|
Post by riton39 on Sept 4, 2014 5:51:13 GMT
we will have the pleasure of seeing your simulator in this topic then?
|
|
|
Post by riton39 on Sept 4, 2014 7:06:20 GMT
In a recent release PID values have been changed to to increase the resolution of the PID. Another digit has been added to the values. So P=30 now is as 3 on the old firmware, I=150 (15) and D=30 (3). The remaining question I have is: If PID values on AMC1280USB are normalized, in other words, can we use those values for the "Ziegler–Nichols method"? en.wikipedia.org/wiki/PID_controller#Ziegler.E2.80.93Nichols_methodOn my setup, I've got a Ku of 25 and a Pu of 2.4 Hz This brings me following values P = 15 I = 72 D = 0.78125 Q1: So what should I configure now for D??? Q2: Is the assumption right that P / I / D = 0 means 1 on the AMC1280USB? can you tell me how you measure Ku and Pu ?
I have to be sure the dead zone in the center does not cause problems PID tuning I'll wait until Thanos make a firmware with the possibility of moving the dead zone to 0 at the center. ( 0 for no dead zone in the center ) removing the dead zone, it gives a central position a position measurement
|
|
|
Post by fabi on Sept 4, 2014 7:20:52 GMT
My setup has AC Motors with worm gears. 1. Set PID to 1 / 1 / 1 2. Increase P until the platform gets into a continuous swing ==> this P value is Ku (you can get it from the AMC1280USB display ) ==> The frequency from that "continuous swing" is Pu 3. Follow the PID formula from en.wikipedia.org/wiki/PID_controller#Ziegler.E2.80.93Nichols_method to calculate P, I and D. Set those parameters on the AMC1280USB. Note-1: Because there are worm-gears, the motors are not really under load, so until the platform starts to swing, KU is much too high. In order to work around this, I've wrote a software which slowly moves the platform upwards whilst I'm doing KU evaluation. Note-2: To get Pu, I'm still struggling (therefore my ask above to Thanos): Measuring this frequency on the Sensor is almost impossible as the noise is much higher then the signal. I've tried with an acceleration meter and some filters on the oscilloscope... Here it seems AMC1280USB must have brilliant A/D Converter implementation, therefore I think it is best if AMC1280USB is doing that job.
|
|
|
Post by riton39 on Sept 4, 2014 7:38:02 GMT
for me it's different, the platform is supported, the engines do not hold a charge "mechanically" is axial gearboxes.
I'll wait for my AMC 128. on the AMC 64 I have no display for Ku ( this P value is Ku (you can get it from the AMC1280USB display )
and I want to start by testing without the dead-center zone, I'll wait for the firmware change
ok, thanks
|
|
|
Post by tronicgr on Oct 6, 2014 18:44:29 GMT
|
|
|
Post by tronicgr on Oct 14, 2014 19:10:21 GMT
If not floating point is there an offset of 1? I mean if D = 0 is that on the board D = 1? *** From measuring in production, I think the closest method to set PID correctly is the Ziegler–Nichols method: en.wikipedia.org/wiki/PID_controller#Ziegler.E2.80.93Nichols_method1- From there I think the higher priority would be first to have AMC1280USB measuring the oscillation period P_u and display it to the user. I'm still not able to measure this due to the signal on the sensor is small compared to the noise. It seems AMC1280USB has very good noise filters for A/D converts. So AMC1280USB is best to measure and display it. Following the Ziegler–Nichols calculation, it appears if P_u time changes, that D remains always around 0.4...1.8, whereas I range is huge: 30...120! So it is very important to have exact value for P_u. Can't you make following: If user confirms <p> in the PID settings, that the AMC1280USB measures (e.g. via sub-menue) P_u? 2- Second priority, we should allowing the user to set 3 or 4 different PID values for 3 or 4 different ranges. 3- Only as third priority I would look into floating-D value. 4- Allow to set P-I-D via the serial port. (I will write a windows app to send the needed data, only need the capability in the communication protocol). It seems that x-Sim with Car-Races need some more aggressive settings also allowing some additional shakes/vibration then BFF for simulating real flying. With that, I'm sure AMC1280USB and AC motors becomes a very smooth, powerful and cheap solution! I implemented one of the requests, I'll look into the other ones! Also PID values now can be set to 0 (D = 0), I'll expand the resolution and perhaps use floating point (or approximation to keep the processing power available for the motion control) I'll add the P_u counter for the timing as well. Thanks Thanos
|
|
|
Post by Mitch on Oct 6, 2015 19:36:25 GMT
Thanos (or anyone) What is the AMC controller current available range of P, I, and D values? Is it scaled or will a P of 1 equal a gain of 100% ?
|
|
|
Post by tronicgr on Oct 6, 2015 20:11:42 GMT
Thanos (or anyone) What is the AMC controller current available range of P, I, and D values? Is it scaled or will a P of 1 equal a gain of 100% ? A P of 15 equals 100% speed (full range). Then as you increase P its gets to 100% faster for shorter range. If you set P to 10 for example you won't get more than 70% speed...
|
|
|
Post by misoswan on Oct 7, 2015 18:48:35 GMT
helo and i,d ?
|
|