My hexacopter has some pretty intense, high frequency vibrations after auto tune and I am having a hard time determining the root cause. Interestingly enough, the copter actually flies great and holds position really well. Its just vibrating like the energizer bunny and I want to clear it up.
My understanding was that excessive P would cause larger, slower, almost drift-like oscillations and excessive D would cause higher frequency, lower amplitude and more intense oscillations. I was interpreting both the feel of the copter in flight and the log as high speed oscillations.
Finally got a replacement Cube flying. Auto tune yesterday resulted in the same results: flies smooth but a bit sluggish pre-autotune, then tight, responsive post-tune but vibrates like the feedback on a PS4 or X360 controller 100% of the time.
I can see this in the Des_Pitch vs Pitch and likewise for _Roll:
That looks like motor noise. The question is whether it is hardware or software. Try putting a notch at 100Hz and see if that improves things, but also check motors and props for balance/alignment/bell movement.
I did put Roll_kD on a knob on my transmitter to see if decreasing kD would help, but maybe I didnt give it enough range. I setup the knob for 15% of the autotune value - didnt change much at the min.
Specifications X series of motors are processed by CNC milling, the hollow-designed appearance not only guarantee good heat dissipation, but also greatly reduce motor weight. In addition, it also make motors look more strong at visual. Stainless...
So I think it would be reasonable to raise the filter settings to about 50Hz for gyro, pitch and roll. That may make things worse by letting more noise through, but also may give the controller more headroom. So worthwhile as an experiment, but be careful!
Seems a bit aggressive in the range, but idk if that is just the FC making adjustments. It does seem like any random motor adjustment is counter-acted with a sharp reversal of PWM; like overshoot. However, I dont know what to think of the range of 1500 to 1652 over this window. Is 150 a significant motor signal adjustment? How smooth (or not) should the motor output be?
Most important, try once to improve the damping of the fc. VibeZ of 25 for hovering is not good in my opinion. I have max. 5-7 on several copters with hovering and max. 20 with full throttle/speed
What frame do you have, please picture.
Im using a Cube, which ProfiCNC claims should be hard mounted due to its internal damping for the IMU. Frankly, I think its too heavy to mount the whole thing on vibration isolation. Based on the wiggle that my GPS generates while flying, I think additional vibration isolation for the FC would actually make matter worse.
I wish my vibes were lower, too, but I think theyre acceptable. X and Y average 5-7. Z is significantly higher and is likely exactly what we are trying to resolve here. I would prefer to eliminate the vibration rather than add vibration isolation.
I've been looking for a while and am of the belief the Mini does not support PID tuning that can be saved to the EEPROM. I have checked the Calibration selection on the printer and nothing says PID. There is one selection that seems to support a test to make sure it's working, but nothing about PID tuning. Is this another of those things that has been locked out, due to concern about someone breaking the printer by using your own Marlin settings?
This post is very high in Google's results, so here is all the info I needed to PID-tune my Mini. Run this stuff from Pronterface, record the results, and add the gcode at the top of Printer Settings->Start G-code. I have a few mods, so my PIDs are way off Prusa's, and may be worse than the default for your printer!
After some digging i guess that the mini doesn't allow this command after all, and doesn't need it as it's running some custom algorithm that should be fine among all hotends/conditions etc so a pid tune isn't necessary
The thing is, I was able to do it about a year ago. I keep getting errors when trying to heat my hotend to 270 for a cold pull. I looked around and it said that it might be because the pid tuning is off, which makes sense since I have a slice engineering copperhead. I should create a separate post for error.
Thank you for the information. I will test my printer with the new hardware I got (my thermistor and heater wires broke) without making any PID changes and see if it still works before messing around too much with the software.
I'm having an issue where a revo with 0.6 ObXidian is giving thermal runaway errors. I tried a PID tune since I plan on running this nozzle a lot (and would just tune for the 0.4 brass and have the proper PID values in the start gcode for that profile), but I'm having the same "unknown command" issue.
So M303 isn't available but M301 still is, a possibility is to revert to older firmware, run the PID tune there and get the numbers, then upgrade your firmware and put the new numbers in your gcode. Though I don't know if any of the logic for the PID calcs hav changed in the newest FW with InputShaping.
So M303 isn't available but M301 still is, a possibility is to revert to older firmware, run the PID tune there and get the numbers, then upgrade your firmware and put the new numbers in your gcode. Though I don't know if any of the logic for the PID calcs hav changed in the newest FW with InputShaping
Hi everyone,
I am a beginner with auto-tune. I Selected from the paid hardware for this space. However, I only get the local option when I try to fine-tune it. I tired to search for this problem but I could not find anything
image905668 36.7 KB
Had some questions involving using about 10 to 12 seperate heating controls. I watched the webinar on PID and that explained a whole bunch, but not everything. I noticed in the example in the webinar he used a high speed output to control a solid state relay if I'm understanding that properly. When using PID and heating is using a high speed output a must for this application? I was just looking through the different I/O expansions and wasn't seeing anything that had more than 1 high speed output. Is there one I'm just overlooking or is there a different way to go about this?
I don't actually have a project, just doing some different examples on my own time to learn and understand more. Maybe in the future and hopefully this will play a part in a project that I'd like to do.
You can configure your PID block to output 0-1000 (0-100.0%) and run that into a PWM block. A heating application doesn't need the speed of a true high speed output - you can map the output bit to any DC output if you set the PWM frequency to 100 Hz and it will work fine.
I would also think about if your application really needs PID on all heating loops. If your heaters are "matched" to your process and you don't need super-tight control, On-Off control might work just fine and be a lot simpler.
From what I understood, PID keeps the temperature close to the setpoint or pretty much right on the setpoint. In the application I would use it in, I would be heating up a heater band that is wrapped around a steel barrel that melts the plastic inside it. Typical heater bands we use are single phase 240 V, the wattage varies. Temps would be about 350 degrees F. I would want to think I would have to use PID on all my loops to keep the temperature as close as possible. The applications I have seen that use a typical heating controller, the temps are always within a degree or so of the setpoint.
I was actually looking at examples earlier that dealt with both HSO and PWM blocks. That was actually going to be my next question if PWM blocks would work for this. I was hoping that would be the case.
Another question I thought of using auto PID to calculate the PID parameters. Say I end up using 10 loops, can I use one PB to auto tune them all at once or would it be better to use a different start up procedure for each loop? Is auto tune something that has to be done everytime a machine with heating controls has is turned on? Or is it only have to be done once to find the parameters, then it never has to be auto tuned again? If I do end up doing this application on a machine it would probably be turned on once a week and stay on for 5 days before being powered down.
Looking at this from the level of general concepts, Autotune enables the PID controller to learn the characteristics of the system (for example, thermal mass, lags and delays, and so on). For your 10 loops, if the charactersitcs of all 10 systems are the same, then you should get a reasonable result by tuning just one of them and copying the values to the other 9 (make sure you include the "vector of 32 MIs" in what you copy).
Of course the opposite is true. If your 10 loops are quite different, then each needs to be tuned separately. If your system changes over time (for example the thermal mass changes, due to different loading patterns) then you may need to re-tune for different loads. These parameters can be saved and recalled. So you may be able to tune for "light load", "Medium Load" and "Full Load" (as examples) and save the values for future use. I am thinking of an oven or kiln in this example.
c80f0f1006