久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

公交車自動報站系統設計的論文(全文5篇)

時間:2019-11-15 06:14:04下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《公交車自動報站系統設計的論文》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《公交車自動報站系統設計的論文》。

第一篇:公交車自動報站系統設計的論文

隨著科學技術的不斷發展、生活水平的不斷提高,GPS技術也得到了空前的發展。GPS主要是不斷接收同步衛星的信號并將其信號解析出相應的數據還原成為經緯度信號,根據經緯度信號則可以實現定位功能,傳統的導航定位技術也是采用了該原理來實現。隨著GPS的普及,成本也不斷的降低,可以根據相應的技術來實現其擴展功能,如可以將其技術應用在公交車上。本文主要介紹根據GPS技術實現公交車的自動報站和調度,不需要人為的直接干預達到公交車系統自動運行的目的。本文主要是將微電子技術、自動控制技術、GPS技術、語音技術綜合在一起實現一個智能化的系統。

國內外在智能公交車方面的研究早在20世紀初就開始,采用的技術不盡相同功能也各異。國內一些公交車系統主要采用的是人工干預電腦控制的方式實現智能報站等功能。其工作方式如下:在系統內部提前設置好上下路線對應站臺的相關設置,司機師傅在行駛車輛的同時也必須時刻關注站臺的距離,當車輛臨近站臺時則手動按下相應的按鍵實現報站功能^該種方式可以實現報站是毋庸置疑的,但是根據站臺人員數量的不同、司機師傅的疲意程度、道路的擁擠程度都會造成站臺的漏報、錯報的現象,影響人們的出行和交通服務的質量,還有可能造成潛在的安全隱患。因此,新一代的智能報站系統的需求與日俱增。

智能語音報站結構設計:

GPS語音報站系統集合了全球定位系統技術、語音播報技術、顯示提示技術于一體的綜合技術,可以實現車輛的自動報站和自動定位,大大的減少的交通安全的出現和極大的提髙效率。采用GPS技術的主要原因是不管GPS制造技術還是解析GPS數據信息的算法技術都很成熟、安全性高、體積小、方便攜帶,采集信號后可以在各種顯示電路上就其基本信息顯示出來。本系統主要采用6H級別的GPS接收模塊對衛星數據進行接收,以STC89C52作為主控芯片用于對GPS信號的解析,最終得出當前的位置、經緯度、時間、偏航角、速度、海拔、時間等信息。將解析出來的經緯度信息與單片機內部儲存的地址信息不斷對比,如果二者信號一直則啟動語音播報動作。系統時刻采集GPS信號,根據解析出的GPS經緯度信息來判斷汽車當前的位置信息,當汽車到達本站時則啟動相應的語音電路和液晶顯示電路以提醒用戶達到目的站臺。系統確保司機的正常行駛還設定了超速警告的電路,當汽車的行駛速度超過設定的值時,系統則會自動啟動聲光報警電路直到汽車的速度在安全行駛速度范圍內警告信號才自動解除,使得系統更加安全可行的進行。

系統的總體方案:

目前,太空中一共有24顆衛星時刻向人類提供服務,這24顆衛星分別以55°的角度分布在地球上空20—200KM的軌道面上,衛星之所以這樣分布的原因在于使得地球上的任何地方在任何時候都可以保證能夠接收到至少6顆衛星信號的數據,以確保GPS快速準確的定位導航,一般衛星數量越多則GPS定位的速度、精度就越高,出現漂移問題就越少。這24顆衛星可以源源不斷的向用戶提供需要的數據,數據以廣播式的方式散發出去,數據的類型是完全共享的所以能夠減低很大的成本,不需要后期續費使用。

系統的硬件設備主要有單片機、電源模塊、語音播報模塊、GPS模塊以及液晶顯示模塊,通過相關的技術來解決個設備之間的相互通信問題即主要是通過單片機來解析GPS接收來自衛星的數據來實現確定當前的經煒度、時間、速度等信息并通過液晶電路將其解析的數據及時準確的顯示出來即完成自動報站和超速警告任務。執行的過程:通過GPS模塊時刻接收衛星不斷發送的數據,并根據四顆及以上的不同衛星信號經過單片機算法的處理后計算出當前的經緯度、時間、速度、海拔等信息,隨后再由主控制器驅動相關的語音播報和液晶顯示電路工作,實現自動報站和超速警告的工作。

該系統主要涉及的技術內容有:

(1)電源模塊的設計。GPS接收模塊不斷接收衛星的數據,功率越大則信號越強、速度越快、精度越高,所以一個可靠的電源電路是保證系統正常可靠運行的前提。

(2)GPS模塊的選擇。由于GPS技術的不斷普及GPS模塊類型繁多,選擇合適的GPS則成為重點問題,軍品級別的GPS成本簡直是個天價用戶也是消費不起的;價格低廉的GPS則精度低、速度慢、抗干擾能力差。本系統通過對種GPS模塊的研究和分析得出兩款GPS模塊類型能滿足人們的日常使用即6M和6H類型的GPS。后者相對于前者則精度要高、速度快、抗干擾能力強,系統通過研究分析得出6H更適合全球定位系統的設計工作。

(3)液晶模塊的選擇。公交車自動報站系統的服務對象是百姓即希望每個人群都能容易接受,所以設計的顯示電路應該是人們都認識的中文漢字,以便于人們閱讀相關信良。

語音模塊的選擇。系統最為人性化的就是能夠聽到真人發音播報站臺信息,為了能更好的突出人性化的特點、更好的還原真人的發音系統對語音電路的選擇條件則更加苛刻。通過不斷的測試發現市場上語音芯片ISD1730能夠很好的還原語音信號,該芯片的失真信號小、播報語音信號強完全能夠勝任公交車自動報站要求。

人們一般通過在便捷式設備上安裝模塊接收衛星數據最終達到導航定位的目的。GPS導航定位基本原理:GPS衛星實際上是向用戶發送的是時間和衛星當前的信號,用戶使用的GPS模塊主要是接收其發送的相關信息,并通過一定的算法測量出衛星數據從發送到接收的延遲時間,同時根據衛星發送的信號解析出衛星到用戶的距離。這就是為什么至少需要4顆以上包括4顆衛星信號才能定位成功的原因。

系統的創新點:

系統采用的是成熟的科學技術手段,利用GPS模塊采集衛星數據解析出當前的位置信息,單片機接受數據信號實現自動播報站臺信息提醒司機、乘客朋友準備停車下站,與此同時還可以自動的得出顯示出當前站臺的信息,實現聲圖并茂的顯示出來,靈活方便擴展能力強、系統可移植性高,整個過程不需要人員的直接干預,保證司機可以專心駕駛車輛確保乘客的安全,提髙系統的可靠性能。

總結

針對文的智能控制系統能夠滿足公交車智能報站的基本功能,具有自動報站功能的同時還可以自動檢測汽車的速度,超出安全速度時則能夠啟動聲光警報信號提醒司機正常駕駛。確保車倆安全、可靠的運行。

綜合國際的發展可以發現GPS技術伴隨我們走過了幾個世紀了,GPS技術的廣泛使用,便捷式移動設備也得到了極大的普及,而在國內各行業中GPS技術還在起步階段,因此對于推廣GPS技術的產業化發展具有廣泛的市場價值,GPS技術不僅僅能夠使用在公交車報站、導航技術上,同時還可以進一步開發如可以開發出智能汽車的自動調度,根據汽車的行駛路徑進行自動的調節來緩解道路擁擠的交通問題等。總而言之,GPS技術可以在各行各業的單位、企業中發揮巨大的作用,為人類文明建設貢獻出無窮的力量。

第二篇:自動騎馬訂書機系統設計

齊齊哈爾大學畢業設計(論文)

摘要

騎馬訂書機一種快速高性能的訂書設備,大部分印刷廠都配有該設備。傳統的騎馬訂書機設備,在高速工作狀態下,很容易發生堵紙現象。本次設計中對傳統的騎馬訂書機的電氣系統進行了改造,對訂書機頭增加了電磁控制裝置,在容易發生堵紙增加了微動開關,增加了光電傳感器檢測裝置,從而很好地解決了,高速工作下的堵紙現象。本設計中還對傳統騎馬訂書機的控制系統進行了PLC改造,使其控制系統更加智能化,提高了工作效率,減少了工人的工作量。關鍵詞:電磁控制;光電傳感器;微動開關;PLC

I

齊齊哈爾大學畢業設計(論文)

Abstract Combined saddle stitching, a fast high-performance stapler device, most of the printers are equipped with the device.Stapler riding equipment, state of the high-speed operation, it is prone to the phenomenon of blocking the paper.The design of the electrical system of the traditional riding stapler transformation of electromagnetic control device, a micro switch prone to blocking the paper, an increase of the photoelectric sensor detection device on the stapler head, so good the solution to the phenomenon of blocking paper in the high-speed work.This design the control system of the traditional riding stapler PLC transformation to make it more intelligent control system to improve the work efficiency, reduce the workload of the workers.Key words: electromagnetic control; photoelectric sensor;micro switch;PLC

II

齊齊哈爾大學畢業設計(論文)

目錄

摘要......................................................................I ABSTRACT.................................................................II 第1章 緒論..............................................................1 1.1 騎馬訂書機的產生背景及印刷行業的發展狀況..........................1 1.2 騎馬訂書機的發展趨勢..............................................2 1.3 騎馬訂書機的書釘成型過程...........................................4 第2章 自動騎馬訂書機的傳動機構的設計....................................5 2.1 電動機的選擇......................................................5 2.1.1電動機類型的選擇..............................................5 2.1.2電機容量的選擇................................................5 2.2 齒輪傳動設計......................................................6 2.2.1齒輪傳動的簡介................................................6 2.2.3按齒面接觸強度設計齒輪........................................8 2.2.4按齒根彎曲強度設計...........................................11 2.2.5齒輪幾何尺寸的計算...........................................13 2.3 軸的設計及校核...................................................13 2.3.1 齒輪作用在傳動軸上的力.......................................13 2.3.2初步估算軸的最小直徑.........................................15 2.3.4軸上的載荷...................................................17 2.3.5校核軸的強度.................................................17 2.4 帶傳動的設計.....................................................20 2.4.1概述.........................................................20 2.4.2帶傳動的設計計算.............................................21 2.5 凸輪的設計.......................................................24 2.5.1凸輪的簡介...................................................24 2.5.2確定凸輪的基本外形尺寸.......................................24 第3章 騎馬訂書機的電氣控制設計.........................................30 3.1 騎馬訂書機的特點及控制要求.......................................30 3.2 電氣線路設計.....................................................30 3.2.1 執行電路的設計..............................................30 3.2.2控制電路的設計...............................................31 I

齊齊哈爾大學畢業設計(論文)

3.3電器元件的選擇....................................................31 3.4編制電氣元件明細表................................................35 第4章 自動騎馬訂書機的PLC控制設計.....................................36 4.1 PLC的簡介.......................................................36 4.1.1PLC的定義及基本結構..........................................36 4.1.2PLC的特點及應用范圍..........................................37 4.1.3PLC的工作原理................................................38 4.1.3PLC的選擇原則................................................38 4.2 自動騎馬訂書機的PLC選型及控制電路改造...........................39 4.2.1自動騎馬訂書機的PLC類型選擇.................................39 4.2.2PLC控制電路設計..............................................40 結論.....................................................................43 參考文獻.................................................................44 致謝.....................................................................45 II

齊齊哈爾大學畢業設計(論文)

第1章

緒論

1.1 騎馬訂書機的產生背景及印刷行業的發展狀況

20世紀50年代,二次世界大戰結束世界經濟逐步發展,印刷行業的業務量日益增加,老式的訂書機設備已不能滿足大批量的印刷的要求,高效率的騎馬訂書機應運而生。20世紀60年代騎馬訂書機逐步在各個國家得到應用,極大地提高了,印刷行的工作效率。

近年來,我國經濟飛速發展,其中廣告類印刷品,連續5年保持7.5%以上的高速增長,2011年的總產值突破15萬億大關。其它的文化印刷品也有很大的提高。根據十二五規劃,“十二五”期間,文化產業要實現跨越式發展,并在2016年成為國民經濟支柱性產業。作為文化產業的一個重要組成部分,印刷產業尚有很大發展空間。黨的十七屆六中全會通過的《關于深化文化體制改革推動社會主義文化大發展大繁榮若干重大問題的決定》,給文化產業重要組成部分的印刷業也帶來了前所未有的發展機遇。隨著人民群眾的生活水平的提高,隨著文化大發展大繁榮,群眾在文化消費上將迎來一個高消費期。

新聞出版總署“十二五”期間實施重大項目帶動印刷產業發展的重要舉措和引導產業實現轉型升級扶持政策的相繼出臺,為印刷產業發展創造了良好的文化氛圍和市場政策環境,印刷行業形成的綠色、創意、和諧發展的印刷產業發展理念,為印刷產業發展打開了智慧的閘門,對綠色印刷業的推進,將促進印刷企業有一個飛躍性的發展,也將牽動著含有綠色印刷技術、符合環保要求的設備、器材、出版、包裝、個性化印刷品產業鏈條的膨脹性的迅猛發展。

剛剛過去的北京國際圖書節以“綠色印刷”為主題。綠色印刷也是未來印刷業發展的一個重要方向。從實施綠色印刷戰略合作協議到未來五年實施綠色印刷的階段性目標的確立,一直到關于中小學教科書實施綠色印刷的通知的頒布,我國綠色印刷工作已經進入實質性實施階段。不久前,全國評選出來的獲得環境標志產品認證的印刷企業已經達到103家,我們可以看出來全國范圍的綠色印刷工作也在有條不紊的展開著。從這一份103家印企獲綠色“身份證”的印刷企業名單中,我們可以清楚的看到北京地區獲得環境標產品認證的印刷企業已經達到15家,僅次于江蘇省,屈居第二位。同時,有10家及以上印企獲得認證的地區包括北京、上海、江蘇、廣東。可見在這些區域印刷行業的發展還是很發達的,對于綠色印刷工作的開展也是十分積極。為了促進綠色印刷工程的實施,從不久前的針對中小學教科書提出來的要求從今年秋季學期起,全國各地使用的綠色印刷中小學教科書數量要占到本地中小學教科書使用總量的30%;再經過1到2年,1

齊齊哈爾大學畢業設計(論文)

基本實現全國中小學教科書綠色印刷全覆蓋。到現在首批綠色印刷嬰幼兒圖書首發以及獲得環境標志產品認證的企業不斷增多。

可見,為了推動我國綠色印刷行業的發展,從政府到企業,再到個人,大家都用不同的方式積極地促進著,從政策的制定,通知的頒布,到具體的實施,每個人為綠色印刷的有利實施做著貢獻。一系列的事實說明我的印刷行業正在向著綠色節能高效的可持續發展的道路上來。

1.2 騎馬訂書機的發展趨勢

騎馬訂書機機最早出現在歐洲,經過幾十年的發展.技術有了很大的提高。近幾年,隨著計算機技術網路技術,PLC技術的發展,相應的的技術不斷應用到騎馬訂書機機上使其功能越來越完善。同時,隨著客戶要求的不斷提高.騎馬裝訂聯動機又增設了許多新功能.如卡紙粘貼、自動上書帖、噴碼等。隨著自動控制技術以及自動控制技術的發展自動騎馬訂書機主要有以下的發展趨勢。

1、自動化程度越來越高

隨著社會經濟的發展,印刷行業的生產批量日益增多,印刷行業的熟練工有嚴重匱乏,自動化程度的提高顯得日益重要。自動化程度的提高主要體現在PLC技術的應用、自動調整書帖規格以及完善的總體自動檢測檢測系統3個方面。自動調整整書帖規格開本大小已經成為騎馬裝訂聯動機的總體發展趨勢,只要在屏幕中輸入書本的控制器便能自動對開本大小進行調整。精密達FENGMI半自動騎馬訂書機上淮南光華光神DQ404-02半自動騎馬訂書機上海紫光DQB450自動騎馬訂書機都具備該功能,并且上海紫光DQB450自動騎馬訂書機還具有接收網絡數據的功能,即能夠根據網絡上的相關數據對機器進行調整,從而實現印前、印刷及印后裝訂的全程數字化。

2、功能越來越完善[1] 隨著客戶要求的不斷提高,以及相應技術的發展自動騎馬裝訂機又增設了卡紙粘貼、自動上書帖、噴碼等新功能。如瑞安市繆氏印刷機械有限公司產品新設備DQ404A-02/DQ404B-02型半自動騎馬訂書機淮南光華光神機械電子有限公司光華光神的DDQ404-02GD半自動騎馬訂書機都備有自動上書貼功能以減輕工人的勞動強度,提高生產效率。此外,書本裝訂時,通過噴碼機器對書冊內外側進行噴碼,如郵政編碼、地址等。Osako公司的Prima 能夠完成這項個性化的裝訂功能,而且上海紫光公司計劃將其應用到下一代騎馬裝訂聯動機中。

3、速度越來越高,功能越來越穩定[2]

早在20世紀70年代初,上海訂書機械廠就已生產了PDQ一02型騎馬裝訂聯動機,最大生產能力為6000本/小時。到了20世紀90年代,又研制出FENGMING型騎馬裝 2

齊齊哈爾大學畢業設計(論文)

訂聯動機(如圖1-1),最高速度達1萬本/小時,不僅改進和提高了穩定性、可靠性和操作性,而且在外觀上都有了不同程度的改善。2003年.上海紫光機械有限公司相繼研制出LQDl0和LQD8F騎馬裝訂聯動機,LQDl0的性能與LQD8E相比有了很大的提高.最高速度達到1.2萬本/小時最大開本尺寸為480mm×320mm。搭頁機叼紙輪軸采用雙叼牙結構.提高了搭頁過程的穩定性,對于正反長短邊書帖.既能用鋼皮叼牙打開,也能用真空吸嘴搭無長短邊書帖。三面切書機改進為先切前1:3,再切邊口的形式。海德堡和馬天尼公司是生產騎馬裝訂聯動機的兩家大公司,其中海森堡公司最新研制的自動騎馬訂書機速度在2萬本/小時以上。

圖1-1 “FENGMING”騎馬訂書機

4、集成化、綠色化程度越來越高

進入21世紀來社會經濟的飛速發展,化石能源的日益枯竭低耗能、高效率的的發展模式越來受到各國政府及企業的重視。綠色低耗能低污染化,綠色技術是一門綜合技術,節約能源、節約資源、提高生產率是綠色制造技術的核心要求。事實上,綠色制造技術的應用既是可持續發展的客觀要求,也是市場競爭的需要。近幾年由于電力電子和數控技術的進步,以及直線電機、力矩電機、電主軸、光柵檢測等部件的成熟,直驅技術訂書機的應用速度加快,國外多家訂書機企業的新產品已使用直線電機驅動。直驅技術的應用將極大推動訂書機的結構改變和性能提高,也大大降低了訂書機的能耗。

近幾年來印刷行業迅速發展,人工成本越來越高,選擇高效率的機器逐漸成為大型印刷行業的共識。隨著計算機技術,PLC技術的發展,訂書機越來越集成化,訂書,裁 3

齊齊哈爾大學畢業設計(論文)

剪,印刷逐漸集為一體。集成化的訂書機,能夠同時完成多項功能,提高了機器的效率,減少了工人的工作強度,同時又節約了工人成本,增加了企業的競爭力。

1.3 騎馬訂書機的書釘成型過程

騎馬訂書機的書釘成型過程包括:送料,切斷,和做訂三個過程。送料時中刀滑板下行,短銷推動連桿單向機構逆時針旋轉,鐵絲從穿絲嘴穿入,鐵絲便夾在二滾輪中靠摩擦力傳動,經鐵絲導軌從切料軸的孔中穿出,進入成型模長槽中。切料當鐵絲到達一定位置時,邊刀滑板上行,其中部的凸塊推動切絲搖臂的斜面而使其逆時針旋轉,由此刀架下移,刀片把鐵絲切斷。中刀滑板上行到一定高度,成型模由壓簧推入,是切斷了的鐵絲邊刀上鐵絲槽的正下方,隨后,邊刀滑板下行,邊刀的上的鐵絲槽壓向成型模兩端伸出的鐵絲,彎成門字形的訂書釘。成訂過程如圖1-2所示:

1-切料刃軸;2-切料刀片;3-成形鉤;4-鐵絲;5-咬絲鉤;6-邊刀滑板;

圖1-2 騎馬訂書機的成釘過程

齊齊哈爾大學畢業設計(論文)

第2章

自動騎馬訂書機的傳動機構的設計

2.1 電動機的選擇

2.1.1電動機類型的選擇

電磁調速異步電動機又稱滑差電機[7],它是一種利用直流電磁滑差恒轉矩控制的交流無級變速電動機。由于它具有調速范圍廣、速度調節開滑、起動轉矩大、控制功率小、有速度負反饋、自動調節系統時機械特性硬度高等一系列優點,因此在印刷機及騎馬訂書機、無線裝訂、高頻烘干聯動機、鏈條鍋爐爐排控制中都得到廣泛應用。如801型對開立式停回轉凸版印刷機、JS2101型對開雙面膠印機,J2105型對開單色膠印機、J2108型對開單色膠印機、PZ4880-01A型對開四色膠印機等印刷機械采用這種電動機就更能符合印刷工藝要求。

因此,本次設計選擇電磁調速異步電動機(又稱滑差電機)。該電動機具有以下主要優點:

(1)交流無級調速,機械特性硬度較高;

(2)結構簡單、工作可靠、維護方便、價格低廉;

(3)調速范圍大,用在像印刷機這樣的恒轉矩負載時,一般可達10:1,有特殊要求(如輪轉機)時亦可達50:1;

(4)可調節轉矩。在現代化的聯合輪轉機中,都應用了自動化的紙張拉緊機械,它可以達到隨著卷筒紙直徑的變化,調節離合器的轉矩經保持拉力不變。

2.1.2電機容量的選擇

電機工作的有效功率

該設備,切鋼絲所用力為F=9.2KN,傳從速度為V=0.6m/s電機工作的有效功率為`

PW??Fv1000?W9200?0.6W

1000?0.84?6.57KW從電動機到工作機輸送帶間的總效率為

3????1??2??3??4

齊齊哈爾大學畢業設計(論文)

式中?

1、?

2、?

3、?4分別為聯軸器、軸承、齒輪傳動和凸輪的傳動效率[5],有表可查?1?0.99、?2?0.98、?3?0.97、?4?0.94 則

?W?0.99?0.983?0.97?0.94?0.84

電機的轉速

二級圓柱齒輪減速器傳動比i0?8~10,V帶傳動比范圍i1?2~4作軸轉速為n0?20r/min所以電動機的轉速的可選范圍為

n?i0i1n0?320~800r/min

查表可知:可選JZT251—4型電機,120—1200r/min,7.5KW 2.2 齒輪傳動設計

2.2.1齒輪傳動的簡介

齒輪傳動是利用兩齒輪的輪齒相互嚙合傳遞動力和運動的機械傳動。

齒輪傳動的特點:傳動效率較高,傳動過程平穩,使用壽命長,齒輪之間的傳動比精確,工作狀況可靠,能夠傳動功率范圍大。例如齒輪的傳遞功率范圍可以從很幾瓦到幾萬千瓦;傳動速度高達300m/s;齒輪直徑范圍大,可以從手表用的幾毫米齒輪到大型水利工程用的二十多米齒輪,但是制造大型齒輪需要有專門的齒輪制造設備,大型齒輪嚙合傳動會產生很大的噪聲,而且大型齒輪的精度不易保證。

齒輪的齒面應具有較高的耐磨性能、抗塑性變形、抗點蝕、抗膠合的能力,而齒根要有較高的抗折斷的能力。因此,對輪齒材料性能的基本要求為:齒面要用硬度較高的材料、齒芯要韌性較好的材料。常用的齒輪材料是鑄鐵 鋼、和無機非金屬材料。鋼材的韌性交好,抗沖擊能力強,還可以通過物理及化學處理改善其鋼材力學性能,所以鋼材最適合用來制造齒輪。

齒輪在工作過程中 HB<350時,稱為軟齒面H8>350時,稱為硬齒面齒面硬度 HB<350 時

常用材料;

45、35SiMn、40Cr、40CrNi、40MnB。特點: 具有較好的綜合性能,齒面具有較高強度和硬度,齒芯具有較好韌性。熱處理后切齒精度可達8級。制造簡單、經濟、生產率高,對精度要求不高。齒面硬度 HB>350大于 采用中碳鋼時: 常用材料:

45、40Cr、40CrNi。特點:齒面硬度高 HRC=48-55,接觸強度高,耐磨性好。齒芯保持調質后的韌性,耐沖擊能力好,承載能力較高。精度可達7級精度。

齊齊哈爾大學畢業設計(論文)

適用于大量生產,如:汽車、機床等中速中載變速箱齒輪。采用低碳鋼時:常用材料;20Cr、20CrMnTi、20MnB、20CrMnTo。

齒輪在工作時由于某種原因而損壞,使其失去正常工作能力的現象稱為失效。齒輪的失效形式有很多種,常見的失效形式有:

1、齒面磨損

齒輪在傳動過程中,輪齒嚙合處存在滑動摩擦。齒輪在受力情況下,齒面間的相對滑動使齒面發生磨損。磨損會破壞齒面形狀,造成傳動不平穩;另外,磨損使輪齒變薄,造成齒側間隙增大,輪齒強度降低。齒面磨損是潤滑條件差的開式齒輪傳動(外露的齒輪傳動)的主要失效形式,也是開式蝸桿傳動的主要失效形式。

2、輪齒折斷

齒輪在工作中,其輪齒的受力狀況相當于懸臂梁,齒根處受到的彎矩最大,所產生的應力集中。在嚙合過程中,齒輪根部所受的彎矩是交替變化的,因此,在該處最容易產生疲勞裂紋而使輪齒折斷,輪齒的這種失效形式稱為輪齒的疲勞折斷。齒輪的另一種折斷是長期過載或受到過大沖擊載荷時的突然折斷,稱為過載折斷。

3、輪齒塑性變形

在低速重載的工作條件下,齒輪的齒面承受很大的壓力和摩擦力,由于這些力的作用,材料較軟的齒輪的局部齒面可能產生塑性流動,使齒面出現凹槽或凸起的棱臺,從而破壞齒輪的齒廓形狀,使齒輪喪失工作能力。齒輪的這種失效形式稱為輪齒的塑性變形。

4、齒面點蝕

齒輪工作時,當嚙合表面反復受到接觸擠壓作用,且由此所產生的壓力過大或使用時間過長時,齒面會產生細微的疲勞裂紋。隨著齒輪的連續工作,裂紋會沿表層不斷擴大,使齒面出現小塊金屬剝落,形成麻點和斑坑。輪齒齒面發生的這種失效形式稱為齒面點蝕。嚴重的齒面點蝕會破壞齒輪輪齒的工作表面,造成傳動不平穩,產生噪聲,甚至使齒輪失去工作能力。齒面點蝕這種失效形式多發生在潤滑條件良好的閉式齒輪傳動中。

5、齒面膠合

在高速重載的閉式齒輪傳動中,齒面潤滑較為困難,嚙合面在重載作用下產生局部高溫使其粘結在一起,當齒輪繼續運動時,會在較軟的齒面上撕下部分金屬材料而出現撕裂溝痕,這種由于齒面粘結和撕裂而造成的失效稱為齒面膠合。齒面出現膠合現象后,將嚴重損壞齒面而導致齒輪失效。閉式蝸桿傳動中極易發生這種失效。

2.2.2選定各齒輪類型,精度等級,材料及齒數

齊齊哈爾大學畢業設計(論文)

本設計中,已知輸入功率為7.5KW,小齒輪轉速為860r/min,齒數比為3.2。工作壽命為15年(每年工作300天),每天工作8小時。

(1)本設計中騎馬訂書機主軸齒輪精度選擇

根據本設計方案,選用直齒圓柱齒輪。騎馬訂書機為一般工作機器,速度不高,故運用7精度(GB 10095—88)。

(2)材料選擇

綜合設計思路方案,根據濮良貴《機械設計》第八版191頁選擇小齒輪材料為40C(質),硬度為280HBS,大齒輪材料為45鋼(調質),硬度為240HBS。

(3)齒數選擇

選擇小齒輪齒數z1?24,大齒輪z2?24?3.2?76.8,取z2?77

2.2.3按齒面接觸強度設計齒輪[3]

由濮良貴《機械設計》第八版203頁齒面接觸強設計計算公式進行計算,即

32?ZE?KT1u?1d1t?2.32????????·u?H?d式中

d1t——所求齒輪直徑(mm)

T1——齒輪傳動的轉矩(N·mm)

ZE——彈性影響系數(MPa)

12(2?1)

?d——齒寬系數

K——載荷系數

(1)確定公式內的各個計算數值

1)試選載荷系數Kt?1.3 2)計算小齒輪傳遞的轉矩

T1?95.5?10

5P1n1(2?2)

95.5?105?7.5?N?mm 860?8.328?104N?m3)根據濮良貴《機械設計》第八版表10-7選取出齒寬系數

?d?1

4)根據濮良貴《機械設計》第八版表10-6查得材料的彈性影響系數

齊齊哈爾大學畢業設計(論文)

ZE?189.8MPa

5)根據濮良貴《機械設計》第八版表10-21查得小齒輪的接觸疲勞強度極限

12?Hlim?600MPa;大齒輪的接觸疲勞強度極限?Hlim?550MPa

6)計算應力循環次數

N1?60n1jLh

(2?3)

?60?860??8?300?2?15??3.715?1093.715?109N2? 3.2?1.161?1097)根據濮良貴《機械設計》第八版表10-19查得接觸疲勞壽命系數KHN1?0.90,KHN2?0.95

8)計算接觸疲勞許用應力通常取失效概率為1%,安全系數S=1

??H?1?KHN1??lim1S?0.9?600?540MPa

(2-4)S?0.95?550?522.5MPa ??H?2?KHN2??lim2(2)計算

1)計算小齒輪分度圓直徑

3d1t?2.323?ZE?KT1u?1????????·u ?H?d4?189.8?1.3?8.328?104.2· ??522.513.2??2 = 2.32= 61.634mm 2)小計算圓周速度v

v?

?d1tn160?10003.14?61.634?860?m/s60?1000?2.77m/s(2?5)

3)計算齒寬b 9

齊齊哈爾大學畢業設計(論文)

b??d?d1t

(2?6)

?1?61.634mm? 61.634mm4)計算齒寬與齒高比

b h模數

mt?d1tz1?61.63424?2.568mm

(2-6)

齒高

H?2.25mt?5.778mm寬與齒高比

(2-7)

b61.634??10.67 h5.7785)計算載荷系數

根據v?2.77ms,7級精度根據濮良貴《機械設計》第八版圖10-8查得動載荷系數

KV?1.12

對于直齒輪

KH??KF??1;

根據濮良貴《機械設計》第八版表10-2查得使用系數KA?1; 查得7級精度小齒輪相對支承非對稱布置時KHB?1.423由表得KFB?1.35

載荷系數為:

b?10.67,KH??1.423查hK?KAKVKH?

(2?8)

?1?1.12?1?1.423?1.5946)按實際的載荷系數校正所算得的小分度圓直徑

齊齊哈爾大學畢業設計(論文)

d1?d1t3KKt3(2?9)

1.5941.3?65.968mm?61.634?7)計算模數m

m?d165.968??2.748mm

z1242.2.4按齒根彎曲強度設計[3]

齒根彎曲強度設計公式為 m?2KT1?YFaYsa?2??dz1???F?????(2?10)

式中

?FE1——齒輪的彎曲疲勞強度極限(1)確定公式內的各計算數值

由濮良貴《機械設計》第八版圖10-20c查得小齒輪的彎曲疲勞強度極限:

?FE1?500MPa

大齒輪的彎曲疲勞極限:

?FN1?380MPa

查得彎曲疲勞壽命系數:

KFN1?0.85,KFN2?0.88

計算彎曲疲勞許用應力:取彎曲疲勞完全系數S?1.4,得

??F?1?KFN1?FE

1S0.85?500?MPa1.4?303.57MPa(2?11)

齊齊哈爾大學畢業設計(論文)

??F?2?KFN2?FE2S0.88?380?MPa

1.4?238.86MPa計算載荷系數:

K?KA?KV?KFa?KFb?1?1.12?1?1.35?1.512

由濮良貴《機械設計》第八版表10-5查得齒形系數

YFa1?2.65,YFa2?2.226

查取應力校正系數

YSa1?1.58,YSa2?1.764

計算大小齒輪的YFaYSa??F?并加以比較

YFaYSa??F?1?2.65?1.58?0.01379303.57

2.226?1.764?0.01644238.86

??F?2由上式可知大齒輪的數值較大 設計計算

3YFaYSa?m?2?1.512?8.328?104?0.01644?2.05mm1?242

由計算結果可知,齒面接觸疲勞強度計算的模數m大于由齒根彎曲疲勞強度計算的模數,齒輪模數m主要取決于彎曲強度所決定的承載能力,僅與齒輪直徑有關,可取由彎曲強度算得的模數2.05并就近圓整為標準值m=2.5mm,按接觸強度算的的分度圓直徑d1=65.968mm。

算出小齒輪的齒數:

z1?d165.968??26 m2.5大齒輪的齒數:

z2?3.2?26?83.2取z2?84

齊齊哈爾大學畢業設計(論文)

2.2.5齒輪幾何尺寸的計算

(1)計算分度圓的直徑

小齒輪分度圓直徑

d1?z1?m?26?2.5?65mm

大齒輪分度圓直徑

d2?z2?m?84?2.5?210mm

(2)確定齒輪中心距的

d1?d2265?210

?2?137.5mma?(3)計算齒輪寬度

(2?12)

b??ddd1?1?65?65mm

2.3軸的設計及校核

2.3.1 齒輪作用在傳動軸上的力

分析騎馬訂書機的傳動系統圖可知主軸箱內各軸均為轉軸。已知電機功率為7.5KW,轉速為120~1200r/min,小齒輪工作轉速為860r/min,齒數比為3.2。現對主軸進行分析和設計:

1、軸上的輸出功率P2 p2?p?1?2?7.5?9.8?9.7

2?6.9KW2、軸上的轉矩T2

由于n?120~1200r/min,當n?120r/min時,軸的轉矩

PT2?95500002

n2 13

齊齊哈爾大學畢業設計(論文)

6.9N?mm 120?54625N?mm ?9550000?

3、作用在齒輪上的力[3]

Ft?2T22?54625??520N d210Fr?Fttan??520?tan20?189N

Fn?Ft520??554Ncos?cos20

式中圓周力Ft,徑向力Fr及軸上的法向力Fn如圖2-1所示

M?MH2?MV2

齊齊哈爾大學畢業設計(論文)

圖2-1 軸的載荷分析圖

2.3.2初步估算軸的最小直徑

選取材料為45鋼,調質處理,根據表15-3,取A0?100,可得

dmin?A03p2n2

6.9120?38.5mm ?100?3軸的最小直徑顯然是安裝聯軸器處的直徑,為了確定軸的最小直徑,必須先確定聯軸器的孔徑。考慮到轉矩變化很小,取KA=1.3

Tca?KAT2?1.3?54625?71012.5N?mmd=40mm故,軸的最小直徑dmin=40mm

(2?13)

按照轉矩Tca的條件,查表GB/T 5014—2003,選用LX3彈性柱銷聯軸器,孔徑為2.3.3軸的結構設計

(1)擬定軸上零件的分配方案,如圖2-2所示。

齊齊哈爾大學畢業設計(論文)

2-2軸的結構與裝配

(2)確定各軸段直徑和長度

1)初步選擇滾動軸承。因同時受徑向載荷和很小的軸向載荷作用,故選深溝球軸承。初定dI?II?dIII?IV?65mm,因此,選深溝球軸承6413,其尺寸為d?D?B?65mm?120mm?23mm,于是有lI—II?23mm。選定,dII?III?90mm,lII?III?54mm。

2)安裝z?84齒輪的軸段III-IV的直徑dIV?V?60mm,齒輪左端用套筒定位,右端用軸肩定位,dIV?V?60mm 為了使套筒可靠地壓緊齒輪,此軸段應略短于輪轂寬度,故取lIV?V?61mm。dV?VI?45mm,lV?VI?8mm。

3)查表GB/T 5014—2003取聯軸器LX3的Y型,孔長60mm,石棉墊片寬度為6mm故,lVI?VII?60mm?6mm?66mm,dVI?VII?40mm

4)軸的長度為:

l?23mm?54mm?64mm?61mm?8mm?66mm?276mm

(3)軸上零件的周向定位

齊齊哈爾大學畢業設計(論文)

齒輪與軸,聯軸器與軸,均采用平鍵連接,由表查得,齒輪與軸的平鍵截面為b?h?14mm?9mm,鍵槽長定為54mm,聯軸器與軸的平鍵為b?h?12mm?8mm,長為40mm 2.3.4軸上的載荷

可化為簡支梁的軸跨距為L2?L3?L4?61mm?8mm?66mm?135mm,根據計算,截面C為危險截面,做出軸的扭矩圖和彎矩圖,各個數值參考如表2-2:

表2-1 軸的各個計算數值

載荷

水平面H

垂直面V 支反力F

FNH1?274N FNH2?274N

FNV1?100N FNV2?89N

彎矩

MH?20207.5N?mm

MV?7375N?mm 總彎矩M

M?22N?mm 20207.5?7375?21511扭矩T

T2?54625N?mm

2.3.5校核軸的強度

(1)軸的計算應力

軸的計算應力校核時,只需校核軸上承受最大彎矩和扭矩的截面的強度,本設計中最大最大彎矩和扭矩的截面為C面,根據表中數據以及扭轉應力為脈動循環變應力,取??0.6,軸的計算應力[3]

?ca??M???T4?22W(2?14)

2?21511??0.6?5462520.1?453MPa?43MPa

前已選定軸的材料為45鋼,調質處理,查濮良貴《機械設計》第八版表15-1可知,???1??60MPa,因此1)判斷危險截面 ?ca????1?,故安全。

(2)校核軸的疲勞強度

齒輪軸段彎矩最大,截面III為危險截面,其它截面均按扭轉強度較寬設定的,故,只需軸的右側即可。

齊齊哈爾大學畢業設計(論文)

2)截面右側各個系數的計算[3]

抗彎截面系數:

W?0.1d3?0.1?403?6400mm3抗扭截面系數:

WT?0.2d3?0.2?403?12800mm3截面左側彎矩M為:

73.75?30.5M?21511??12615N?mm73.75截面上的轉矩:

(2?15)

(2?16)

T2?54625N?mm

截面上的彎曲應力:

M12615??1.97MPa W6400?b?截面上的扭轉切應力 :

T54625??4.27MPa WT12800軸的材料為45鋼,調質處理[6]。由濮良貴《機械設計》第八版表15-1查得

?T??B?640MPa,??1?275MPa,??1?155MPa。

截面上由于軸肩而形成理論應力集中系數??及??,由濮良貴《機械設計》第八版

D44r2.0?1.1,經插值后得???1.82,???1.20。?0.05,?附表3-2查取因?d40d40濮良貴《機械設計》第八版附圖3-2查得軸材料的敏性系數為

q??0.82,q??0.85

k??1?q?(???1)

(2?17)

?1?0.82?(1.82?1)?1.68k??1?q?(???1)(2?18)

由圖表選出

?1?0.85?(1.2?1)?1.17

???0.67,???0.82

齊齊哈爾大學畢業設計(論文)

軸按磨削加工,查圖可得表面質量系數

??????0.92

軸的表面未經強化處理,即?q?1,按濮良貴《機械設計》第八版公式(3-12)及(3-12a)的軸的綜合系數為

碳鋼的特性系數

計算安全系數 [3]

K??k?1???1????1.680.67?10.92?1?2.60K??k???1?1????1.170.82?10.92?1 ?1.51???0.1~0.取???0.1???0.05~0.1取???0.05S????1K??a????m?2752.6?4.86?0.1?0?21.76S????1K??a????m

?1551.51?17.802?0.05?17.802?11.1619

(2?19)

(2?20)

(2?21)

齊齊哈爾大學畢業設計(論文)

Sca??S?S?S??S?21.76?11.162222(2?21)

21.76?11.16?9.9?S?1.5故可知軸是安全的。

2.4 帶傳動的設計

2.4.1概述[4] 帶傳動是一種撓性傳動。帶傳動的基本組成零件為帶輪和傳動帶。當主動輪轉動時,利用摩擦,將動力通過傳動帶傳遞給從動輪。工作示意圖如圖2-3所示:

(a)不工作

(b)工作

2-3傳動帶工作示意圖

帶傳動具有結構簡單、傳動平穩、能緩沖吸振、能夠輕易實現遠距離,價格便宜、維護容易等特點。在近代機器設備中應用廣泛。摩擦型帶傳動能夠實現過載打滑、而且機器工作時噪聲低,但摩擦型帶傳動比不夠精確;同步帶傳動能夠保證一定的傳動比,但是對帶的載荷變動量的吸收能力差,高速速運轉時噪聲很大。根據用途不同,有一般工業用傳動帶、汽車用傳動帶、農業機械用傳動帶和家用電器用傳動帶。摩擦型傳動帶根據其截面形狀的不同又分平帶、V帶和特殊帶等。

帶傳動的功率損失有:

(1)滑動損失 摩擦型V帶傳動工作時,由于帶輪上下邊的拉力差及其帶輪不同變形差形成彈性滑動,從而導致帶與從動輪的速度損失。彈性滑動功率損失率通常在1%~2%之間。嚴重滑動,特別是過載打滑,會使帶的運動長時間處于不穩定狀態,效率急劇下降,摩擦磨損加劇,從而嚴重影響帶的壽命。滑動損失隨緊邊與松邊拉力差的增大而增大,隨帶體彈性模量的增大而減小。

齊齊哈爾大學畢業設計(論文)

(2)內摩擦損失 帶在運行中的反復伸縮,會使帶體內部產生摩擦引起功率損失。內摩擦損失隨預緊力、帶厚與帶輪直徑比的增大而增大。減小帶的帶輪之間的拉力變化,可減小帶傳動的內摩擦損失。

(3)空氣阻力損失 帶輪高速運行時,運行風阻引起的功率損失。帶傳動的功率損失與速度的平方成正比。因此設計高速帶傳動時,應減小帶的表面積,盡量用厚窄的帶;帶輪的輪輻表面應平滑或用輻板以減小風阻。

(4)軸承摩擦損失 軸承受帶拉力的作用產生摩擦,也會導致帶傳動的功率損失,軸承摩擦損失是引起功率損失的重要因素之一。

綜合上述損失,帶傳動的效率約在80%~96%范圍內,設計帶傳動時,要根據帶綜合因素來選取帶輪與傳動帶的形狀。

2.4.2帶傳動的設計計算

騎馬訂書機帶式傳動系統中采用V帶傳動。已知電動機功率為P?7.5kW,轉速為n1?1200r/min,傳動比i?3.4,每天工作8小時

1、確定計算功率Pca[4] 由帶傳動工作情況系數表查得濮良貴《機械設計》第八版表8-7知KA?1.1,故

Pca?KAP?1.1?7.5kW?8.25kW

2、選擇V帶的帶型根據Pca、n1由普通V帶選型圖,選用A型。

3、確定帶輪基準直徑dd并驗算帶速v 1)選擇取小帶輪基準直徑

dd1?120mm

2)驗算帶速 由經驗知

v??dd1n160?10003.14?120?1200?

60?1000?7.54m/s

齊齊哈爾大學畢業設計(論文)

因為5 m/s < v < 30 m/s,故帶速合適。3)計算大帶輪基準直徑

dd2?idd1?3.4?120mm ?408mm元整取dd2?400mm

4、確定V帶中心距a和基準長度Ld 1)初定中心距

0.7(dd1?dd2)?a0?2(dd1?dd2)

初定中心距a0 = 600 mm 2)計算帶所需基準長度 L?2a0??(dd2?dd1)d02(dd1?dd2)?4a0?2?600??22(120?400)?(400?120)4?600

?2050mm

查表得基準長度:

Ld =2000 mm 3)帶的實際中心距a

a?a0?Ld?Ld0

2???2000?2050??600?2??mm?575mm

4)中心距變化范圍[3] amin?a?0.015Ld?600?0.015?2000?570mmamax?a?0.03Ld?600?0.03?2000?660mm

2?22)(2?23)

齊齊哈爾大學畢業設計(論文)

中心變化距范圍570~660 mm

4、計算驗證小帶輪上的包角?1[3] ?1?180??(dd2?dd1)

57.3a57.3??180??(400?120)575?152??90?(2?24)

5、計算帶的根數z 1)計算單根V帶的額定功率Pr 由dd1?120mm和n1?1200r/min,查表得P0?2.28kW

根據n1?1200r/min,i?3.4查表得

?P0?0.15kW

查表得K??0.925,KL?0.93于是

Pr?(P0??P0)K?KL

2)計算V帶的根數

(2?25)

?(2.28?0.15)?0.925?0.93kW?2.2kWz?

取4根

6、單根V帶的初始拉力最小值[3]

Pca8.25??3.75 Pr2.2F0min?500?500??232N應使初拉力F0>F0min

7、軸的最小壓力[3]

(2.5?K?)Pca?qv2K?zv(2?24)

(2.5?0.925)?8.25?0.1?7.5420.925?4?7.54 23

齊齊哈爾大學畢業設計(論文)

Fpmin?2zF0minsin?12152? 2?2?4?161?sin?1251N2.5 凸輪的設計

2.5.1凸輪的簡介[5]

凸輪是一種機械機械回轉或滑動部件,它把運動傳遞給緊靠它邊緣運動的滾輪或在槽面上運動的針桿。凸輪在各種機械中廣泛的應用,尤其在紡織機械,印刷機械,沖壓機床等自動控制裝置中應用最為廣泛。隨著制造技術的發展,凸輪的制造越來越精確,應用范圍也逐漸擴大。凸輪傳動的特點如下: 只要合理的設計出凸輪的輪廓,就能很容易地獲得預期的運動規律。2 凸輪的響應速度快 3 凸輪機構結構簡單緊湊 凸輪輪廓線與推桿之間為點線接觸,易磨損。5 凸輪制造困難。

凸輪的種類很多,按凸輪的形狀分類可分為盤形凸輪和圓柱形凸輪;按推桿分類可分為,尖頂推桿凸輪,滾子推桿凸輪和平底推桿凸輪;按接觸的方式不同可分為,力封閉凸輪和幾何封閉凸輪。

2.5.2確定凸輪的基本外形尺寸

自動騎馬訂書機采用直動滾子推桿盤形凸輪機構,工作條件是高速輕載。對推桿的要求為:當凸輪轉過90°時,推桿上升150mm,凸輪繼續轉過90°時時,推桿停止不動;凸輪再繼續轉過60°時,推桿下降150mm,凸輪轉過其余角時,推桿又停止不動。、確定凸輪機構的基本尺寸 基圓半徑

初步確定基圓的半徑r0=300mm,推桿棍子半徑為rr=60mm。本此設計的工作條件是高速輕載,選用沖擊較小的運動規律。

2、確定凸輪機構的運動方程

初步選定,推程階段為正弦加速運動規律,回程階段選用五次多項式運動規律[5]。運動規律如圖2-4所示:

(1)正弦運動規律的方程式為:

齊齊哈爾大學畢業設計(論文)

v?h??1?cos(2??/?0)?/?0a?2?h?2sin(2??/?0)/?02s?h?(?/?0)?sin(2??/?0)/(2?)?

(2)五次多項式的運動規律方程為:

s?C0?C1??C2?2?C3?3?C4?4?C5?5v?ds/dt?C1??2C2???3C3??2?4C4??3?5C5??4 a?dv/dt?2C2?2?6C3?2??12C4?2?2?20C5?2?3

(a)正弦運動規律圖

(b)五次多項式運動規律

圖2-4 凸輪推程與回程階段的運動規律

由圖知正弦加速運動規律和五次多項式運動規律都沒有柔性沖擊和剛性沖擊,適合高速輕載的凸輪設計。

3、計算凸輪的理論廓線

對于對心直動滾子推桿盤形凸輪機構,凸輪的理論輪廓線坐標為

x?(s0?s)sin??ecos???y?(s0?s)cos??esin??s?r0,求得:

(2?25)

本次騎馬訂書機的設計中e?0x?(r0?s)sin???

y?(r0?s)cos??對上式中的位移s進行分段計算

齊齊哈爾大學畢業設計(論文)

(1)騎馬訂書機凸輪的推程階段

?02?90???/2

?01?90???/2

s1?h?(?1/?01)?sin(2??1/?01)/(2?)?

?h?(2?1/?)?sin(4?1)/(2?)?

?1??0,?/2?

(2)騎馬訂書機凸輪的遠休止階段

??02?90??/2

s2?1

5(3)騎馬訂書機凸輪的回程階段?03?60???/3

s3346h?553?10h?3/?03?15h?43/?03?3/?0

3?27h0?33/?3?121h5?43/?4?145h8?53/?5

(4)騎馬訂書機凸輪近休止階段

?04?12?0?2?/3

s4?0

推程和回程階段的壓力角

??arctands/d?rs

0?去計算間隔為5°計算以上各式的值,將結果寫入表格中。計算結果時:???推程階段:???1??遠休止階段:???1??2??3

回程階段:???1??2??3??近休止階段:???1??2??3??4??5

4、計算凸輪的實際工作廓線

?2??0,?/2?

?3??0,?/3?

?4??0,?/3?

(2-26)

齊齊哈爾大學畢業設計(論文)

其中

x??x?rrcos???y??y?rrsin??(2?27)

sin??(dx/d?)/(dx/d?)2?(dy/d?)2 cos???(dy/d?)/(dx/d?)2?(dy/d?)2

(1)騎馬訂書機凸輪的實際工作推程階段 ?1??0,?/2?

dx/d??(ds/d?)sin?1?(r0?s)cos?1?2h? ???1?cos4?(1)??sin?1?(r0?s)co?s1

???

dy/d??(ds/d?)cos?1?(r0?s)sin?1?2h?

???1?cos4?(1)??co?s1?(r0?s)sin?1

???

(2)騎馬訂書機凸輪的實際工作遠休止階段

?2??0,?/2?

dx/d??(r0?s)cos(?/2??2)dy/d???(r0?s)sin(?/2??2)

(3)騎馬訂書機凸輪的實際工作回程階段

?3??0,?/3?

dx/d??(ds/d?)sin(?3??)?(r0?s)cos(?3??)

?(81h0?32/?3?486h0?33/?4?729h0?34/?5)sin?(3??)?

(r0?s)cos(?3??)

35dy/d??(810h?3/?3?4860h?34/?4?7290h?3/?5)cos(?3??)?(r0?s)sin(?3??)

4)騎馬訂書機凸輪的實際工作遠休止階段

?3??0,2?/3?

dx/d??(r0?s)cos(4?/3??4)

齊齊哈爾大學畢業設計(論文)

dy/d???(r0?s)sin(4?/3??4)

凸輪的工作曲線與實際曲線的計算結果如表2-2

表2-2 凸輪的各個計算數值

?

0? 5? 10?

350? x

0.000 26.175 52.365

y

300.000 299.185 296.226

x?

0.000 21.602 44.468

??

240.000 238.885 237.228-52.092-26.148 0.000

295.446 298.984 300.000

-41.468-20.916 0.000

236.352 238.645 240.000 355? 360?

由表中各個數值計算結果,可作出凸輪的輪廓曲線如圖2-5所示:

圖2-5 凸輪的輪廓曲線

齊齊哈爾大學畢業設計(論文)

凸輪機構推程階段最大的壓力角為19.856°,相應凸輪的轉角為45°;回程階段的最大壓力角為27.658°,相應的凸輪轉角為210°,凸輪的最大壓力角小于許用壓力角,故凸輪的尺寸設計合理。

齊齊哈爾大學畢業設計(論文)

第3章

騎馬訂書機的電氣控制設計

3.1 騎馬訂書機的特點及控制要求

1、騎馬訂書機的運動由電動機M傳動

2、主軸制動靠剎車輪的摩擦制動

3、到發生堵紙現象時,微動開關啟動,電機M斷電,機器停止工作。

4、機器的運動與停止等操作都集中在電氣操作箱上。

電動機M的型號:JZT251—4 7.5kW 220V 1200r/min 3.2 電氣線路設計

3.2.1 執行電路的設計

根據騎馬訂書機的工作要求,為了調速,并降低啟動電流,電動機M選用松下變頻器BFV00072G 220V 0.75KW。總電路的過載保護選用,選用熔斷器FU[10]。執行電路圖如3-1所示:

圖3-1 自動騎馬訂書機的執行電路圖

齊齊哈爾大學畢業設計(論文)

3.2.2控制電路的設計

光電傳感器的初狀態閉合,當檢測到書帖信號時,光電傳感器SL1的長閉觸電開啟,繼電器KM3斷開,從而使電磁鐵主回路中的電流繼電器KA1失電斷開,電磁鐵YV不工作,離合機構嚙合,訂書機機頭工作。當無書帖時,光電傳感器SL1閉合,繼電器KM3得電觸點閉合,從而使從而使電磁鐵主回路中的電流繼電器KA1得電閉合,電磁鐵電磁鐵YV工作,離合機構斷開,訂書機機頭不工作。接近開關SL2同步復位KM3,以保證裝訂機頭,停于上限位置。當發生紙張擁堵時,微動開關SS1斷開,繼電器KM1失電,變頻器的控制回路中的開關SA開啟,變頻器失電,停止工作,電動機M停止。當光電傳感器SL1檢測到書帖時,SL1-2觸電閉合,計數器得到一次信號,累加一次。當無書帖時,計數器無信號,不累加。控制電路圖如3-2所示

圖3-2 自動騎馬訂書機的控制電路圖

3.3電器元件的選擇[6]

1、電源引入開關Q

電源引入開Q關主要起外部輸入電路的作用,可根據電機M的額定電流選用。

P7500I??A?19.7A U380選用HZ-25/3型開關,額定電流25A

2、變頻器[12] 變頻器(Variable-frequency Drive,VFD)是應用變頻技術與微電子技術,通過改變電機工作電源頻率方式來控制交流電動機的電力控制設備。變頻器主要由整流(交流 31

齊齊哈爾大學畢業設計(論文)

變直流)、濾波、逆變(直流變交流)、制動單元、驅動單元、檢測單元微處理單元等組成。通過改變電源的頻率來達到改變電源電壓的目的,根據電機的實際需要來提供其所需要的電源電壓,進而達到節能、調速的目的,另外,變頻器還有很多的保護功能,如過流、過壓、過載保護等等。隨著工業自動化程度的不斷提高,變頻器也得到了非常廣泛的應用。為了電動機M調速,并降低啟動電流,電動機M選用松下變頻器BFV00072G 220V 0.75KW。

3、電位器

電位器是具有三個引出端、阻值可按某種變化規律調節的電阻元件。電位器通常由電阻體和可移動的電刷組成。當電刷沿電阻體移動時,在輸出端即獲得與位移量成一定關系的電阻值或電壓。電位器既可作三端元件使用也可作二端元件使用。后者可視作一可變電阻器。工作示意圖圖如3-3所示:

圖3-3 電位器工作原理圖

本設計中為了獲得部分穩定的電壓輸出,選用日本思博(sakae)22HP-10電位器,主要參數如下:

功率:2W

最大工作電壓:250V 預期旋轉壽命:1000000次

4、光電傳感器[16] 光電傳感器是采用光電元件作為檢測元件的傳感器。它首先把被測量的變化轉換成光信號的變化,然后借助光電元件進一步將光信號轉換成電信號。光電池作為光電探測使用時,其基本原理與光敏二極管相同。光電電傳感器具有檢測距離長;對檢測物體的限制少; 響應時間短 ;分辨率高 ;可實現非接觸的檢測 ;可實現顏色判別 ;便于調整等優點。

本設計中當每個書帖裝訂好時,為使其信號轉化為計數器能識別的電信號,選用PIH-TC20NOC3D(對射型NPN常開+常閉 / 距離3CM / DC10-30V)光電傳感器。

齊齊哈爾大學畢業設計(論文)

5、熔斷器FU1,FU2 FU1是對總電路的保護熔斷器。熔體電流為:

P7500IR??A?19.7A

U380可選用RL-15熔斷器,配用20A的熔斷器。FU2,選用RL-15熔斷器,配用2A的熔斷器。

6、繼電器KA,KA1,KA2及KA3 繼電器專用的固態繼電器可以具有短路保護,過載保護和過熱保護功能,與組合邏輯固化封裝就可以實現用戶需要的智能模塊,直接用于控制系統中。

固態KA選用固態繼電器SAP-4040D 40A,各項參數如下 負載最大電流:40A;

負載電壓:40V-480V;

控制電壓:3-32VDC;

頻率范圍:47/63HZ 工作環境溫度:-40-80℃

動作狀態指示:LED,KA1,KA2及KA3選用SSR-10DA(10A)單相固態繼電器 各項參數如下: 負載最大電流:10A;

負載電壓:40V-480V;

控制電壓:3-32VDC;

頻率范圍:47/63HZ 工作環境溫度:-30-75℃

動作狀態指示:LED,7、停止開關SB1,啟動開關SB2 停止開關SB1選用LA10綠色,啟動開關SB2選用LA10紅色

8、電磁鐵YT 電磁鐵控制電磁離合機構的嚙合與斷開,選用直流推拉式電磁鐵HCNE-1038主要參數如下:

吸力:5N

行程:10mm

控制電壓:DC24V

9、開關電源

開關電源是利用現代電力電子技術,控制開關管開通和關斷的時間比率,維持穩定輸出電壓的一種電源,開關電源一般由脈沖寬度調制(PWM)控制IC和MOSFET構成。本次設計中所選開關電源為歐姆龍開關電源S8JC-100-24 100W DC24V。如圖3-4所示:

齊齊哈爾大學畢業設計(論文)

圖3-4 S8JC-100-24型歐姆龍開關電源

10、計數器

本設計中選用JDM9-6數顯智能計數器(圖3-5)220V交流 110V 24V交直流電壓均可直接工作 計數范圍:6位LED數碼管0-999999

圖3-5 JDM9-6型數顯智能計數器

齊齊哈爾大學畢業設計(論文)

3.4編制電氣元件明細表

根據3.3所選電氣元件,列出3-1所示,電氣元件表

3-1 自動騎馬訂書機電氣元件明細表

符號 M Q RP U SL 名 稱 異步電動機 組合開關 電位器 變頻器 光電傳感器

型 號 JZT251-4 HZ-25/3 22HP-10 BFV00072G PIH-TC20NOC3D

380V 1200r/min 7.5KW 3極

500V

25A

2W 250V 220V 0.75KW 距離3CM

DC10-30V KA 固態繼電器

SAP-4040D

40A 控制電壓:

3-32vDC KA1 繼電器

SSR-10DA

10A 控制電壓:

3-32vDC KA2 繼電器

SSR-10DA

10A 控制電壓:

3-32vDC KA3 SB1 SB2 YT FU1 FU2 G C 繼電器 控制按鈕 控制按鈕 電磁鐵 熔斷器 熔斷器 開關電源 計數器

SSR-10DA LA10 LA10 HCNE-1038 RL-15 RL-15 S8JC-100-24 JDM9-6

10A 控制電壓:

3-32vDC 綠色 紅色

吸力5N 行程10mm

DC24V 500V 熔體 10A 500V 熔體

2A 100W 24V

24V 1 1 1 1 1 1 1 1 1 1 數量 1 1 1 1 2

齊齊哈爾大學畢業設計(論文)

第4章

自動騎馬訂書機的PLC控制設計

4.1 PLC的簡介

4.1.1PLC的定義及基本結構[18] PLC又稱可編程邏輯控制器(Programmable Logic Controller,PLC),它采用一類可編程的存儲器,用于其內部存儲程序,執行邏輯運算、順序控制、定時、計數與算術操作等面向用戶的指令,并通過數字或模擬式輸入/輸出控制各種類型的機械或生產過程。可編程邏輯控制器實質是一種專用于工業控制的計算機。

PLC硬件的基本結構包括:電源、中央處理器(CPU)、儲存器、輸入輸出借口、外部設備。

1、電源

電源是PLC的能量源,可靠穩定的電源很大程度上決定了PLC工作性能。如果沒有一個持續穩定的電源系統PLC是無法正常工作的。因此,PLC控制器的制造商對電源的設計和制造十分重視。PLC的電源有直流和交流兩種,直流多為24V的電源,交流多為220V電源,PLC電源的抗干擾能力都很強,有的交流電源PLC供電范圍在140V~250V之間。

2、中央處理器(CPU)

中央處理單元(CPU)是可編程邏輯控制器的核心部件,是PLC的控制運算中心。它負責處理PLC接受的用戶程序和數據,檢查電源、存儲器、計數器、定時器等部件的運行狀態,并能夠判斷用戶程序中的語法錯誤。當PLC投入運行時,首先它以掃描的方式接收現場各輸入裝置的狀態和數據,并存入“內存映像”,然后從用戶程序存儲器中逐條讀取用戶程序,按指令執行邏輯或算數運算,當所有的用戶程序執行完畢之后,將輸入輸出映象區的各輸出狀態或輸出寄存器內的數據傳送到相應的輸出裝置,如此循環運行,直到停止運行。

3、存儲器

存儲器主要用來存放用戶的程序及數據。存儲器的主要種類有,ROM、EPROM、EEROM。

4、輸入輸出接口

PLC輸入輸出接口是CPU與外部設備之間交換信息的連接電路,它們通過總線與CPU相連,簡稱I/O接口。PLC的輸入輸出接口包括:數字量輸入模塊,數字量輸出模塊,模擬量輸入模塊和模擬量輸出模塊四大部分。PLC之所以能夠在惡劣的工業環境中正常工作,輸入輸出接口起了重要作用。

齊齊哈爾大學畢業設計(論文)

5、外部設備

PLC的外部設備主要有:顯示器、打印機、編程器等。目前,PLC多采用個人計算機編程,PLC通過通信電纜與PC連接,從而使PLC的編程、監控達到了真正意義上的快捷、方便。

4.1.2PLC的特點及應用范圍[12] PLC是面向用戶的專用控制器,相對于應用廣泛的繼電—接觸系統以及單片機應用系統具有很多特點。

(1)PLC控制器的考干擾能力強,一般的PLC控制系統不用考慮干擾問題,繼電氣控制雖然能夠抵抗一般的電磁干擾,但在高電磁環境中,可靠性會急劇下降。單片機控制系統則要專門設計抗干擾系統,非常容易受到電磁干擾,不能夠在較高電磁環境下工作,應用范圍較小。

(2)PLC系統的維護方便,利用PLC自我診斷功能可以很快的找出故障點及時排除故障。繼電器控制系統常用的電子元件容易損壞,更換時檢查非常不方便費時費力。單片機控制系統需要定期維護且維護復雜,技術難度較高,需要專門的技術人員。(3)PLC程序開發采用梯形圖,明了簡便易學不需要專門的計算機知識。機電控制系統開發時圖樣多,線路復雜接線工作量大,出現錯誤排查困難系統的調試工作量大周期長。單片機控制系統設計復雜,系統的調節測試技術難度大,需要有專門計算機技術知識的人進行測試。

(4)PLC控制系統通用性較好,適用范圍廣非常適合在惡劣的工業環境中工作,而且系統易于擴展,接口即插即用。繼電器控制系統鋪設好后改裝麻煩,費時費力,一般為專用系統。單片機系統改造時要經過專門的軟硬件技術改造再能使用,改造時間長。(5)PLC的硬件成本相對于繼電器控制系統和單片機控制系統較高,這是制約PLC控制系統應用的一個重要因素。

隨著工業自動化的提高,如今只要涉及控制的地方,都離不開PLC這個大腦,可大概分為兩個領域:

(1)單機控制為主的自動化設備,比如:包裝機械、印刷機械、紡織機械、注塑機械、自動焊接設備、機床設備、冶金行業的輥壓、連鑄機械等。這些設備的所有動作,加工都需要靠依據工藝設定在PLC內的程序來指導執行和完成,就如人的大腦。(2)以過程控制為主的流程自動化設備,比如污水處理、自來水處理、樓宇控制、火電主控、輔控、水電主控、輔控、太陽能、水泥、石油、石化、鐵路交通等。這些行業所有設備的連續生產運行,總存在許多的監控點和大量的實時參數,而要監視、控制、和采集這些流程參數和相關的工藝設備,也必須依靠PLC這個大腦來完成,當然傳統叫法也有DCS,盡管設計之初的理念不一樣,但現技術路線已逐漸融合。

齊齊哈爾大學畢業設計(論文)

4.1.3PLC的工作原理[19] PLC采用循環掃描的方式工作,實際工作時,用戶設定好程序后,CPU從第一條程序開始執行,執行方式是從上向下,從左向右,程序結束時,再返回第一執行直到循環結束。工作過程如圖4-1所示。

4-1 PLC的工作過程框圖

1、自診斷

PLC在掃描用戶程序之前,都首先進行自我診斷。自我診斷包括輸入輸出接口,儲存器,CPU等,發現異常情況,停機顯示出錯。若PLC自我診斷正常,用戶程序開始執行。

2、通信

在通信階段PLC編程器或計算機有通信請求,PLC會在這段時間內完成數據收發工作。

3、讀入現場信號

在這個階段PLC對各個輸入端信號進行掃描,將外部輸入存入映像寄存器。對于接通電路輸入信號,映像寄存器中狀態為“1”;對于斷開電路輸入信號,映像寄存器的狀態為“0”,也就是說某一個輸入信號相對應的電器元件在映像寄存器中為“1”時,該電器元件的狀態為“ON”,在映像寄存器中為“0”時,該電氣元件的狀態為“OFF”。

4、程序執行

這一階段CPU將用戶當前程序調出,逐條執行,程序的運算結果會存在映像寄存器中。如果在這一階段用戶改變程序內容,PLC不會立刻執行,要在下一個掃描周期執行。

5、輸出結果

當PLC將程序執行完畢后,PLC會把輸出狀態寄存器的指令狀態,轉化成執行元件所能夠識別的電信號,從而控制被控設備及電器元件。

4.1.3PLC的選擇原則[19] PLC系統設計時,明確控制方案后就是PLC的選型問題了。PLC的選擇依據主要有 如下:

齊齊哈爾大學畢業設計(論文)

(1)輸入輸出點數的估算,PLC選擇是輸入輸出點數要留一定的余量,通常是比實際所需點數高10%到40%,也可根據實際情況自行考慮。

(2)儲存量的估算,PLC選擇時要首先根據機器所執行的功能,初步估算應用程序的大小,從而初步確定儲存器的大小。

(3)控制功能的選擇,用戶選擇PLC設備時,要熟悉所控制設備的主要功能及控制方式,來確定PLC的類型。

(4)PLC機型的選擇,以上三個步驟完成之后,PLC的各項參數基本確定,就要考慮機型問題。PLC的產品種類很多,用戶要根據自身經濟情況和所控機器的情況綜合考慮,選擇性價比合適的產品。

4.2 自動騎馬訂書機的PLC選型及控制電路改造

4.2.1自動騎馬訂書機的PLC類型選擇

根據自動騎馬訂書機的規格和各項技術要求,可選用日本三菱公司生產FX2N-32MR-001型PLC[15](如圖4-2)。FN系列PLC是日本三菱公司制造的高性能小型PLC,性能穩定,速度快是現有PLC產品中性價比較高的產品,其中FN2系列是FN系列中速度最快的型號。FX2N-32MR-001型PLC的規格如下:

電源規格:AC 100V~240V,DC24V

輸入輸出點數:輸入16,輸出16(繼電器)外形尺寸:150×87×90(mm)

齊齊哈爾大學畢業設計(論文)

圖4-2 FX2N-32MR-001型PLC 4.2.2PLC控制電路設計

(1)自動騎馬訂書機的輸入輸出點數如表4-1所示:

表4-1地址分布表

輸入地址 X0 X1

注釋 電機啟動按鈕SB1 光電傳感器SL1未檢測到數

到書帖信號

光電傳感器SL1檢測到數貼

信號

光電傳感器SL2檢測到數貼

信號

紙張擁堵微動開關SS1 錯帖微動開關SS2 電機停止SB2

輸出地址 Y0 Y1

注釋 電動機啟動 繼電器KA1得

電閉合 電磁鐵YT得電閉合 電動機停止 X2 Y2 X3 X4 X5 X6

Y3

齊齊哈爾大學畢業設計(論文)

(2)自動騎馬訂書機的PLC接線圖如圖4-3所示

圖4-3自動騎馬訂書機的PLC接線圖

(3)自動騎馬訂書機的PLC程序圖如圖4-4所示: 41

齊齊哈爾大學畢業設計(論文)

圖4-4 自動騎馬訂書機的PLC程序圖

齊齊哈爾大學畢業設計(論文)

結論

緊張忙碌的畢業設計,終于接近尾聲。在畢業設計這段時間里,我學到了很多知識,同時也對大學所學知識做了一次系統的總結。在畢業設計初期,我遇到了很大的困難,面對題目不知如何下手。在老師指導下我查逐步理清了設計思路,通過查閱相關資料,向老師請教和同學們討論我逐步解決了畢業設計中的相關難題。最終,我順利完成了畢業設計論文。

此次設計,我對傳統騎馬訂書機的電氣部分精進行了設計改裝,傳在對訂書機頭增加了電磁控制裝置,在容易發生堵紙增加了微動開關,增加了光電傳感器檢測裝置,從而很好地解決了,傳統騎馬訂書機在高速工作下狀態了的容易堵紙的現象。本設計中還對傳統騎馬訂書機的控制系統進行了PLC改造,使其控制系統更加智能化,提高了工作效率,減少了工人的工作量。

總結此次設計,我遇到了很多棘手的難題,但在老師和同學們的幫助下通過查閱相關資料我都一一解決了。通過這次設計,增強了我的分析思考能力和團隊合作能力,為我日后的工作打下了良好的基礎。

齊齊哈爾大學畢業設計(論文)

參考文獻

[1] 陳金成.騎馬裝訂聯動機的技術現狀與發展趨勢[J].印刷技術,2004.6 [2] 孟祥福,江蓉,劉傳思.半自動騎馬訂書聯動機[P].中國:CN2813299,2006.8 [3] 濮良貴,紀名剛.機械設計[M].北京:高等教育出版社,2006.5 [4] 李心耀,洪建忠,蔣春梅.同步帶傳動在離心機配平系統中的應用與研究[J].機械傳動,2011.11 [5] 王世剛,胡宏佳, 機械原理與設計實驗[M].哈爾濱:哈爾濱工程大學出版社,2004 [5] 孫午光.高速凸輪[M].北京:高等教育出版社,1992 [6] 王世剛,王樹才.機械設計實踐與創新[M].北京:國防工業出版社,2010.9 [7] 林瑞光.電機與拖動技術[M].杭州:浙江大學出版社,2002.8 [8] Mott, Robert L.Machine elements in mechanical design [M].Beijing:China Machine Press,2003.

[9] 齊占慶,王振臣.機床電氣控制技術[M].北京:機械工業出版社,1997.5 [10] 黃永紅.電氣控制與PLC應用技術[M].北京:機械工業出版社,2011.8 [11] 廖常初.設備改造中的PLC梯形圖設計方法[J].電工技術雜志,2001.9 [12] 彭婧.基于PLC控制的雙頭車床主電路設計[J].機械,2010.02 [13] Mott,Robert L.Machine elements in mechanical design [M].Beijing:China Machine Press,2003.

[14] Bo Chen,Jifeng Wang,Shanben Chen.A study on application of multi-sensor information fusion in pulsed GTAW[J].strial Robot,2010.3 [15] 李江全,王玉巍,劉榮.三菱PLC通信與控制應用的編程實例[M].北京:中國電力出版社,2011.8 [16] Hui-Myoung Oh,Sungsoo Choi,Youngsun Kim.A Systematic Approach to Analyzing Multipath Parameters From PLC Channel Response[J].IEEE Transactions on Power Delivery,2008.23(4)[17] Hajarnavis V, Young K.An Assessment of PLC Software Structure Suitability for the Support of Flexible Manufacturing Processes[J].IEEE transactions on automation science and engineering,2008.5(4)[18] Murat Uzam.PLC/MCU: PLC with PIC16F648A Microcontroller-Part 16[J].44

齊齊哈爾大學畢業設計(論文)

Electronics World,2010.116(1886)[19] 程子華.PLC原理與編程實例分析[M].北京:國防工業出版社,2007.1 [20] 王得勝,韓紅彪.電氣控制系統設計[M].北京:電子工業出版社 2011.4

致謝

時光如白駒過隙,轉眼間美好的四年大學時光即將結束。大學的最后一項重要工作——畢業設計,也接近尾聲。回首四年的大學生活,我受益頗多。在做畢業設計的這段時間里,同學們和老師都給了我無私的幫助。在此,對幫助我的人致以誠摯的感謝。在畢業設計中我遇到了很多困難,在同學和老師的幫助下我都逐一解決。我要特意感謝李東升老師,李西兵老師,尤其是我的畢業設計導師郭建華教授,他嚴謹的治學風格,幽默的說話方式,獨特的人格魅力深深的感染了我,使我受益匪淺。我還要感謝我的同組同學,張陽、高先龍他們給我了很多幫助。我還要特別感謝18#317兄弟們,你們不僅在學習上給我了很多幫助,還在生活中給我了很大的幫助,你們都是我的好兄弟。最后謝謝所有幫助過我的人,謝謝你們。

第三篇:公交車管理系統

燕山大學課程設計說明書

名稱:操作系統OS

題目:公交車上司機與售貨員協調工作模擬

班級:07級計算機 開發小組:三劍客 課題負責人:張浩

課題組成員:張浩 李康 張曉玉

姓名

學號

班級

自評成績 張

070104010121 07應用2班

A 李

070104010113 07軟件3班

B 張曉玉

070104010131 07軟件3班

B

開發日期:2010年1月11日-15日

1概述

計算機操作系統是計算機系統中最不可缺少的,最常用的軟件,也是核心的,最接近于計算機硬件的軟件。其特點是內容繁多,概念抽象,因此造成理解困難,掌握不易。本軟件的主要目的是通過直觀的演示,使學生能夠感性的明白掌握多道程序及其進程同步和互斥的程序設計的基本方法。

1.1基本功能

利用多線程同步技術模擬公交車系統,實現司機與售票員的同步與互斥關系,即開車時不允許開門,開門時不允許開車,實現每個乘客一個線程同步互斥的上下車。每站隨即生成上下車人數,上下車線程實行,先下后上原則。到終點站后,可以統計本次出車的載客人數。

1.2開發計劃

第一步,進行問題分析,確定需要解決的問題; 第二步,進行整體構思與框架設計;

第三步,查閱資料,分析所需要設計的程序算法; 第四步,進行各種算法及各個細節編碼的詳細設計; 第五步,進行代碼調試,修改程序中的錯誤; 第六步,整理總結書寫報告,進行答辯。

1.3人員分工

張浩:分析構架,核心代碼編寫;

李康:用戶界面設計,輔助代碼編寫,調試; 張曉玉:功能測試、書寫實驗報告。

1.4 開發環境及開發工具

本程序是以在windows XP下用Netbeans和 jdk搭建的平臺上,以Java作為開發語言進行編寫的。

使用的開發工具:netbeans.NetBeans平臺直接提供了應用程序的常見需求,如菜單、文檔管理和設置。“NetBeans”構建應用程序是指,僅提供 NetBeans平臺尚不包含的應用程序部分,而不是從頭開始編寫應用程序。在開發周期結束時,可以將應用程序與 NetBeans平臺捆綁在一起,從而節省了很多時間和精力,并且構建的應用程序穩定可靠。

使用的開發語言:java.Java是一種簡單的、面向對象的、分布式的、解釋的、鍵壯的、安全的、結構的中立的、可移植的、性能很優異的多線程的、動態的語言。其特點主要有:平臺無關性、健壯性、面向對象、安全性、分布式。

1.5使用的基本概念和原理

多道程序:用戶所提交的作業都先存放在外存中并排成一個隊列,成為“后備隊列”;然后,由作業調度程序按一定的算法由后被隊列中選擇若干個作業調入內存,使它們共享CPU和系統中的各種資源。

進程:進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位。

線程:操作系統用來調度、分派的最小單位。同步和互斥:

臨界段:臨界段對象通過提供所有線程必須共享的對象來控制線程。只有擁有臨界段對象的線程才可以訪問保護資源(進行臨界區操作)。在另一個線程可以獲取對象的訪問權。用戶應用程序可能會使用臨界對象來阻止兩個線程同時訪問共享的資源發文件等。

互斥量:互斥量的工作方式和臨界段非常相似,其區別在于互斥量不

公保護一個進程內的資源共享,而且還保護系統中進程之間的共享資源。它是通過為互斥量提供一個“互斥量名”來進行進程間資源共享協調的。

事件:事件對象用于給線程傳遞信號,指示線程中特定的操作可以開始或結束。除非線程已經收到了這個事件信號,否則它將一直處于掛起狀態。當事件對象進入其信號狀態時,正在等待該事件的線程就可以開始執行。例如,一個應用程序可以通過事件來通知線程它需要的數據已經準備好。經常利用事件進行線程之間的通信。

信號量:信號量與互斥相似,但是互斥只允許在同一時刻一個線程訪問它的數據,而信號量允許多個線程在同一時刻訪問它的數據。WIN32 不知道哪一個線程擁有信號量,它只保證信號量使用的資源計數正確的設置。

2需求分析

協調司機和售票員以及乘客在運行與開關門以及上下車時的關系,實現同步互斥,避免發生不必要的沖突,節省了時間空間資源。本程序顯示上下車人數,并顯示車上總人數,使車內人數不超過總座位數。最終,利用統計功能,顯示此次公交車運行的各種參數:車次、總站數、總載客數。

3總體設計

基本的技術路線:面向對象;

軟件的總體結構:分為可視化界面以及后臺數據執行;

內部模塊關系:司機類與售票員類同步互斥,上車類與下車類同步互斥;

總體流程:停車-開門-下車-上車-關門-開車;

需要創建的進程線程:主窗口線程、司機線程、售票員線程、上車乘客線程、下車乘客線程。

流程圖如下:

4詳細設計

Wait(),notify(),實現進程的等待和喚醒。

BusJFrame()創建主窗口,Driver()和Conductor()分別創建司機和售票

員線程,PassengerOn()創建上車線程,PassengerOff()創建下稱線程。

確定要設計的過程、構件、類、對象、函數和它們的參數,要給出具體的名稱和參數及其解釋。

由Driver類調用BusState類的stopCar()和runCar()方法,由Conductor類調用BusState類的openDoor()和closeDoor()方法,實現同步互斥。

由PassengerOn類調用Seat類的takeOn()和hasOn()方法,由PassengerOff類調用Seat類的takeOff()和hasOff()方法,實現上下車線程的同步和互斥

5編碼設計

5.1開發環境的設置和建立

首先安裝JDK,如下圖:

然后安裝Netbeans,并關聯JDK:

5.2程序設計過程只需要注意的事項

實現同步互斥的方法應成對出現,防止出現死鎖狀態;互斥信號應定義清晰,以用于互斥方法的實現;線程的創建和指針傳遞清晰明確,用于線程之間的交互。

5.3關鍵構件和插件的使用

Netbeans的使用與一般編程軟件接近,但是它包含了很多強大的插件,利用其中的插件我們可以簡單的實現很多復雜的功能,例如在本次試驗中

惡我們程序的可視化窗口的建立就是利用如下組建實現的。

5.4主要程序的代碼設計及注釋

BusState類主要源代碼: public class BusState {

public static boolean doorClosed=false;

public static boolean busStopped=true;

//獲取輸出框指針

private static JTextArea bSay;

public static void getBusSay(JTextArea b)

{

bSay=b;

}//獲取輸出框指針

public synchronized void stopBus()

{

busStopped=true;

bSay.setText(“車已停”);

this.notify();

}

public synchronized void runBus()throws InterruptedException

{

while(!doorClosed)

{

this.wait();

busStopped=false;

}

}

public synchronized void closeDoor()

{

doorClosed=true;

bSay.setText(“門已關”);

this.notify();

}

public synchronized void openDoor()throws InterruptedException

{

while(!busStopped)

{

this.wait();

doorClosed=false;

}

}

} package ysu;

import java.util.logging.Level;import java.util.logging.Logger;

Conductor類的主要源代碼: public class Conductor extends Thread{

//獲取主窗口指針

private static BusJFrame bj;

public static void getBusJFrame(BusJFrame b)

{

bj=b;

}

//獲取BusState類的指針

private static BusState bState;

public static void getBusState(BusState b)

{

bState=b;

}

//獲得一個Driver進程類的指針

private static Driver dr;

public static void getDriver(Driver d)

{

dr=d;

}

//用于創建On和Off類

private void createOn()

{

Thread a=new PassengerOn();

a.start();

}

private void createOff()

{

Thread b=new PassengerOff();

b.start();

}

private boolean timeToQuit=false;

private int station=0;

public static boolean finish=false;

public void run()

{

while(!timeToQuit)

{

try {

bState.openDoor();

bj.busSay.setText(“門已開”);

Thread.sleep(1000);

bj.busSay.setText(null);

bj.conductorSay.setText(“請抓緊時間上下車”);

Thread.sleep(2000);

bj.conductorSay.setText(null);

bj.busSay.setText(“開始上下車”);

Thread.sleep(2000);

bj.busSay.setText(null);

Seat.doorAvailable=true;

if(Seat.willOn>(Seat.seatRemain+Seat.willOff))

{

Seat.canOn=Seat.seatRemain+Seat.willOff;

}else

{

Seat.canOn=Seat.willOn;

}

//統計本次出車載客人次數

Seat.totalPassenger=Seat.totalPassenger+Seat.canOn;

//創建上下車乘客的進程

for(int i=0;i

{

坐下班客車“);

createOff();}

for(int i=0;i

createOn();} if(Seat.canOn==0&&Seat.willOff==0){

finish=true;}else {

finish=false;//等待上下車完成 } while(!finish){Thread.sleep(100);} if(Seat.canOn

bj.busSay.setText(”很抱歉n本車已滿n歡迎乘

Thread.sleep(2000);} Seat.doorAvailable=false;Seat.hasOn=0;//清零,防止出現累加 Seat.hasOff=0;

bj.busSay.setText(“上下車完畢”);

bj.seatRemain.setText(“"+Seat.seatRemain);

bj.seatUsed.setText(”“+Seat.seatUsed);

station++;

if(station>Seat.totalStation)

{

timeToQuit=true;

Driver.timeToQuit=true;

break;

}

Thread.sleep(2000);

bj.busSay.setText(null);

bj.conductorSay.setText(”關門了“);

Thread.sleep(2000);

bj.conductorSay.setText(null);

bState.closeDoor();

Thread.sleep(1000);

} catch(InterruptedException ex){

Logger.getLogger(Conductor.class.getName()).log(Level.SEVERE, null, ex);

}

try {

Thread.sleep(200);

} catch(InterruptedException ex){

Logger.getLogger(Conductor.class.getName()).log(Level.SEVERE, null, ex);

}

}

bj.conductorSay.setText(”終點站到了n謝謝乘坐本車n再見“);

bj.willOff.setText(”“+0);

bj.willOn.setText(”“+0);

BusJFrame.sumrizeAvailable=true;

dr.stop();

} } /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;import java.util.logging.Level;import java.util.logging.Logger;Driver類主要源代碼:

public class Driver extends Thread{

//獲取主窗口指針

private static BusJFrame bj;

public static void getBusJFrame(BusJFrame b)

{

bj=b;

}

//獲取BusState類的指針

private static BusState bState;

public static void getBusState(BusState b)

{

bState=b;

}//獲取BusState類的指針

public static boolean timeToQuit=false;

public void run()

{

while(!timeToQuit)

{

try {

bState.runBus();

Thread.sleep(1000);

bj.driverSay.setText(”出發“);

已有的人

人數

bj.nowNextSation.setText(”下一站“);bj.nextStation.setText(”第“+(++Seat.nextStation)+”站“);int a=(int)(Math.random()*10);//下車人數不能多于車上if(Seat.seatUsed

Seat.willOff=Seat.seatUsed;}else {

Seat.willOff=a;} //提前創建下一站要下車的人數 if(Seat.nextStation==Seat.totalStation){

Seat.willOn=0;

Seat.willOff=Seat.seatUsed;}else {

Seat.willOn=(int)(Math.random()*10);//生成上車的} bj.willOff.setText(”“+Seat.willOff);bj.willOn.setText(”“+Seat.willOn);bj.busSay.setText(null);Thread.sleep(2000);bj.driverSay.setText(null);

bj.busSay.setText(”客車行駛中“);

Thread.sleep(3000);

bj.busSay.setText(null);

bj.driverSay.setText(”到站了“);

bj.nowNextSation.setText(”本站“);

Thread.sleep(1000);

bj.driverSay.setText(null);

bj.busSay.setText(”車已停“);

Thread.sleep(1000);

bState.stopBus();

Thread.sleep(1000);

} catch(InterruptedException ex){

Logger.getLogger(Driver.class.getName()).log(Level.SEVERE, null, ex);

}

}

} } Seat類的主要源代碼: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;/** * * @author Administrator */ public class Seat {

public static int totalStation=4;

public static int totalPassenger=0;

public static int totalSeat=30;

public static int stationName=10;

public static int busName=30;

public static int seatTotal=30;

public static int seatRemain=30;

public static int seatUsed=0;

public static int willOff=0;

public static int willOn=0;

public static int canOn=0;

public static int hasOn=0;

public static int hasOff=0;

public static int nextStation=0;

public static boolean doorAvailable=true;

public static void reset()

{

totalStation=12;

totalPassenger=0;

totalSeat=30;

stationName=0;

busName=30;

seatTotal=30;

seatRemain=30;

seatUsed=0;

willOff=0;

willOn=0;

canOn=0;

hasOn=0;

hasOff=0;

nextStation=0;

doorAvailable=true;

}

public synchronized void takeOn()throws InterruptedException

{

while(!doorAvailable||hasOff

{

this.wait();

}

doorAvailable=false;

hasOn++;

seatUsed++;

seatRemain--;

}

public synchronized void takeOff()throws InterruptedException

{

while(!doorAvailable)

{

this.wait();

}

doorAvailable=false;

hasOff++;

seatUsed--;

seatRemain++;

}

public synchronized void hasOff()

{

doorAvailable=true;

this.notifyAll();

if(Seat.hasOff==Seat.willOff&&Seat.canOn==0)

{

Conductor.finish=true;

}

}

public synchronized void hasOn()

{

doorAvailable=true;

this.notifyAll();

if(Seat.hasOn==Seat.canOn)

{

Conductor.finish=true;

}

} } PassengerOn類的主要源代碼如下: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/ package ysu;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */ public class PassengerOn extends Thread{

//獲得Seat類的指針

private static Seat seat;

public static void getSeat(Seat s)

{

seat=s;

}

//獲取主窗口指針

private static BusJFrame bj;

public static void getBusJFrame(BusJFrame b)

{

bj=b;

}

@Override

public void run()

{

try {

Thread.sleep(100);

} catch(InterruptedException ex){

Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex);

}

try {

seat.takeOn();

} catch(InterruptedException ex){

Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex);

}

bj.busSay.append(”第“+Seat.hasOn+”人已經上車n“);

bj.seatUsed.setText(”“+Seat.seatUsed);

bj.seatRemain.setText(”“+Seat.seatRemain);

bj.willOn.setText(”“+(Seat.canOn-Seat.hasOn));

bj.willOff.setText(”“+(Seat.willOff-Seat.hasOff));

try {

Thread.sleep(2000);

} catch(InterruptedException ex){

Logger.getLogger(PassengerOn.class.getName()).log(Level.SEVERE, ex);

null,null, null,}

seat.hasOn();

} } PassengerOff類的主要源代碼如下: /* * To change this template, choose Tools | Templates * and open the template in the editor.*/

package ysu;import java.util.logging.Level;import java.util.logging.Logger;/** * * @author Administrator */ public class PassengerOff extends Thread{

//獲得Seat類的指針

private static Seat seat;

public static void getSeat(Seat s)

{

seat=s;

}

//獲取主窗口指針

private static BusJFrame bj;

public static void getBusJFrame(BusJFrame b)

{

bj=b;

}

@Override

public void run()

{

try {

Thread.sleep(100);

} catch(InterruptedException ex){

Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex);

}

try {

seat.takeOff();

} catch(InterruptedException ex){

Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex);

}

bj.busSay.append(”第“+Seat.hasOff+”人已經下車n“);

bj.seatUsed.setText(”“+Seat.seatUsed);

bj.seatRemain.setText(”“+Seat.seatRemain);

bj.willOn.setText(”“+(Seat.canOn-Seat.hasOn));

bj.willOff.setText(”"+(Seat.willOff-Seat.hasOff));

try {

Thread.sleep(2000);

} catch(InterruptedException ex){

Logger.getLogger(PassengerOff.class.getName()).log(Level.SEVERE, ex);

}

seat.hasOff();

} }

null,null, null,5.5解決的技術難點、經常犯的錯誤

理清司機與售票員之間的同步互斥關系和用于實現互斥的變量和放法,理清上下車乘客的同步互斥關系的變量與方法,確定司機、售票員、上下車乘客同步互斥變量;

出現的錯誤有:互斥變量的使用,設計的位置不當,實現同步互斥的方法位置不當,最初的邏輯構架關系不對,以上錯誤經認真斟酌、校驗,均已解決。

6測試

在已經安裝JDK的操作系統中雙擊可執行文件,進入公交車模擬系統,可以根據菜單或者快捷鍵進行操作。

點擊開始,系統中顯示客車次、總站臺數等等,如圖:

上下車人員按先下后上進行上下車,如圖:

當到達終點站時,車上乘客必須全部下車,不允許上車操作,如圖:

當到達終點站,進行下車完畢后,點擊統計,可以查看本次出車載客人次,如圖:

點擊退出即可退出公交車模擬系統。

7.總結

突出特地:簡單、易操作。完整地表示了行車與開門的同步互斥,下車與上車的同步互斥。

經驗、教訓和感受:

總體說來,這次OS課程設計是一次很有趣味的歷程。實驗期間安裝了Netbeans并參考了一些基礎書籍,對Netbeans的基本操作和特性有了必須的了解,為課設的開展打下了一個最簡陋的基礎。實驗題目涵蓋面較廣,需要廣泛的查閱資料,以及開動腦筋獨立解決種種問題。Netbeans并不是易于使用的系統,因此在實驗過程中也自然的遇到了許許多多“稀奇古怪”的問題,同時又在解決與理解問題中對這個系統一個個精妙的強大的設計感嘆不已。

與其他同學的交流也是這次課設中有意思的地方。本班解決生產者消

費者問題和公交車模擬問題的同學幾乎各占一半,于是在討論的過程中也對不同的設計風發之間的差異有了更深的認識。從同學那里獲得幫助,幫助別人解決問題,自己都受益匪淺,也在這樣的氛圍中越來越感覺到應用編程與開發的樂趣。

在完成的源代碼中還存在相當多的不足,例如圖形顯示的Bug,忽略文件屬性控制等等。需要在以后的學習與工作中更加努力的改進。這次的OS課程設計,也為我們提供了一個鍛煉與審視自身能力的機會,意義匪淺。

8.參考文獻

Netbeans-JAVA桌面、WEB與企業級程序開發詳解 吳亞峰 王鑫磊著

人民郵電出版社

JAVA語言程序設計

郎波 著

清華大學出版社

第四篇:公交車調度系統解決方案

[公交車調度系統解決方案] 聯系電話:***

聯系QQ:100816410

一、需求分析

隨著我國國民經濟的飛速發展,城市建設日新月異,城市交通問題日益嚴重,已成為嚴重影響許多大中城市發展的重點問題之一。由公共交通客運量大、相對投資少、占有資源少、效率高、污染相對較少、人均占用道路少等優點。近年來,各地政府領導及交通管理部門都大國發展公共交通,改善城市交通。然而要想使得城市公交發展步入快車道,就迫切需要建設一個符合公交系統實際應用的智能化調度管理系統,通過技術集成,形成新的系統概念和系統功能,提高交通和管理部門的管理水平,向管理要效益,要資源。針對行業管理難題,制定了一套完整的公交車的GPS解決方案,可以實時記錄車輛狀態信息,包含車輛的具體位置,行駛方向,行駛速度,停車時間,停車地點,歷史信息回放,里程統計等功能。GPS系統已經率先為汽車租賃行業的科學化管理進行實踐,實現了與多種現代化技術手段的有機結合,很好地解決了制約我國汽車租賃業發展的難題。公交車輛管理調度的特點是:

高精度定位車輛的具體位置、行駛方向、行駛速度——規避租車風險

軌跡回放:可調閱被控車輛歷史行程、軌跡記錄——有效分析行車路線遠程控制車輛:特殊情況下通過監控中心對被控車輛遠程進行斷油斷電、鎖車——保障汽車安全

對系統響應要求靈活、及時

車輛信息統一管理:車輛資料有序存檔、方便查詢

我們提出既滿足GPS監控系統的需求,又無必要建設和維護一個大型的系統,而且對功能的要求相對簡單、實用的方案。

二、系統概念

GPS車輛監控調度系統是集全球衛星定位系統(GPS)、地理信息系統(GIS)以及無線通信技術于一體的軟、硬件綜合系統。主要由三部分組成:監控中心軟件系統、無線數據鏈路和GPS車載終端。可對移動車輛進行統一集中管理和實時監控調度指揮。GPS車輛監控調度系統利用電腦通過INTERNET,監控范圍可以隨著目標移動、放大、縮小,使目標始終保持在屏幕上,實現多窗口、多車輛、多屏幕同時追蹤;GPS滿足了車輛的安全、快捷、準確的需求,提高了車輛服務能力、人員利用率、規范科學化管理水平及降低車輛的油耗、人員成本。

三、方案特點

系統利用GPS導航定位技術、GSM移動通信技術、GIS地理信息技術和計算機及網絡技術,成功地為構造了一個可以覆蓋全國的多層次的GPS車輛監控服務的系統,利用電腦通過INTERNET,監控范圍可以隨著目標移動、放大、縮小,使目標始終保持在屏幕上,實現多窗口、多車輛、多屏幕同時追蹤;GPS滿足了車輛的安全、快捷、準確的需求,提高了車輛服務能力、人員利用率、規范科學化管理水平及降低人員成本。

四、系統功能簡介

車輛定位查詢

GPS衛星定位管理系統建立起了租賃公司與移動資產之間迅速、準確、有效的信息傳遞通道。租賃公司可以隨時掌握移動資產狀態。同時,可以根據需要對車輛進行遠程控制。隱秘跟蹤式GPS衛星監控車載終端,安裝此終端的車輛或設備將連續發送工作信號和位置信息到管理中心。

越界報警

租賃公司可以設定租賃車輛或設備的運行界限,當車輛或設備超出界限時,將自動向監控中心發出 車輛越界報警,中心將自動對車輛進行實時跟蹤。緊急報警

當油罐車輛遇劫時,可觸發隱蔽式的報警按鈕向中心報警,總控中心在地圖上將對該移動目標進行相應的色彩及圖標的突出顯示并以聲、光報警提醒值班員注意,同時在屏幕上顯示出該移動目標的用戶資料,包括車輛信息(車輛編號、車牌號、車型、顏色、發動機號)、駕駛員信息(司機名、駕駛證號、行駛證號、聯系電話)、聯系方式(所屬單位、負責人、電話)、車輛狀態(車輛位置、方向、速度、時間)等信息,幫助值班員進行警情處理。能提供警情受理記錄窗,供值班員記錄受理情況。

超速報警

為確保行車安全,監控中心可以提示司機注意行車安全,控制行車速度,從而降低事故風險。

軌跡記錄/回放

系統可將被監控車輛或設備的運行軌跡自動記錄下來,選定某車某時間段的位置記錄進行軌跡回放,為事后的分析或處理糾紛提供可靠的證據。

車輛信息統一管理

建立各類數據系統,包括:用戶數據管理系統、車載終端管理系統、協助單位管理系統、值班員管理系統、警情管理系統、錄音管理系統等,并進行存儲,可提供查詢、回放、打印等功能。

五、系統效應

統一調度:提高車輛管理效率

超速報警:確保行車安全

定位跟蹤、實時監控,有效規避風險

消除隱患,降低風險系數

遠程遙控,斷油斷電,保證行車安全

軌跡記錄/回放,協助事后追車,降低公司損失

第五篇:自動售貨機系統程序

Coin類:

#include #include #include

using namespace std;

class Coin { public: /** Constructs a coin with a given name and value @param n the coin name @param v the coin value */ Coin(string n, double v);/** Gets the coin name.@return the name */ string get_name()const;/** Gets the coin value @return the value */ double get_value()const;private: string name;double value;};

Coin::Coin(string n, double v){ name = n;value = v;}

string Coin::get_name()const { return name;}

double Coin::get_value()const { return value;}

Product類: #include #include #include

using namespace std;

class Product { public: /** Constructs a product with a given name, price and quantity @param n the product name @param p the price @param q the quantity */ Product(string n, double p, int q);/** Gets the product name @return the name */ string get_name()const;/** Gets the product price @return the price */ double get_price()const;/** Gets the product quantity @return the quantity */ int get_quantity()const;/** Adds to the product quantity @param amount the amount to add */ void add_quantity(int amount);private: string name;double price;int quantity;};

Product::Product(string n, double p, int q){ name = n;price = p;quantity = q;}

string Product::get_name()const { return name;}

double Product::get_price()const { return price;}

int Product::get_quantity()const { return quantity;}

void Product::add_quantity(int amount){ quantity = quantity + amount;}

VendingMachine類:

class VendingMachine { public: /** Constructs a vending machine with no current product selection.*/ VendingMachine();/** Adds product to the machine.@param p the product to add */ void add_product(Product p);/** Sets the currently selected product @param name the product name @return true if the machine has a product with the given name */ bool select_product(string name);void chaxun_product();//查詢當前售貨機內的商品

/** Adds a coin to pay for the currently selected product.@param c the coin to add @return true if sufficient coins have been added to pay for the selected product.*/ bool add_coin(vector current_pay);/** Removes all coins that were added to pay for the current product.@return the value of the returned coins */ double return_coins();/** Removes all money that was paid for products.@return the value of the money */ double remove_money();double add_coinbijiao(vector current_pay);//對投入的金錢和所購買的商品的價格進行比較

double return_yiyoucoins();//統計售貨機中已有的貨款 void setcurrent_product();//把當前選擇的商品代號置為-1 int getcurrent_product();//得到當前選擇的商品代號 private: vector

products;int current_product;vector current_payment;vector coins;};

VendingMachine::VendingMachine(){ current_product =-1;}

void VendingMachine::add_product(Product p)//添加商品 { for(int i = 0;i < products.size();i++){ if(products[i].get_name()== p.get_name()&& products[i].get_price()== p.get_price()){ products[i].add_quantity(p.get_quantity());cout<<“添加成功!”<

{

cout<<“已存在該商品,與您輸入的價格不同!”<

return;

} } products.push_back(p);cout<<“添加成功!”<

bool VendingMachine::select_product(string name)//選擇商品 {

int i;for(i = 0;i < products.size();i++){

if(products[i].get_name()== name && products[i].get_quantity()> 0){ current_product = i;return true;} else { if(products[i].get_name()== name && products[i].get_quantity()== 0){ cout << “對不起,該商品已售完!n”;return false;} } } if(i==products.size()){ cout<<“對不起,不存在該商品!”<

double VendingMachine::return_yiyoucoins()//統計售貨機當前的金錢總額 { double total = 0;for(int i = coins.size()1;i >= 0;i--){ coins.push_back(current_payment[i]);current_payment.pop_back();} products[current_product].add_quantity(-1);current_product =-1;cout<<“交易成功!”<

{ return false;} }

double VendingMachine::add_coinbijiao(vector current_pay){ if(current_product ==-1)return false;double total = 0;for(int k=0;k < current_pay.size();k++){ total = total + current_pay[k].get_value();

} double m=products[current_product].get_price()-total;if(m>0)return m;else return-1;}

double VendingMachine::return_coins()//統計當前投入的金錢總額 { double total = 0;for(int i = current_payment.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

void VendingMachine::chaxun_product(){

if(products.size()==0){ cout<<“暫時沒有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

int VendingMachine::getcurrent_product(){ return current_product;}

Main函數:

#include #include #include #include“coin.h” #include“product.h” #include“machine.h” using namespace std;

void main(){ vector coins;vector current_pay;coins.push_back(Coin(“nickel”, 0.05));coins.push_back(Coin(“dime”, 0.1));coins.push_back(Coin(“quarter”, 0.25));coins.push_back(Coin(“rmb”, 1.00));

VendingMachine machine;bool more = true;machine.chaxun_product();while(more){ cout << “a)添加商品 x)查詢商品 s)選擇商品 p)投幣 c)取消 e)查詢當前金額 r)取款 q)退出: ”;string command;cin>>command;if(command == “a”){ cout << “商品名: ”;string name;cin>>name;

cout << “價格: ”;double price;cin >> price;cout << “數量: ”;int quantity;cin >> quantity;machine.add_product(Product(name, price, quantity));} else if(command == “s”){

double total1;

total1=machine.return_yiyoucoins();

if(total1>=5000)//當售貨機中的貨款大于等于5000時,暫停售貨

{

cout<<“對不起,現在暫停售貨!”<

}

else

{ machine.setcurrent_product();cout << “商品名: ”;string name;cin>>name;machine.select_product(name);

} } else if(command == “p”){

if(machine.getcurrent_product()!=-1)//如果當前已選擇商品,才可以投幣

{ bool panduan=false;while(!panduan)//多次投幣的實現

{ cout << “所投錢幣名稱(以 # 結束投幣過程):”;string name;cin>>name;while(name!=“#”){ bool found = false;for(int i = 0;!found && i < coins.size();i++){ if(coins[i].get_name()== name){ current_pay.push_back(coins[i]);found=true;} } if(!found){ cout << “不存在該貨幣,請重新投入:n”;} cin>>name;

}

double k=machine.add_coinbijiao(current_pay);if(k==-1)

{ machine.add_coin(current_pay);for(int i = current_pay.size()1;i >= 0;i--){ total = total + current_pay[i].get_value();current_pay.pop_back();} cout << “Returned(退還)” <

else

cout<<“您還沒有選擇商品!”<

{

machine.setcurrent_product();

double total=0;

for(int i = current_pay.size()1;i >= 0;i--){ total = total + coins[i].get_value();coins.pop_back();} return total;}

void VendingMachine::chaxun_product(){

if(products.size()==0){ cout<<“暫時沒有添加商品!”<void VendingMachine::setcurrent_product(){ current_product=-1;}

int VendingMachine::getcurrent_product(){ return current_product;} }

JAVA

import Input.touqian;import java.*;class shangpin {

} class fenpeiqi {

}

class xianshichanpin {

fenpeiqi fpq[]=new fenpeiqi[3];public xianshichanpin(){

fpq[0]=new fenpeiqi(3.0);fpq[0].sp[0]=new shangpin(“玉米烤腸

”,10);fpq[0].sp[1]=new shangpin(“可口可樂

”,15);fpq[0].sp[2]=new shangpin(“百事可樂

”,10);fpq[1]=new fenpeiqi(5.0);fpq[1].sp[0]=new shangpin(“哈德門香煙”,10);fpq[1].sp[1]=new shangpin(“將軍香煙

”,15);fpq[1].sp[2]=new shangpin(“紅梅香煙

”,10);fpq[2]=new fenpeiqi(10.0);fpq[2].sp[0]=new shangpin(“一支筆香煙”,10);fpq[2].sp[1]=new shangpin(“紅塔山香煙”,10);fpq[2].sp[2]=new shangpin(“泰山香煙

”,15);double price;shangpin sp[]=new shangpin[3];public fenpeiqi(double price){ } this.price=price;String name;int num;public shangpin(String name,int num){

} this.name=name;this.num=num;

#“);#”);#“);#”);#“);

} } void show(){ System.out.println(”===============

System.out.println(“#

System.out.println(”#

System.out.println(“#

歡迎使用自動售貨機

System.out.println(”#

System.out.println(“#

=================”);System.out.println(“===============

System.out.println();System.out.println(”編號tt“+”名稱ttt“+”價格tt“+”數量t“);for(int i=0;i

} if(fpq[i]!=null){

} for(int j=0;j

} } if(fpq[i].sp[j]!=null){ =================”);System.out.println((i+1)*10+j+1+“tt”+fpq[i].sp[j].name+“tt”+fpq[i].price+“tt”+fpq[i].sp[j].num);System.out.println(“=============== } =================”);class panduan { boolean ying()

} {

} boolean zhi(){

}

int z=touqian.in();

if(z==5||z==10){ } else { } return false;return true;double y=touqian.dou();if(y==1||y==0.5){ } else { } return false;return true;class jiabi {

switch(touqian.in())void ceshi(){ System.out.println(“請選擇投放錢的類型 ”);System.out.println(“1 表示投放 硬幣”);System.out.println(“2 表示投放 紙幣”);System.out.println(“請輸入您選擇的錢的類型 :”);

panduan pd=new panduan();

{ case 1:

System.out.println(“請您投入有效的面值”);

if(pd.ying())

{

System.out.println(“您投入的是有效地硬幣”);

System.out.println();

// System.out.println(“^_^ 請選擇您所需要的物品^_^”);

}

else

}

class chanpin {

{

System.out.println(“您投入的不是有效地硬幣,請您重新投入”);

}

break;

case 2 :

System.out.println(“請您投入有效的面值”);

if(pd.zhi())

{

//

}

else

{

}

break;

default :

System.out.println(“請您重新投入有效地貨幣”);

} }

System.out.println(“您投入的不是有效的紙幣,請您重新投入”);System.out.println(“您投入的是有效的紙幣”);System.out.println();System.out.println(“^_^ 請選擇您所需要的物品^_^”);

} } public static void main(String args[]){

System.out.println(“請輸入您想要產品的編碼:”);int bianma;bianma=touqian.in();System.out.println(“請輸入您想要產品的數量:”);int shuliang;shuliang=touqian.in();System.out.println(“您一共要付:”);double sumjine;sumjine= xianshichanpin xscp=new xianshichanpin();xscp.show();

下載公交車自動報站系統設計的論文(全文5篇)word格式文檔
下載公交車自動報站系統設計的論文(全文5篇).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    公交車管理系統整體解決方案

    公交車管理系統整體解決方案 公交車管理系統能夠時刻監測公交出行路線和運行狀態,公交行駛路徑軌跡一目了然,車輛業務管理系統幫您快速解決車輛難題。智百盛公交車管理系統界......

    區域氣象自動監測系統設計及建設

    區域氣象自動監測系統設計及建設近年來,氣象綜合觀測系統建設快速發展,全國地面氣象觀測站已全部完成自動氣象站的建設,區域自動氣象站作為綜合觀測體系的重要組成部分具有量......

    自動攪拌機控制系統及其監控系統設計(推薦)

    圖書分類號: 密 級: 畢業設計(論文) 自動攪拌機控制系統及其監控系統設計 AUTOMATIC MIXER CONTROL SYSTEM AND MONITORING SYSTEM DESIGN 畢業設計(論文) 學位論文原創性聲......

    自動售貨機的PLC系統設計[5篇范文]

    常工院畢業設計論文 自動售貨機的PLC系統設計 摘要:本文介紹了自動售貨機的基本原理以及工作流程,然后以一次交易過程為例,把交易過程分為了幾個程序塊,然后分別對程序塊進行編......

    城市公交車設計說明書

    YD6100GH城市公交車 乘客區數字化設計 專 業:機械設計制造及其自動化(汽車工程) 學 生:陸海英 指 導 教 師:陳靖芯 完 成 日 期:2006-6-7 揚州大學機械工程學院 中文摘要 隨著城市......

    智能公交車管理系統功能需求

    1 系統功能設計 1.1 GIS功能 GIS功能模塊包括地圖服務、地圖管理、檢索、車輛實時顯示、車輛跟蹤功能、軌跡繪制、距離計算功能。 GIS模塊數據流序列圖gis服務器客戶端GPS數......

    水文自動測報系統規范

    水文自動測報系統規范 1 總 則 1.0.1 為適應我國水文自動測報系統的發展,做好水文自動測報系統規劃、設計、建設和運行管理,統一技術標準,特制定本規范。 1.0.2 本規范適用于......

    消防自動報警系統操作規程

    消防系統操作規程 1.消防設備為專用設備,采用不間斷電源,如遇特殊情況需停電時,停電時間不宜超過1小時。 2.火警處理: 當發生火警時,首先應按“消音”鍵中止警報聲。然后應根據......

主站蜘蛛池模板: 88国产精品视频一区二区三区| 久久久亚洲精品无码| 国内精品久久久久久中文字幕| 国产午夜亚洲精品不卡网站| 日本韩国三级观看| 肥老熟妇伦子伦456视频| 人妻少妇一区二区三区| 国产精品三级在线观看无码| 成人免费无码大片a毛片软件| 热久久美女精品天天吊色| 97婷婷狠狠成为人免费视频| 青青草原亚洲| 亚洲婷婷五月综合狠狠| 亚洲日本va午夜在线影院| 欧美性生 活18~19| 亚洲欧美国产双大乳头| 国产如狼似虎富婆找强壮黑人| 巨大巨粗巨长 黑人长吊| 亚洲嫩模喷白浆在线观看| 欧美一区二区三区成人片在线| 精品人成视频免费国产| 午夜131美女爱做视频| 人妻中文字幕无码系列| 亚洲精品久久久久久久蜜桃臀| 香蕉av久久一区二区三区| 久久视频这里只精品10| 97人妻无码专区| 加勒比色综合久久久久久久久| 99久久久成人国产精品免费| 久久久久久久综合色一本| 中国熟妇内谢69xxxxx| 国产福利一区二区三区高清| 亚洲精品av一二三区无码| 亚洲欧美日韩成人一区| 亚洲综合制服丝袜另类| 四虎国产精品免费永久在线| 国产精品白丝喷水在线观看| 激情亚洲图片激情亚洲小说| 国产果冻豆传媒麻婆精东| 亚洲精品中文字幕久久久久| 亚洲乱码日产一区三区|