%% PVWatts function module in SSC (pvwattsfunc) - example
% This is the MATLAB example that accompanies my previous comment
% (Sorry that it does not display monospaced in the forum.)
% Load SSC
SSC.ssccall('load');
% Create & populate data container
data = SSC.ssccall('data_create');
SSC.ssccall('data_set_number', data, 'year', 2012);
SSC.ssccall('data_set_number', data, 'month', 6);
SSC.ssccall('data_set_number', data, 'day', 21);
SSC.ssccall('data_set_number', data, 'hour', 12);
SSC.ssccall('data_set_number', data, 'minute', 0);
SSC.ssccall('data_set_number', data, 'lat', 39.742);
SSC.ssccall('data_set_number', data, 'lon', -105.18);
SSC.ssccall('data_set_number', data, 'tz', -6); % UTC offset
SSC.ssccall('data_set_number', data, 'beam', 970); % W/m2
SSC.ssccall('data_set_number', data, 'diffuse', 86); % W/m2
SSC.ssccall('data_set_number', data, 'tamb', 25.4); % deg C
SSC.ssccall('data_set_number', data, 'wspd', 3.6); % m/s
SSC.ssccall('data_set_number', data, 'time_step', 1/60); % 1 min
SSC.ssccall('data_set_number', data, 'system_size', 100); % kW
SSC.ssccall('data_set_number', data, 'track_mode', 0); % Fixed
SSC.ssccall('data_set_number', data, 'azimuth', 180); % South facing
SSC.ssccall('data_set_number', data, 'tilt', 40); % deg
SSC.ssccall('data_set_number', data, 'derate', 0.95);
% Initialize IN/OUT variables - modify here to see effect on cell temp
SSC.ssccall('data_set_number', data, 'tcell', 25); % deg C
SSC.ssccall('data_set_number', data, 'poa', 1000); % W/m2
% Create pvwattsfunc module
module = SSC.ssccall('module_create', 'pvwattsfunc');
% Run the simulation
ok = SSC.ssccall('module_exec', module, data);
% Check for errors
if ~ok
% Get error messages
i = 0;
msg = '';
while true,
err = SSC.ssccall('module_log', module, i);
if strcmp(err,''),
break;
else
msg = [msg err '\n'];
i = i + 1;
end
end
% Throw error
error('runSSC:sscError', );
end
% Display results
fprintf('%s:\t%f\t(%s)\n', 'dc', ...
SSC.ssccall('data_get_number', data, 'dc'), 'W');
fprintf('%s:\t%f\t(%s)\n', 'ac', ...
SSC.ssccall('data_get_number', data, 'ac'), 'W');
fprintf('%s:\t%f\t(%s)\n', 'tcell', ...
SSC.ssccall('data_get_number', data, 'tcell'), 'deg C');
fprintf('%s:\t%f\t(%s)\n', 'poa', ...
SSC.ssccall('data_get_number', data, 'poa'), 'W/m2');
disp(' ');
% Clean up
SSC.ssccall('module_free', module);
SSC.ssccall('data_free', data);
SSC.ssccall('unload');