《飲酒駕車模型及matlab實現(xiàn).ppt》由會員分享,可在線閱讀,更多相關《飲酒駕車模型及matlab實現(xiàn).ppt(22頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、7.5 飲酒駕車,微分方程模型及非線性擬合實驗,問題,大李喝下啤酒后,酒精先從腸胃吸收進入血液和體液中,然后從血液和體液向體外排出??梢越⒍夷P?,將腸胃看成吸收室,將血液與體液看成中心室(見下圖)。,吸收和排出的過程都可以簡化成一級反應來處理,加起來得到體液內(nèi)酒精吸收和排出過程的數(shù)學模型。因為考慮到時短時間內(nèi)喝酒,所以忽略喝酒的時間,可使初始條件得以簡化。,根據(jù)上面問題要求,可歸結為如下問題: 1、建立數(shù)學模型,并解釋大李在中午12點喝1瓶啤酒后,在下午6點檢查時體內(nèi)血液中的酒精含量小于20mg/10ml,符合“駕車標準”。 2、建立數(shù)學模型,并解釋大李在晚飯時再喝1瓶啤酒后,在凌晨2點檢
2、查時體內(nèi)血液中的酒精含量不小于20mg/100ml,不符合“飲酒駕車”的標準。,酒精量是指純酒精的質(zhì)量,單位為毫克(mg);酒精含量是指純酒精的濃度,單位是毫克/百毫升(mg/100ml); t:時刻(h); x1(t):在時刻t吸收室(腸胃)內(nèi)的酒精量(mg); k1:酒精從吸收室進入中心室的速率系數(shù); g0:在短時間內(nèi)喝下1瓶啤酒后吸收室內(nèi)的酒精量(mg); y1(t):在時刻t中心室(血液和體液)的酒量(mg); K2:酒精從中心室向體外排出的速率系數(shù); V:中心室的容積(100ml).,(4)考慮到大李在下午6點接受檢查,之后由于離開檢查地點以及停車等待等原因耽誤了一定時間,因此假定大
3、李在晚8點吃晚飯 (即大李從第一次接受檢查到第二次喝酒之間相隔了2個小時),大李在短時間內(nèi)喝下2瓶啤酒后,酒精先從吸收室(腸胃)進入中心室(血液與體液),然后從中心室向體外排出。忽略喝酒時間,并假設:,(1)吸收室在初始時刻t=0時,酒精量立即為2g0,酒精從吸收室進入中心室的速率(吸收室在單位時間內(nèi)酒精量的減少量)與吸收室的酒精量成正比,比例系數(shù)為k1.,(2)中心室的容積V保持不變;在初始時刻t=0時,中心室酒精量為0;在任意時刻,酒精從中心室向體外排出的速率(中心室的單位時間內(nèi)酒精量的減少量)與中心室的酒精量成正比,比例系數(shù)為k2.,(3)在大李(體重為70kg)適度飲酒沒有酒精中毒的前
4、提下,假設k1和k2都是常數(shù),與酒精量無關。,根據(jù)假設(1),吸收室的酒精量x1(t)滿足微分方程初值問題,,根據(jù)假設(2),中心室的酒精量y1(t)滿足微分方程初值問題:,,根據(jù)(7.5.1)和(7.5.2)得到微分方程組初值問題:,,解上述微分方程組初值問題,其matlab程序如下:,x1,y1=dsolve(Dx1=-k1*x1,Dy1=k1*x1-k2*y1,x1(0)=N*g(0),y1(0)=0) y,how=simple(x1,y1),y = N*g(0)*exp(-k1*t), k1*N*g(0)*(exp(-k2*t)-exp(-k1*t))/(k1-k2),程序運行結果:,
5、程序求解結果整理為:,,返回,式(7.5.3)可以寫成,當前任務就是,確定k,k1,k2,用MATLAB的函數(shù)nlinfit(非線性最小二乘擬合),根據(jù)賽題所給數(shù)據(jù)擬合式(7.5.4)的參數(shù)k1,k2和k.此問題的MATLAB程序如下:,f=(k,x)k(3).*(exp(-k(2).*x)-exp(-k(1).*x)); x=0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16; y=30 68 75 82 82 77 68 68 58 51 50 41 38 35 28 25 18 15 12 10 7 7
6、 4; k0=2,1,80;%參數(shù)的初值 k=nlinfit(x,y,f,k0) plot(x,y,r*,0:0.01:18,f(k,0:0.01:18),k) xlabel(時間(h)) ylabel(酒精含量) title(血液中酒精含量的擬合圖) axis(0 18 0 90) legend(原始數(shù)據(jù),擬合曲線),參數(shù)k1,k2和k的擬合結果為:,k =2.0079 0.1855 114.432524,,參數(shù)的初值設定思路:,fc=(x)k(3).*(exp(-k(2).*x)-exp(-k(1).*x)); figure(2) plot(x,y-fc(x),ro,0 18,0 0,k)
7、 axis(0,18,-10,10),結果如圖:,從原始數(shù)據(jù)擬合圖、擬合誤差圖觀察發(fā)現(xiàn)擬合效果比較好。在擬合誤差圖中只有一個誤差在-10附近,其他誤差值都在(-6,6)之內(nèi),且分布比較均勻,這說明引入的假設和建立的模型比較合理。,7.5.7.1問題(1)的應用,在問題(1)中,大李在中午12點喝了1瓶啤酒(與“參考數(shù)據(jù)”中短時間內(nèi)喝下2瓶啤酒相比,喝酒量減少一半),此時:,,根據(jù)假設(3),k1和k2保持不變,根據(jù)式(7.5.5),大李的血液中酒精含量的經(jīng)驗數(shù)學模型為:,,把t=6代入式(7.5.6),可以得到大李在下午6點被檢查時血液中酒精含量為:,,因此,此時大李符合“駕車標準”(不屬于“
8、飲酒駕車”)。,7.5.7.2 問題(2)的應用,在問題(2)中,大李在晚飯時又喝了1瓶啤酒,根據(jù)模型假設中的“忽略喝酒時間”,假設這瓶啤酒是在短時間內(nèi)喝的。,由于問題中沒有給出具體的晚飯喝酒時間,假設在晚上s點吃飯時大李又喝了1瓶啤酒,注意s6,因為大李不可能在下午6點被檢查的同時喝酒,,根據(jù)假設(3),k1和k2保持不變,則有:,根據(jù)前面的結果有:,,模型求解,用MATLAB編程求解如下:,x2,y2=dsolve(Dx2=-k1*x2,Dy2=k1*x2-k2*y2, x2(0)=N*g(0)*(1+exp(-k1*s)),y2(0)=(k1*N*g(0) /(k1-k2))*(exp(
9、-k2*s)-exp(-k1*s))) y,how=simple(x2,y2),運行結果:,y = N*g(0)*(1+exp(-k1*s))*exp(-k1*t), k1*N*g(0)*(exp(-k2*t)+exp(-k2*t-k2*s)-exp(-k1*t)-exp(-k1*t-k1*s))/(k1-k2),即:,,可變?yōu)椋?,其中,大李又喝了1瓶啤酒時,酒精含量與時間(時間t從第二次喝酒開始算,即t=14-s)的關系為:,,根據(jù)假設(4),大李在晚8點吃晚飯,把s=8,t=6代入式(7.5.9),得大李在凌晨2點被檢查時血液中酒精含量為:,此時屬于“飲酒駕車”。,當然,人們也許更關心大
10、李晚上“何時”再喝1瓶啤酒后,在凌晨2點檢查時體內(nèi)血液中的酒精含量等于20mg/100ml(即飲酒駕車的臨界時間)。此問題的MATLAB程序如下:,x=fzero(57.2163*((1+exp(-0.1855*(14-x))).*exp(-0.1855*x)-(1+exp(-2.0079*(14-x))).*exp(-2.0079*x))-20,7) T=14-x,x = 6.9584 T = 7.0416,運行結果為:,因此,大李在晚上7.0416時之后再喝1瓶啤酒,在凌晨2點檢查時體內(nèi)血液中的酒精含量就會大于20mg/100ml(這樣大李在晚上8點再喝1瓶啤酒,在凌晨2點被檢查時就會被定
11、為“飲酒駕車”)。,綜合以上解釋了: (1)大李在中午12點喝了1瓶啤酒,下午6點檢查時血液中的酒精含量為18.799320(mg/100ml),被定為飲酒駕車。,結論:,本節(jié)在短時間內(nèi)喝酒情況下,建立了體液(含血液)中的酒精含量的數(shù)學模型.該模型基于微分方程,并對給出的數(shù)據(jù)利用非線性最小二乘數(shù)據(jù)擬合法,確定了酒精從腸胃進入血液的速率系數(shù)和酒精從血液滲透出體外的速率系數(shù),根據(jù)模型得到的結果基本符合實際。模型很好的描述了酒精在體內(nèi)的變化規(guī)律,在酒精攝入時能夠較為準確地預測出不同時間的血液酒精濃度。對駕駛人員安排喝酒與開車的關系具有指導性作用,并能夠有效地防止酒后駕車的發(fā)生。,1、模型把復雜的生理循環(huán)問題轉化為酒精從腸胃(吸收室)到血液與體液(中心室)的簡單變化;2、模型簡明易懂,具有較好的通用性。,模型的優(yōu)點:,本模型存在近似誤差,是通過擬合產(chǎn)生的;另外模型未考慮不同的人對酒精的消耗速率可能存在的差異。,模型的缺點:,模型作一些修改后可以用于藥物動力學問題,對藥物在體內(nèi)的濃度變化進行研究具有一定的參考價值。,模型的推廣:,下節(jié)預告,,謝謝大家!,