Consulting-Specifying Engineer - August 2008 - (Page 36) 36 was on-site, commissioning a new chiller at the San Diego Marriott Hotel and Marina, when a frantic assistant chief engineer waved me down. After hearing what he had to say, my attention quickly switched from cooling to heating. An aging boiler serving the ancillary building was in dire need of replacement. It served the reheat system and was the original equipment from a 1986 installation. The boiler had begun to leak significantly and its safe operation was no longer a possibility. The loss of this system led to a loss of temperature control in the building’s meeting spaces. Guests were frustrated with the service; management had to dole out a number of refunds and were concerned about the potential loss of repeat business. Another complication arose when the vendor was contacted for the pricing on a new boiler. He proposed a boiler that was 40% I } xd=(x2(:,i)*on *on nes(1,ns)).*d;f = sparse(zeros(size( temp = cumsum(xv.*shares); h ) cumsum(xv.*shares); temp = cumsum(xd.*shares); % computing (partial delta)/(p re dindex,:) sum1 = temp(cdindex,:); sum1 = sum1(2:size(sum1,1),:) = diff(sum1); temp1(:,i) = mean((shares.*(xd-sum1 temp1(:,i) = temp(cdindex,:); res.*(xv-sum1(cdid,:)))')'; f1(:,i) = mean((shares.*(xv-sum1(cdid,:)))')'; sum1(2:size(sum1,1),:) = diff(sum1); sum1 = temp( clear xv temp sum1 diff g sum1(2:size(sum1,1),:) = diff(sum1); (p )/(p partial p ) l:) nd computing (partial share)/(partial pi) lear xv temp es(1,ns)).*v(cdid,n f1 f1(:,i) = mean((shares.*(xv-sum J for j = 1:J m(xv.*shares); d}= demogr(cdid,ns*(j-1)+1:ns*j); temp1(:,i) = mean((shares.*(xd-su mp1 zeros(size( 1 zeros(size(cdid,1),K); temp1 = zeros(size(cdid 1) K); clear xd te 1 for i = 1:K end xd=(x2(:,i)*ones(1,ns)).*d;f = sparse(zeros(size(long_id,1), size(b2,1))); xv t *shares); f1( K*jartial f1(:,K*j temp = cumsum(xd.*shares); % computing (partial delta)/(partial theta2) cdindex,:); sum1 = temp(cdindex,:); clear temp1 1(2 sum1(2:size(sum1,1),:) = diff(sum1); sum1 = temp(cdindex,:); end ( ( , ), ) sum1(2:size(sum1,1),:) = diff(sum1); rel f1(:theti + (thetj - 1) * max(theti) ; = i) mean((shares.*(xv-sum1 f1(:,i) = mean((shares *(xv-sum1 Consulting-Specifying Engineer • AUGUST 2008 Decrypting partial share)/(p partial sigma) for ishare)/(partial sigma) = 1:K partial ones(1,ns)).*v(cdid,ns*(i-1)+1:ns* for i = 1:Kxvxv(x2(:,i)*ones(1,ns)).*v(cdid,ns*(i-1)+1:ns*i); = = (x2(:,i)*ones(1,ns)).*v(cd mp temp = cumsum(xv.*shares); temp = cumsum(xv.*shares); sum1 = temp(cdindex,:); sum1 = temp(c cdindex1):);= diff(sum1); size(sum1 :) sum1(2:size(sum1,1),:) 1(((shares.*(xv-sum1(cdid,:)))')'; f1(:,i)sum1(2:size(sum1,1),:) = diff( = mean((shares.*(xv-sum1(cdid,:)))')'; emp sum1 clear xv = mean((shares *(x f1(:,i) tempmean((shares.*(x x end ,i)*ones(1,ns)).*v(cdid clear ial temp sum1 r xv % computing (partial share)/(partial pi) { = cumsum(xv *shares); end for j = 1:J temp(cdindex,:); sum1 = % computing (partial share)/(partial pi) { for f1 = sum1(2 j sum1(2:size(sum1,1),:) = diff(sum1); x2(:,i)*ones 1:J f1(:,i) = mean((shares. (xv mean((shares.*(xv-sum1 sum1 = temp(cdindex,:); temp(cdindex :); sum1(2:size(sum1,1),:) = diff(sum1); x2(:, Data from building automation systems and data loggers can make a daunting task simple—but do you know where to look? building data temp1(:,i) = mean((shares.*(xd-sum1(cdid,:)))')'; clear temp sum1 % computing (partialxddelta)/(partial theta2) b(b1>0); b(b artial delta)/(part end f =f1(: K*j+1:K*(j+1)) did 1) size(rel =1)); x2(: i zeros(size(cdid 1 (i ( temp1(: i) mean((shares *(xd f1(:,K*j+1:K*(j+1)) = temp1; temp1(:,i) mean((shares.*(xd-sum1 n 1 clear temp1 end hares.*(xv-sum1 for i = 1:size(cdindex,1) etj rel = theti + (thetj - 1) * max(theti) ; 1 temp = shares(n:cdindex(i), hares.*(xd-sum1 clear xd temp s H1 = delta)/(partial partial % computing (partial temp*temp';theta2) b(b1>0); b(b1>0); s(size(cdid,1),size(rel,1)); x2 s(size(cdid 1)( f} zeros(size(cdid,1),size(rel,1)); )) = H (diag(sum(temp')) (di size(rel 1)); x2(:,i)*ones (t n = 1; f(n:cdindex(i),:) = - inv(H ndex,1 for i = 1:size(cdindex,1) n = = shares(n:cdindex(i),:); (thetj dex(i) + 1; es(n:cdindex(i) es(n cdindex(i) temp cdind H1 = temp*temp' b = sort(long_id); temp*temp'; } H = (diag (diag(sum(temp')) - H1)/uns; tial de b1 [1;diff(b)]; f(n:cd f(n:cdin f(n:cdindex(i),:) = - inv(H)*f1(n:cdindex(i),rel); b2 = cdindex(i) + 1; n = b(b1>0); ( clear xv temp p bclear b1 b = sort(long_id); 1 b1 ==[1;diff(b)]; f sparse(zeros(size(long_id sparse(zeros(size d 2 b2 = b(b1>0 1:size(b2,1) forb(b1>0); i= clear xv temp sum1 l clear b1 b f(: i) = _id,1), size(b2,1))); g ros(size(long sparse((long ))); f = sparse(zeros(size(long_id,1), size(b2,1g_id==b2( fend = 1 i (b2 1 sum1(2:size(sum sum1(2:size(s m1,1),:) = diff(s ) for i 1:size(b2,1) f(:,i) = sparse((long_id==b2(i))); end BY DAVID SELLERS, PE, Senior Engineer, Facility Dynamics Engineering, Portland, Ore. smaller than its predecessor, reasoning being the original was oversized for the facility. Although the vendor had years of experience to support his recommendation for the boiler, the chief engineer and the director of engineering were understandably hesitant to endorse the decision; after all they would be the ones answering to management if the boiler’s performance fell below the required load. Compounding the complexity of the decision was the fact that the smaller boiler could be accommodated within the available emergency repair budget while an exact replacement would require financial approval from corporate headquarters and possibly extend the replacement time. The assistant chief engineer wanted my assessment of the required load that the boiler would need to deliver. When I asked when he needed an answer by, he said with a laugh, “by the end of the day.” Coming up with a plan Since it was already mid-afternoon, I thought the time limit would be a significant constraint on the depth of my analysis beyond an assessment of the load based on some combination of square foot parameters. But I remembered that the system, though not heavily monitored, did have data trended on 5-min intervals for some important fundamental parameters, including entering and leaving water temperatures and boiler gas consumption. A system load extracted from actual operating information would take a lot of the guesswork out of a quick assessment. Assuming the spaces had remained under control, it would represent the response of the system to the actual conditions that existed inside and outside the facility. The automatic calculation and compensation
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.