From All About Circuits:
Brushless DC motors are similar to AC synchronous motors. The major
difference is that synchronous motors develop a sinusoidal back EMF,
as compared to a rectangular, or trapezoidal, back EMF for brushless
DC motors. Both have stator created rotating magnetic fields producing
torque in a magnetic rotor.
Construction wise, there is essentially* no difference.
The motor in the above diagram could be called an "AC Induction Motor" or a "Brushless DC Motor" and it would be the same motor.
The main difference is in the drive. An AC motor is controlled by a drive consisting of a sinusoidal alternating current waveform. It's speed is synchronous with the frequency of that waveform. And since it is driven by a sine wave, it's Back-EMF is a sine wave. A single phase AC Motor could be driven from the wall socket and it would turn at 3000 RPM or 3600 RPM (depending on your country of origin having 50/60Hz mains).
Notice that I said could there. In order to drive a motor from a DC source, a controller, which is essentially just a DC to AC inverter, is required. You are correct in stating that AC motors can also be driven by controllers. For instance a Variable Frequency Drive (VFD) which are, as you said, DC to AC inverters. Although typically they have an AC to DC rectifier front end.
PWM VFD http://www.inverter-china.com/forum/newfile/img/PWM-VFD-Diagram.gif
VFDs use PWM to approximate a sine wave and can come pretty close by varying the pulse widths continuously as seen below:
While using PWM to approximate a sine wave would produce a nearly sinusoidal Back-EMF wave form ("fuzzy" is the word you used), it's also a bit more complicated to do. A simpler commutation technique is called six-step commutation in which the Back-EMF waveform is more trapezoidal than sinusoidal.
six-step Back-EMF http://www.emeraldinsight.com/content_images/fig/1740300310012.png
And while this "PWM is really poor" as you said, it's also a lot simpler to implement and therefore cheaper.
There are other methods of commutation besides six-step and sinusoidal. The only other one that is really popular (in my opinion) is space vector drive. This has about the same complexity as sinusoidal drive but make better use of the available DC bus voltage. I'm not going to go into detail on space vector as I think it will only muddy the waters of this discussion.
So those are the differences in the drive techniques. The waveform used to drive AC motors is typically sinusoidal and could come directly from an AC source or could be approximated using PWM. The waveform used to drive DC motors is typically trapezoidal and comes from a DC source. There is no reason why the drives couldn't be swapped though there would be a minor hit to efficiency.
*esssentially
Above I said that the construction of the two types of motors is essentially the same. In both cases, AC Induction motor and Brushless DC motor, we are talking about motors that have wound stators instead of permanent magnets. That makes them "Universal motors":
One advantage of having wound stators in a motor is that one can make
a motor that runs on AC or DC, a so called universal motor.
However, there is a slight difference in the winding. Motors designed for use with AC are sinusoidally wound while motors destined to be used with DC are trapazoidally wound. Something that has bugged me for years is that I cannot find a simplified diagram that shows the difference. If I was given the stator of a motor, I would have no idea wether it was wound sinusoidally or trapazoidally. The only way I know of to tell the difference is to back drive the motor by connecting a drill to the shaft and looking at the Back-EMF. You will either see a nice sine wave or more of a trapezoid as shown in the image above. As I said above, using the incorrect type of drive would result in a slight performance hit but it would other wise work.
More often than not, Brushless DC motors are built with permanent magnets on the rotor. While that would be a difference from a squirrel-cage motor, as long as the stator is a wound stator and not a permanent magnet stator (as seen in brushed DC motors), both designs are essentially "universal motors":
The permanent magnet side of the above diagram shows a two pole motor. The number of poles controls the torque ripple. The more poles the smoother the torque curve. But the number of poles makes no difference from an AC versus DC perspective.
The connection of the stator windings, delta versus star, also does not affect the drive method. And in fact, you can switch between the two while it's running:
The difference there is that delta will draw more current and therefore produce more torque. For more information on the relationship or current to torque or voltage to speed, see my answer to this EE.SE question.
Alright, You are asking a fairly complicated question and I will try and answer as best as I can given my background. I am senior student in Electrical Engineering and have focused in control systems. I don't know everything but I can tell you my experience with trying to answer this exact same question in my studies.
TL;DR: I don't know how an equation or method of taking the plant and constraints given and generating a PID controller. However, I do not think the tools you mentioned will help too much and I explain what I would do given your situation.
Where you are:
The research you have done so far seems be the standard for an introductory course on controls at the undergraduate level. These methods of designing controllers are grouped and called "Classical Control". These methods were used predominately pre-cold war and have the advantage of requiring very little computation and very little mathematical analysis. While useful, they severely limit the number of controllers you can create. For example, the root locus plot shows you lines where the poles and zeros can move if you change the gain but you are limited to these lines. I am not an expert on these methods (because I rarely use them) so I can't elaborate on when to use them and when not to. From what I have heard, these methods were still used pretty heavily up until recently because they are faster than more advanced methods and would work fine for simple control problems. These are your desert island control methods- easy to implement and can be done by hand, making them perfect for an undergraduate class where you want to have plenty of material to test students on.
"Properly":
Option 1
So properly designing a controller is hard because there are trade-offs in design, such as speed and stability. I assume you mean you can take the constraints you listed and turn them into a controller that meets them.
Any of the methods mentioned above could be used to create a controller and tested in a simulation or analytically to determine the response characteristics but that is not necessarily easy and the way to improve performance might not be intuitive (I am looking at you Nyquist plots).
How I would do it:
I am a student and so have access to the educational version of Matlab. If someone asked me to design a controller, like your example, I would fire up Matlab and use the following code.
EDU>> s=tf('s');
EDU>> sys=1/((1+650*s)*(1+4500*s))
pidtool(sys)
and the result, the beautiful box below that shows all the parameters I need with sliders that allow me to adjust the characteristics.
There are also options to show controller effort and the bode plot of the system. It took me about 15 min to tune it to meet your specifications, but only because your specifications are pretty aggressive. (I cheated to let control effort go to 1.01 for some time to stop the overshoot).
Or you could just simulate the system with the PID controller added in and tune the parameters in the simulation instead of online.
Option 2
Now if I were to need a more advanced controller, one with multiple inputs and outputs or with a higher order controller I would use what is called State Space or"Modern Control Theory" which I believe came about in the cold war when we started translating Russian mathematics papers. I would advise you to take a look into it because it allows for more options and if I were to design a controller analytically, this is what I would use. Unlike the Classical methods, it has algorithms for placing poles of a function in precise locations allowing most the constraints you have mentioned to be directly calculated.
That said, the algorithms used to calculate these values are still fairly difficult. matlab has the place function which creates a gain matrix that can be combined with the input matrix to force the desired response transient and settling time responses. This doesn't however mention controller effort, which would limit how aggressively you placed your poles. A good example of a similar order system is in the website below which has many different examples and demonstrations of how to use classical and state space design methods. Its a really good website with explanations and many different examples if you can get past the fact that they use matlab for all the math.
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed§ion=ControlStateSpace
some additional reading on pole placement
http://www.phoneoximeter.org/uploads/media/EECE460_PolePlacement.pdf (which explicitly mention PID control)
http://nptel.ac.in/courses/101108047/module9/Lecture%2021.pdf
http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-30-feedback-control-systems-fall-2010/lecture-notes/MIT16_30F10_lec12.pdf
Recommendation:
1.) If you are going to be designing control systems professionally, I'll tell you what my professors told me. You need matlab. There might be other software out there that can do similar things but matlab has a very complete set of tools in their control system tool box and a good number of tutorials are floating about its the best and you don't have to worry about the math at all.
2.) If this is something that is less important then maybe find someone who can do the design for you real quick in matlab or try out a freeware package. I know scilab has some control toolboxes that might be worth looking into.
3.) Designing by hand is hard. Especially with the number of constraints you have. I would use pole placement to analyze the settling time and overshoot requirements. Steady state error is almost always driven to zero. I would determine phase and gain margins after the fact and hope it wasn't too small. For the controller effort, I have seen plenty of examples of optimal control problems trying to minimize control effort, usually using a Linear Quadratic controller but this is more math. Dr. Radhakant Padhi's slides have some good rules of thumb for pole placement but they are not guarantees.
Best Answer
Integrator wind up. That's what seems likely after a 10 second review of your plots. Do you restrict the maximum and minimum values of the integrator sum? You should. The purpose of the integrator is to correct for the loop error left over by the proportional part of the loop, due to the proportional part's finite gain. The integrator sum should not be allowed to be much greater than is required to correct the proportional error.
At steady state the integrator will have reached some value that offsets the proportional error. Then there is the step change, and the integrator value is now badly wrong. It corrects, but it takes a lot of time. Meanwhile the loop is railed out as the integrator slowly increments (or decrements) its way back to balance the proportional contribution.
Here are 2 ways to vastly improve integrator performance:
Restrict the size of the integrator sum. Calculate, worst case, the value it takes to balance the error leftover from the proportional loop, and then use 1.5 to 2 times that to limit the value extremes of the integrator sum. This will also prevent rollover.
Phase reset of the integrator sum. Compare the sign of the error with the sign of the integrator sum. If the signs are the same, then set the integrator sum to zero. This will give your integrator a leg up, getting rid of a wrong value that it will have to work off over time, and allow it to contribute to minimizing the error right away. This is hard to do with an analog loop, but for an algorithm in a DSP or micro-controller is easy.
Anyway, check out the possibility of integrator wind up as cause.