Well this is the thing.
If you are using power relays, it's a simple ON-OFF switch. So is a MOSFET/IGBT except that it can do it at a higher frequency.
If you need a variable speed motor, it means that you should be able to change the input voltage smoothly. The ON-OFF timings(or duty cycle) controls the amount of input voltage being applied. If however this switching is done by a relay, you would need a rather large filer(simple LC) to average out the voltage. Conversely if a MOSFET with relatively high switching frequencies are used(50KHz should suffice), the filter size becomes small(typically around 1mH inductor(ferrite core) and 50uF capacitor should be more than enough) . So if you need smooth variations in speed a MOSFET/IGBT switch is preferred.
For your particular motor voltage rating, a MOSFET(IRF540 should do nicely) is better(IGBT's are a bit expensive). You should look up the full bridge topology(which allows for negative voltages to be impressed for reverse motoring). You will need a simple PWM driver(SG3524/3525 floating voltage for top 2 switches, I think I saw the circuit in some other thread here).
As for the actual design, how much accuracy in speed do you need? Depending on that maybe you can avoid the more complex modeling.