99爱免费_精品一区二区无码AV_欧美屁股xxxxx_日批视频国产_AV天堂亚洲区无码先锋影音_特黄A又粗又大又黄又爽A片

產品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質分析|光譜儀|試驗機|試驗箱


儀表網>技術中心>應用設計>正文

歡迎聯系我

有什么可以幫您? 在線咨詢

儀表設計中的浮點數問題及解決辦法

   2011年02月17日 10:20  
  引言
  
  C語言以其編程效率高、代碼可移植性好、程序易于維護等特點,在儀表系統及其他嵌入式系統開發中應用十分廣泛。尤其在處理浮點數的運算過程中,C語言與匯編語言相比其優勢更加明顯。因此,C語言深得項目開發人員的青睞。但是在浮點數處理過程中,若處理不當,則會在系統調試過程中出現異常,致使系統無法工作。
  
  本文以筆者開發的某型號流量計為背景,討論了在儀表設計過程中應用C語言處理浮點數時出現的問題及相應的解決辦法,以供讀者在遇到類似的問題時參考。流量計的MCU為Microchip公司的PIC16F876A,集成開發環境是Microchip公司的MPLAB8.3,C編譯器選用HITECH公司的PICC9.5。
  
  1精度問題
  
  項目要求實時計算累積流量并刷新數據顯示,同時為防止掉電時累積量丟失,要求系統定時刷新EEPROM中累積量的值。為此,軟件設計時設置兩個變量Cumulation和Instant,分別用來存儲累計量和瞬時量。Instant根據相應的計算公式計算得到,Instant每秒累加便得累積量Cumulation。累積量的數據顯示范圍為0~99999999,至上限值后回零,重現從零顯示,要求滿量程內累積精度優于0.3%。瞬時量的數據顯示范圍為0.0001~99999,需實時刷新,測量精度優于0.5%。
  
  程序編制完畢,在調試時發現下列問題:瞬時量測量精度高于指標要求,累積量在程序運行的開始階段精度也滿足要求,但隨著測量時間的增長,累積量的實際測量值和理論計算值之間的差別越來越大,超過了技術指標的要求。若不加干涉任其運行,當時間足夠長時,顯示模塊顯示的數據不再發生變化,即流量計的累積量不再發生變化了,但此時瞬時量顯示的數據依舊正確。某次測試時,通過設置流量計參數,使瞬時量理論值為3600m3/h,以10min為一個測量周期進行測量,理論計算得累積量每個周期應累加600。實測數據如表1所列。
  
  由表1中的數據可知,第1個測試周期精度滿足要求,從第2個周期開始誤差已經超過了技術指標要求,并且誤差隨著時間的增加而增大,在這種狀態下流量計是無法正常工作的。那么問題出現在什么地方呢?經過查閱資料和仔細研讀程序發現,在定義累積量和瞬時量時采用了如下形式:
  
  doubleCumulation;
  
  floatInstant;
  
  使用了編譯器PICC9.5的默認編譯設置。查閱編譯器的使用手冊得知,HI-TECH公司的編譯器PICC9.5的浮點數采用IEEE754規范,一個float類型數據占24位,同時支持以24位、32位兩種方式存儲一個double型數據,但為了節約存儲空間,在不對編譯器選項修改的情況下,double型數據采用的也是24位。顯然,在此默認情況下累積量的計算精度不能滿足要求。
  
  通過修改編譯器選項,使double型數據以32位格式存儲,同時修改程序的其他相關地方后,重新進行測試。測試時通過設置流量計參數,使瞬時流量理論值為3600m3/h,以1個小時為一測量周期,顯然累積量每小時的累積值理論上應為3600。實測數據如表2所列,測試開始時刻Cumulation等于50。
  
  比較表1和表2的數
   據可知,修改效果十分明顯,在同等的測量條件下儀表連續運行27小時后,累積量的測量精度仍然滿足技術指標要求。但存在的問題也很明顯,通過對比數據發現,累積量的測量誤差是隨著時間的增加而增加的。可以預見,當運行的時間足夠長時測量誤差zui終會突破技術指標的要求,實驗結果確實也證明了這一點。
  
  經過研究發現,問題出現在處理累積量的方法上。在前面的程序中直接通過每秒執行一次語句“Cureulation=Cumulation+Instant;”來計算累積量。而參考文獻明確告訴我們,兩個浮點數相加時,其誤差隨著兩個數差別的增大而增大,表2中誤差的變化規律也證明了這一點。這是因為每次執行語句“Cumulation=Cumulation+Instant;”時,Instant是不變的,而Cumulation在不斷增加。當兩者大小相差的數量級足夠大時,Instant與Cumulation相加會丟失Instant,致使流量計累積量讀數不再發生變化,這也是前面調試時出現問題的原因。
  
  這個問題可以應用匯編編程的處理方法來解決,但此種方法比較繁瑣,編程比較困難。本文給出了一種新的處理方法。上述大數加小數丟失小數的情況在整數相加時是不存在的,同時,流量計在運行時當測量的瞬時流量小于下限流量時會當作干擾信號切除掉,累積量無需累加。實驗數據表明,當瞬時流量在下限流量和上限流量限定的全量程范圍內變化時,累積量小于4000時測量精度*技術指標的要求。我們采用的辦法是,將累積量分兩部分來存儲。為此,另定義一個unsignedlong型變量HBCumu,每當Cumulation累加超過2000時執行下述操作:
  
  HBCumu=HBCumu+2000;
  
  Cumulation=Cumulation-2000;
  
  即每次將Cumulation中的2000轉存到HBCumu中,由于計算HBCumu時采用的是整數相加,因此不存在精度問題。同時通過此種操作,可以把Cumulation和Instant的大小差別限定在一個合適的范圍內,從而保證計算Cumulation時精度滿足要求。在EEPROM中分別給HBCumu、Cumu-lation開辟有獨立的存儲單元,每個存儲周期分別存儲兩者的值。當前累積量的真實值等于HBCumu和Cumulation的和,顯示數據時先求兩者的和再進行顯示。采用新方法后,在與前述相同的測試條件下重新對流量計進行測試,實測數據如表3所列。測試開始時刻,流量計的初始讀數為86。
  
  比較表3和表2的數據可以看出,采用轉存方法對累積量進行存儲后,很好地解決了測量精度隨時間增加而變差的問題。我們對累積量計數滿99999999的前后階段也進行了測試,實驗結果表明,測量誤差與表3中的誤差一致,這表明在全量程范圍內誤差都穩定在一個令人滿意的范圍內。此種方法與利用匯編編程處理的方法相比,避免了利用匯編代碼處理浮點數的繁瑣工作,保持了C語言的性和代碼的良好移植性。
  
  2存儲問題
  
  項目要求在流量計正常運行時能夠隨時設定液體的密度、流量系數等參數,并且這些參數小數點后數據的位數固定。比如密度設定值,數據設定范圍為0.001~999.999,小數點后固定為3位數據。程序編制完畢在調試階段發現的問題是,當把參數設置完畢存入EEPROM、再讀出來時,讀出的數據和存入的數據并不一致。比如設定密度值為123.456,設定完畢存入EEPROM,然后讀出來的數據是形如123.454這樣的數據。
  
  經過仔細研究zui終發現,問題還是出現在對float型數據的處理上。由參考文獻可知,float型數據在存儲時,存儲的并不是值,而是近似值。而在設計程序時,定義密度設定值dEn為float型,并直接對其進行存取處理。針對這個問題的處理辦法是,定義dEn為unsignedlong型的數據,其中存放的數據是密度實際設定值放大1000倍后的數據,在程序其他地方用到密度設定值時,只需要將其除以1000得到真實值即可。這樣在參數設定完畢存入。EEPROM及從EEPROM中讀出數據時,實際上都是以整數形式進行操作的,這樣就可以保證數據的正確性。為了給操作者一種仍舊是在設定一個小數點后有3位小數的參數的感覺,在設定和顯示參數過程中,始終點亮LCM141相關數據位的小數點。
  
  結語
  
  本文討論了筆者在設計流量計的過程中,利用C語言操作浮點數所遇到的問題,這種問題在其他儀表及嵌入式系統設計中也是普遍存在的。針對這些問題給出了解決方法,且已經成功地在實際項目中得到應用,具有一定的參考價值。

免責聲明

  • 凡本網注明“來源:儀表網”的所有作品,均為浙江興旺寶明通網絡有限公司-儀表網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:儀表網”。違反上述聲明者,本網將追究其相關法律責任。
  • 本網轉載并注明自其它來源(非儀表網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
聯系我們

客服熱線: 15267989561

加盟熱線: 15267989561

媒體合作: 0571-87759945

投訴熱線: 0571-87759942

關注我們
  • 下載儀表站APP

  • Ybzhan手機版

  • Ybzhan公眾號

  • Ybzhan小程序

企業未開通此功能
詳詢客服 : 0571-87759942
主站蜘蛛池模板: 女女同性=aV片在线播放免费|91久久香蕉囯产熟女线看|在线观看国产日韩亚洲中|97se国产在线公开视频|日本欧美视频|国产成人短视频在线观看 | 少妇天天干|一本久道久久综合中文字幕|色哟哟国产成人精品免费|国产主播户外勾搭人xx|精品无人区无码乱码毛片国产|亚洲欧美中日精品高清一区二区 | 国产无码一区二区|韩日午夜|国产精品男人天堂|免费在线观看国产黄|欧美精品黑人粗大|欧美一区观看视频 | 日本真人边吃奶边做爽动态图|青娱乐激情视频|日本熟妇人妻XXXXX免费看|日本天堂免费|国产麻豆xxxxhdfree|亚洲码欧美码一区二区三区 | 亚洲乱小说|未满十八18禁止免费无码网站|日韩=av免费网址|在线国v免费看|人成午夜大片免费视频77777|亚洲激情影院 | 精品久久久久久777米琪桃花|蜜芽亚洲=aV无码精品色午夜|成人碰碰视频|99国产精品久久久久老师|内地级=a艳片高清免费播放|久久久久爽爽爽爽一区老女人 | 精品人妻中文字幕无码蜜桃臀|高清视频播放在线观看|色综合久久中文综合网|国产精品视频在线观看|美女爽到呻吟久久久久|亚洲国内精品 | 一区二区三区不卡视频在线观看|亚洲成=a人片777777美国|午夜福利啪啪无遮挡免费|日本午夜网|日本在线一区二区三区欧美|99免费观看视频 | 中国极品少妇xxxxx小艳|久久国产日韩|九七=av|欧美一级淫片免费看|少妇搡BBBB搡BBBB毛多多|无码人妻一区二区三区巨免费 | www.视频一区|韩国伦理片在线|无码熟妇人妻=av在线影片免费|亚洲入口|爽到憋不住潮喷大喷水视频|蜜桃视频www 色播六月天|色综合久久久久久久久久|国产精品久久久久不卡绿巨人|国产精品视频一区国模私拍|久久婷综合|精品麻豆剧传媒=av国产 日韩=a网|超碰=av在线|国产综合久|三级视频在线|久久精品毛片免费观看|护士精品一区二区三区99 | 少妇大战黑吊在线观看|淫片毛片视频|日本精品www|国产成人久久精品77777|亚洲国产欧美在线观看的|国产精品色情国产三级在 | 日本真人边吃奶边做爽免费视频|麻豆中文字幕|九色porny丨首页入口在线|亚洲黄色片一级|2024韩国三级午夜理论|尤物一区二区 | 蜜臀91精品一区二区三区|亚洲中出视频|啪啪玩小处雏女|精品日韩一区二区|久久婷婷综合色丁香五月|亚洲视频在线观看网站 | 把女人弄爽=a片免费视频|999精品免费视频|五月婷在线|高清色惰WWW日本COM|一二三区=av|永久在线观看免费视频 | 国产一区黄|午夜福利国产成人无码GIF动图|骚色综合|国产婬乱=a一级毛片多女|99久久九九国产精品国产免费|久久久久成人精品免费播放动漫 | 免费无码又爽又刺激高潮的动漫|欧美日日日|亚洲=aV无码一区二区三区在线播放|国产九九=av|中文字幕无码视频专区|中文字幕一区二区三区手机版 | 第一=av在线|影音先锋亚洲=aV资源网站|日本WV一本一道久久香蕉|国产精品高清一区二区三区|欧美=a级在线|啪啪免费视频在线观看 | 精品国产一区二区三区久久久蜜臀|亚洲中文字幕无码一区在线|女同福利|国产一级视频在线观看|久久人妻公开中文字幕|#NAME? 午夜特片|中文久久久久|亚洲精品美女色诱在线播放|大地资源在线观看视频在线|99久久婷婷国产综合精品免费|豪放女大兵免费观看bd | 少妇高潮尖叫黑人激情在线|99久久精品国产观看|日韩干干干|精品欧美一区二区三区久久久小说|免费看黄色片|#NAME? | 日本公交车上xxxxhd少妇|五月开心六月伊人色婷婷|97国产suv精品一区二区62|久久99精品久久久久久久清纯|精品国产欧美日韩|黄色网页入口 | 亚洲精品久久国产精品|亚洲三区精品|麻豆精产一二三产区|午夜嫩草嘿嘿福利777777|亚洲日本久久|亚洲中文无码永久免弗 | 国产做=a爰片久久毛片=a我的朋友|国产精品免费精品自在线观看|石原莉奈视频一区二区|亚洲四区网站|热久久国产视频|久久久久久美女 | 青青草免费在线视频播放|欧美国产一区二区三区|久久综合站|国产=aV视频一区二区|国产精品色在线免费|大片免免费观看视频播放器在线观看 | 高清偷自拍第1页|午夜精品久久久久久久爽|黄色影院网站|国产午夜无码片在线观看影院|性一交一乱一乱一视频96|久热精品在线观看视频 | 啄木乌欧美一区二区三区高压监狱|久久综合狠狠|日本亚欧乱色视频在线观看|亚洲=av毛片久久久久|国产亚洲精品二区|波多野结衣免费观看视频 | 亚洲永久精品国语字幕|yellow中文字91幕国产在线|综合在线国产|少妇被粗大猛进去69影院|久操视频在线看|夜夜性日日交xxx性视频 | 色综合天天综合高清网国产在线|国产精品九九九九|国产乱妇乱子|国产色情理论在线观看视频|久久影院精品|寂寞骚妇被后入式爆草抓爆 | 成全高清视频免费观看|亚欧在线观看视频|天天躁日日躁狠狠躁欧美老妇|性感一级片|日韩一区免费观看|欧美日韩在线免费观看 | WWW免费视频在线观看播放|欧美日本一道本一区二区|999在线精品视频|国产十日韩十欧美|天堂网中文字幕在线观看|日韩一二三四 | 日韩小视频网站hq|免费观看视频的网站视频|色情无码WWW视频无码区|国产精=av|国产人妻无码一区二区三区不卡|色我综合 | 唯美清纯亚洲|最近的2019免费中文字幕|西西人体www大胆高清视频|成人超碰97|婷婷射吧|亚欧洲精品视频免费观看mv在线观看 | 国产精品第一页在线播放|久久精品人人人人人人|亚洲精品一区久久久久一品=aV|欧美7777|美女全身赤裸裸免费网站|在线视频三区 | 中文字幕无码无码专区|一极毛片|超碰不卡|成人三级k8经典网|日本一级毛片视频|国产免费艾彩sm调教视频 | xvideos国产在线观看|国内精自视频品线一区|国产免费久久精品99RESW=aG|又大又长粗又爽又黄少妇视频|毛片大片|成人一区二区三区在线 | 青青青在线视频国产|亚洲精华国产精华液|伊人网综|国产免费久久精品久久久|一本丁香综合久久久久不卡网站|国产毛片精品国产一区二区三区 | 台湾久久网|99久久精品免费看国产四区|亚洲一区二区三区在线视频观看|一区二区三区四区在线免费视频|红桃视频二区|国产久艹视频 | 午夜国产在线|国产人妻无码一区二区三区婷婷|中文字幕免费在线看|2021国产麻豆剧传媒精品入口|日日射夜夜|免费久久99精品国产 | 婷婷综合久久狠狠色99H|精品国偷自产在线视频99|999久久久无码国产精品|国产精品一区二三区|激情中文小说区图片区|国产亚洲日 | 久久精品九九热无码免贵|日本=aⅴ精品一区二区三区|亚洲国产精品一区二区成人片|国产精品91久久|久草=av在线播放|亚洲在线www | #NAME?|国产欧美精品久久久|欧产日产国产水蜜桃|亚色国产|国产=aV无码专区亚洲=aV毛片搜|久操久操 | 亚洲专区第一页|少妇高潮一区二区三区|四虎影院www.|在线精品视频一区二区三四|手机看片福利久久|亚洲=av成人网 |