Ich versuchs mal.

Der IC1A lädt über den Widerstand R1 den Kondensator C1 auf.
Auf dem nich Ivertierenden Eingang ( Pin 3 ) wird durch den Widerstand R2 die Spannung stark angehoben.

Wenn nun der Kondensator C1 über den Wert der Spannung an Pin 3 aufgeladen wurde, wird der Ausgang 1 nach GND geschaltet.

An Pin 3 liegt nun somit fast GND Potential.

Der Kondensator C1 wird über R1 wieder entladen, bis die Spannung unter das Potential von Pin 3 rutscht.

Dann geht Ausgang 1 wider auf +V und das Spiel beginnt von vorne.

Am Ausgang von IC1A liegt also eine Rechteckspannung.
Am Kondensator ist eine Sägezahnähnliche Kurve vorhanden, die durch das Laden und Entladen des Kondensators entsteht.

Vergleicht man diese Sägezahnkurve mit einer mit einem Poti einstellbaren Spannung mittels eines Komperators kriegt man am Ausgang ein pulsweitenmoduliertes Signal, das von der Potistellung abhängig ist.
Diesen Part übernimmt IC1B in der Schaltung.

IC1C hatte gerade nichts zu tun, drum hab ich den OP als LED Treiber missbraucht.
IC1D ist stillgelegt, damit er nicht oszillieren kann.
Diese beiden OP's kannst Du für deine RGB Schaltung als weitere Komperatoren verwenden.

Um die Frequenz zu erhöhen kannst Du R1 verrringern, oder mit dem Kondensator C1 rumspielen.
In meiner Konfiguration läuft die Schaltung mit ca. 50Hz.

Die Amplitude des Sägezahnsignals wird durch das Verhältnis der Widerstände R3+R4 zu R2 bestimmt.

In meiner Konfiguration bewirkt der Widerstand R10, das man nie ganz abschalten kann.
Überbrückst Du den, kannst Du von ganz aus bis immer an alle Pulsbreiten verwenden.

Ich hoffe Du kommst mit meiner Beschreibung klar.