Using Analog.write(pin, level) with level from 0 to 255 will put out a square wave of varying width at ~488 Hz (cycles/second).If the relay was rated for 1,000,000 cycles, then after 1000000 cycles/ 488 cycles/second = 2049 seconds it will be nearing the end of it life. (34 minutes)
Actually a relay will not operate 'at' PWM frequencies.
The main requirement is the ability to control at least 15 relays. If they are all PWM controlled I would need a board with at least 15 digital outputs that can be configured to be PWM. So I would need the mega2560.
The next main requirement is for the board to communicate with an external system via serial RS232.
YBut periods of seconds are not what the Arduino community normally refers to as pwm. You can't do 5s in 10s with analogWrite(). Someone will prove me wrong about that, I bet! Some code to fiddle the AVR timer registers or something...