The calculations performed by the unit operations are defined by SciLab script. You can enter the script by editing the unit operation, and select Script on the SciLab tab.
The SciLab script is run in a fresh SciLab environment, in which useful global variables and functions are predefined. The script should:
The SciLab script will be run, such that SciLab exits when an error is encountered. The error will be
reflected in the calculation results of the unit operation. If you need to catch errors inside SciLab script
without exiting, please use try
, catch
(mind that a problem with SciLab is that it
may get stuck when a syntax error is present inside a try
, catch
block).
If the simulation appears to be stuck, it is possible that SciLab is not responding or waiting for user input. If this is the case, use the Windows Task Manager to end the SciLex.exe process.
Do
Don't
abort
; use error
instead
pause
or halt
or any other function that forces keyboard interaction
To test your SciLab input, make sure the ports are connected. Then, while writing the script, click the Test button for feedback.
You can edit the input in the text field inside the window, or click the Edit button to open an editor. The default editor is notepad.exe, but you can select a different editor by holding down the Ctrl button when clicking Edit.
The SciLab Unit Operation dialog will block until you close the editor.
Clicking Help will open the online help for the latest SciLab. Alternatively, you can start SciLab from the Start Menu, and click Help in the Help menu.
Example script for a simple adiabatic mixer with two feeds and one product:
f1=getFeedProp(1,"flow")
f2=getFeedProp(2,"flow")
h1=getFeedProp(1,"enthalpy")
h2=getFeedProp(2,"enthalpy")
p1=getFeedProp(1,"pressure")
p2=getFeedProp(2,"pressure")
p=min(p1,p2)
f=f1+f2
h=(h1*f1+h2*f2)/f
totF=sum(f)
setProduct(1,totF,f/totF,"pressure",p,"enthalpy",h)
(This particular script does not take into account that the total flow may be zero; it will fail in this case).