If, by "semiconductor relays", you mean these proportional output solid-state relays, please know that you can't effect that variability through PWM.
Re. http://arduino.cc/forum/index.php/topic,94426.0.html
jimjam found that they require an actual analog voltage, not the mock-analog from the PWM (analogWrite) schtick. I think he derived the variable control voltage with the circuit provided by Grumpy_Mike in Reply #47 (Arduino Forum).