Introduction
Robot dynamics are highly non-linear, and there is coupling between the joints. The classical approach in Motion Control Schemes makes approximations so that each joint is a linear system. These approximations limit the precision and speed of the end effector, so the classical approach is good only for tasks that need limited precision.
To get better performance, you use a better dynamic model and non-linear design methods.
Example of a non-linear system
A block of mass is attached to a spring and has friction coefficient . The spring is non-linear, with force . A force is applied to the block.

From Newton's law:
This equation is non-linear because of the term.
Two ways to control it
1. Linearise the system. Keep the motion in a small region where the spring is almost linear.

This limits the performance, because the system must stay in that small region.
2. Use a non-linear control method. Use a model of the system to cancel the non-linear terms. Then you do not need to restrict the motion. This is the idea of control law partitioning.