First of all, I feel your pain. Even though my first encounter against a Pika (with Sonic) I was like "No effing way..."
But I'm way too stubborn to accept bad matchups just because "all the cool kids are doing it". And I payed close attention to Pika users.
Most of the time, Pikachu users, when facing Sonic, will spam B. Then they expect you to rush in, and they'll do a Dsmash. If they get you completely, they'll follow with TWO Thunderbolts. And you just got kod in 3 moves... -_- Sucks, I know.
When facing Pikachu you gotta learn Sonic's BRAKE. Stop before running into him. This feint will tell you how Pikachu would've reacted. Then wait for his animation (dsmash most likely) to end, and here's where you fsmash him.
Pursue a lot, but feint a lot too. Pikachu user X expects Sonic to run right into his DSMASH.
Should he happen to smash you out of the platform, DON'T PANIC. You know he'll be waiting with B-down edgeguard. Use B (homing attack) to close in on the stage. Don't use your second jump unless you're falling to your doom. When Pikachu uses B-Down on the edge, you have three options.
1.- Use momentum with air-dodge.
2.- Wait while falling, then after the lightning disappears, use side-b to get away from him as fast as possible (before he makes his second thunderbolt).
3.- *UNTESTED* Use fair. I heard this move tends to reflect projectiles when timed right.
Other general tips.
- Spam FTILT.
- Feint a lot. VSDJ following a dair.
- Pursue in air. Pikachus that use Down B on air, don't like the lightning stalling them. Sonic's fast enough to narrowly avoid the lightning, and close in on Pika with Homing.
These are just some tips. It's all about mindgames really. Pikachu matchups are still a nightmare.. But now I can manage.