tag:blogger.com,1999:blog-17431174826728447802024-03-07T23:50:30.516+08:00APPLICATIONS OF MATLAB ON ENGINEERING PROBLEMSThe blog is for students who attend the course of 'Applications of Matlab in Engineering' to submit their homeworks, discussions and classnotes. Related blog can be refered to http://bime-matlab.blogspot.com. Students's work should be posted to this blog through a specified email address under a preset or self-defined title with proper contents. Students also have to leave their comments consistently to all the posted titles. Both posting material and comments will be graded later.不留白老人http://www.blogger.com/profile/01435873193619639784noreply@blogger.comBlogger87125tag:blogger.com,1999:blog-1743117482672844780.post-70472673465172160772007-01-12T15:25:00.000+08:002007-01-12T15:26:38.503+08:00好的matlab的網站<a href="http://matlabdb.mathematik.uni-stuttgart.de/index.jsp">http://matlabdb.mathematik.uni-stuttgart.de/index.jsp</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-27759223607952984212007-01-12T12:40:00.000+08:002008-12-11T18:41:24.327+08:00吳子青: Radial Basis Function ANN 輻狀基底類神經網路Radial Basis Function ANN 輻狀基底類神經網路<br /><br /><span style="color:#ff0000;">前言:<br /></span>利用RBF ANN 作簡短的介紹類神經網路的原理,並以老師上課的例子以類神經網路作簡單的應用,在這裡利用ANN 作 “ 函數模擬 ” 。<br /><br /><span style="color:#ff0000;">類神經網路介紹:</span><br />類神經網路(Artificial Neural Networks, ANNs)或譯為人工神經網路,其主要的基本概念是嘗試著模仿人類的神經系統。<br /><br />它是由很多非線性的運算單元(即:神經元 neuron)和位於這些運算單元間的眾多連結(links)所組成,而這些運算單元通常是以平行且分散的方式來進行運算以電腦的軟硬體來模擬生物神經網路的資訊處理系統。<br /><br />整個ANN的聚集形式就如同人類的大腦一般,可透過樣本或資料的訓練來展現出學習(learn)、回想(recall)、歸納推演(generalize)的能力。<br /><br />類神經網路在處理複雜的工作時<br />(1)不需要針對問題定義複雜的數學模式,<br />(2)不用去解任何微分方程、積分方程或其他的數學方程式,<br />(3)藉由學習來面對複雜的問題與不確定性的環境。<br /><div><div><div><div><br /><br /><div></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDHfXB6F5hMgVHzlR3OIMVDs8lDdI24uzK01veiTtjYLGOH_rGmrRKz10C8taG3zklZjnaObg-K5alwjpMJhpLz_EiZkFXh6Y954dvMpdTfIQj_H8el7rGGGCB9qsqcqARudz5HCGyMWI/s1600-h/åç4.jpg"><img id="BLOGGER_PHOTO_ID_5018999418353699746" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="97" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDHfXB6F5hMgVHzlR3OIMVDs8lDdI24uzK01veiTtjYLGOH_rGmrRKz10C8taG3zklZjnaObg-K5alwjpMJhpLz_EiZkFXh6Y954dvMpdTfIQj_H8el7rGGGCB9qsqcqARudz5HCGyMWI/s320/%E5%9C%96%E7%89%874.jpg" width="273" border="0" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQ1GY_zoRMOmlwdlOPXUTeTQV9Oj__9SfPJnBgoy71Xx0wsasPoxfmVNe2XGrbpKOFm8qahqiAc77J5YbrMlIL3L8tkjGA2N4a3aBa5Z_i0HrdzuiDRyzjTrZ_2w6U4mRgDAh7ejEZlg/s1600-h/åç1.jpg"><img id="BLOGGER_PHOTO_ID_5018999538612784050" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="192" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfQ1GY_zoRMOmlwdlOPXUTeTQV9Oj__9SfPJnBgoy71Xx0wsasPoxfmVNe2XGrbpKOFm8qahqiAc77J5YbrMlIL3L8tkjGA2N4a3aBa5Z_i0HrdzuiDRyzjTrZ_2w6U4mRgDAh7ejEZlg/s320/%E5%9C%96%E7%89%871.jpg" width="218" border="0" /></a><br /><br /><br /><br /><br /><div></div><br /><br /><br /><br /><br /><div></div><br /><br /><br /><div></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZ0MiIIeSqEgOscUvIzkyYfh55lCVykTpVnHkiMSEFunkb0JdHDY7xcg5-b4lilU2iIucEcSykit1wekvzLy0206tDa6xpPYfVStUXZ2AKA7zk7pjeINa9SOxjHX9L3Rn1pccuMsOqew/s1600-h/åç2.jpg"><img id="BLOGGER_PHOTO_ID_5018999719001410498" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="148" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizZ0MiIIeSqEgOscUvIzkyYfh55lCVykTpVnHkiMSEFunkb0JdHDY7xcg5-b4lilU2iIucEcSykit1wekvzLy0206tDa6xpPYfVStUXZ2AKA7zk7pjeINa9SOxjHX9L3Rn1pccuMsOqew/s320/%E5%9C%96%E7%89%872.jpg" width="273" border="0" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZlPJDW0HyRkPxZgLhbz48L4Cudz8MyC_tXPzmqV6ewG5RW3bZYbT21-WoPwj1dDPf0Ly9KdZMEVoZwBX5OTIhnXEOOIU8eQF6QZIRia7kTqDKGLW-hLfQmnBDgDokvRb0vsTVqsATUc/s1600-h/åç3.jpg"><img id="BLOGGER_PHOTO_ID_5018999860735331282" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="240" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicZlPJDW0HyRkPxZgLhbz48L4Cudz8MyC_tXPzmqV6ewG5RW3bZYbT21-WoPwj1dDPf0Ly9KdZMEVoZwBX5OTIhnXEOOIU8eQF6QZIRia7kTqDKGLW-hLfQmnBDgDokvRb0vsTVqsATUc/s320/%E5%9C%96%E7%89%873.jpg" width="232" border="0" /></a><br /><br /><br /><div></div><br /><br /><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div></div><br /><div><span style="color:#ff0000;">輻狀基底函數類神經網路介紹(RBF ANN)<br /></span>或稱為半徑式類神經網路,特質主要在於摩擬大腦皮質軸突的局部調整功能<br />為基本前饋式類神經網路<br />其可視為在解決高維度空間的曲線調適問題<br /><br />RBFANN 架構</div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhOrI4NrnzyIDXhP1rSm-dANroX28FCftcpRVWvylIPRpcC1eB6yYbY7A15vQTTGWpfPWkHVuUGk-8i-gqS253itwCtJsRJTHfTHhb7tGMdY5kshiV7BGQuDDs6JyXIEsCX963LFiZ-0/s1600-h/åç5.jpg"><img id="BLOGGER_PHOTO_ID_5019000307411930082" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWhOrI4NrnzyIDXhP1rSm-dANroX28FCftcpRVWvylIPRpcC1eB6yYbY7A15vQTTGWpfPWkHVuUGk-8i-gqS253itwCtJsRJTHfTHhb7tGMdY5kshiV7BGQuDDs6JyXIEsCX963LFiZ-0/s320/%E5%9C%96%E7%89%875.jpg" border="0" /></a><br /><div></div><br /><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div>RBFANN演算流程<br />1. 處理資料 (輸入項與目標輸出項)<br />2. 決定類神經網路架構<br />3. 決定初始中心點位置 (類神經元)<br />4. 利用RBFANN學習演算法修正(1)中心點位置 (2)連結權重 (3)福狀基底半徑<br />5. 驗證與測試階段<br /><br /><br /><span style="color:#ff0000;">程式流程</span><br />Step 1 :<br />想要利用RBF ANN模擬 matlab裡面z=peaks(X,Y)的函數<br />z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2) ...<br />- 10*(x/5 - x.^3 - y.^5).*exp(-x.^2-y.^2) ...<br />- 1/3*exp(-(x+1).^2 - y.^2)<br />可以看出 Peaks(X,Y) 這是一個非線性的方程式<br />正好用來測試類神經網路處理非線性的能力<br />取X,Y都介於-2和2間距0.2 共產生400筆資料各包含(X,Y, f(X,Y ))<br /><br />Step 2<br />架構RBFANN 這裡選取輸入維度2, 中心點個數 100<br />以高斯函數為輻狀基底函數 演算次數 200次 學習速率0.01<br /><br />Step3<br />將400筆資料依序丟入網路中進行訓練,並修正中心點位置 連結權重 福狀基底半徑 等資訊<br /><br />Step4<br />製作演算流程動畫, 以3D圖上的黑點表示 input data , 以mesh 網格表示ANN模擬函數的結果, 若資料點和mesh網格重合則表示模擬效果優良<br /><br />Step 5<br />達到停止條件或最大演算步數則停止, 結果為rmse 越小表示越好<br /><br />Step 6<br />製作GUI介面</div><div> </div><div><span style="color:#ff0000;">程式內容</span><br /><span style="color:#009900;">clear all;<br />iter=100;<br />nc=100;<br />goal=0.01;<br />lr_w=0.01;<br />lr_c=0.01;<br />lr_s=0.01;<br /><br />% p 為輸入資料點,N×K矩陣,N是輸入資料維度,K是資料點數<br />% t 為目標輸出值,1×K矩陣<br />% newcenter已選定的中心點,N×nc矩陣<br />% iter為指定演算代數<br />% goal為指定之網路誤差<br />% lr_w為調整權重之學習速率<br />% lr_c為調整中心點之學習速率<br />% lr_s為調整標準偏差? (sigma)之學習速率<br />% W為輸出層權重,nc×1矩陣<br />% yh為網路輸出值,1×K矩陣<br />% rmse為目標輸出值與網路輸出值之RMSE<br /><br />%輸入函數<br />[X,Y] = meshgrid(-2:0.2:2);<br />Z = 3*peaks(X,Y);<br /><br />[mm,nn]=size(Z);<br />PA=zeros(3,mm*nn);<br />for i=1:mm<br /> for j=1:nn<br /> PA(1,(i-1)*nn+j)=X(i,j);<br /> PA(2,(i-1)*nn+j)=Y(i,j);<br /> PA(3,(i-1)*nn+j)=Z(i,j);<br /> end<br />end<br />clear i j ;<br /><br />p=PA(1:2,:);<br />t=PA(3,:);<br /><br />[nd,np]=size(p);<br />k=randperm(np);<br />newcenter=p(:,k(1:nc));<br /><br />clear nd np nc k ;<br /><br />nc=size(newcenter,2);<br />[nd,np]=size(p);<br />phii=zeros(1,nc);<br />Dic=[];<br />phi=[];<br />itimetemp=1;<br />for i=1:nc<br /> for j=1:nc<br /> Dic(j,i)=norm(newcenter(:,i)-newcenter(:,j));%計算center的距離<br /> end<br />end<br />sigma=(max(max(Dic))/sqrt(nc));%計算基底函數的標準偏差σ(sigma)<br />for i=1:nc<br /> for j=1:np<br /> phi(j,i)=exp(-(norm(newcenter(:,i)-p(:,j))/sigma)^2);%計算center與input各點的距離<br /> end<br />end<br /><br />W=pinv(phi)*t';%初始權重W<br />newsigma=sigma*ones(nc,1);<br />for itime=1:iter<br /> for j=1:np<br /> for i=1:nc<br /> Dip(i)=norm(p(:,j)-newcenter(:,i));%計算center與input各點的距離<br /> phii(i)=exp((-1/(newsigma(i)^2))*(Dip(i)^2));<br /> end<br /> if(itime==iter)<br /> finalphii(j,:)=phii;<br /> end<br /> yh(j)=phii*W;<br /> e(j)=yh(j)-t(j);<br /> for k=1:nc <br /> newcenter(:,k)=newcenter(:,k)-lr_c*(e(j)*W(k)/(newsigma(k)^2))*phii(k)*(p(:,j)-newcenter(:,k));%更新基底函數的中心值c<br /> newsigma(k)=newsigma(k)-lr_s*(e(j)*W(k)/(newsigma(k)^3))*...<br /> phii(k)*(norm(p(:,j)-newcenter(:,k)))^2;%更新基底函數的標準偏差σ<br /> end <br /> W=W-lr_w*e(j)*phii';%更新權重向量W<br /> end<br /> err1=sqrt(mse(yh-t));<br /> err2(itime)=mse(yh-t);<br /> if(itime/100-itimetemp==0)<br /> itimetemp=itimetemp+1;<br /> itime<br /> end<br /> if(err1<=goal)<br /> break;<br /> end<br /> <br /> for i=1:np<br /> for m=1:nc<br /> phii(m)=exp(-(norm(p(:,i)-newcenter(:,m))/newsigma(m))^2);<br /> end<br /> yh(i)=phii*W;<br /> end<br />for i=1:mm<br /> for j=1:nn<br /> ZZ(i,j)=yh((i-1)*nn+j);<br /> end<br />end<br />rmse=sqrt(mse(yh-t));<br />clear yh;<br />%figure1<br />figure(1)<br />plot3(PA(1,:),PA(2,:),PA(3,:),'.','markersize',5);<br />grid on<br />hold on<br /> mesh(X,Y,ZZ);<br />hold off<br /> M(itime)=getframe;<br /> RMSE(itime)=rmse;<br />end %time end<br />movie(M,1,2);<br /><br />figure(2)<br />plot(RMSE);<br />title('rmse value');<br />xlabel('epoch step');<br />ylabel('rmse')<br />clear Dic Dip W ans e err1 err2 finalphii goal itime itimetemp;<br />clear j k lr_c lr_s lr_w m nc nd newsigma np p phi phii sigma itime m n mm nn;<br />clear PA X Y Z ZZ newcenter;<br />clear itre i M iter t RMSE;</span></div></div></div></div></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1743117482672844780.post-21705890249706825262007-01-12T12:36:00.000+08:002007-01-12T12:38:43.971+08:00林書如: 人體受外力牽拉後引發之姿勢反應_肌肉活化情形_finale請按標題連結至程式網頁.....Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-75166432646593484112007-01-12T09:14:00.000+08:002008-12-11T18:41:26.087+08:00林翊展--養豬廢水處理設備的自動化設計--完整版<strong>前言</strong><br />前一陣子曾經協助老師進行一項雲林縣政府的計畫,該計畫內容為替雲林縣政府設計一座養豬廢水處理的示範場.在設計過程當中,有需要計算的地方,雖然用到的計算方法不難,但是希望利用matlab程式,只需要輸入所需的參數,即可以自動設計出符合標準的處理設備規格.<br /><br /><strong>背景說明</strong><br /><br />養豬廢水處理<br /><br />台灣的畜牧業以養豬為大宗,而且多是採企業化經營,規模大又集中,導致畜牧場所產生的廢水量相當驚人.目前台灣的總養豬頭數大約700萬頭,大部分都集中在台灣中南部,而一頭豬的糞尿廢水汙染力相當於人的六倍,可以折算成約4200萬人口.在過去,養豬廢水都是以直接排放的方式處理,對於台灣河川的破壞相當大,產生了許多”黑水河”.現在依環保署的規定,養豬規模超過20頭要強制建設廢水處理設備,而處理過的廢水也有品質的要求,如此一來,大大減少台灣河川所遭受的污染,而且在處理豬糞尿的過程中,還會產生許多具有附加價值的產物,如沼氣、有機堆肥等,達到保護環境與廢棄物再利用的雙重功效.<br /><br />目前國內豬糞尿水的處理一般都採用三段式處理,過程主要包括固液分離、厭氣醱酵及好氣處理等步驟,其中再加入調整池、計量槽、初沉池、污泥回流及污泥處理等構成完整的養豬廢水處理系統,其流程如下圖:<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-f8ibsc5bVm2gJ7WHDvbsklaKi2dvTIfOCV3bWQpE1Z3AAR7XbLx2-FnqqcRahqzhJqViwc352RhUuI3mvaSWKn9SERrtNqsCODRf2hiMf0zhNa_55QszmIHozFtUVdbAWKffpxaCSBk/s1600-h/%E5%BB%A2%E6%B0%B4%E8%99%95%E7%90%86.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-f8ibsc5bVm2gJ7WHDvbsklaKi2dvTIfOCV3bWQpE1Z3AAR7XbLx2-FnqqcRahqzhJqViwc352RhUuI3mvaSWKn9SERrtNqsCODRf2hiMf0zhNa_55QszmIHozFtUVdbAWKffpxaCSBk/s320/%E5%BB%A2%E6%B0%B4%E8%99%95%E7%90%86.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013820599974242642" /></a><br /><br /><br />而實際處理圖片則如下所示<br /><br />1.固液分離<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_0DVVDJeEZ5pp6u1R1SQHAB943uOfCKDFrYo7g86ThSwOGo4YabOXo_RExLu1r88ymmtOUeXhvsbNpfeWJOg1Pj1iJ_FXjI5OC1kXurlZMEyezMs5G8YeBWaMzmmlha8YePykAFaiPc7/s1600-h/%E5%9B%BA%E6%B6%B2%E5%88%86%E9%9B%A2.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_0DVVDJeEZ5pp6u1R1SQHAB943uOfCKDFrYo7g86ThSwOGo4YabOXo_RExLu1r88ymmtOUeXhvsbNpfeWJOg1Pj1iJ_FXjI5OC1kXurlZMEyezMs5G8YeBWaMzmmlha8YePykAFaiPc7/s320/%E5%9B%BA%E6%B6%B2%E5%88%86%E9%9B%A2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013828558548642146" /></a><br /><br /><br />2.厭氣發酵<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-YV9aKXwd0OIUzJ541t-I8akJH85S188Sihm8aDT8Y030z4Mn2oIqQWNnhP0Z0mbmaQFZF3dEjuqvGkTyllUnu2noqO10wpZ0eoOCRSZpHnP26YSHRVE6V2qMIUBug1y_6bn5JiFkCljz/s1600-h/%E5%8E%AD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-YV9aKXwd0OIUzJ541t-I8akJH85S188Sihm8aDT8Y030z4Mn2oIqQWNnhP0Z0mbmaQFZF3dEjuqvGkTyllUnu2noqO10wpZ0eoOCRSZpHnP26YSHRVE6V2qMIUBug1y_6bn5JiFkCljz/s320/%E5%8E%AD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013828816246679922" /></a><br /><br /><br />3.好氣發酵<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4XBlmLhKvPMmyPzS3KIw1-TTgMzG7tNy2OzKxFySp0tODJ5wuYyBFU7SYVD0EBKyh5uxwT1DrF-hoEn1N7N-z6enMroA4Vx2_HU4QztOMk3NpKJrcXicKdgIEC8cYvbZnQsndQpzXhRA/s1600-h/%E5%A5%BD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4XBlmLhKvPMmyPzS3KIw1-TTgMzG7tNy2OzKxFySp0tODJ5wuYyBFU7SYVD0EBKyh5uxwT1DrF-hoEn1N7N-z6enMroA4Vx2_HU4QztOMk3NpKJrcXicKdgIEC8cYvbZnQsndQpzXhRA/s320/%E5%A5%BD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013829035290012034" /></a><br /><br /><br />經過三段式處理後的廢水即放流到河川之中<br /><br />放流廢水<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl53f6XWZimHuZSRFozn2kcdgmowGDSFyPpI5K_X08zOjdxrpqaQQkA_sU3jhhKo_OlL8AeJcDIpuXV89Ucq3gqPGjci9KA8m2BYAcmDee8PdKq4hEiPyqyoDHYtIKDUqkafO3SJTO92bM/s1600-h/%E6%94%BE%E6%B5%81%E6%B0%B4.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl53f6XWZimHuZSRFozn2kcdgmowGDSFyPpI5K_X08zOjdxrpqaQQkA_sU3jhhKo_OlL8AeJcDIpuXV89Ucq3gqPGjci9KA8m2BYAcmDee8PdKq4hEiPyqyoDHYtIKDUqkafO3SJTO92bM/s320/%E6%94%BE%E6%B5%81%E6%B0%B4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013829439016937874" /></a><br /><br /><br /><strong>目的</strong><br /><br />程式設計的目標為輸入養豬頭數後,自動計算出廢水處理槽的規格參數,節省人力計算所需的時間.<br /><br /><br /><strong>名詞解釋</strong> <br />1.BOD:biochemical oxygen demand,生化需氧量.水中的雜質經由好氧菌分解所需要的氧氣量.由此數值可以看出廢水的生物可分解性,亦是廢水污染力的重要指標之一.BOD5則是指讓廢水暴露在氧氣充足的情況下,五天所耗費的氧氣量.<br /><br />2.COD:chemical oxygen demand,化學需氧量.利用化學方法(強氧化劑),讓水中雜質氧化的耗氧量.廢水污染指標之一,且COD值必大於BOD值,而COD值通常被當作終極BOD值來作計算.<br /><br />3.HRT:水力停留時間<br /> HRT= reactor volume / effluent volume flux<br /><br />4.BOD loading:反應槽對於進流廢水的負載,可以用BOD或COD表示,通常為經驗值,過多或過少都會對反應槽的效率產生影響.<br /><br /><br /><strong>設計原則</strong><br />1.假設一頭肉豬100 kg,產生30L/day的廢水量<br />2.根據ASAE在1994公佈的STANDARDS 裡,每1000kg豬產生的BOD5約 3.1 kg/day.<br />3.反應槽的BOD loading假設為0.5 kg/m^3/day<br /><br /><br /><strong>程式內容</strong><br /><br /><pre><br />k=menu('請選擇計算方式','依廢水體積計算','依BOD負載計算');<br />pig=input('請輸入豬隻頭數 : ');<br />HRT=input('請輸入水力停留時間(hour) : ');<br />if k==1<br /> q=pig*30*0.001;<br /> V=q*(HRT/24);<br /> disp(['反應槽體積= ',num2str(V),' 立方公尺']);<br />elseif k==2<br /> V=pig*0.31/0.5*(HRT/24);<br /> disp(['反應槽體積= ',num2str(V),' 立方公尺']);<br />else<br /> break<br />end</pre><br /><br /><br /><strong>執行結果</strong><br />程式計算方式有兩種,第一是根據廢水量來計算,第二則是根據預估的反應槽loadind來做計算.兩種結果算出來後,取其較大值作為依據.<br /><br />選擇圖示<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6zjt1_xmlmm7UO84DZdijDdAI-00i46-0frqsCMKfLkEs-97HlauNV_kw6Xi5F3rnxLVfLO6sE2F6Y7Gfsb4AzTTll7eD4SegJe4gvE6AuLtMFyY8YSFY3O_vz0Z0K7qPOUU21-6jqE2z/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6zjt1_xmlmm7UO84DZdijDdAI-00i46-0frqsCMKfLkEs-97HlauNV_kw6Xi5F3rnxLVfLO6sE2F6Y7Gfsb4AzTTll7eD4SegJe4gvE6AuLtMFyY8YSFY3O_vz0Z0K7qPOUU21-6jqE2z/s320/%E6%9C%AA%E5%91%BD%E5%90%8D.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5018955196317990370" /></a><br /><br />根據廢水量計算<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtunsp8OeLMVmWc5UwccXs4_klnJLXGgNIuGUES7g0_55ok9MdMHlJUlQ4kaKdDJu-sRhFgYxb22wqGW6v8s-dtg5HXNUcocJSfNxE1rC0Ci6o0Qjmh33E3e_vQ_m0V7MJngiiF3mVzh9h/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D1.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtunsp8OeLMVmWc5UwccXs4_klnJLXGgNIuGUES7g0_55ok9MdMHlJUlQ4kaKdDJu-sRhFgYxb22wqGW6v8s-dtg5HXNUcocJSfNxE1rC0Ci6o0Qjmh33E3e_vQ_m0V7MJngiiF3mVzh9h/s320/%E6%9C%AA%E5%91%BD%E5%90%8D1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5018955423951257074" /></a><br /><br />根據反應槽的loading來計算<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSm4aK2a4061Y9jDT1x4zht1ZLiCmlvWH08pD0l7VuUZX37RlnFZ3RjOvqonkp3O2UvWPryxhC-XHJgIYG068z8QC-LdWRHcNT2qsb-onqCQO7ygcK9HtP2BkkEndErwchVzS2jrHvFFjA/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D2.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSm4aK2a4061Y9jDT1x4zht1ZLiCmlvWH08pD0l7VuUZX37RlnFZ3RjOvqonkp3O2UvWPryxhC-XHJgIYG068z8QC-LdWRHcNT2qsb-onqCQO7ygcK9HtP2BkkEndErwchVzS2jrHvFFjA/s320/%E6%9C%AA%E5%91%BD%E5%90%8D2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5018955694534196738" /></a><br /><br /><br />根據以上的結果,養豬1000頭,水力停留時間6 hours的廢水處理槽,體積需要155立方公尺.<br /><br /><br /><strong>結果討論</strong><br />1.兩種計算方式的數據會有不同,因為第一個根據廢水量的計算,只單就以物理性而言,槽體的大小是為了不讓水滿出來,但是第二項則是實驗的經驗值,參雜了細菌生長的好壞等生物性因素,所以兩者的參數不相同,必須取其大者.<br /><br />2.水力停留時間6~8小時,是傳統反應槽的設計,如果有需要,例如loading改變,細菌生長狀況差異等,則會另行調整,以便達到處理效率.<br /><br />3. 現行環保署畜牧業放流水標準<br />依據水污染防制法第七條第二項之規定,國內畜牧業適用之放流水標準,其水質項目及限制如下:<br />(1)非草食性動物(豬):生化需氧量 < 80 mg/L;化學需氧量 < 600 mg/L;懸浮固體 < 150 mg/L。<br />(2)草食性動物(牛):生化需氧量 < 80 mg/L;化學需氧量 < 450 mg/L;懸浮固體 < 150 mg/L。<br /> (行政院環保署,2003)<br /><br />4.以現實情況來說,廢水處理達不到標準通常受限於成本與土地大小,造成反應槽的大小不足,再加上生物性因素會比較難以掌握.<br /><br />5.固液分離後的豬糞可以進行發酵做為有機堆肥,而厭氧反應過程中會產生沼氣提供發電,不過要先想辦法去除沼氣中的硫化氫,因為它會產生硫酸腐蝕發電機組.<br /><br />6.此篇的程式與其他同學比較起來相對的簡單很多,因為生物反應槽大部分都是實驗參數,設計上比較難的地方在於參數的取用,用到計算上都只是簡單的計算,而現實上則隨時根據生物狀況來做調整,不過此篇可以提供同學們一點關於廢水處理的相關資訊.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-8111205628104455532007-01-11T17:49:00.000+08:002008-12-11T18:41:29.304+08:00r95631022林冠宏(計算齒輪平均半徑,有效圈數,彈簧體積)螺旋彈簧<br />緊密捲繞(closely coiled)的螺旋彈簧(helical springs)應力與變形方程式,直接導自如圖4-2(2)中所示圓桿扭轉的對應力方程式。圓桿長L,直徑為d,在兩端裝配長R的托架,並且在負荷P的作用下平衡。假設直桿彎曲成如圖4-2(b)中半徑為R的N圈螺旋線(helix)。繞成圈的桿在兩相等兒相反方向力的作用下平衡。<br />直桿中的剪應力源自值等於PR的扭矩。螺旋線中的主要應力也是扭轉剪應力。<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzMJq2TYKoIEZsbiw5aCUhhJtq5Xu4ChFi7LVS5gFGoqAMZ7-ZdK_WNQwnxAJUyI2Oa8F_jL8PT8vuvQ4R8pKGzd37q2vjvRz7NXmLLl9VwGSa7vnT-oujie5xJJnfaKW8kODE0D3PlZw/s1600-h/5552222.bmp"><img id="BLOGGER_PHOTO_ID_5018710535351346002" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzMJq2TYKoIEZsbiw5aCUhhJtq5Xu4ChFi7LVS5gFGoqAMZ7-ZdK_WNQwnxAJUyI2Oa8F_jL8PT8vuvQ4R8pKGzd37q2vjvRz7NXmLLl9VwGSa7vnT-oujie5xJJnfaKW8kODE0D3PlZw/s320/5552222.bmp" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />由扭轉剪應力=Tr/J(J為極慣性矩),得圖4-2中的應力為<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjalHZvP0-d37_zd_Y3l0mYab4cquD3pHymYGIAsAPrzx0NLTJwzz_2QdApvGkaEv7P1QEr1jhv10zd03lVUbOx9YPYDd0brqY3UPmMA0d78gTjt71VbpfUJAm53xm423i9x9HaJKbI5lg/s1600-h/(a).bmp"><img id="BLOGGER_PHOTO_ID_5018708679925473890" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjalHZvP0-d37_zd_Y3l0mYab4cquD3pHymYGIAsAPrzx0NLTJwzz_2QdApvGkaEv7P1QEr1jhv10zd03lVUbOx9YPYDd0brqY3UPmMA0d78gTjt71VbpfUJAm53xm423i9x9HaJKbI5lg/s320/(a).bmp" border="0" /></a><br /><p></p><p>(a)<br /><br />將螺旋直徑2R與線徑d間的比值為彈簧指數(spring index) c。即 </p><p><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2djENN_vyS64IZkXO8QwbEzckGZLKlxhNbkrxfiBBJgdC_bgAqsuPx5cYYuEHu7rXJahM2-gHJm8WPRzhdZIKZ3ulUp6J-8wrs9Al1Bk6rvlsSkZ_8XellOgLl19Oox3YXfNINy23jto/s1600-h/(1).bmp"><img id="BLOGGER_PHOTO_ID_5018708954803380850" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2djENN_vyS64IZkXO8QwbEzckGZLKlxhNbkrxfiBBJgdC_bgAqsuPx5cYYuEHu7rXJahM2-gHJm8WPRzhdZIKZ3ulUp6J-8wrs9Al1Bk6rvlsSkZ_8XellOgLl19Oox3YXfNINy23jto/s320/(1).bmp" border="0" /></a><br />(1)<br /></p><p>在繞成螺旋線後,由橫向剪力的作用,剖面將有額外應力。經精確分析顯示,此應力在彈簧長的中央部份之值為1.23P/A。則<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4I4aITWnMq1YmNzTq9nY61i0NQjMnYx53SjBbdgq4PeD-mrP9DR3KCxHZy4ac8KIfR457LVWVq7lIzomK6Peo0ANBMhr_jfNd02FwhD_RZEIk5JVRmZ2jHUGsTacwCf9xFRwRjqLf-c/s1600-h/(b1).bmp"><img id="BLOGGER_PHOTO_ID_5018708959098348162" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4I4aITWnMq1YmNzTq9nY61i0NQjMnYx53SjBbdgq4PeD-mrP9DR3KCxHZy4ac8KIfR457LVWVq7lIzomK6Peo0ANBMhr_jfNd02FwhD_RZEIk5JVRmZ2jHUGsTacwCf9xFRwRjqLf-c/s320/(b1).bmp" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE36xq53oHYVBlH-nz9urMHHbGOw5evZbY_YFHjpQzOm2yxr8dQ5W9ieME0rP_aOrUVupvBHbuJKFNGhve7GumPNrhY-TWoB3OMhWYAYwGj3tClekKqBTaGrnwa3UDvgoE_wgLQIm1Pao/s1600-h/(b2).bmp"><img id="BLOGGER_PHOTO_ID_5018708959098348178" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE36xq53oHYVBlH-nz9urMHHbGOw5evZbY_YFHjpQzOm2yxr8dQ5W9ieME0rP_aOrUVupvBHbuJKFNGhve7GumPNrhY-TWoB3OMhWYAYwGj3tClekKqBTaGrnwa3UDvgoE_wgLQIm1Pao/s320/(b2).bmp" border="0" /></a>(b)<br /></p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhE36xq53oHYVBlH-nz9urMHHbGOw5evZbY_YFHjpQzOm2yxr8dQ5W9ieME0rP_aOrUVupvBHbuJKFNGhve7GumPNrhY-TWoB3OMhWYAYwGj3tClekKqBTaGrnwa3UDvgoE_wgLQIm1Pao/s1600-h/(b2).bmp"></a></p><p></p><br /><br />由於靜負荷P的作用,在彈簧長中央部份的線圈內側,其總剪應力τ可由(a)式與(b)是相加求得:<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxFetoEva75fFf6arlq_NamxbxvU5yzzLyongsirgj3I2i44IGj2LOnzrKi46XAR7wa68pHSwzo20fo6c8wEQEAhFm7mdmrDEWDdVl73cPZHDQ7FCaGMSpCoSXYgvKGiHpeeBKN9782dQ/s1600-h/(2).bmp"><img id="BLOGGER_PHOTO_ID_5018709294105797282" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxFetoEva75fFf6arlq_NamxbxvU5yzzLyongsirgj3I2i44IGj2LOnzrKi46XAR7wa68pHSwzo20fo6c8wEQEAhFm7mdmrDEWDdVl73cPZHDQ7FCaGMSpCoSXYgvKGiHpeeBKN9782dQ/s320/(2).bmp" border="0" /></a>(2)<br /><br /><br />式中<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7kmXZ9OQuXlkN4bZJA1vlsgWFe3rHUqKHAmBmpl2drL0IM8Iy0DEl7M-Oo-2KikTuNl8v7Ai4BFvYFXIhlq9F5K29tS8VGA3y__vYSqN0B_qhLkhpJsHesXTFTM5Oqyw3cS5xX4ZlJcE/s1600-h/(3.bmp"><img id="BLOGGER_PHOTO_ID_5018709826681742002" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7kmXZ9OQuXlkN4bZJA1vlsgWFe3rHUqKHAmBmpl2drL0IM8Iy0DEl7M-Oo-2KikTuNl8v7Ai4BFvYFXIhlq9F5K29tS8VGA3y__vYSqN0B_qhLkhpJsHesXTFTM5Oqyw3cS5xX4ZlJcE/s320/(3.bmp" border="0" /></a>(3)<br /><br /><br />將(1)式代入(2)式得另外兩個型式的應力方程式<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmJ1efeRrcY430P59QMMRDjxRy9OHEjsqqyJ6x1Q2-19GKtZHfrrCJzmpJVMAg01grO9paiMlGh_xw0dCO3lpWFcPUEaH3mjbi5ddPIWRAH8TTsxAvuR2hpEYd6utwtZxekdmn3979cQ/s1600-h/(45).bmp"><img id="BLOGGER_PHOTO_ID_5018709903991153346" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNmJ1efeRrcY430P59QMMRDjxRy9OHEjsqqyJ6x1Q2-19GKtZHfrrCJzmpJVMAg01grO9paiMlGh_xw0dCO3lpWFcPUEaH3mjbi5ddPIWRAH8TTsxAvuR2hpEYd6utwtZxekdmn3979cQ/s320/(45).bmp" border="0" /></a>(4)(5)<br /><br /><br />當(3)式代入(4)式而解得c,可得下列有用的方程式<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDC5wFL_HVQwxrYiYfd2n_y_9TVYxX8nCA7YkRu7Oh_zA44RjgmHZwJRTJ-UTCCHp63YR-l_fqaoGnaK4dp5gy8zLzxy3hAIws98V9axKtFz7GKS7_u3FCNm5Tet1fE7hPtPQCGU-naqw/s1600-h/(6).bmp"><img id="BLOGGER_PHOTO_ID_5018710002775401170" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDC5wFL_HVQwxrYiYfd2n_y_9TVYxX8nCA7YkRu7Oh_zA44RjgmHZwJRTJ-UTCCHp63YR-l_fqaoGnaK4dp5gy8zLzxy3hAIws98V9axKtFz7GKS7_u3FCNm5Tet1fE7hPtPQCGU-naqw/s320/(6).bmp" border="0" /></a>(6)<br /><br />將(1)式的c代入(6)式,得<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXYlW20PHU5N6blh_njTptU-EtX0rIgG924UDkI9bexnWaSHMaWVQQ0tX_ZceLVeLE5ANKA3dnOEx92QdrbhrbDl_4QKT5HxGbC6BUuGQ0wF6G9cQDS4LGHLke9MmfjCMBBUlTmluMhq0/s1600-h/(6a).bmp"><img id="BLOGGER_PHOTO_ID_5018710002775401186" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXYlW20PHU5N6blh_njTptU-EtX0rIgG924UDkI9bexnWaSHMaWVQQ0tX_ZceLVeLE5ANKA3dnOEx92QdrbhrbDl_4QKT5HxGbC6BUuGQ0wF6G9cQDS4LGHLke9MmfjCMBBUlTmluMhq0/s320/(6a).bmp" border="0" /></a>(6a)<br /><br /><br />彈簧的撓度可由考慮由扭矩PR導致剖面間的互相旋轉而得。暫時假設圖4-2(b)中的元素ABCD據撓性,彈簧的其他部分為剛體。則φ=Tl/JG式,剖面CD對相鄰剖面AB的旋轉dφ 等於<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM5M_UNIf-fOpsd2O2GQioaZniZOR6BqqJjhEqOFnWRMKaZAMXTPNsGqNTwrtt1VCminLE1zl7uxtadRlukL2QnvNabyM9mRW9X3tQC-lAJuZPjAvej9tmQ2UE6BZqL39kZBW-NasQsWY/s1600-h/11.bmp"><img id="BLOGGER_PHOTO_ID_5018710131624420082" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM5M_UNIf-fOpsd2O2GQioaZniZOR6BqqJjhEqOFnWRMKaZAMXTPNsGqNTwrtt1VCminLE1zl7uxtadRlukL2QnvNabyM9mRW9X3tQC-lAJuZPjAvej9tmQ2UE6BZqL39kZBW-NasQsWY/s320/11.bmp" border="0" /></a><br /><br />此一微分長度彈簧得旋轉,導致位於相隔 的E點的總移動量為<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvlL-UJv-ahyphenhyphenTnF1cEHAFMpgZMI39ChyKlHoddhYwrTWYfc25sXkVIgEiHfMJstneDjGKUUepLcfqg36MXduiE7Pb7p2REi8AquXpx43OWhOmtP1kuDII5gismvp0jaIdQvYYxnEwFDLI/s1600-h/12.bmp"><img id="BLOGGER_PHOTO_ID_5018710135919387394" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvlL-UJv-ahyphenhyphenTnF1cEHAFMpgZMI39ChyKlHoddhYwrTWYfc25sXkVIgEiHfMJstneDjGKUUepLcfqg36MXduiE7Pb7p2REi8AquXpx43OWhOmtP1kuDII5gismvp0jaIdQvYYxnEwFDLI/s320/12.bmp" border="0" /></a><br /><br /><br />當整個彈簧具彈性時,由扭矩產生的總撓度,可以由全長積分而得,則<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT0kPbbAHTDkQ69ih0cXY7qaZ7b4jDLisGTn3hYAXgNJOBsuwQx8WZTWEfAIpS939q3YKbX8Cz1OLelPuiOWh_LWtIi4ci3imnlKYTkkx_CH2V2K_uq5G1_eXNx1oDw8pflnKsqFvJwhs/s1600-h/(789).bmp"><img id="BLOGGER_PHOTO_ID_5018710135919387410" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT0kPbbAHTDkQ69ih0cXY7qaZ7b4jDLisGTn3hYAXgNJOBsuwQx8WZTWEfAIpS939q3YKbX8Cz1OLelPuiOWh_LWtIi4ci3imnlKYTkkx_CH2V2K_uq5G1_eXNx1oDw8pflnKsqFvJwhs/s320/(789).bmp" border="0" /></a>(7)(8)(9)<br /><br /><br />在這些方程式中,彈簧的作用長度(active length)取為2πRNc,而鋼線極貫性矩為πd^4/32。方程式(8)及(9)由(1)式代入而得。<br />彈簧用鋼的G,平均值為11500000 psi ,若以SI單位表示。為79300MPa。<br />若Q為彈簧的無效端圈數,則彈簧總長為2πr(Nc+Q)。鋼線的剖面積為πd^2/4彈簧材料的體積V為兩項的乘積。<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3pyllaGDhCogVRyflgIIJqfnpl1gflwZ4K4DhjvtNp6wISoSqJ5izG7v6Ad0DqVVPFFEbcXqQMGGfebf0xMbqWuFAYXoC-788Ox9rf2BVz7r-JiemqXGrlCeKf9TzFoGj3pYjV6gCT3c/s1600-h/(10).bmp"><img id="BLOGGER_PHOTO_ID_5018710324897948450" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3pyllaGDhCogVRyflgIIJqfnpl1gflwZ4K4DhjvtNp6wISoSqJ5izG7v6Ad0DqVVPFFEbcXqQMGGfebf0xMbqWuFAYXoC-788Ox9rf2BVz7r-JiemqXGrlCeKf9TzFoGj3pYjV6gCT3c/s320/(10).bmp" border="0" /></a>(10)<br /><br />彈簧率(spring rate)k,或產生單位撓度所須之力的方程式可由將(7),(8),(9)式中的P以k,而δ以1取代而得<br /><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimU3PvQdQb32kMrZxLrf-BPYXjbVwWrVMVy3CiHRrR6tWorzltwHIbvEQBF98RpYHM9miOyt8vyf8qZiGnmeb73ulbT5StchY7W3vrYw9EZVhwIw6hyLjvoJo7HuZQP-Yxo3YiR5UcVpg/s1600-h/(11).bmp"><img id="BLOGGER_PHOTO_ID_5018710329192915762" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimU3PvQdQb32kMrZxLrf-BPYXjbVwWrVMVy3CiHRrR6tWorzltwHIbvEQBF98RpYHM9miOyt8vyf8qZiGnmeb73ulbT5StchY7W3vrYw9EZVhwIw6hyLjvoJo7HuZQP-Yxo3YiR5UcVpg/s320/(11).bmp" border="0" /></a>(11)<br /><br /><br />其他彈簧率k公式,可由考慮圖4-2(c)而得<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqbe8la1Wm9InzdRXDWFPxVwehxQ0hiPPYxtTgGUa2bM7efiWg12KgT7Ps_BIYAKP-Ofb6eYEJyVW3aTIxkULmHSoRAS8ndjpK_c_FZqVLPdRroD-pfyUCNvlisrD6rxdIcd12jPH5wcE/s1600-h/(12).bmp"><img id="BLOGGER_PHOTO_ID_5018710329192915778" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqbe8la1Wm9InzdRXDWFPxVwehxQ0hiPPYxtTgGUa2bM7efiWg12KgT7Ps_BIYAKP-Ofb6eYEJyVW3aTIxkULmHSoRAS8ndjpK_c_FZqVLPdRroD-pfyUCNvlisrD6rxdIcd12jPH5wcE/s320/(12).bmp" border="0" /></a>(12)<br /><br />題目:<br />由(幾)號剛線製成的螺旋壓縮彈簧,承受(多少lb)靜負荷形成1in撓度。及彈簧所設計承受最大剪應力將為(多少psi)。而無效端圈數Q等於(多少)。可以知道所需平均半徑R,有效圈數 及彈簧材料的體積之值。<br />分析:<br />由圖表1.1知<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9zcA7uV0FFbWydDIiYtut4fy1RXkpdSMbqfLxh0ecL7dkV_DCy3cJIoot0VaGkiFchPIIowW6Y1g12vwBI0Xzc6K88baUfECJiqAEnSehPxd9y6x_wIii48_wMomi-gz1l_LqSQr9SYM/s1600-h/22222.bmp"><img id="BLOGGER_PHOTO_ID_5018731937173381986" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9zcA7uV0FFbWydDIiYtut4fy1RXkpdSMbqfLxh0ecL7dkV_DCy3cJIoot0VaGkiFchPIIowW6Y1g12vwBI0Xzc6K88baUfECJiqAEnSehPxd9y6x_wIii48_wMomi-gz1l_LqSQr9SYM/s320/22222.bmp" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />表4-1<br /><br />由表4-1得線徑d<br />由(6a)式知R<br />由(1)式知C<br />由(9)式知δ<br />得Nc<br />由(10)式5 之V<br /><pre><br /><span style="color:#ff0000;">% gear.m<br />% Design of a gear<br />ld=[3/8 0.375<br />5/16 0.3125<br />1/4 0.25<br />4 0.2253<br />5 0.207<br />6 0.192<br />7 0.177<br />8 0.162<br />9 0.1483<br />10 0.135<br />11 0.1205<br />12 0.1055<br />13 0.0915<br />14 0.08<br />15 0.072<br />16 0.0625<br />17 0.054<br />18 0.0475<br />19 0.041<br />20 0.0348<br />21 0.0317<br />22 0.0286<br />23 0.0258<br />24 0.023<br />25 0.0204];<br />while 1<br /> <br /> No=input('幾號鋼線製成的螺旋壓縮彈簧(-)[預設值為8]:','s');<br /> if isempty(No) <br /> No='8';<br /> end<br /> number=str2num(No);<br /> [N,I]=find(ld(:,1)==number);<br /> <br /> <br /> if isempty(N) %找表中較近的值<br /> if N>25<br /> while isempty(N)<br /> number=number-1;<br /> [N,I]=find(ld(:,1)==number);<br /> end<br /> disp([' 表中較近的值為 ' num2str(number)]);<br /> yn= upper(input('是否使用(Y/N) [Y] ','s'));<br /> if yn ~= 'Y'<br /> number=0;<br /> [N,I]=find(ld(:,1)==number);<br /> end<br /> end<br /> <br /> <br /> end<br /> <br /> <br /> if isempty(N)<br /> disp('並無此號數彈簧!');<br /> else<br /> break;<br /> end<br />end<br /><br />while 1<br /> F=input('請輸入承受靜負荷形成1in撓度(lb)[預設值為100]:','s');<br /> if isempty(F)<br /> F='100';<br /> end<br /> P=str2num(F);<br /><br /><br /> T=input('最大剪力(psi)[預設值為80000]:','s');<br /> if isempty(T)<br /> T='80000';<br /> end<br /> t=str2num(T);<br /><br /><br /> Q=input('請輸入無效半徑[預設值為2]: ','s');<br /> if isempty(Q)<br /> Q='2';<br /> end<br /> q=str2num(Q);<br /><br /> d=ld(N,2);<br /> R=d/2*((3.14*d^2*t/8/P)-0.615);<br /> c=2*R/d;<br /> G=11500000;<br /> nc=1*R*G/4/P/c^4;<br /> v=1/2*pi^2*d^2*R*(nc+q);<br /><br />disp('齒輪資料:');<br />disp(['第' num2str(N) '號彈簧']);<br />disp(['承受靜負荷形成1in撓度:' num2str(F) 'lb']);<br />disp(['最大剪力(psi):' num2str(T) 'psi']);<br />disp(['無效半徑:' num2str(Q)]);<br />disp(['所需平均半徑R:' num2str(R) 'in']);<br />disp([' 有效端圈數N:' num2str(nc)]);<br />disp(['彈簧材料的體積:' num2str(v) 'in3.']);<br /><br /> A=upper(input('繼續執行嗎?(Y/N) [Y] ','s'));<br />if A~='Y'<br />break;<br />end<br />end<br /></span><span style="color:#3366ff;">結果:<br /><br /><br />請輸入承受靜負荷形成1in撓度(lb)[預設值為100]:300<br />最大剪力(psi)[預設值為80000]:30000<br />請輸入無效半徑[預設值為2]: 2<br />齒輪資料:<br />第5號彈簧<br />承受靜負荷形成1in撓度:300lb<br />最大剪力(psi):30000psi<br />無效半徑:2<br />所需平均半徑R:0.11042in<br /> 有效端圈數N:816.92<br />彈簧材料的體積:19.1199in3.<br />繼續執行嗎?(Y/N) [Y]<br /></span></pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-48505586400057471552007-01-04T00:08:00.000+08:002007-01-04T00:09:51.674+08:00熱傳模組建立(續)非穩態的建立這次原來的帳號似乎官方好像修好了,於是又改回在原gmail的申請部落格寫<br />(請點標題連結)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-42947058675764162732006-12-29T12:58:00.000+08:002006-12-29T13:01:22.593+08:00林書如: 人體受外力牽拉後引發之姿勢反應_肌肉活化情形_rev.2延續上禮拜的程式<br />本週新加入了:(1)各個牽拉強度下3次測試IEMG平均值及標準差計算;以及(2)Missing data的處理。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-53988950323021364642006-12-29T11:14:00.000+08:002008-12-11T18:41:29.486+08:00林翊展--養豬廢水處理設備的自動化設計 v1<strong>前言</strong><br /> <br />前一陣子曾經協助老師進行一項雲林縣政府的計畫,該計畫內容為替雲林縣政府設計一座養豬廢水處理的示範場.在設計過程當中,有需要計算的地方,雖然用到的計算方法不難,但是希望利用matlab程式,只需要輸入所需的參數,即可以自動設計出符合標準的處理設備規格.<br /><br /><strong>背景說明</strong><br /><br />養豬廢水處理<br /><br />台灣的畜牧業以養豬為大宗,而且多是採企業化經營,規模大又集中,導致畜牧場所產生的廢水量相當驚人。目前台灣的總養豬頭數大約700萬頭,大部分都集中在台灣中南部,而一頭豬的糞尿廢水汙染力相當於人的六倍,可以折算成約4200萬人口。在過去,養豬廢水都是以直接排放的方式處理,對於台灣河川的破壞相當大,產生了許多”黑水河”。現在依環保署的規定,養豬規模超過20頭要強制建設廢水處理設備,而處理過的廢水也有品質的要求,如此一來,大大減少台灣河川所遭受的污染,而且在處理豬糞尿的過程中,還會產生許多具有附加價值的產物,如沼氣、有機堆肥等,達到保護環境與廢棄物再利用的雙重功效。<br /><br />目前國內豬糞尿水的處理一般都採用三段式處理,過程主要包括固液分離、厭氣醱酵及好氣處理等步驟,其中再加入調整池、計量槽、初沉池、污泥回流及污泥處理等構成完整的養豬廢水處理系統,其流程如下圖:<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-f8ibsc5bVm2gJ7WHDvbsklaKi2dvTIfOCV3bWQpE1Z3AAR7XbLx2-FnqqcRahqzhJqViwc352RhUuI3mvaSWKn9SERrtNqsCODRf2hiMf0zhNa_55QszmIHozFtUVdbAWKffpxaCSBk/s1600-h/%E5%BB%A2%E6%B0%B4%E8%99%95%E7%90%86.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih-f8ibsc5bVm2gJ7WHDvbsklaKi2dvTIfOCV3bWQpE1Z3AAR7XbLx2-FnqqcRahqzhJqViwc352RhUuI3mvaSWKn9SERrtNqsCODRf2hiMf0zhNa_55QszmIHozFtUVdbAWKffpxaCSBk/s320/%E5%BB%A2%E6%B0%B4%E8%99%95%E7%90%86.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013820599974242642" /></a><br /><br /><br />而實際處理圖片則如下所示<br /><br />1.固液分離<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_0DVVDJeEZ5pp6u1R1SQHAB943uOfCKDFrYo7g86ThSwOGo4YabOXo_RExLu1r88ymmtOUeXhvsbNpfeWJOg1Pj1iJ_FXjI5OC1kXurlZMEyezMs5G8YeBWaMzmmlha8YePykAFaiPc7/s1600-h/%E5%9B%BA%E6%B6%B2%E5%88%86%E9%9B%A2.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_0DVVDJeEZ5pp6u1R1SQHAB943uOfCKDFrYo7g86ThSwOGo4YabOXo_RExLu1r88ymmtOUeXhvsbNpfeWJOg1Pj1iJ_FXjI5OC1kXurlZMEyezMs5G8YeBWaMzmmlha8YePykAFaiPc7/s320/%E5%9B%BA%E6%B6%B2%E5%88%86%E9%9B%A2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013828558548642146" /></a><br /><br /><br />2.厭氣發酵<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-YV9aKXwd0OIUzJ541t-I8akJH85S188Sihm8aDT8Y030z4Mn2oIqQWNnhP0Z0mbmaQFZF3dEjuqvGkTyllUnu2noqO10wpZ0eoOCRSZpHnP26YSHRVE6V2qMIUBug1y_6bn5JiFkCljz/s1600-h/%E5%8E%AD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-YV9aKXwd0OIUzJ541t-I8akJH85S188Sihm8aDT8Y030z4Mn2oIqQWNnhP0Z0mbmaQFZF3dEjuqvGkTyllUnu2noqO10wpZ0eoOCRSZpHnP26YSHRVE6V2qMIUBug1y_6bn5JiFkCljz/s320/%E5%8E%AD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013828816246679922" /></a><br /><br /><br />3.好氣發酵<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4XBlmLhKvPMmyPzS3KIw1-TTgMzG7tNy2OzKxFySp0tODJ5wuYyBFU7SYVD0EBKyh5uxwT1DrF-hoEn1N7N-z6enMroA4Vx2_HU4QztOMk3NpKJrcXicKdgIEC8cYvbZnQsndQpzXhRA/s1600-h/%E5%A5%BD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU4XBlmLhKvPMmyPzS3KIw1-TTgMzG7tNy2OzKxFySp0tODJ5wuYyBFU7SYVD0EBKyh5uxwT1DrF-hoEn1N7N-z6enMroA4Vx2_HU4QztOMk3NpKJrcXicKdgIEC8cYvbZnQsndQpzXhRA/s320/%E5%A5%BD%E6%B0%A3%E7%99%BC%E9%85%B5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013829035290012034" /></a><br /><br /><br />經過三段式處理後的廢水即放流到河川之中<br /><br />放流廢水<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl53f6XWZimHuZSRFozn2kcdgmowGDSFyPpI5K_X08zOjdxrpqaQQkA_sU3jhhKo_OlL8AeJcDIpuXV89Ucq3gqPGjci9KA8m2BYAcmDee8PdKq4hEiPyqyoDHYtIKDUqkafO3SJTO92bM/s1600-h/%E6%94%BE%E6%B5%81%E6%B0%B4.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl53f6XWZimHuZSRFozn2kcdgmowGDSFyPpI5K_X08zOjdxrpqaQQkA_sU3jhhKo_OlL8AeJcDIpuXV89Ucq3gqPGjci9KA8m2BYAcmDee8PdKq4hEiPyqyoDHYtIKDUqkafO3SJTO92bM/s320/%E6%94%BE%E6%B5%81%E6%B0%B4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013829439016937874" /></a><br /><br /><br /><strong>目的</strong><br /><br />程式設計的目標為輸入原廢水的化學性質,及其他必需化學參數後,自動計算出廢水處理槽的規格參數,節省人力計算所需的時間。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-430193982994818212006-12-29T00:34:00.000+08:002006-12-29T11:03:35.950+08:00EMG頻域(frequency domain)之中位頻率(Median frequency)計算<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.zooomr.com/images/576214_d8bb2d5d4c.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://static.zooomr.com/images/576214_d8bb2d5d4c.jpg" border="0" alt="" /></a><br /> 延續上次利用傅立葉轉換的觀念去求得頻譜圖後,進一步要去對於<br />頻率和強度所形成的圖形意義作解釋。<br /><br /> 中位頻率是一個代表整個頻率分佈的相對指標,由此可以作為頻譜<br />變化的代表。<br /><br /> 利用這樣的概念,去計算不同時間點頻譜的變化,進而得知肌肉纖<br />維的表現。Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1743117482672844780.post-34938411726944592652006-12-28T20:55:00.000+08:002008-12-11T18:41:30.500+08:00詹弘彥:汽車性能數值分析<strong>汽車性能數值模擬<br /></strong></span><span style="color:#ff0000;"><strong><span style="font-size:130%;">問題:請問這台Ferrari 360 Spider加速從0~100km/h需要幾秒?極速又為何?</span><br /><span style="color:#000000;">Ferrari 360 Spider車輛規格介紹</span><br /></strong></p></span><p><br /><span style="color:#000000;"><strong>1.外觀</strong></span><br /></p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1weBFXNelKfezRQK4r801Ge9ZPEaBG-2xMCAatkAVI6fr8-NGzgpAo5Igd7A0guzvpcNp_pfj_9daBakiS7qFXJTpD0m65unH3_t19Qh_ywdPBVWvVJa_zUe0A37EVicWEKYo2Yi-JIYn/s1600-h/360_spider_01-sm100.jpg"><strong><img id="BLOGGER_PHOTO_ID_5013561131257203426" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1weBFXNelKfezRQK4r801Ge9ZPEaBG-2xMCAatkAVI6fr8-NGzgpAo5Igd7A0guzvpcNp_pfj_9daBakiS7qFXJTpD0m65unH3_t19Qh_ywdPBVWvVJa_zUe0A37EVicWEKYo2Yi-JIYn/s320/360_spider_01-sm100.jpg" border="0" /></strong></a><strong><br /></strong><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ffjrdUE54W21WlLNZZ04wlld7wgr633ruVT5T7hlEDdkhgjcuoVTXlgt0lW_gU-zgu15svgi6IbzaoucFhBECo9XPQ3bhhOUn2iu2dTKOsCOmNjCcpdwkszvXi79ZIbjuAmvbdWBoZxa/s1600-h/360_spider_02-sm100.jpg"><strong><img id="BLOGGER_PHOTO_ID_5013560860674263762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8ffjrdUE54W21WlLNZZ04wlld7wgr633ruVT5T7hlEDdkhgjcuoVTXlgt0lW_gU-zgu15svgi6IbzaoucFhBECo9XPQ3bhhOUn2iu2dTKOsCOmNjCcpdwkszvXi79ZIbjuAmvbdWBoZxa/s320/360_spider_02-sm100.jpg" border="0" /></strong></a><strong><br /></strong><p></p><br /><span style="color:#000000;"><strong>2.性能規格<br /></strong>引擎形式:V形8汽缸雙頂凸輪軸40氣門<br />口徑x衝程:85×79mm<br />排量:3,586 cc<br />壓縮比;11:1<br />最大馬力:400bhp/8,500rpm<br />最大扭力:38kgm/4,750rpm<br />傳動形式:中置引擎,後輪傳動<br />變速器:六前速Fl半自動變速箱<br />齒輪比:<br />1:3.286 2:2.158<br />3:1.609 4:1.269<br />5:1.034 6:O.848<br />倒檔:3.300<br />Final drive ration:4.440<br />長×寬×高(mm):4,477×1,922×1,235<br />軸距(mm):2,600<br />前/後跨距(mm):1,521/l,49l<br />車重(kg):1,450<br />Af=1.72(m^2) ; Cd=0.24 ; h=0.4(m) ; re=0.332(m)<br />O-l OOkm/h(秒):4.6<br />極速(km/h): 290<br /><br /><strong>基本假設</strong><br />1.起步時,引擎轉速設定在最大扭力,起步離合器接合時間為0.5秒,之後引擎轉速與車速同步一致。<br />2.起步時必須以引擎最大扭力之輸出下與地面摩擦力比較,取其合用值使用。<br />3.換檔時間為0.5秒,此時引擎無動力輸出,車子自由滑行。換檔結束後,引擎轉速與車速同步一致。<br /><br /><strong>基本參數</strong><br />g=9.80665<br />1hp=746watt<br />Standard air density =1.225<br />Gear changing time=0.5 sec<br />Road adhesion=0.85<br />Overall mechanical efficiency=85%<br />Slip ratio=3%<br />Mass factor =1.04<br />fr=0.01<br /></span><br /><br /><br /><strong>程式內容</strong><br /><pre><br />function ab=ferrari360(rpm0)<br />%Example:ferrari360(4750)<br />g=9.80665;hp=746;lo=1.225;us=0.85;re=0.332;si=0.03;af=1.72;pi=3.1415;<br />h=0.4;cd=0.24;rm=1.04;fr=0.01;l1=1.521;l2=1.491;<br />n1=3.286;n2=2.158;n3=1.609;n4=1.269;n5=1.034;n6=0.848;fn=4.440;m=1450;l=l1+l2;<br />rr=m*g*fr;xi=n1*fn;ft=us*m*g*(l1-fr*h)/l/(1-us*h/l);<br />eta=0.85;<br />rpm=rpm0;ne=rpm*2*pi/60;<br />ne5=7500*2*pi/60;xi5=1.0*fn;<br />maxv5=ne5*re*(1-si)/xi5*3.6;d=0;<br /><br />%起步,轉速4750rpm,扭力373N-m,時間0s-0.5s。<br /><br />for j=0:0.01:0.5<br /> rpm1=4750;me=373-[(rpm-4750)/4750*38];<br /> f=me*xi*eta/re;<br /> rm=1.04+0.0025*xi^2;<br /> ne=rpm1*2*pi/60;<br /> v0=ne*re*(1-si)/xi;<br /> a1=v0/0.5;<br /> v3=(a1*j)*3.6;<br /> %plot(j,a1);hold on; %時間與加速度關係圖<br /> plot(j,v3);hold on; %時間與速度關係圖<br />end<br />d1=0.5*a1*0.25;d=d+d1; %起步0s-0.5秒行走的距離<br />xi=n1*fn;rpm=rpm0;d3=0;<br />for i=0.51:0.01:10 %切換到1檔,轉速到9500rpm換至第2檔。<br /> if and(4750<=rpm,rpm<=8500) <br /> me=373-[(rpm-4750)/4750*38];end<br /> f=me*xi*eta/re;<br /> if f>ft<br /> f=us*m*g*(l1-fr*h)/l/(1-us*h/l); %輪胎與地面之最大牽引力<br /> end<br /> rm=1.04+0.0025*xi^2;<br /> ne=rpm*2*pi/60;<br /> v1=ne*re*(1-si)/xi;<br /> ra=0.5*cd*lo*af*v1^2;<br /> a=(f-ra-rr)/rm/m;<br /> v2=(v1+a*0.01)*3.6; %v2=v1+at<br /> rpm=v2*xi*60/2/pi/re/(1-si)/3.6;<br /> d2=v1*0.01+0.5*a*0.0001; %1檔時每0.01秒所行走的距離。<br /> d=d+d2; %1檔時0.01秒的累加至轉速為9500rpm時停止。 <br /> plot(i,v2);hold on;<br /> if rpm>9500 %當9500rpm時1檔結束。<br /> t1=i; %1檔結束時之時間<br /> v3=v2; %1檔結束時之速度<br /> fprintf('t=%e\n',t1);<br /> break;<br /> end<br />end<br /><br />未完~待續<br /></pre><br /><strong>執行結果</strong><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHVDziVhbujaD98FXS-fUg2uplhyloKihNyRFR38m-WBL2wWHNz_tPGtzfc7M9-SiFzQ-hPvGxXoaRGgaUsA_lkta-JWVPA_PukyfFACPwUxcDkVcrvfbeEsuRdqcEZEVZgemQeE_6y5Kd/s1600-h/1-2.bmp"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHVDziVhbujaD98FXS-fUg2uplhyloKihNyRFR38m-WBL2wWHNz_tPGtzfc7M9-SiFzQ-hPvGxXoaRGgaUsA_lkta-JWVPA_PukyfFACPwUxcDkVcrvfbeEsuRdqcEZEVZgemQeE_6y5Kd/s400/1-2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5013587592550714130" /></a><br /><p><span style="font-size:180%;">Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-3902655876645589712006-12-22T12:57:00.000+08:002008-12-11T18:41:30.686+08:00林翊展:廢水處理生化需氧量曲線廢水處理工程裡,生化需氧量(BOD)是一項重要的參數,可以了解該廢水對於環境影響的程度.在BOD試驗當中,BOD值與反應時間為一條對數曲線,y=x*(1-exp(-k*t)),y為BOD值,x為終極BOD值,k為反應常數,t為時間.<br /><br /><br /><pre><br />u=input('請輸入終極BOD值 : ');<br />d=input('請輸入五天BOD值 : ');<br />k=-1/5*log(1-d/u);<br />t=0:30;<br />y=u*(1-exp(-k*t));<br />plot(t,y);<br />xlabel('reaction time (day)');<br />ylabel('BOD value (ppm)');<br />grid on;<br /></pre><div align="left"><br /><br /><br />程式會先要求輸入五天BOD值及終極BOD值,便可以畫出反應時間與BOD的曲線圖.<br />下圖為終極BOD=150,五天BOD=123的曲線圖<br /><br /><img id="BLOGGER_PHOTO_ID_5011245470727547202" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpqsjCQDa_ctUedYjX558ypCbcXzAaOfNyYHq0PggRU8mRxjJjuBiggtucPlBVuqmeCJPrKxPdy6tohX523wZnugNqJhScEWkqpJJDBWWV-WRyvEJzdBhYzQWaXf-pzEHgK5rvDmai7ypy/s320/bod.bmp" border="0" /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-5628582675587789412006-12-22T12:19:00.000+08:002006-12-22T12:23:11.268+08:00林書如: 人體受外力牽拉後引發之姿勢反應_肌肉活化情形_rev.1延續上禮拜的程式內容,更新了onset時間輸入方式,並且在新程式中加入"可同時計算多位受試者以及多個測試的IEMG結果"的功能。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-11128026231554552102006-12-22T10:56:00.000+08:002008-12-11T18:41:33.573+08:00膚色切割器<span style="color: rgb(0, 0, 153);"><br />膚色分割通常是做人臉辦識最重要的一件事,</span><br /><pre><span style="color: rgb(0, 0, 153);">要是沒先把膚色給分類出來並加以定位人臉的的位置,</span> <span style="color: rgb(0, 0, 153);"><br />則會影響接下來的辨識結果.</span><br /><br /><span style="color: rgb(0, 0, 153);">切割膚色有很多的分法,這個切割器我是使用ycbcr的方法來做為偵察.</span> <span style="color: rgb(0, 0, 153);"><br />為什麼使用ycbcr呢:</span> <span style="color: rgb(0, 0, 153);"><br />因為RGB的色彩空間很容易受到光源的影響而有明顯的變化,</span> <span style="color: rgb(0, 0, 153);"><br />而使在設定顏色的分割值,會有很大的大的誤差.<br />又因為ycbcr有良好的亮度和色度分離的特特(彩度)所以我就使用它.<br /><br /></span> <span style="color: rgb(0, 0, 153);">在此Y 代表亮度,Cb和CR都代表色度(彩度)</span> <span style="color: rgb(0, 0, 153);">轉換公式如下</span><br /><img alt="" src="file:///C:/WINDOWS/TEMP/moz-screenshot.jpg" /><img alt="" src="file:///C:/WINDOWS/TEMP/moz-screenshot-1.jpg" /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSo-9OmGWechqJVFns8Vn8mEbbA3bgCmVTFANIZM_mMA2dOe4JUau_t02u9t-knZkQueTbJmIpbTSuzLJE5eXtHoTz37C_rte8nykpj-g9IUvaB-ZJS_3DcM7FFH7wUbUDc2LEJUwG5w/s1600-h/%C3%A6%C2%9C%C2%AA%C3%A5%C2%91%C2%BD%C3%A5%C2%90%C2%8D.bmp"><img id="BLOGGER_PHOTO_ID_5018977721092338802" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdSo-9OmGWechqJVFns8Vn8mEbbA3bgCmVTFANIZM_mMA2dOe4JUau_t02u9t-knZkQueTbJmIpbTSuzLJE5eXtHoTz37C_rte8nykpj-g9IUvaB-ZJS_3DcM7FFH7wUbUDc2LEJUwG5w/s320/%E6%9C%AA%E5%91%BD%E5%90%8D.bmp" border="0" /></a><br /><span style="color: rgb(0, 0, 153);">但在matlab你不用建立上式,只要打rgb2ycbcr('檔案')轉換就可以了</span><br /><br /><br /><span style="color: rgb(0, 153, 0);">%----程式碼-----</span><br /><br />clear all<br />close all<br />clc<br />a=imread('nomo.jpg'); <span style="color: rgb(0, 153, 0);">% 輸入影像</span><br /><br />b=rgb2ycbcr(a); <span style="color: rgb(0, 153, 0);">% 轉換成ycbcr</span><br />cb=b(:,:,2);<br />cr=b(:,:,3);<br /><br />cb(cb<=125)=255; <span style="color: rgb(0, 153, 0);">% cb的判斷式,是膚色為白色</span><br />cb(cb~=255)=0;<br />figure(1);imshow(cb)<br /><br />cr(cr>=137)=255; <span style="color: rgb(0, 153, 0);">% cr的判斷式,是</span><span style="color: rgb(0, 153, 0);">膚色</span><span style="color: rgb(0, 153, 0);">為白色</span><br />cr(cr~=255)=0;<br />figure(2);imshow(cr)<br /><br />rr=and(cr,cb); <span style="color: rgb(0, 153, 0);">% 找出二者都是白的</span><br />rt(:,:,1)=double(rr).*double(a(:,:,1));<br />rt(:,:,2)=double(rr).*double(a(:,:,2));<br />rt(:,:,3)=double(rr).*double(a(:,:,3));<br />figure(3);imshow(uint8(rt))<br /><br /><br /><span style="color: rgb(0, 153, 0);">%--------------結果----------</span><br /><span style="color: rgb(204, 0, 0);">原影像圖,如下</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSGoQFy5GgoUqjbYEISSuvk0d3mGhUZby4uTGRVgt5UWEHy6wBLnSIvyP3PlmyaGENm4BGDluZkSC-tDv68hKuxrgy-CdZ-Ex5eI4WTb50vRDJHbydFfosub25QfUhYqAiEUPftUh5y0/s1600-h/nomo.jpg"><img id="BLOGGER_PHOTO_ID_5015800145528922114" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoSGoQFy5GgoUqjbYEISSuvk0d3mGhUZby4uTGRVgt5UWEHy6wBLnSIvyP3PlmyaGENm4BGDluZkSC-tDv68hKuxrgy-CdZ-Ex5eI4WTb50vRDJHbydFfosub25QfUhYqAiEUPftUh5y0/s320/nomo.jpg" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3HXunL5kMuT-l98cRBeTt0gN8lPoyLbvDqQS9swTUhpSlZ40ZEdsmUHSf2jaV6cyUqQc_j5XfU6XNI8zxs1u7xm2uZqPwpGsYsEI_U3DvE2NKVEaifoD3BdGoAxHmgtFOGHNG_mClvTI/s1600-h/g.bmp"><img id="BLOGGER_PHOTO_ID_5015800145528922098" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3HXunL5kMuT-l98cRBeTt0gN8lPoyLbvDqQS9swTUhpSlZ40ZEdsmUHSf2jaV6cyUqQc_j5XfU6XNI8zxs1u7xm2uZqPwpGsYsEI_U3DvE2NKVEaifoD3BdGoAxHmgtFOGHNG_mClvTI/s320/g.bmp" border="0" /></a><br /><span style="color: rgb(204, 0, 0);">分割後的cb影像,如下</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4trwcRZyCqhKFxcf6bCJBRojTB1w2t1EuaPK6tVVVMvDOGswyCsqONyTW7-2Bl15VoBBdXV7NUYJiQ_LOx6LdXK2DeG5pmxlNvoNyTzICezlpdydU3ZrSk2QHnqLtglVyWud-lL2Vv_0/s1600-h/1.JPG"><img id="BLOGGER_PHOTO_ID_5015800510601142290" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4trwcRZyCqhKFxcf6bCJBRojTB1w2t1EuaPK6tVVVMvDOGswyCsqONyTW7-2Bl15VoBBdXV7NUYJiQ_LOx6LdXK2DeG5pmxlNvoNyTzICezlpdydU3ZrSk2QHnqLtglVyWud-lL2Vv_0/s320/1.JPG" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfXg8I-QHM14aiSlAmH4yjccTnE1CteRcCK8nPc5mUUSXMajOYQt4P7JeGE1m5RvBaBhJ1aeXFnW2a3pbBa3HqYwOvV3BNj8jXw_nCglVKn5IIMHqoS54zvYfReSCTRVkTSct561m3NEo/s1600-h/11.JPG"><img id="BLOGGER_PHOTO_ID_5015800514896109634" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfXg8I-QHM14aiSlAmH4yjccTnE1CteRcCK8nPc5mUUSXMajOYQt4P7JeGE1m5RvBaBhJ1aeXFnW2a3pbBa3HqYwOvV3BNj8jXw_nCglVKn5IIMHqoS54zvYfReSCTRVkTSct561m3NEo/s320/11.JPG" border="0" /></a><br /><span style="color: rgb(153, 0, 0);">分割後的cr影像,如下</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXz-wYS99vwleu911YGnpWAk_3Xbm_o-Jz7Ah2v7umfBgXh22O2b82Y6Eah4p-k0pL2Y7b-Iix5IxavkscBAryEVR2GxeFCzJ05f9sIN44bHNRqdH8QpjhlTNE0zx2k8q5em8iqQvzUE/s1600-h/2.JPG"><img id="BLOGGER_PHOTO_ID_5015800514896109602" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWXz-wYS99vwleu911YGnpWAk_3Xbm_o-Jz7Ah2v7umfBgXh22O2b82Y6Eah4p-k0pL2Y7b-Iix5IxavkscBAryEVR2GxeFCzJ05f9sIN44bHNRqdH8QpjhlTNE0zx2k8q5em8iqQvzUE/s320/2.JPG" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT09uGVwyz0MabTtr_EP98ZIZER5H8BQVYQ2vtHqMHIB8D5laQIQxNzEYK-c-MpovVAFDx2gjbxJlOpAo0hMWdPTXCewlCsrn90pRwtI4pmE-n737vBseA_VO78sXUhmnp1LhthqNkGvc/s1600-h/22.JPG"><img id="BLOGGER_PHOTO_ID_5015800519191076946" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT09uGVwyz0MabTtr_EP98ZIZER5H8BQVYQ2vtHqMHIB8D5laQIQxNzEYK-c-MpovVAFDx2gjbxJlOpAo0hMWdPTXCewlCsrn90pRwtI4pmE-n737vBseA_VO78sXUhmnp1LhthqNkGvc/s320/22.JPG" border="0" /></a><br /><span style="color: rgb(153, 0, 0);">只秀出膚色圖</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhodQx-h5_66SGI5sgaADxREMbmWNH4wEgyAGHbPokiGas4wG5NKZFMAXRVGJ8bKX2HGjl9vmtT68avpy9FiFG7PW6DOci6cCmIDBLepfNm7ou20zbCYfOgaDjgPMDbcEgwRDdOBYF0rQM/s1600-h/3.JPG"><img id="BLOGGER_PHOTO_ID_5015800514896109618" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhodQx-h5_66SGI5sgaADxREMbmWNH4wEgyAGHbPokiGas4wG5NKZFMAXRVGJ8bKX2HGjl9vmtT68avpy9FiFG7PW6DOci6cCmIDBLepfNm7ou20zbCYfOgaDjgPMDbcEgwRDdOBYF0rQM/s320/3.JPG" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI8mul9HQCIQ1cpJxTeNpBKXIJ2PktFkPZ1JoSYiVaXEVgqmv8jCTflJwqLasZA5GS4ztaa0H7LWPXwYDoRRYlC7trDpJR2Pucn7W-MnoN7u_RehcI6f9ld7UEoV2BPcCTLoX_xDsVrOQ/s1600-h/33.JPG"><img id="BLOGGER_PHOTO_ID_5015800905738133602" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI8mul9HQCIQ1cpJxTeNpBKXIJ2PktFkPZ1JoSYiVaXEVgqmv8jCTflJwqLasZA5GS4ztaa0H7LWPXwYDoRRYlC7trDpJR2Pucn7W-MnoN7u_RehcI6f9ld7UEoV2BPcCTLoX_xDsVrOQ/s320/33.JPG" border="0" /></a><br /><br />以上就是建立膚色切割器的基礎公式<br />由上方的圖可知,這些影像還一些小雜點,在這我用形態學中的Opening operation來消除雜點<br /><a href="http://r95631002.blogspot.com/2007/01/blog-post.html">雜訊去除</a><br /><strong><br />形態學<br />Opening(斷開)運算:<br /></strong>opening運算是先被侵蝕後再膨脹,通常是用來平滑影像輪廓,截斷窄的細頸,消除細的突支,<br />其原理如下:<br /><strong>(一)膨脹</strong>:將物體的邊界往外膨脹若干像素的方法。 如下圖:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4rtqSwFuorRm8A7YE-2KurC4l3RuqvBGnVOjLKNlL1OQaLmtkIrjGPwJK0botPOUcCfly6abp1o81ItBh6R7qBAqgy8Du_7pTTj8qxLPbT8VPQiuLZnPc6FRFtRYSWOV_5LOejMoK6d4/s1600-h/2.bmp"><img id="BLOGGER_PHOTO_ID_5018817986963632690" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4rtqSwFuorRm8A7YE-2KurC4l3RuqvBGnVOjLKNlL1OQaLmtkIrjGPwJK0botPOUcCfly6abp1o81ItBh6R7qBAqgy8Du_7pTTj8qxLPbT8VPQiuLZnPc6FRFtRYSWOV_5LOejMoK6d4/s320/2.bmp" border="0" /></a><br /><strong>(二)侵蝕:</strong>與膨脹相反的動作,這是一種從物體的邊界上,將物體往內收縮若干像素。<br />如下圖:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxDGdUh7Pd_ssH1Ib49l1x2dgZUwJJMqjCx_mJ7LAJW3VIq_2xuNMJDqNgjTg6YTLJhmSLHYmz707DMqbwBPMdNkxhB3m_KfV2y0CzxSk0DwM9xUbnlz1X8eMt-9K2Pje3SaWr3TaU93o/s1600-h/1.bmp"><img id="BLOGGER_PHOTO_ID_5018817819459908130" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxDGdUh7Pd_ssH1Ib49l1x2dgZUwJJMqjCx_mJ7LAJW3VIq_2xuNMJDqNgjTg6YTLJhmSLHYmz707DMqbwBPMdNkxhB3m_KfV2y0CzxSk0DwM9xUbnlz1X8eMt-9K2Pje3SaWr3TaU93o/s320/1.bmp" border="0" /></a><br />斷開圖如下<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3o7oh5Iz6VKonjbiFDE19xbdKTOdVJtkJM3r4Wp8rgtMRxTqfHKIxZr-mL6p8xesok0TybaReDVE1jumnzyvTkIGPlVRmudtammBB3blbQaabU_M67JloAMQjXEqMpAbGNfZhdGqMNf4/s1600-h/3.bmp"><img id="BLOGGER_PHOTO_ID_5018818210301932098" style="cursor: pointer;" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3o7oh5Iz6VKonjbiFDE19xbdKTOdVJtkJM3r4Wp8rgtMRxTqfHKIxZr-mL6p8xesok0TybaReDVE1jumnzyvTkIGPlVRmudtammBB3blbQaabU_M67JloAMQjXEqMpAbGNfZhdGqMNf4/s320/3.bmp" border="0" /></a><br /><strong></strong><strong>標記法:</strong><br />兩像素間關係有下述兩種性質:<br /><strong>(一)像素的近鄰(neighbors):</strong><br />在座標(x,y)處的像素P有水平和垂直方向的近鄰,其座標為<br />(x-1,y),(x+1,y),(x,y+1),(x,y-1),<br />這樣一組像素稱P點的4-近鄰(4-nieghbors)。<br /><br />P的四個對角近鄰的座標為(x-1,y+1),(x+1,y+1),(x-1,y-1),(x+1,y-1),<br />這些點與4-近鄰在一起,稱為P的8-近鄰(8-neighbors)。<br /><br /><strong>(二)連通性(Connectivity):<br /></strong>像素間的連通性是用於確定影像中物體邊界和區域組成成分的重要概念。<br />要判斷兩個像素是否連通,必須要確定它們是否在某種意義中相鄰(如它們是否為4-近鄰),<br />並且它們的灰度值是否滿足特定的相似準則,(如灰度值是否相同)。<br />在此我們用V來定義連通性的灰階集合,並介紹二種類型的連通:<br />(a)4-連通:<br />若某一像素Q 位於4-近鄰( P)中,且Q和P的像素值位於所定的灰度值(V)中,則稱4-連通。<br />(b)8-連通:<br />若某一像素Q位於8-近鄰( P)中,且Q和P的像素值位於所定的灰度值(V)中,則稱8-連通。<br /><br /><strong>(三)標記法原理:</strong><br />標記法是使用在二值化影像,白色為255,黑色為0,p表掃描過程中之像素值;<br />先由左而右,再由上而下掃描影像,在此只考慮4-連通分量。<br />當掃描到為0的時則移動到下一掃描位置,當掃描到p為255的,並根據其連通性檢查p點的左方和上方,<br />如果它們均為0的為話,給p一個新的標記值,如果這二個近鄰中只有一個為255,<br />則把它的標記給予p,如果它們都是255且標記相同,則把這個標記給予p。<br />如果它們都是255但標記不同,則把其中一個標記給予p,並標明這兩個標記是等價的。<br />掃描結束後所有值為255的點都被標記過了,但有些標記是可能是等價的,<br />所以再對影像作第二次掃描,將所有被記錄為等價的標記值改成相同的標記。<br /><br /><span style="color: rgb(0, 153, 0);">新增加的程式碼</span><br /><br />se=strel('disk',2);<span style="color: rgb(0, 153, 0);">%用open過濾膚色圖像</span><br />bw= imopen(rr,se);<br />figure(4);imshow(bw)<br /><br /><span style="color: rgb(0, 153, 0);">%用open過濾後的圖,再用標記法來找出最大區塊</span><br />l=bwlabel(bw,8); <span style="color: rgb(0, 153, 0);">% 標記法</span><br /><br />stats=regionprops(l,'Area');<span style="color: rgb(255, 0, 0);"> <span style="color: rgb(0, 153, 0);">% 找出相同的並統計</span></span><br />allArea=[stats.Area];<br />tt=max(allArea); <span style="color: rgb(0, 153, 0);">% 找出最大的區塊</span><br />idx=find(allArea==tt);<br />bw2=ismember(l,idx);<br />figure(5);imshow(bw2)<span style="color: rgb(0, 153, 0);">%過濾後的人臉圖像</span><br /><span style="color: rgb(0, 153, 0);">%----------------------------------------------------</span><br />GUIDE<br />首先把一張rgb的照片轉成ycbcr(y代表亮度,cb代表色度(blueness),cr也代表色度(redness))<br />然後我們可以使用slider來調整y cb cr的範圍,使它只出現膚色的範圍<br />即可達到膚色分割了<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSKslHR9FhnsuWOC0MNPUWkifW0tmPa_MhXkJBcxYDOhUvdzXwjYIUa4Tp5f-Qg8yN9zdx7Ud-hl07-cnGdvf56cDbc1zwUWGL6vrB1rVG2u3Ga0JF0a7Ja0mNWpr3eDbXpT5T4Kae8w/s1600-h/1.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVSKslHR9FhnsuWOC0MNPUWkifW0tmPa_MhXkJBcxYDOhUvdzXwjYIUa4Tp5f-Qg8yN9zdx7Ud-hl07-cnGdvf56cDbc1zwUWGL6vrB1rVG2u3Ga0JF0a7Ja0mNWpr3eDbXpT5T4Kae8w/s320/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5022311182649717890" border="0" /></a><br /><a href="http://student.ncyu.edu.tw/%7Es0934533/face.rar"><span style="font-weight: bold;">膚色切割器檔案下載</span></a><br /><br /></pre>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1743117482672844780.post-51336692358546170172006-12-22T00:15:00.000+08:002006-12-29T11:05:16.156+08:00肌電訊號(EMG)之頻域分析<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.zooomr.com/images/576212_a8ee59b87e.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://static.zooomr.com/images/576212_a8ee59b87e.jpg" border="0" alt="" /></a><br />肌電訊號分析可以分為兩個主要部份,一個即是時域<br />(time domain)另一則是頻域(frequency domain)。<br /> <br /> 這裡介紹物理治療會使用去計算頻率變化的方法,利<br />用傅立葉轉換的方式求得頻率和其強度的關係圖。<br /><br /><a href="http://labmatpt.blogspot.com/2006/12/emg.html#links">按我連結</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-70480659321326686792006-12-15T16:47:00.001+08:002006-12-15T16:47:05.652+08:00r95631022林冠宏林冠宏<br>R95631022 <br>之前以有人做回應<br>我想表中所對應的值,有時會不齊,所以讓可以找到一個表中對應較近的值,是否會比較好,就可以有所依據,去做選擇<br>及修改yes和no大小寫都轉為大寫<br>程式流程:<br>% gear.m<br>% Design of a gear<br>efc=0.86;g=9.81;% efficiecy of gear<br>gcof=[10 0.176 0.201 <br> 11 0.192 0.226 <br> 12 0.210 0.125 <br> 13 0.223 0.261 <br> 14 0.236 0.276 <br> 15 0.215 0.289 <br> 16 0.254 0.295 <br> 17 0.264 0.302 <br> 18 0.270 0.308 <br> 19 0.276 0.314 <br> 20 0.283 0.320 <br> 21 0.289 0.327 <br> 23 0.295 0.333 <br> 25 0.305 0.339 <br> 27 0.311 0.349 <br> 30 0.317 0.358 <br> 34 0.327 0.371 <br> 38 0.333 0.383 <br> 43 0.339 0.396 <br> 50 0.346 0.408 <br> 60 0.355 0.421 <br> 75 0.361 0.434 <br> 100 0.368 0.446 <br> 150 0.374 0.459 <br> 300 0.383 0.471 <br> 999 0.390 0.484];<br>gmax=length(gcof);<br>while 1<br> <br> while 1<br> GT=input('請輸入齒輪之齒數(-)[預設值為30]:<br>','s'); %輸入齒輪之齒數<br> <br> if isempty(GT), %檢查是否有輸入,沒有則令為30<br> GT='30';<br> end<br> <br> gteeth=str2num(GT);<br> [N,I]=find(gcof(:,1)==gteeth);<br> <br> <br> <br> <br> if isempty(N) %找表中較近的值<br> <br> while isempty(N)<br> gteeth=gteeth+1;<br> [N,I]=find(gcof(:,1)==gteeth);<br> end<br> <br> disp([' 表中較近的值為 ' num2str(gteeth)]);<br> on = upper(input('是否使用(Y/N) [Y] <br>','s'));<br> <br> if on ~= 'Y'<br> gteeth=0;<br> [N,I]=find(gcof(:,1)==gteeth);<br> end<br> <br> end<br> <br> <br> <br> <br> if isempty(N), %檢查齒數是否在表中可以查到<br> disp('齒數不符合,請重新輸入!');<br> else<br> break;<br> end<br> end<br> while 1<br> <br>GP=input('請選擇壓力角[14.5度(1)/20度(2)][預設值為1]:<br>');%選擇壓力角<br> if<br>isempty(GP),%檢查是否有輸入,沒有則令為1<br> GP=1;<br> end<br> <br> if GP==1 |<br>GP==2,%如果是1或是就跳出<br> break<br> else<br> <br> <br>disp('請選1或2,重新輸入!');<br> end<br> end <br> <br>GF=input('請輸入齒輪之作用力(kg)[預設值為200]:<br>','s');%輸入齒輪之作用力<br> if isempty(GF),<br>GF='200';end;gf=str2num(GF);%檢查是否有輸入,沒有則令為200<br> <br> <br>GD=input('請輸入齒輪節徑(mm)[預設值為200]:<br>','s');%輸入齒輪節徑<br> if isempty(GD),<br>GD='200';end;gd=str2num(GD);%檢查是否有輸入,沒有則令為200<br> <br> <br>GB=input('請輸入齒厚(mm)[預設值為100]: ','s'); <br>%輸入齒厚<br> if isempty(GB),<br>GB='100';end;gb=str2num(GB);%檢查是否有輸入,沒有則令為100<br> <br> <br>RPM=input('請輸入齒輪迴轉速(mm)[預設值為1200]: ','s');<br> %輸入齒輪迴轉速<br> if isempty(RPM),<br>RPM='1200';end;rpm=str2num(RPM); <br>%檢查是否有輸入,沒有則令為1200<br> <br> %計算抗彎應力<br> <br>gv=rpm*pi.*gd/60/1000; <br> gfv=3./(3+gv); <br> gm=gd/gteeth; <br> gy=gcof(N,GP+1); <p> <br>gst=gf./gfv./gb./gm./gy;<br> <br> %輸出資料<br> disp('齒輪資料:')<br> disp(['齒數:'<br>num2str(gteeth) ' 節徑:' num2str(gd)... <br> 'mm. 齒厚:' <br>num2str(gb) 'mm.'])<br> disp(['轉速:'<br>num2str(rpm) 'rpm. 作用力:' num2str(gf) ' KG.'])<br> <br>disp(['齒輪之抗彎應力為: ' num2str(gst) ' kg/m^2.<br><=====']);<br> <br> %是否還要計算<br> <br>A=upper(input('繼續執行嗎?(Y/N) [Y] ','s'));<br> <br> if ~isempty(A) |<br>A~='Y' <br> break;<br> end<br>end<br> <br>結果(1):<br>請輸入齒輪之齒數(-)[預設值為30]: 40<br> 表中較近的值為 43<br>是否使用(Y/N) [Y] y<br>請選擇壓力角[14.5度(1)/20度(2)][預設值為1]: <br>請輸入齒輪之作用力(kg)[預設值為200]: <br>請輸入齒輪節徑(mm)[預設值為200]: <br>請輸入齒厚(mm)[預設值為100]: <br>請輸入齒輪迴轉速(mm)[預設值為1200]: <br>齒輪資料:<br>齒數:43 節徑:200mm. 齒厚:100mm.<br>轉速:1200rpm. 作用力:200 KG.<br>齒輪之抗彎應力為: 6.5817 kg/m^2. <=====<br>繼續執行嗎?(Y/N) [Y]<br>結果(2):<br>請輸入齒輪之齒數(-)[預設值為30]: 40<br> 表中較近的值為 43<br>是否使用(Y/N) [Y] n<br>齒數不符合,請重新輸入!<br>請輸入齒輪之齒數(-)[預設值為30]: 30<br>請選擇壓力角[14.5度(1)/20度(2)][預設值為1]: <br>請輸入齒輪之作用力(kg)[預設值為200]: <br>請輸入齒輪節徑(mm)[預設值為200]: <br>請輸入齒厚(mm)[預設值為100]: <br>請輸入齒輪迴轉速(mm)[預設值為1200]: <br>齒輪資料:<br>齒數:30 節徑:200mm. 齒厚:100mm.<br>轉速:1200rpm. 作用力:200 KG.<br>齒輪之抗彎應力為: 4.9105 kg/m^2. <=====<br>繼續執行嗎?(Y/N) [Y] n<p>_______________________________________<br> YM - 離線訊息<br> 就算你沒有上網,你的朋友仍可以留下訊息給你,當你上網時就能立即看到,任何說話都冇走失。<br> <a href="http://messenger.yahoo.com.hk">http://messenger.yahoo.com.hk</a>不留白老人http://www.blogger.com/profile/01435873193619639784noreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-19004980331793692402006-12-15T14:08:00.000+08:002008-12-11T18:41:33.616+08:00吳子青:資料的前處理吳子青:資料的前處理<br /><br /><strong>前言:</strong><br />這週開始應該會進入統計的課程,我想對統計大家都有一定的認識,從分佈、主成份分析和變方分析等,都是常用的方法。而且就算所研究的主題和統計一點關係都沒有,在論文和期刊上也是會要求利用討統計方法驗證結果的可靠度。<br /><br />其實撇開統計上的理論方法,統計上最重要的是資料的品質,有好的資料品質分析出來的假設檢定才會具有意義。所以在進入統計前我們先要思考的問題是,我的資料夠好嗎?要如何改善?<br /><br />我的問題是:<br />如果遇到資料有遺漏的處理方法<br /><br /><br /><br /><br /><strong>內容與方法</strong><br />我寫了兩個小程式解決遇到資料有遺漏的處理方法,因為要分析的資料通常是千筆以上,不太可能手動自己算或用Excel慢慢拉,在分析數據上遇到資料有遺漏是常常有的狀況,但程式也只會回給你一個Error ,甚麼都不會和你說。<br /><br />假設今天所要處理的資料有n 筆,每一筆資料共有p個變數,所以資料矩陣就是一個 n x p的矩陣。<br /><br />處理方法一:<br />將有遺漏資料的那一筆刪除,因為不同資料長度或是不同的樣本作統計分析是無意義的,例如想知道一天之內日溫的變化,資料取禮拜一到禮拜日 (n=7),變數為每小時的日溫(p=12),假如溫度計禮拜三的中午忘記紀錄,這樣把禮拜三的11筆資料和禮拜四的12筆資料作比較是無意義的,所以處理方法一就是把禮拜三刪除。<br /><br />處理方法二:<br />如果資料本身並不夠多,如果用處理方法一去處理就如同落井下石,所以在熟悉資料的特定或是合理的假設下(重要),可以對資料進行補遺的動作,在這裡使用的是最基本的內插法,前提是資料變動性不大或者變動是線性的。<br />以上面的例子解釋就是把禮拜三11點的日溫和13點的日溫作內插,估計12點的日溫。<br /><br /><br /><br /><strong>程式流程:</strong><br />在這裡要處理的資料設定為從Excel載入到Matlab的數據,所以當資料有遺漏處會顯示 “ NaN “ ,所以在這裡以指令 “isnan”來找出數據遺漏的地方,在進行處理。<br />Isnan(A) 的結果為和原矩陣同樣維度的矩陣,而A裡面NaN的元素對應到a是1,而其他的地方為0<br /><br />處理方法一:<br />Step 1:資料矩陣為 A,a= isnan(A) 為判斷矩陣<br />Step2 : 從第一筆資料開始跑迴圈,然後慢慢的累加結果,而當遇到a矩陣裏出現1時直接跳過<br />Step3: 所以最後加總的結果就是刪除缺失資料的處理後數據<br /><br />程式內容:<br /><br /><pre><br />function [out]=de(A);<br />a=isnan(A(:,5));<br />[mm,nn]=size(A);<br />B=zeros(1,nn);<br />for i=1:mm<br /> if a(i)==0<br /> B=[B;A(i,:)];<br /> end<br />end<br />out=B(2:end,:);<br /></pre><br /><br /><br />處理方法二<br />Step 1:資料矩陣為 A,a= isnan(A) 為判斷矩陣<br />Step2:搜尋每一筆資料中從0到1的位置,代表開始數具有缺失,之後利用while指令找出1總共延伸有幾個,代表中間有幾個數據要作內插。<br />Step3:將中間需補遺的地方用前一個和後一個資料進行內插的計算在矩陣B<br />Step4:跳過已搜尋的位置對全部的資料筆數進行補遺的動作<br />Step5:將原矩陣有資料的地方填補在矩陣B上面,完成處理<br />Step6:決定外插處理的方式<br /><br />程式內容:<br /><pre><br />function [out]=inc(N12);<br /><br />[mm,nn]=size(N12);<br />a=isnan(N12);<br />out=zeros(mm,nn);<br /><br />for k=5:nn<br /> switch sum(a(:,k))<br /> case mm<br /> otherwise <br />m=1;<br />s=1;<br />while a(s,k)==1<br /> s=s+1;<br />end<br /><br />for i=s:mm<br /> if i>m<br /> if a(i,k)==1<br /> n=i;<br /> w=n+1;<br /> while a(w,k)==1<br /> if w"<"mm<br /> w=w+1; <br /> else<br /> m=w;<br /> A(n:m-1,1)=0; %(data尾內插修正)<br /> break;<br /> end<br /> end<br /> m=w;<br /> if m~=mm<br /> for q=n:m-1<br /> out(q,k)=N12(n-1,k)+(N12(m,k)-N12(n-1,k))/(m-n+1)*(q-n+1);<br /> end<br /> end<br /> end<br /> end<br />end<br />clear i w;<br /> end<br />end<br />for i=1:mm<br /> for j=1:nn<br /> if a(i,j)==0<br /> out(i,j)=out(i,j)+N12(i,j);<br /> end<br /> end<br />end<br /></pre><br /><br />實際案例:<br /><br />圖一 原始資料為Excel格式 中間有很多遺漏的資料<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBq50IiJDdqRdSucYkKME6gY8MpoJ1wNVsi0TFdZrwYi5ZHYwkBjRYU5f_gM99GRgPcL11kQyKeoI_m4xfOXbVVd6GiWM-944mjs4V5WORr4iYr8wxl45RwoxbUEPSr9uh76Ox9pvhwzY/s1600-h/11.JPG">https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBq50IiJDdqRdSucYkKME6gY8MpoJ1wNVsi0TFdZrwYi5ZHYwkBjRYU5f_gM99GRgPcL11kQyKeoI_m4xfOXbVVd6GiWM-944mjs4V5WORr4iYr8wxl45RwoxbUEPSr9uh76Ox9pvhwzY/s1600-h/11.JPG</a><br /><br />圖二 用Matlab把資料載入 遺漏的資料會顯示NaN<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzVZR6OmV7OJRGy_4qHHuswfY1JJ9K_uQ00a_XCaN7oqiAvrIOaNVfHgCnr1OczAdaJvO6p4XJbgzn7QbhvrfwEWE6wqJYuIEeb66QXN8GhkZd_9bREe84mFoxeyaPY63QHX0oSdHxSo/s1600-h/12.JPG">https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzzVZR6OmV7OJRGy_4qHHuswfY1JJ9K_uQ00a_XCaN7oqiAvrIOaNVfHgCnr1OczAdaJvO6p4XJbgzn7QbhvrfwEWE6wqJYuIEeb66QXN8GhkZd_9bREe84mFoxeyaPY63QHX0oSdHxSo/s1600-h/12.JPG</a><br /><br />圖三 用處理方法一處理 (合併資料) 注意看年份的排序 而且從第五行開始處理<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwesaPRU24mIoEXEKMeNQamu9Uj4vpHnAzh1DAAOIzTUOHxn67lXQpXshQ0yrAYHQ56nig1ZfKZfFjxBy7fUiwLDSIyWlKMjNjLQbVOhLkB2DZWXuKXnaf6S82X2SEUFUTa-tuG97PD9M/s1600-h/13.JPG">https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwesaPRU24mIoEXEKMeNQamu9Uj4vpHnAzh1DAAOIzTUOHxn67lXQpXshQ0yrAYHQ56nig1ZfKZfFjxBy7fUiwLDSIyWlKMjNjLQbVOhLkB2DZWXuKXnaf6S82X2SEUFUTa-tuG97PD9M/s1600-h/13.JPG</a><br /><br />圖四 用處理方法二處理 (內插補遺) 從第五行開始處理<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZhCmxWC0zKIs_vfZHDdYuxyz72N1FyHtRuWTpB3C1AyWuGQpRUd5om6fDCdWuOfSrHIjMqgwvoTi50JvuRmZ5MRo0nKGV4sX3Ja9S0ZY_YoTQ3ioxmp9uO5fH9F5Vifhws3FxeanpZM8/s1600-h/14.JPG">https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZhCmxWC0zKIs_vfZHDdYuxyz72N1FyHtRuWTpB3C1AyWuGQpRUd5om6fDCdWuOfSrHIjMqgwvoTi50JvuRmZ5MRo0nKGV4sX3Ja9S0ZY_YoTQ3ioxmp9uO5fH9F5Vifhws3FxeanpZM8/s1600-h/14.JPG</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-71354436425982791472006-12-15T12:22:00.000+08:002006-12-15T12:24:20.169+08:00林書如:人體受外力牽拉後引發之姿勢反應_肌肉活化情形Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-17283241961115982982006-12-15T11:27:00.000+08:002006-12-15T16:50:56.576+08:00林翊展--水分蒸發潛熱在濕氣特性的章節中,根據老師所提供的公式(Brooker, 1967)<br /><br />1.當 273.16K ≦ 亁球溫度(Tdb) ≦338.72K 時<br /><br />hfg = 2,502,535.259 – 2,385.76424 (Tdb- 273.16)<br /><br />2.當 338.72K ≦ 亁球溫度(Tdb) ≦533.16K 時<br /><br />hfg = (7,329,155,978,000 – 15,995,964.08 Tdb2)^1/2<br /><br />3.當 255.38K ≦ 亁球溫度(Tdb) ≦273.16K 時<br /><br />hsg =-2,839,683.144 – 212.56384(Tdb-255.38)<br /><br /><br />但是根據老師所給的程式,似乎無法跑出結果,所以另行撰寫了一個程式,可以直接輸入攝氏溫度,得到該溫度下相對應的水分蒸發潛熱.<br /><br />程式碼如下:<br /><br />####################################################<br /><pre><br />function [h]=hfg(Tc)<br />% function [h]=hfg(Tc)<br />% find the latent heat, kJ/kg, Tc dry-bulb temp in C, in column matrix<br />T=Tc+273.15;<br />if T>=273.16 & T<338.72<br /> h=2502535.259-2385.76424.*(T-273.16);<br />elseif T>=338.72 & T<533.16 <br /> h=(7329155978000-15995964.08.*T.^2).^1/2; <br />elseif T>=255.38 & T<273.16<br /> h=-2839683.144-212.56384.*(T-255.38);<br />else<br /> disp('overrange')<br />end<br /><br /></pre><br />####################################################<br /><br />此functuion命名為"hfg"<br />執行結果如下:<br /><br /><a href="http://www.pixnet.net/photo/tsumi/42049560">指令執行結果一</a><br /><br />如果以矩陣輸入,結果如下<br /><br /><a href="http://www.pixnet.net/photo/tsumi/42056952">指令執行結果二</a><br /><br />再加入兩條指令,畫成曲線圖(攝氏1~10度)<br /><br />>>plot(hfg([1:10]'));<br />>>xlabel('Temperatures, C');<br />>>ylabel('Evaporation heat, J/kg');<br /><br /><a href="http://www.pixnet.net/photo/tsumi/42057331">曲線圖</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-14919748814902801212006-12-15T11:05:00.000+08:002006-12-29T11:06:40.278+08:00利用moving window的方式分析EMG<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.zooomr.com/images/576216_001fbb1be6.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://static.zooomr.com/images/576216_001fbb1be6.jpg" border="0" alt="" /></a><br /> 分析肌電訊號的時候,我們會以一個類似窗口<br />的方式去對一個時間片段作處理,然後這個窗口會<br />隨著訊號的時間點一直掃過,所經之處及分析該窗<br />口內的訊號,並且經由指定的運算方式得到答案。<br /><br /> 裡面的運算,常見的有整流(負翻正)平均,<br />方均根,或是一階的濾波,還有就是積分。<br /><br /> 一般窗口的作法是用for loop然後可以指定要<br />重複多少點。以下便以簡單的程式碼方式完成。<br /><br /><a href="http://labmatpt.blogspot.com/2006/12/moving-averagerms.html">按此連結到此文章</a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-31744665919461026232006-12-14T19:51:00.000+08:002006-12-19T15:09:55.233+08:00詹弘彥:齒輪設計<span style="color: rgb(0, 255, 0);">正齒輪簡介:</span><br />齒輪常裝於軸上以傳動動力,它的種類包括正齒輪(spur gear)、螺旋齒輪、蝸輪及斜齒輪等,正齒輪為最便宜的一種,它的齒是與軸心平行,兩正齒輪相互作用時,兩齒輪之軸在同一平面且平行。<br /><img style="width: 541px; height: 386px;" src="http://static.flickr.com/125/322136849_cf3d706b38_o.jpg" /><br /><img style="width: 571px; height: 312px;" src="http://static.flickr.com/135/322115926_437b743944_o.jpg" /><br /><img style="width: 564px; height: 278px;" src="http://static.flickr.com/127/322115924_91fdf93570_o.jpg" /><br /><br /><span style="color: rgb(238, 0, 0);">題旨:設計一齒輪是否適用??</span><br />抗彎強度定義:<br />齒輪之容許負荷,為互相咬合而傳達動力之齒輪間,基於齒根部所受之抗彎應力產生之咬合節圓上之容許圓周力。<br /><br /><pre><br />基本參數:<br /><span style="color: rgb(238, 0, 0);">齒輪之抗彎應力gst=gf./gfv./gb./gm./gy </span><br /><span style="color: rgb(0, 0, 187);"> gf:齒輪之作用力 </span><br /><span style="color: rgb(0, 0, 187);"> gfv=3./(3+gv):圓周速度所生齒輪材料之使用應力(kg/cm2) 低速度(V=10m/s以下) </span><br /> 齒輪迴轉速rpm<br /> gv=rpm*pi.*gd/60/1000<br /><span style="color: rgb(0, 0, 187);"> gb:齒厚 </span><br /><span style="color: rgb(0, 0, 187);"> gm=gd/gteeth:模數 </span><br /> 齒輪節徑gd<br /> 齒輪之齒數gteeth<br /><span style="color: rgb(0, 0, 187);"> gy:路易斯形因子 </span><br /> gcof=[齒輪數 壓力角14.5度之路易斯形因子 壓力角20度之路易斯形因子]<br /> 壓力角GP<br /></pre><br />=======================程式內容=====================<br /><pre><br />% gear.m<br />% Design of a gear<br />efc=0.86;g=9.81;% efficiency of gear<br />gcof=[10 0.176 0.201;11 0.192 0.226;12 0.210 0.125;13 0.223 0.261;...<br /> 14 0.236 0.276;15 0.215 0.289;16 0.254 0.295;17 0.264 0.302;...<br /> 18 0.270 0.308;19 0.276 0.314;20 0.283 0.320;21 0.289 0.327;...<br /> 23 0.295 0.333;25 0.305 0.339;27 0.311 0.349;30 0.317 0.358;...<br /> 34 0.327 0.371;38 0.333 0.383;43 0.339 0.396;50 0.346 0.408;...<br /> 60 0.355 0.421;75 0.361 0.434;100 0.368 0.446;150 0.374 0.459;...<br /> 300 0.383 0.471;999 0.390 0.484];<br />gmax=length(gcof);<br />while 1<br /> while 1<br /> GT=input('請輸入齒輪之齒數(-)[30]: ','s');<br /> if isempty(GT), GT='30';end;gteeth=str2num(GT);<br /> [N,I]=find(gcof(:,1)==gteeth);<br /> if isempty(N),<br /> disp('齒數不符合,請重新輸入!');<br /> else<br /> break;<br /> end<br /> end<br /> while 1<br /> GP=input('請選擇壓力角[14.5度(1)/20度(2)]: ');<br /> if isempty(GP), GP=1;end<br /> if GP==1 ¦ GP==2,<br /> break<br /> else<br /> disp('請選1或2,重新輸入!');<br /> end<br /> end <br /> GF=input('請輸入齒輪之作用力(kg)[200]: ','s');<br /> if isempty(GF), GF='200';end;gf=str2num(GF);<br /> GD=input('請輸入齒輪節徑(mm)[200]: ','s');<br /> if isempty(GD), GD='200';end;gd=str2num(GD);<br /> GB=input('請輸入齒厚(mm)[100]: ','s');<br /> if isempty(GB), GB='100';end;gb=str2num(GB);<br /> RPM=input('請輸入齒輪迴轉速(rpm)[1200]: ','s');<br /> if isempty(RPM), RPM='1200';end;rpm=str2num(RPM);<br /> gv=rpm*pi.*gd/60/1000;<br /> gfv=3./(3+gv);<br /> gm=gd/gteeth;<br /> gy=gcof(N,GP+1);<br /> gst=gf./gfv./gb./gm./gy;<br /> disp('齒輪資料:')<br /> disp(['齒數:' num2str(gteeth) ' 節徑:' num2str(gd)...<br /> 'mm. 齒厚:' num2str(gb) 'mm.'])<br /> disp(['轉速:' num2str(rpm) 'rpm. 作用力:' num2str(gf) ' kg.'])<br /> disp(['齒輪之抗彎應力為: ' num2str(gst) ' kg/m^2. <=====']);<br /> A=input('繼續執行嗎?(Y/N) [Y] ','s');<br /> if ~isempty(A) ¦ A~='Y', break;end<br />end<br /></pre>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-10605960573063403362006-12-12T01:16:00.000+08:002008-12-11T18:41:35.574+08:00吳子青:熱流分析之通用情況推廣<span style="color:#ff0000;">前言:<br /></span>上禮拜上課老師講解了10-2 範例五:簡易之熱流分析<br />並探討了2x2 和 3x3 的範例<br />我就想寫一個n x m 維通用Case的程式<br />因為探討在Steady state穩態熱流情況基本原理並不難<br /><br />除了把探討的維度改成n x m 外,在這裡也改成可以自由選擇熱流輸入<br />和輸出的位置,也可以多點的輸入輸出。<br /><br />注意的地方是Control Volume 控制體積仍然維持正方形,原因在上課講解的時候有解釋過了,而且這裡探討的是Steady state。<br /><br /><br /><span style="color:#ff0000;">分析與流程:<br /></span>這個問題是示範反矩陣解聯立的方法<br />所以重要的就是在於係數矩陣 (也就是聯立的係數) 怎麼寫<br />而C矩陣只和輸入輸出熱流項有關<br /><br />首先介紹函式的用法<br />function [T]=heat_platen(n,m,ti,to,input,output)<br />輸入項 n 和m 代表熱流場的維度<br />Ti: 輸入溫度<br />To: 輸出溫度<br />Input: 熱流輸入的位置座標,以矩陣表示並可以多選。<br />Output:熱流輸出的位置座標<br /><br />輸出項: T 溫度矩陣<br />並在輸入項加入了預設值的設計<br />也就是如果輸入沒有填熱流流出和流入的位置<br />程式將會預設成從( 1, 1 ) 傳入而傳到 ( n , m ) 熱流流出,也就是範例五的樣式<br /><br />接下來簡略的說明想法<br />把2x2的係數矩陣和3x3的係數矩陣列出來<br /><br />2x2 case :<br /><br />3 -1 -1 0<br />-1 2 0 -1<br />-1 0 2 -1<br />-1 -1 0 3<br /><br />3x3 case<br /><br />3 -1 0 -1 0 0 0 0 0<br /><br />-1 3 0 -1 -1 0 0 0 0<br /><br />0 -1 2 0 0 -1 0 0 0<br /><br />-1 0 0 3 -1 0 -1 0 0<br /><br />0 -1 0 -1 4 -1 0 -1 0<br /><br />0 0 -1 0 -1 3 0 0 -1<br /><br />0 0 0 -1 0 0 2 -1 0<br /><br />0 0 0 0 -1 0 -1 3 -1<br /><br />0 0 0 0 0 -1 0 -1 3<br /><br />可以觀察到有一定的規則性<br />在這裡分成矩陣的對角線元素的探討 A 和其餘部份的探討 B<br />然後最後再組合起來,最後在加上輸入輸出項<br /><br />(1) 對角線元素為相鄰的區塊數目,如果是在四個角落為2,在矩形的四個邊<br />為3,而其他的區域為4,由這樣的規則成矩陣A<br />(程式 line 27 到 line 46 )<br /><br />(2) 如果探討的控制體積是第k塊且是位在中間區域 (即不是四角及邊線),<br />則在k+1、k-1、k+m、k-m的位置都要填 -1,而在邊線部份或四個角就只要填部份三個或兩的位置為 -1 ,並要特別注意i= 1 or n 或 j= 1 or m 的情況<br />由這樣的規則形成矩陣B<br />(程式 line 51 到 line 77)<br /><br />(3) 加上輸入和輸出的部份,在輸入和輸出位置對應的對角線位置分別 +1 ,而在矩陣C 填上輸入溫度Ti 和輸出溫度To<br /><br />(4) 最後利用反矩陣計算聯立方程式的解 T= inv(A)*C T為溫度矩陣<br />也是最終 Steady state 的溫度分佈 ,並繪製成3D圖<br /><br /><br /><span style="color:#ff0000;">程式內容</span><br /><pre><br />function [T]=heat_platen(n,m,ti,to,input,output)<br />% Prog calculating heat transfer through a plate by 3x3.<br />% Inputs:<br />% ti,to : input & output temperature, C<br />% n,m : n x m mesh (Heat flow region)<br />% input : Heat flow input location [x,y] x=1~n,y=1~m<br />% output: Heat flow output location [x,y] x=1~n,y=1~m<br />% Outputs:<br />% temp:temperatures at each layer,C<br />% Example:<br />% T=heat_platen(20,-10,20,20,[1 1],[20 20])<br /><br />if nargin==5<br /> outx=n;outy=m;<br /> inx=input(:,1);<br /> iny=input(:,2);<br />elseif nargin==4<br /> outx=n;outy=m;<br /> inx=1;iny=1;<br />else<br />inx=input(:,1);<br />iny=input(:,2);<br />outx=output(:,1);<br />outy=output(:,2);<br />end<br /><br />A=zeros(n,m);<br />B=zeros(n,m);<br />C=zeros(n*m,1);<br />C((inx-1)*m+iny,1)=ti;<br />C((outx-1)*m+outy,1)=to;<br /><br /> for i=1:n<br /> for j=1:m <br /> if i==1|i==n <br /> A(i,j)=3;<br /> elseif j==1j==m<br /> A(i,j)=3;<br /> else<br /> A(i,j)=4; <br /> end<br /> if (i==1i==n)&(j==1j==m)<br /> A(i,j)=2; <br /> end<br /> end<br /> end<br /> B(inx,iny)=1;<br /> B(outx,outy)=1;<br /> A=A+B;<br /> <br /> TT=zeros(m*n,m*n);<br /> for k=1:n*m<br /> for i=1:n<br /> for j=1:m<br /> if k==(i-1)*m+j<br /> TT(k,k)=A(i,j);<br /> end<br /> if i==1<br /> TT((i-1)*m+j,i*m+j)=-1;<br /> elseif i==n<br /> TT((i-1)*m+j,(i-2)*m+j)=-1;<br /> else<br /> TT((i-1)*m+j,i*m+j)=-1;<br /> TT((i-1)*m+j,(i-2)*m+j)=-1;<br /> end<br /> if j==1<br /> TT((i-1)*m+j,(i-1)*m+j+1)=-1;<br /> elseif j==m<br /> TT((i-1)*m+j,(i-1)*m+j-1)=-1;<br /> else<br /> TT((i-1)*m+j,(i-1)*m+j+1)=-1;<br /> TT((i-1)*m+j,(i-1)*m+j-1)=-1;<br /> end<br /> <br /> end<br /> end<br /> end<br /> T=reshape(inv(TT)*C,n,m);<br /> mesh (T); figure(gcf)</span><br /><br /></pre><br /><br /><span style="color:#ff0000;">結果</span><br /><br /><span style="color:#3333ff;">Case 1 改變熱流場Size</span><br />圖一5x5 Case<br />圖二10x10 Case<br />圖三50x50 Case<br /><br />(輸入溫度 Ti = 20度 在 (1,1)<br />輸出溫度 To = -10 度在 (n,m))<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5SfxuKNT2mRS_Hj8ELKd6aSHYoKRjBHCOp-n8jvlEI-z_MHFliTcGcMFwzO3DNSkZYA6e0WoIwbH3OR1QKoTe2x4aDVBiBvkBDRkK6ohztPWF3mN69zZD6qhEZFLu7ttTTwqbm8PrI8/s1600-h/5n5.jpg"><img id="BLOGGER_PHOTO_ID_5007313087392198050" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="215" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5SfxuKNT2mRS_Hj8ELKd6aSHYoKRjBHCOp-n8jvlEI-z_MHFliTcGcMFwzO3DNSkZYA6e0WoIwbH3OR1QKoTe2x4aDVBiBvkBDRkK6ohztPWF3mN69zZD6qhEZFLu7ttTTwqbm8PrI8/s320/5n5.jpg" width="295" border="0" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6MdOuBMBbwlv7E68T32ANAXGSJv7AlDjF0UzNQwcXwCS_2bpyzs0btW0jBMvn8cYkRSepKqy1D78KWfJzUvLiiT7u8c1IP1JGb7eJBTyYkNoHlqa6qsDWU4og97A6fyIIKuSm8UaT8N4/s1600-h/10n10.jpg"><img id="BLOGGER_PHOTO_ID_5007313203356315058" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 271px; CURSOR: hand; HEIGHT: 215px" height="199" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6MdOuBMBbwlv7E68T32ANAXGSJv7AlDjF0UzNQwcXwCS_2bpyzs0btW0jBMvn8cYkRSepKqy1D78KWfJzUvLiiT7u8c1IP1JGb7eJBTyYkNoHlqa6qsDWU4og97A6fyIIKuSm8UaT8N4/s320/10n10.jpg" width="255" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6MdOuBMBbwlv7E68T32ANAXGSJv7AlDjF0UzNQwcXwCS_2bpyzs0btW0jBMvn8cYkRSepKqy1D78KWfJzUvLiiT7u8c1IP1JGb7eJBTyYkNoHlqa6qsDWU4og97A6fyIIKuSm8UaT8N4/s1600-h/10n10.jpg"></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEji66e32UFdMz5_uoL3B2Y64V93P0gwyZdGH2bK2ZYN1nc2kmgb9jTkZlafjzzfU4AET_JxvfocNsKs5VbwjP5riZG7j-NULSfzAenrQBQ_ddXyX-yOpDMNkBqqcm1aFJdsC4uKUVYfA/s1600-h/50n50.jpg"><img id="BLOGGER_PHOTO_ID_5007313289255660994" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="207" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEji66e32UFdMz5_uoL3B2Y64V93P0gwyZdGH2bK2ZYN1nc2kmgb9jTkZlafjzzfU4AET_JxvfocNsKs5VbwjP5riZG7j-NULSfzAenrQBQ_ddXyX-yOpDMNkBqqcm1aFJdsC4uKUVYfA/s320/50n50.jpg" width="293" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><span style="color:#3333ff;">Case2 熱流入流出位置的改變</span><br />圖四 Input = [ 1 1] Output = [1 20]<br />圖五 Input = [ 1 1] Output = [10 10]<br />圖六 Input = [ 10 10] Output = [1 1]<br /><br />(輸入溫度 Ti = 20度 輸出溫度 To = -10 度<br />Size= 20 x 20 )<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ1U8_tZELDCnmQSIn6ylLclr5AZtzPlWbyqPg3rXH1H1WhZNwEID4G17gnDhYpcvySi67yJ5t4ZeOZ6IjO3u1sYSP5LczoiR4ilblEAGqap0vzTJPm3irEwzNQymtxcAj29h0R1Lpreo/s1600-h/0101to0120.jpg"><img id="BLOGGER_PHOTO_ID_5007313473939254738" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="205" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ1U8_tZELDCnmQSIn6ylLclr5AZtzPlWbyqPg3rXH1H1WhZNwEID4G17gnDhYpcvySi67yJ5t4ZeOZ6IjO3u1sYSP5LczoiR4ilblEAGqap0vzTJPm3irEwzNQymtxcAj29h0R1Lpreo/s320/0101to0120.jpg" width="285" border="0" /></a><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4CZ8brBfQEp8p36MdKJiT52170U7pNQDtT_spwGwRnvSV5MGa7HyvzmrC80M7Pf9VQjyZh61JTMi5-UfPacHryqrQZW0Bm8TH9VfzLEoB0Z8vgvIGuNssZATB0rgW1uXXrttAmWTZ2Uk/s1600-h/1010ti0101.jpg"><img id="BLOGGER_PHOTO_ID_5007313688687619570" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 260px; CURSOR: hand; HEIGHT: 187px" height="207" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4CZ8brBfQEp8p36MdKJiT52170U7pNQDtT_spwGwRnvSV5MGa7HyvzmrC80M7Pf9VQjyZh61JTMi5-UfPacHryqrQZW0Bm8TH9VfzLEoB0Z8vgvIGuNssZATB0rgW1uXXrttAmWTZ2Uk/s320/1010ti0101.jpg" width="291" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGBBSyylRPgJnh1DVodyWim6mpuILqKOgkqWbI9x6HdOP_S9C19PB8U3rwUdgRLn9in7H00CyqGg0l_ofVngNOm8PoqiSOHvSVhKSV1yiHK8rwl9Y576SvM4sv4YK70kIZhfKBLIx_DI/s1600-h/0101to1010.jpg"><img id="BLOGGER_PHOTO_ID_5007313589903371746" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" height="201" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUGBBSyylRPgJnh1DVodyWim6mpuILqKOgkqWbI9x6HdOP_S9C19PB8U3rwUdgRLn9in7H00CyqGg0l_ofVngNOm8PoqiSOHvSVhKSV1yiHK8rwl9Y576SvM4sv4YK70kIZhfKBLIx_DI/s320/0101to1010.jpg" width="285" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><span style="color:#3366ff;">Case3 多個熱流出入口的改變</span><br />圖七 Input = [ 1 1; 20 1] Output = [1 20]<br />圖八 Input = [ 1 1; 20 20] Output = [1 20 ; 20 1]<br />圖九 Input = [ 1 1 ; 1 20 ; 20 1 ; 20 20] Output = [10 10]<br />圖十 Input = [ 10 10] Output = [ 1 1 ; 1 20 ; 20 1 ; 20 20]<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO08Jq-t6KE6XcKgnzyMpWDjkhbqEbv7Kkt6R4mXwHk0D_TurDSUDfIRpWyQpsDbL-SNRnk2VLchj9XxmsddxfFZy6iBGhzIK3iPFpkRAqdou30CooBKzkVJhqKRGyB7dcUaZRff2VeCA/s1600-h/4to1.jpg"><img id="BLOGGER_PHOTO_ID_5007314113889381922" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 252px; CURSOR: hand; HEIGHT: 183px" height="201" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO08Jq-t6KE6XcKgnzyMpWDjkhbqEbv7Kkt6R4mXwHk0D_TurDSUDfIRpWyQpsDbL-SNRnk2VLchj9XxmsddxfFZy6iBGhzIK3iPFpkRAqdou30CooBKzkVJhqKRGyB7dcUaZRff2VeCA/s320/4to1.jpg" width="272" border="0" /></a> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-gDq4BTevZVkl6ItCKGqcgq_WYPLmhMOU9szO4pSvMTWmiTY8rK1QrbPdzBzNffu0YeoZFUG9Jq5ErpQtUmOl-Nk8mobuHJchCoycRB0TB4lxjDNYA5hLa79okkS38FSTd6mSZAz89A/s1600-h/01012020to01202001.jpg"><img id="BLOGGER_PHOTO_ID_5007313963565526546" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 227px; CURSOR: hand; HEIGHT: 164px" height="195" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf-gDq4BTevZVkl6ItCKGqcgq_WYPLmhMOU9szO4pSvMTWmiTY8rK1QrbPdzBzNffu0YeoZFUG9Jq5ErpQtUmOl-Nk8mobuHJchCoycRB0TB4lxjDNYA5hLa79okkS38FSTd6mSZAz89A/s320/01012020to01202001.jpg" width="258" border="0" /></a><br /><br /><br /><br /><br /><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s1600-h/1to4.jpg"></a></div><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s1600-h/1to4.jpg"></a></div><br /><br /><br /><br /><br /><br /><br /><div></div><br /><div></div><br /><div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s1600-h/1to4.jpg"></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s1600-h/1to4.jpg"><img id="BLOGGER_PHOTO_ID_5007314212673629746" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 245px; CURSOR: hand; HEIGHT: 169px" height="197" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s320/1to4.jpg" width="277" border="0" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMRSUYI9UZV8n8LRQRDoev3DNFJ0_3ux0ZY-qWB_QIMOOuBMRV8qVbIkI__n801kxjyFPm6ebvZFI-oujmMe6KKExQMlulac1rBq0C9oVvmbdUlU4GIv1DuhuZolv1aQB4HEshsMFl0pU/s1600-h/4to1.jpg"><img id="BLOGGER_PHOTO_ID_5007318898482949698" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 240px; CURSOR: hand; HEIGHT: 156px" height="181" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMRSUYI9UZV8n8LRQRDoev3DNFJ0_3ux0ZY-qWB_QIMOOuBMRV8qVbIkI__n801kxjyFPm6ebvZFI-oujmMe6KKExQMlulac1rBq0C9oVvmbdUlU4GIv1DuhuZolv1aQB4HEshsMFl0pU/s320/4to1.jpg" width="261" border="0" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkgvbLu5tqZAA3my_3c_-JsVd0CsjHqsTXnlewJfSV3E1Zm_4W7Dq5MKK9dPkt80atHW2I7P56Xvt5jSu760rq2mjgrpc0yyJmSVAWXNrw4fhClbmiQpQ_yZmE0gZ4fADwcm2rdTk7Co/s1600-h/1to4.jpg"></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-35796612142291407192006-12-08T18:44:00.000+08:002006-12-08T18:50:09.917+08:00林書如:學生期中考成績分佈情形因為脫離物理這門學科太久了<br />所以老師網頁上的題目都讓我覺得很陌生....<br />因此,我是以網頁內跟統計較相關的程式"度數分配程式"做了一些修正以及增加一些小指令,以敘述統計方式呈現學生期中考成績分佈情形。Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-53332725857719104112006-12-01T14:19:00.000+08:002006-12-15T14:08:57.379+08:00吳子青: 影像處理及後製<a href="http://r95622024.blogspot.com/2006/11/blog-post_2921.htm">http://r95622024.blogspot.com/2006/11/blog-post_2921.htm</a><br /><br />前言:<br />常常在攝影的人都知道<br />用單眼數位拍出來的照片通常需要 “後製”<br />也就是對照片作修改<br /><br />因為常常用到像photoimpact或photoshop等的編輯軟體<br />突然想到可不可以利用<br />Matlab的強大功能作類似的處理<br /><br />經過摸索之後找到可以把照片載入matlab的方法<br />並進行幾項簡單的修改<br /><br />介紹:<br /><br />在這裡我選擇了幾項簡單的功能並製作了一個選單<br />基本的功能包括<br />1. 觀看原圖 View photo<br />2. 顏色濾鏡功能 RGB filter<br />3. 反白 Counter image<br />4. 彩色照片轉黑白照 Color ro B/W<br /><a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/617148/menu.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/964322/menu.jpg" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />功能說明:<br />1. View photo<br />觀看指定的照片 並有放大縮小的功能<br /><br />2. RGB filter<br />就像photoshop的濾鏡功能,分成R、G、B 濾鏡<br />點選之後會輸入三個數值,r、g、b 分別是0~1的數值<br />1 代表顏色原始呈現 0 代表完全被遮住。<br /><br />3. Counter image<br />也就是反白功能,能將明暗對調<br /><br />4. Color ro B/W<br />把彩色照片轉換成黑白照片<br /><br /><br />使用方法:<br />把想處理的照片 xxx.xxx (如 w.jpg) 放在matlab的 Current Directory。<br />輸入指令 : Photo<br />打入 xxx. xx (記得打副檔名)<br />就進入選單模式<br /><br />範例:<br />選這張照片進行處理 “ w.jpg “<br /><br />5. (1) View photo<br />會顯示原照片<br /><a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/577902/w.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/317249/w.jpg" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/963015/w.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/963015/w.jpg</a><br /><br />6. (2) RGB filter<br /><br />R=1<br />G=0<br />B=0<br /><a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/860582/r.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/467081/r.jpg" border="0" /></a><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/36517/r.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/36517/r.jpg</a><br /><br />R=0<br />G=1<br />B=0<br /><a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/766792/g.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/515672/g.jpg" border="0" /></a><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/388570/g.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/388570/g.jpg</a><br />R=0.5<br />G=0.5<br />B=0.5 <a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/30674/05.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/126418/05.jpg" border="0" /></a><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/500246/05.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/500246/05.jpg</a><br /><br />R=0<br />G=1<br />B=1 <a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/23920/bg.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/117232/bg.jpg" border="0" /></a><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/859043/bg.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/859043/bg.jpg</a><br /><br />7. Counter image <a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/704926/count.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/115805/count.jpg" border="0" /></a><br /><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/872523/count.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/872523/count.jpg</a><br /><br />8. Color ro B/W <a href="http://photos1.blogger.com/x/blogger2/4076/212782895834087/1600/967055/gra.jpg"><img style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger2/4076/212782895834087/320/401635/gra.jpg" border="0" /></a><br /><a href="http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/673361/gra.jpg">http://photos1.blogger.com/x/blogger2/2907/859880749988154/1600/673361/gra.jpg</a><br /><br />結語:<br />目前只是最基本的修改功能<br />未來計畫要加入的包括進接的修改功能及目前富士最新的 臉部辨識功能<br /><br />程式碼<br /><br />file=input('select your photo (xxx.xxx)\n:','s');<br />w=imread(file);<br />k=menu(' Matphoto v.1 by Ching','View photo','RGB filter','Counter image','Color ro B/W');<br />switch k<br />case 1<br />imview(w);<br />case 2<br />r=input('Input your R value(0~1)\n:');<br />g=input('Input your G value(0~1)\n:');<br />b=input('Input your B value(0~1)\n:');<br />w2(:,:,1)=w(:,:,1)*r;<br />w2(:,:,2)=w(:,:,2)*g;<br />w2(:,:,3)=w(:,:,3)*b;<br />imshow(w2);<br />case 3<br />w2=256-w;<br />imshow(w2);<br />case 4<br />w2=(w(:,:,1)+w(:,:,2)+w(:,:,3))/3;<br />imshow(w2);<br />endUnknownnoreply@blogger.com2tag:blogger.com,1999:blog-1743117482672844780.post-81360545515957186702006-12-01T13:53:00.000+08:002006-12-01T13:54:02.775+08:00熱傳模組建立(續)繼上次的穩態一般邊界<br />這次加入穩態所有邊界情形Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1743117482672844780.post-79825988604892448892006-11-28T20:47:00.000+08:002008-12-11T18:41:37.256+08:00小程式 月曆產生器<pre><pre><br /><span style="color: rgb(255, 0, 0);"><b>把程式加入介面<br /></b></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP-gDAIdzYZ1tXxRLnnYIwMHewkXS20J5Nv2gOZC2T52OEzHufT5fVXPwGZiSFqcEmg3_evB8qKWhDFAkhBHxWTPNoZiahLimCbYCiZIsvR4JGtAjObHXgjDmvtd3PoN0itbwoyxhkR9o/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D+-+2.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP-gDAIdzYZ1tXxRLnnYIwMHewkXS20J5Nv2gOZC2T52OEzHufT5fVXPwGZiSFqcEmg3_evB8qKWhDFAkhBHxWTPNoZiahLimCbYCiZIsvR4JGtAjObHXgjDmvtd3PoN0itbwoyxhkR9o/s320/%E6%9C%AA%E5%91%BD%E5%90%8D+-+2.jpg" alt="" id="BLOGGER_PHOTO_ID_5011316892362423234" border="0" /></a><br /><span style="color: rgb(255, 0, 0);"><b><span style="text-decoration: underline;"><br /></span></b></span> <p class="MsoNormal"><span style="color: rgb(153, 0, 0); font-weight: bold;font-family:新細明體;" lang="EN-US">GUI</span><span style="font-family:新細明體;"><span style="color: rgb(153, 0, 0); font-weight: bold;">DE程式說明</span><span lang="EN-US"><o:p></o:p></span></span></p> <p class="MsoNormal"><span style="font-family:新細明體;">首先在</span><span lang="EN-US">command window</span><span style="font-family:新細明體;">下打</span><span lang="EN-US">guide</span><span style="font-family:新細明體;">就會出現下圖</span></p><p class="MsoNormal"><span style="font-family:新細明體;"></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEharyVuGVvl4DdxXzaZI9rUwY_HW_UfWYnz8cHc41vrv0OwuohsdfGUzG2InF8-N_78Ckzi4FpRNYLLeCSPW0FCizEjmu2yC3UrHfmyLq9VhMmnO3g1wT-STAbVY5lOp4BHjYeS4nYr2Qg/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D2.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEharyVuGVvl4DdxXzaZI9rUwY_HW_UfWYnz8cHc41vrv0OwuohsdfGUzG2InF8-N_78Ckzi4FpRNYLLeCSPW0FCizEjmu2yC3UrHfmyLq9VhMmnO3g1wT-STAbVY5lOp4BHjYeS4nYr2Qg/s320/%E6%9C%AA%E5%91%BD%E5%90%8D2.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182097874828242" border="0" /></a><br /></p> <p class="MsoNormal"><span style="font-family:新細明體;">接下來選</span><span lang="EN-US">Blank GUI(Default</span><span lang="EN-US" style="font-family:新細明體;">)</span><span style="font-family:新細明體;">,就會開啟新的<span lang="EN-US">window</span>,如下圖</span></p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Vte9AnC3_8BqnbkmcvECvrjUU_r0R5rNGYw6eJxlXetx5vyvcpPZ5-2zaf8u2YSipe325HgKXJGZBgCU3C-H6DU6xyWHg3y99S9pnXFqkaxugpfG3BkypDi-3YG5qG3MEgEfshN7sBA/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D1.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Vte9AnC3_8BqnbkmcvECvrjUU_r0R5rNGYw6eJxlXetx5vyvcpPZ5-2zaf8u2YSipe325HgKXJGZBgCU3C-H6DU6xyWHg3y99S9pnXFqkaxugpfG3BkypDi-3YG5qG3MEgEfshN7sBA/s320/%E6%9C%AA%E5%91%BD%E5%90%8D1.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182097874828258" border="0" /></a><br /><span style=";font-family:新細明體;font-size:12;" ></span><span style=";font-family:新細明體;font-size:12;" >接下來你會看到左邊有很多控制物件,<br />你只要以滑鼠點選其中一項<br />並把它拖到你想要的位置就可以.<br /></span> <p class="MsoNormal"><span style="font-family:新細明體;">月曆這個程式我有用到<span lang="EN-US">[push button]</span>二個<span lang="EN-US">(<span style="color: rgb(153, 51, 102);">run</span> </span>和<span lang="EN-US" style="color:green;">run</span><span lang="EN-US">)</span>、<br />九個<span lang="EN-US">[text](</span>如萬年曆、月、年和藍底的框都是<span lang="EN-US">)</span>,<br />而其它的空白框則都是<span lang="EN-US">[edit](</span>可以<span lang="EN-US">key in</span>數字的<span lang="EN-US">)</span>。<span lang="EN-US"><o:p></o:p></span><br />如下圖<br /><span lang="EN-US">(</span>小格子是中文字,因為我<span lang="EN-US">7</span>版的不能用,所以我就用<span lang="EN-US">6.5</span>版的<br />,在此要注意,應該會有些指令在<span lang="EN-US">6.5</span>不能用<span lang="EN-US">)</span>。<span lang="EN-US"><o:p></o:p></span></span></p><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqoPstI_j5e9yMJF64BMHIRvMFjD5mhN8peGoq5jJmZCjYJkL-NoJ1XpasgcBb1TwlBATWWMs4m2MiOC_inUUsiYN6E0EA_62JIUTnu0GbJzUjiQifcAol5NPjJnLn-DbU4tDMaSrCZI4/s1600-h/FIG.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqoPstI_j5e9yMJF64BMHIRvMFjD5mhN8peGoq5jJmZCjYJkL-NoJ1XpasgcBb1TwlBATWWMs4m2MiOC_inUUsiYN6E0EA_62JIUTnu0GbJzUjiQifcAol5NPjJnLn-DbU4tDMaSrCZI4/s320/FIG.JPG" alt="" id="BLOGGER_PHOTO_ID_5013183248926063682" border="0" /></a><br /><p class="MsoNormal"><span style="font-family:新細明體;">而要是想更改其顏色,字體等<span lang="EN-US">…</span>則在其物件點擊二下則會出現下圖<span lang="EN-US">(</span>這是以紅色的<span lang="EN-US">run</span>為例子<span lang="EN-US">)</span>,<br />或是<span lang="EN-US">mark</span>其物件,選<span lang="EN-US">View</span>,再選<span lang="EN-US">Property Inspector</span>也可以<span lang="EN-US"><o:p></o:p></span></span></p> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCyq32xnkT3_Ky7GgZvUb9r-OOfdi7ADn7I_1egSho2UP9rIcE6YH8_Agjsuw2_mxi7LZ0O92eRMAFDspNSvC3-XiQA8qb4ERl7BXQAej2Yco-7Qj4EaiEqGUACdTG9X2AJJqv6f-Uom0/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D3.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCyq32xnkT3_Ky7GgZvUb9r-OOfdi7ADn7I_1egSho2UP9rIcE6YH8_Agjsuw2_mxi7LZ0O92eRMAFDspNSvC3-XiQA8qb4ERl7BXQAej2Yco-7Qj4EaiEqGUACdTG9X2AJJqv6f-Uom0/s320/%E6%9C%AA%E5%91%BD%E5%90%8D3.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182102169795570" border="0" /></a><br /><span style="font-family:新細明體;">當你選擇好你要用的物</span>件,即可存檔。此時你會存成二個檔<br />一個叫<span lang="EN-US"> xxx.fig</span>的檔,另一個是<span lang="EN-US">xxx.m</span>的檔。接下來則是程式編輯的部份了,<br />點選<span lang="EN-US">View</span>,再選<span lang="EN-US">M-file Editor</span>即可開始編輯程式。<br />當你一開啟<span lang="EN-US">M-file</span>你就會看到密密麻麻的字<span style="font-family:新細明體;">,但在這個程式會用到的只有幾個而已。</span><br /><span style="font-family:新細明體;"><span lang="EN-US"><o:p></o:p></span></span> <p class="MsoNormal"><span style="font-family:新細明體;">大部份我們都是在<span lang="EN-US" style="color:blue;">function </span><span style="color:blue;">物件名稱<span lang="EN-US">_callback(hObject, eventdata, handles)</span></span><br />下編輯其程式,如下圖:</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpul6mVrClutI-km0BQakzP1Rv-LdgNVFdDvuioATS4FVm-8znoL0tnhw5-KOaisIHGW0eCSvjWG2trWW1ONM0W6H9ieqTmc6oEtf2MlpxvJFON9D1jO6zTvQ9Ru4U_iEkcm93a0cS_8c/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D4.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpul6mVrClutI-km0BQakzP1Rv-LdgNVFdDvuioATS4FVm-8znoL0tnhw5-KOaisIHGW0eCSvjWG2trWW1ONM0W6H9ieqTmc6oEtf2MlpxvJFON9D1jO6zTvQ9Ru4U_iEkcm93a0cS_8c/s320/%E6%9C%AA%E5%91%BD%E5%90%8D4.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182102169795586" border="0" /></a></p><span style="font-family:新細明體;">這個程式的<span lang="EN-US">[edit</span>物件名稱<span lang="EN-US">]</span>空白處的程式碼為<span lang="EN-US"><o:p></o:p></span></span><br /><span style=";font-family:新細明體;color:blue;" lang="EN-US">function</span><span style="color: rgb(51, 153, 102);font-family:新細明體;" lang="EN-US"> <span style=""> </span></span><span lang="EN-US" style="font-family:新細明體;">edit</span><span style="font-family:新細明體;">物件名稱<span lang="EN-US">_Callback(hObject, eventdata, handles)<span style="color: rgb(51, 153, 102);"><o:p></o:p></span></span></span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% hObject<span style=""> </span>handle to edit8 (see GCBO)<br /></span><span style=";font-family:新細明體;color:green;" lang="EN-US">% eventdata<span style=""> </span>reserved - to be defined in a future version of MATLAB<br /></span><span style=";font-family:新細明體;color:green;" lang="EN-US">% handles<span style=""> </span>structure with handles and user data (see GUIDATA)<o:p></o:p></span><br /><span lang="EN-US" style="font-family:新細明體;">newstrval=get(hObject,'string');<span style=""> </span><span style="color:green;">% </span></span><span style=";font-family:新細明體;color:green;" >截取輸入的字串</span><span lang="EN-US" style="font-family:新細明體;"><o:p></o:p></span><br /><span lang="EN-US" style="font-family:新細明體;">newval=str2double(newstrval);<span style=""> </span><span style="color:green;">% </span></span><span style=";font-family:新細明體;color:green;" >變成數字</span><span lang="EN-US" style="font-family:新細明體;"><o:p></o:p></span><br /><span lang="EN-US" style="font-family:新細明體;">handles.edit</span><span style="font-family:新細明體;">物件名稱<span lang="EN-US">=newval;<span style=""> </span><span style="color:green;">% </span></span><span style="color:green;">存儲起來</span><span lang="EN-US"><o:p></o:p></span></span><br /><span lang="EN-US" style="font-family:新細明體;">guidata(hObject,handles);<o:p></o:p></span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% Hints: get(hObject,'String') returns contents of edit8 as text<o:p></o:p></span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">%<span style=""> </span>str2double(get(hObject,'String')) returns contents of edit8 as a double</span><br />以下為pushbutton的圖<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOZXTOPPr6f17sS4bdRt68ZjmWm3wes9SDQo0g-mPQ6bngRrK4It4ox5bAxelzmyNomqjHKDrTC_pZ0CmtRT3CM8EFby2odn5PTeLwcBFTVsVjDoa941JYbgeKs6ZBXP_LvNobqB_1dO4/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D5.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOZXTOPPr6f17sS4bdRt68ZjmWm3wes9SDQo0g-mPQ6bngRrK4It4ox5bAxelzmyNomqjHKDrTC_pZ0CmtRT3CM8EFby2odn5PTeLwcBFTVsVjDoa941JYbgeKs6ZBXP_LvNobqB_1dO4/s320/%E6%9C%AA%E5%91%BD%E5%90%8D5.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182102169795602" border="0" /></a> <p class="MsoNormal"><span style="font-family:新細明體;">這個程式的<span lang="EN-US">[pushbutton</span>物件名稱<span lang="EN-US">]</span>的程式碼為</span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:blue;" lang="EN-US">Function </span><span lang="EN-US" style="font-family:新細明體;"><span style=""> </span>pushbutton</span><span style="font-family:新細明體;">物件名稱<span lang="EN-US">_Callback(hObject, eventdata, handles)</span></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:green;" lang="EN-US">% hObject<span style=""> </span>handle to pushbutton3 (see GCBO)</span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:green;" lang="EN-US">% eventdata<span style=""> </span>reserved - to be defined in a future version of MATLAB</span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:green;" lang="EN-US">% handles<span style=""> </span>structure with handles and user data (see GUIDATA)</span> </p><p class="MsoNormal"><span lang="EN-US" style="font-family:新細明體;">Y=handles.edit6; <span style="color:green;">% </span></span><span lang="EN-US" style="font-family:新細明體;"><span style="color: rgb(0, 153, 0);">截取年的值</span><br />M=handles.edit7; <span style="color:green;">% </span></span><span style=";font-family:新細明體;color:green;" >截取月的值</span><span lang="EN-US" style="font-family:新細明體;"><o:p></o:p></span><br /><span lang="EN-US" style="font-family:新細明體;">K=handles.edit8; <span style="color:green;">% </span></span><span style=";font-family:新細明體;color:green;" >截取日的值</span><span style=";font-family:新細明體;color:green;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:green;" lang="EN-US">% </span><span style=";font-family:新細明體;color:green;" >以下為判斷你輸入的日子是星期幾</span> </p><p class="MsoNormal"><span lang="EN-US" style="font-family:新細明體;">if rem(Y,100)==0 & rem(Y,400)==0 | rem(Y,4)==0</span><br /><span lang="EN-US" style="font-family:新細明體;"><span style=""> </span>d1=[31 29 31 30 31 30 31 31 30 31 30 31];</span><br /><span lang="EN-US" style="font-family:新細明體;">else</span><br /><span lang="EN-US" style="font-family:新細明體;"><span style=""> </span>d1=[31 28 31 30 31 30 31 31 30 31 30 31];</span><br /><span lang="EN-US" style="font-family:新細明體;">end</span><br /><span lang="EN-US" style="font-family:新細明體;">s=Y-1;</span><br /><span lang="EN-US" style="font-family:新細明體;">c=d1(1:(M-1));</span><br /><span lang="EN-US" style="font-family:新細明體;">c1=sum(c)+K;</span><br /><span lang="EN-US" style="font-family:新細明體;">ss=s+fix(s/4)-fix(s/100)+fix(s/400)+c1;</span><br /><span lang="EN-US" style="font-family:新細明體;">dd=rem(ss,7)+1;</span><br /><span lang="EN-US" style="font-family:新細明體;">di=['</span><span style="font-family:新細明體;">日<span lang="EN-US">','</span>一<span lang="EN-US">','</span>二<span lang="EN-US">','</span>三<span lang="EN-US">','</span>四<span lang="EN-US">','</span>五<span lang="EN-US">','</span>六<span lang="EN-US">']; </span></span><br /><span lang="EN-US" style="font-family:新細明體;">ggo=sprintf('</span><span style="font-family:新細明體;">你查詢的<span lang="EN-US">%d</span>年<span lang="EN-US">%d</span>月<span lang="EN-US">%d</span>日是星期<span lang="EN-US">%s',Y,M,K,di(dd)); </span></span><br /><span lang="EN-US" style="font-family:新細明體;">set(handles.text12,'string',ggo);<span style=""> </span><span style="color:green;">% </span></span><span style=";font-family:新細明體;color:green;" >把它<span lang="EN-US">show</span>出來在藍色框框中<span lang="EN-US"><o:p></o:p></span></span><span style=";font-family:新細明體;color:green;" >如下圖</span></p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdwf5UvsyGTMxZz_dVvFP3Cyg5Lu-tkNZK13CvrFbTTAffVeyZRaFi1OEXd65aJ1R9TQOytQeuz7zgUKdmI3ooefe1cSBpzeX_6zGn7sBFIr6RxFQEYTmVbl-vU-1T45EVsEWb8iVAtzU/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D6.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdwf5UvsyGTMxZz_dVvFP3Cyg5Lu-tkNZK13CvrFbTTAffVeyZRaFi1OEXd65aJ1R9TQOytQeuz7zgUKdmI3ooefe1cSBpzeX_6zGn7sBFIr6RxFQEYTmVbl-vU-1T45EVsEWb8iVAtzU/s320/%E6%9C%AA%E5%91%BD%E5%90%8D6.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182475831950370" border="0" /></a><br /><br /><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" >另一個</span><span lang="EN-US" style="font-family:新細明體;">[pushbutton</span><span style="font-family:新細明體;">物件名稱<span lang="EN-US">]</span>的程式碼為</span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% --- Executes on button press in pushbutton4.</span><br /><span style=";font-family:新細明體;color:blue;" lang="EN-US">function</span><span style=";font-family:新細明體;color:black;" lang="EN-US"> <span style=""> </span>pushbutton4_Callback(hObject, eventdata, handles)</span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% hObject<span style=""> </span>handle to pushbutton4 (see GCBO)</span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% eventdata<span style=""> </span>reserved - to be defined in a future version of MATLAB</span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% handles<span style=""> </span>structure with handles and user data (see GUIDATA)</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">Y=handles.edit9; </span><span style=";font-family:新細明體;color:green;" lang="EN-US">% </span><span style=";font-family:新細明體;color:green;" >讀取年的值</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">M=handles.edit10; </span><span style=";font-family:新細明體;color:green;" lang="EN-US">% </span><span style=";font-family:新細明體;color:green;" >讀取用的值</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">ans=[ ];</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">if rem(Y,100)==0 & rem(Y,400)==0 | rem(Y,4)==0</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>d1=[31 29 31 30 31 30 31 31 30 31 30 31];</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">else</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>d1=[31 28 31 30 31 30 31 31 30 31 30 31];</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">end</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">s=Y-1;<br />c=d1(1:(M-1));</span><br /><span style=";font-family:新細明體;color:green;" lang="EN-US">% </span><span style=";font-family:新細明體;color:green;" >以下為建月曆的運算式</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">for k=1:d1(M)</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>c1=sum(c)+k;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>ss=s+fix(s/4)-fix(s/100)+fix(s/400)+c1;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>ans(k)=rem(ss,7);<span style=""> </span></span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">end</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">ans(ans==0)=7;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">pp=ans(1);<br />ans1=[ ];</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">k1=0;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">for n=1:6;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>for m1=pp:7</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>ans1(n,m1)=k1;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>k1=k1+1;<span style=""> </span></span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>end</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><span style=""> </span>pp=1;</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">end</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">ans1(ans1>d1(M))=0; </span><span style=";font-family:新細明體;color:green;" lang="EN-US">% </span><span style=";font-family:新細明體;color:green;" >結果</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p> </o:p></span><span style=";font-family:新細明體;color:green;" lang="EN-US">%<span style="color: rgb(51, 204, 0);"> </span></span><span style="color: rgb(0, 102, 0);">以下就是把所出來的值給代入小格子</span><br /><span style=";font-family:新細明體;color:green;" ><span lang="EN-US">(</span>這個東東,還可以修改<span lang="EN-US">)</span></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e1,'string','</span><span style=";font-family:新細明體;color:black;" >日<span lang="EN-US">');<o:p></o:p></span></span><span style=";font-family:新細明體;color:black;" lang="EN-US"><br />set(handles.e2,'string','</span><span style=";font-family:新細明體;color:black;" >一<span lang="EN-US">');<o:p></o:p></span></span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e3,'string','</span><span style=";font-family:新細明體;color:black;" >二<span lang="EN-US">');<o:p></o:p></span></span><span style=";font-family:新細明體;color:black;" lang="EN-US"><br />set(handles.e4,'string','</span><span style=";font-family:新細明體;color:black;" lang="EN-US">三<span lang="EN-US">');</span><br />set(handles.e5,'string','</span><span style=";font-family:新細明體;color:black;" >四<span lang="EN-US">');</span></span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e6,'string','</span><span style=";font-family:新細明體;color:black;" >五<span lang="EN-US">');</span></span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e7,'string','</span><span style=";font-family:新細明體;color:black;" >六<span lang="EN-US">');</span></span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e8,'string',num2str(ans1(1,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e9,'string',num2str(ans1(1,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e10,'string',num2str(ans1(1,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e11,'string',num2str(ans1(1,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e12,'string',num2str(ans1(1,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e13,'string',num2str(ans1(1,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e14,'string',num2str(ans1(1,7)));</span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e15,'string',num2str(ans1(2,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e16,'string',num2str(ans1(2,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e17,'string',num2str(ans1(2,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e18,'string',num2str(ans1(2,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e19,'string',num2str(ans1(2,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e20,'string',num2str(ans1(2,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e21,'string',num2str(ans1(2,7)));</span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e22,'string',num2str(ans1(3,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e23,'string',num2str(ans1(3,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e24,'string',num2str(ans1(3,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e25,'string',num2str(ans1(3,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e26,'string',num2str(ans1(3,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e27,'string',num2str(ans1(3,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e28,'string',num2str(ans1(3,7)));</span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e29,'string',num2str(ans1(4,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e30,'string',num2str(ans1(4,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e31,'string',num2str(ans1(4,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e32,'string',num2str(ans1(4,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e33,'string',num2str(ans1(4,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e34,'string',num2str(ans1(4,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e35,'string',num2str(ans1(4,7)));</span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e36,'string',num2str(ans1(5,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e37,'string',num2str(ans1(5,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e38,'string',num2str(ans1(5,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e39,'string',num2str(ans1(5,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e40,'string',num2str(ans1(5,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e41,'string',num2str(ans1(5,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e42,'string',num2str(ans1(5,7)));</span><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e43,'string',num2str(ans1(6,1)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e44,'string',num2str(ans1(6,2)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e45,'string',num2str(ans1(6,3)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e46,'string',num2str(ans1(6,4)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e47,'string',num2str(ans1(6,5)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e48,'string',num2str(ans1(6,6)));</span><br /><span style=";font-family:新細明體;color:black;" lang="EN-US">set(handles.e49,'string',num2str(ans1(6,7)));</span> </p><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" lang="EN-US"><o:p></o:p></span></p> 下面為顯示結果圖<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBiNPao6eOsXtJjaimuKhvgzxSpOCyAjVSrzEbHsu5t_3a1wFzXqhp4OJcLoD2QI8Aqek8Gjcgl6dwOG7uqARvJAcghGT8Ny1EClTZgqhQMXOopBIFsXdH7UKKwu6gN3XEbCGgd6HnRc/s1600-h/%E6%9C%AA%E5%91%BD%E5%90%8D7.JPG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBiNPao6eOsXtJjaimuKhvgzxSpOCyAjVSrzEbHsu5t_3a1wFzXqhp4OJcLoD2QI8Aqek8Gjcgl6dwOG7uqARvJAcghGT8Ny1EClTZgqhQMXOopBIFsXdH7UKKwu6gN3XEbCGgd6HnRc/s320/%E6%9C%AA%E5%91%BD%E5%90%8D7.JPG" alt="" id="BLOGGER_PHOTO_ID_5013182475831950386" border="0" /></a><br /><p class="MsoNormal"><span style=";font-family:新細明體;color:black;" >等程式都<span lang="EN-US">key in</span>完,就可以按<span lang="EN-US">run</span>,即可執行程式<br /><a href="http://student.ncyu.edu.tw/%7Es0934533/mo.rar"><span style="font-weight: bold;">月曆產生器檔案下載</span></a><br /></span></p><p class="MsoNormal"></p></pre><p></p></pre>Unknownnoreply@blogger.com2