I got my system dump with your code. Issue is because it's necessary a good reference for your layer by using **QgsRasterCalculatorEntry** class methods (you cannot use a string for 'expression'). So, with a **copy/path** of your next modified code at Python Console of QGIS:

    l=iface.activeLayer()
    a=l.extent()
    b=l.width()
    c=l.height()
    from qgis.analysis import QgsRasterCalculator, QgsRasterCalculatorEntry
    rast = QgsRasterCalculatorEntry()
    rast.ref = l.name() +'@1'
    rast.raster = l
    rast.bandNumber = 1
    entries=[ rast ]
    
    expression = '( ' + entries[0].ref + ' ) * 200 '
    print expression
    
    calc = QgsRasterCalculator( expression,
                                "/home/zeito/pyqgis_data/z.tif",
                                'GTiff',
                                a,
                                b,
                                c,
                                entries )
    
    calc.processCalculation()  

I got 0 execution code, pointed out that it was ran without problems. I tried it out with raster of next image (with only 3 values to make corroboration easier). 

[![enter image description here][1]][1]

By using Value Tool plugin, it was corroborated that values were obtained as expected in resulting raster.


  [1]: https://i.sstatic.net/SQlNC.png