




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 40基于PLC應用技術的十字路口紅綠燈 課程設計摘 要近年來隨著科技的飛速發展,PLC的應用正在不斷地走向深入,同時帶動傳統控制檢測日新月異更新。在實時檢測和自動控制的單片機應用系統中,單片機往往是作為一個核心部件來使用,針對具體應用對象的特點,配以其它器件來加以完善。電氣控制與PLC是本學期新開的一門技術課,也是非常重要的一門課,對于以后的工作有很大的幫助。為了能更好的認識和理解PLC方面的知識,以便能更好的掌握PLC這門技術。PLC課程組決定讓我們完成一份PLC課程設計說明書。這一周是PLC課程設計周,我要全面的投入課程設計當中,按時完成一份完整的并排版打印好的PLC課
2、程設計說明書。我設計的題目是“十字路口交通燈的PLC控制”,此次設計主要內容包括:工作過程分析,梯形圖,接線圖,電氣原理圖及情況說明,由于是第一次寫PLC課程設計,經驗還不是很豐富,可能寫的還不是很完美,還望任課老師們及同學們提出寶貴的意見和建議。關鍵詞:十字路口,交通燈,PLC目 錄摘要 1一、課題背景 31、課題背景 32、研究目的和意義 33、本文的主要工作 5二、已知情況、控制要求、設計要求 61、已知情況 62、控制要求 63、設計要求 7三、總體設計思路 8四、程序設計及調試 91、PLC的選型及I/0分配圖 92、擬定程序的SFC順序功能圖 103、梯形圖、程序工作過程簡析及編程
3、元件明細表 11五、電氣設計 161、PLC外部接線原理圖 162、交通燈順控設備電氣接線線原理圖 163、交通燈順控設備電氣元件明細表 17六、安裝、接線、及系統聯合測試 18七、后期工作 191、操作過程簡要說明 192、常見故障及排除方案 193、編寫并提交(課程)設計說明書 20八、尚存在的問題及方案建議 21九、課程設計總結 22十、致謝 23十一、參考文獻 24十字路口交通燈的PLC順序控制一、課題背景1、課題背景1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯
4、敏斯特區的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。1914年,電氣啟動的紅綠燈出現在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。 1918年,又出現了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變為綠燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變為綠燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路
5、。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發生交通事故。信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯合國道路交通和道路標志信號協定對各種信號燈的含義作了規定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉彎和右轉彎,除非另一種標志禁止某一種轉向。左右轉彎車輛都必須讓合法地正在路口內行駛的車輛和過人行橫道的行人優先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。2、研究目的和意義在十字路口設置交通燈可
6、以對交通進行有效的疏通,并為交通參與者的安全提供了強有力的保障。但是隨著社會、經濟的快速發展,原先的交通燈控制系統已經不能適應現在日益繁忙的交通狀況。如何改善交通燈控制系統,使其適應現在的交通狀況,成為研究的課題。 傳統的十字路口交通控制燈,通常的做法是:事先經過車輛流量的調查,運用統計的方法將兩個方向紅綠燈的延時預先設置好。然而,實際上車輛流量的變化往往是不確定的,有的路口在不同的時段甚至可能產生很大的差異。即使是經過長期運行、較適用的方案,仍然會發生這樣的現象:綠燈方向幾乎沒有什么車輛,而紅燈方向卻排著長隊等候通過。這種流量變化的偶然性是無法建立準確模型的,統計的方法已不能適應迅猛發展的交
7、通現狀,更為現實的需要是能有一種能夠根據流量變化情況自適應控制的交通燈。目前,大部分城市中十字路口交通燈的控制普遍采用固定轉換時間間隔的控制方法。由于十字路口不同時刻車輛的流量是復雜的、隨機的和不確定的,采用固定時間的控制方法,經常造成道路有效利用時間的浪費,出現空等現象,影響了道路的暢通。為此,采用不依賴數學模型的模糊控制方法設計交通燈控制器,能較好地解決這個問題。另外隨著眾多高科技技術在日常生活的普遍應用,城市空中各種電磁干擾日益嚴重,為保證交通控制的可靠、穩定,選擇了能夠在惡劣的電磁干擾環境下正常工作的PLC是必要的。隨著科學技術的日新月異,自動化程度要求越來越高,原有的交通燈裝置遠遠不
8、能滿足當前高度自動化的需要。可編程控制器交通燈控制系統集成自動控制技術、計量技術、新傳感器技術、計算機管理技術于一體的機電一體化產品;充分利用計算機技術對生產過程進行集中監視、控制管理和分散控制;充分吸收了分散式控制系統和集中控制系統的優點,采用標準化、模塊化、系統化設計,配置靈活、組態方便。可編程控制器交通燈控制系統的特點:脫機手動工作;聯機自動就地工作;上機控制的單周期運行方式;由上位機通過串口向下位機送入設定配方參數實現自動控制;自動啟動、自動停機控制方式。近年來PLC的性能價格比有較大幅度的提高,使得實際應用成為可能。本系統采用PLC是基于以下四個原因:PLC具有很高的可靠性,通常的平
9、均無故障時間都在30萬小時以上;編程能力強,可以將模糊化、模糊決策和解模糊都方便地用軟件來實現;抗干擾能力強,目前空中各種電磁干擾日益嚴重,為了保證交通控制的靠穩定,我們選擇了能夠在惡劣的電磁干擾環境下正常工作的PLC;根據交通信號燈系統的要求與特點,我們采用了德國西門子公司S7-200型PLC。西門子PLC有小型化、高速度、高性能等特點,是S7-200系列中最高檔次的超小型程序裝置。西門子可編程控制器指令豐富,可以接各種輸出、輸入擴充設備,有豐富的特殊擴展設備,其中的模擬輸入設備和通信設備是系統所必需的,能夠方便地聯網通信。本系統就是應用可編程序控制器(PLC)對十字路口交通控制燈實現控制。
10、3、本文的主要工作首先,回顧交通燈的歷史,隨著社會經濟的發展,交通管制的要求越來越高,采用可編程程序控制器來代替中間繼電器和過程控制的微型機,設計開發了交通燈控制系統,才會滿足穩定可靠的交通控制系統需求。然后,敘述了可編程程序控制器的產生、發展、應用的歷程,通過論述可編程程序控制器的各種優點、 卓越性能、結構、原理,有一個感性的總體認識。然后,結合交通燈控制系統的要求,進行硬件、程序設計,從主要部件的選擇、流程的分析、程序思路的產生來完成本次設計任務。然后,通過對系統的調試和檢測,再進行系統性梳理,將隱藏的不足之處加以修正和完善,確保系統能順利運行。二、已知情況、控制要求、設計要求圖1. 示意
11、圖1、已知情況交通燈的布置,其工作過程(工作循環)如圖1-1所示,元件動作狀態如表1-1所示。2、控制要求綠1亮紅2黃1閃紅2綠2亮紅110s黃2閃紅110s3s3s(步1)(步3)(步2)(步4)圖2. 工序圖交通燈控制系統的控制要求如下:(1) 信號燈受一個起動開關控制,當起動開關接通時,信號系統開始工作,且先南北紅燈亮,東西綠燈亮。當起動開關斷開時,所有信號燈都熄滅。(2) 南北綠燈和東西綠燈不能同時亮,如果同時亮時應關閉信號燈系統,并報警。(3) 南北紅燈亮維持25S。在南北紅燈亮的同時東西綠燈也亮,并維持20S。到20S時,東西綠燈閃爍,閃爍3S后熄滅。在東西綠燈熄滅時,東西黃燈亮,
12、并維持2S。到2S時,東西黃燈熄,東西紅燈亮。同時,南北紅燈熄滅,南北綠燈亮。(4)東西紅燈亮維持25S。南北綠燈亮維持25S。然后閃爍3S,熄滅。同時南北黃燈亮,維持2S后熄滅,這時南北紅燈亮,東西綠燈亮。(5) 周而復始 3、設計要求 根據生產設備工作方面及其它方面的需要,本次設計要達到如下設計要求:(1) 要求本次設計的控制裝置采用PLC技術實現;(2) 要能完全滿足控制要求;(3) 要按照電氣設計慣例,提供短路、過載、聯鎖等故障保護措施;(4) 本次設計的控制裝置應由操作屏、電氣控制箱(柜)等部分組成,要盡量與生產設備進行一體化安裝,具體安裝尺寸另行商定;(5)操作屏上要有完整的信號指
13、示,包括對各工作步的指示,以及電源、啟動、停止、故障等指示;三、總體設計思路 根據已知情況、控制要求、設計要求,本液壓組合機床的 PLC-控制裝置的設計可按照“大而化小,分而治之”的思路,劃分為以下5個部分,依序進行,各部分的設計任務分配如下:(1)程序設計及調試擬采用切換法,完成程序的設計,并在實驗室環境中進行模擬調試;(2)電氣設計完成電氣線路原理圖、元件位置圖、接線圖、互連圖、元件明細表的設計;(3)*柜屏設計完成電氣元件安裝圖、控制箱(柜)、操作的設計(40*安裝、接線、聯合測試完成電氣元件的安裝、接線、并對程序與線路進行聯合測試;(5)后期工作說明操作過程、擬定常見故障排除方案、編寫
14、設計說明書等。下面按照這個總體設計思路的任務安排,逐步展開。四、程序設計及調試1 、PLC選型及I/O分配圖根據設計要求、控制要求,選定PLC的型號為:EC -16M 16R它是我國科威公司生產的E系列PLC(與三菱FX2N系列兼容),擁有16路輸入、16路(繼電器)輸出,而本例實際只需要15路輸入、13路輸出,輸出留有約1/3的余量,輸出所留余量超出1/3,完全滿足要求;擁有8K步的內存容量,而本例用戶程序的容量估計在20步左右,完全夠用;支持內置CANbus、485、232通信功能,有利于今后與其它設備進行聯網通信。圖3是十字路口交通燈的I/0分配圖。圖3. I/O分配圖2、擬定程序的SF
15、C順序功能圖擬定程序的SFC順序功能圖如圖3所示。圖3. 程序的SFC順序功能圖程序中,各定時器的定時順序如表1所示。表1. 定時器定時順序定時器時段1.1時段1.2時段1.3時段1.4時段2.1T1循環1時段1定時循環2時段1定時T2循環1時段2定時T3循環1時段3定時T4循環1時段4定時3、 編程PLC十字路口交通燈裝置順控程序、程序工作過程簡析、編程元件明細表本順控程序的初始程序、切換程序、定時程序及輸出程序的梯形圖分別如圖4圖7所示。圖4. 十字路口交通燈-初始程序-梯形圖圖5. 十字路口交通切換程序-SFC圖、梯形圖圖6. 十字路口交通燈定時及動作程序-梯形圖圖7. 十字路口交通燈定
16、時及動作程序-梯形圖(晚間只亮黃燈方案,有缺陷)由上述可得十字路口交通燈的指令表如圖9所示。圖9. 十字路口交通燈順控程序-指令表本程序中所用到的PLC內部的編程元件及其作用如表2所示。表2. PLC編程元件明細表編程元件作用X0起動及循環起點Y2南北綠輸出Y1南北黃輸出Y0東西紅輸出Y12東西綠輸出Y11東西黃輸出Y10南北紅輸出M10中間繼電器,把X0的狀態保持T1東西綠定時T2東西黃定時T3南北綠定時T4南北黃定時五、電氣設計1、 PLC外部接線原理圖PLC外部接線原理圖如圖10所示。圖10. PLC外部接線原理圖2、 交通燈順控設備電氣接線線原理圖交通燈順控設備電氣接線線原理圖如圖11
17、所示。(暫缺)圖11. 交通燈順控設備電氣接線線原理圖3、交通燈順控設備電氣元件明細表參考電氣控制與PLC應用(胡漢文 丁如春主編,人民郵電出版社,2009.5)第9章設計樣例,擬定本順控設備電氣元件明細表如表所示。表3. 交通燈順控設備-電氣元件明細表(不完整)序號文字符號名稱型號規格單位數量備注11#PLC1號PLCEC-08M08R8路輸入8路輸出臺1黃石科威生產23456789101111121415161718下面,對各電氣元件型號規格的選定依據,詳細說明如下:(暫缺)六、 安裝、接線、及系統聯合測試按照元件安裝圖安裝元件;參考原理圖,按照接線圖完成“板內接線”;參考原理圖,按照互連
18、圖,完成板間、柜間接線。最后,對程序系統與電氣系統進行聯合測試,詳細步驟略。如不滿足要求,再回去修改程序或檢查接線,直到滿足要求為止七、 后期工作1、操作過程簡要說明(1) 信號燈受一個起動開關控制,當起動開關接通時,信號系統開始工作,且先南北紅燈亮,東西綠燈亮。當起動開關斷開時,所有信號燈都熄滅。(2) 南北綠燈和東西綠燈不能同時亮,如果同時亮時應關閉信號燈系統,并報警。(3) 南北紅燈亮維持25S。在南北紅燈亮的同時東西綠燈也亮,并維持20S。到20S時,東西綠燈閃爍,閃爍3S后熄滅。在東西綠燈熄滅時,東西黃燈亮,并維持2S。到2S時,東西黃燈熄,東西紅燈亮。同時,南北紅燈熄滅,南北綠燈亮
19、。(4)東西紅燈亮維持30S。南北綠燈亮維持25S。然后閃爍3S,熄滅。同時南北黃燈亮,維持2S后熄滅,這時南北紅燈亮,東西綠燈亮。(5) 周而復始。 2、常見故障及其排除方案(1)檢查PLCRUNP0按一下,綠1紅2點亮?沒有點亮:程序錯誤解決方案:程序重編(2)檢查PLC能否完成1個工作流程?不能:程序錯誤解決方案:程序重編(3)檢查PLC能否從最后1步(黃)回到步1(綠)開始新一輪循環?不能:程序錯誤解決方案:程序重編(4)P1按一下,待進行到最后1步(黃2)之后,不再做新一輪循環?不能:預停程序錯誤解決方案:修改預停程序3、編寫并提交(課程)設計說明書“課程設計說明書”應包括以下內容:
20、(1)封面(2)課程設計任務書(3)摘要(4)目錄(5)已知情況、控制要求、設計要求(6)總體設計思路(7)程序設計及調試(8)電氣設計(9)*安裝、接線、聯合測試(10)后期工作(11)課程設計總結(12)致謝(13)主要參考文獻及資料八、尚存在的問題及方案建議本設計方案雖然“設計簡約,考慮面廣,滿足要求”,但至少存在以下2個問題尚未解決:(1) 電源問題:在設計過程中,為了簡化操作過程,對PLC未加裝分電源開關,這樣不利于操作。(2) PLC電源凈化問題:科威PLC供電電壓為AC180-260V,適應電源范圍較寬,可直接從低壓電網取用220V電源;但為了減弱電網對PLC的干擾,仍應加裝電壓
21、凈化元件,如電源濾波器、隔離變壓器等。建議采取以下方案解決:(1) 針對電源問題,建議加一個電源分開關來解決。(2) 針對PLC電源凈化問題,建議加裝電源濾波器或隔離變壓器的方案來解決。課程設計總結PLC和學別的學科一樣,在學完PLC理論課程后我們做了課程設計,此次設計以分組的方式進行,每組有一個題目。我們做的是一個由三個部分組成的澆灌系統。由于平時大家都是學理論,沒有過實際開發設計的經驗,拿到的時候都不知道怎么做。但通過各方面的查資料并學習。我們基本學會了PLC設計的步聚和基本方法。分組工作的方式給了我與同學合作的機會,提高了與人合作的意識與能力。 通過這次設計實踐。我學會了PLC的基本編程
22、方法,對PLC的工作原理和使用方法也有了更深刻的理解。在對理論的運用中,提高了我們的工程素質,在沒有做實踐設計以前,我們對知道的撐握都是思想上的,對一些細節不加重視,當我們把自己想出來的程序與到PLC中的時候,問題出現了,不是不能運行,就是運行的結果和要求的結果不相符合。能過解決一個個在調試中出現的問題,我們對PLC 的理解得到加強,看到了實踐與理論的差距。 通過合作,我們的合作意識得到加強。合作能力得到提高。上大學后,很多同學都沒有過深入的交流,在設計的過程中,我們用了分工與合作的方式,每個人互責一定的部分,同時在一定的階段共同討論,以解決分工中個人不能解決的問題,在交流中大家積極發言,和提
23、出意見,同時我們還向別的同學請教。在此過程中,每個人都想自己的方案得到實現,積極向同學說明自己的想法。能過比較選出最好的方案。在這過程也提高了我們的表過能力。 在設計的過程中我們還得到了老師的幫助與意見。在學習的過程中,不是每一個問題都能自己解決,向老師請教或向同學討論是一個很好的方法,不是有句話叫做思而不學者殆。做事要學思結合。致謝這次課程設計基本上涵蓋了我們所學習的PLC程序的大部分知識點,課程設計題目要求不僅要求對課本知識有較深刻的了解,同時要求程序設計者由較強的思維能力和操作動手能力。這次課程設計使我對PLC程序的編程、程序的錄入、以及在上機操作調試有了很大的提高。大部分同學只關心程序
24、運行的結果,而對程序的創新絲毫不在意。這是非常不可取的,因為往往在動腦思考創新中我們會有更多收獲,學到更多的知識。做課程設計不僅讓我們修補了以前學習的漏洞,也讓我明白了一個道理:學習好PLC這門技術,需要自己對它有興趣,而且要自己肯于動手操作實驗。最后該感謝幫助我的同學和老師。首先該感謝這門課程任教的胡老師給我們精心的講解和適用的資料。感謝同學們對我學習上的交流和幫助,還得感謝學校給我們這樣的一個自己動手設計的好機會!參考文獻1電氣控制與PLC應用,胡漢文 丁如春 主編,人民郵電出版社,20092科威PLC資料,來自于公司網站3三菱及西門子PLC資料,來自工控網4可編程控制器教程,黃云龍主編,
25、科學出版社,20035可編程控制器應用技術,張萬忠主編,化學工業出版社,20026機電電氣自動控制(修訂版),陳遠齡主編,重慶大學出版社出版,20057十字路口交通燈的PLC控制,來自三筆網 8可編程控制器原理及應用教程,王暉 孫玉峰 王文華 主編,清華大學出版社出版,2004附錄資料:不需要的可以自行刪除測量平差程序設計角度(度分秒)到弧度AngleToRadian#define PI 3.14159265double AngleToRadian(double angle)int D,M;double S,radian,degree, angle,MS;D=int(angle+0.3);MS
26、=angle-D;M=int(MS)*100+0.3);S=(MS*100-M)*100;degree=D+M/60.0+S/3600.0;radian=degree*PI/180.0;return radian;注意:防止數據溢出,要加個微小量,例如0.3.弧度換角度(度分秒) RadianToAngle#define PI 3.14159265double RadianToAngle(double radian)int D,M;double S,radian,degree,MS,angle;degree=radian*180/PI;D=int(degree);MS=degree-D;M=i
27、nt(MS*60);S=(MS*60-M)*60;angle=D+M/100.0+S/10000.0;return angle;已知兩點求坐標方位角Azimuth#include double Azimuth(double xi,double yi,double xj,double yj)double Dx,Dy,S,T;Dx=xj-xi;Dy=yj-yi;S=sqrt(Dx*Dx+Dy*Dy);if(S1e-10) return 0;T=asin(Dy/S);if(Dx0&(Dy0)|T0) T=2*PI+T;return T;4.開辟二維數組的動態空間的宏#include #define
28、NewArray2D(type,A,i,n,m)A=(type*)malloc(n*sizeof(type*); for(i=0;im;i+) Ai=(type*)malloc(m*sizeof(type); 5.釋放開辟的二維數組的空間#define FreeSpace(A,i,m)for(i=0;im;i+) free(Ai); free(A); 注意:釋放空間與開辟空間相反,釋放空間是先釋放列,后釋放行.6.矩陣求轉置transformmatrixvoid transformmatrix(double *A,double *B,int i,int j)int m,n;for(m=0;m=
29、i;m+)for(n=0;n=j;n+)Bnm=Amn:7.矩陣相乘(mulmatrix)void mulmatrix(double *A,double *B,double *C,int i,int j,int k)int m,n,p;for(m=0;mi;m+)for(n=0;nj;n+)Cmn=0;for(p=0;pk;p+)Cmn+=Amp*Bpn:8.矩陣求逆(countermatrix)#include void countermatrix(double *T, double *s, double *r, double *Q,double *N, double *rt,int n)f
30、or(i=0;in;i+)s=Nii;for(k=0;ki;k+)s-=Tki*Tki;Tii=sqrt(s)for(j=i+1;jn;j+)s=Nij;for(k=0;ki;k+)s-=Tki*Tkj;Tij=s/Tii;for(i=0;in;i+)for(j=0;j=0;i+)rii=1/Tii;for(j=i+1;jn;j+)s=0;for(k=i;kj-1;k+)s-=rik*Tkj;rij=s/Tii;for(i=0;in;i+)for(j=0;jn;j+)rij=0;transformmatrix(r,rt,n,n)mulmatrix(r,rt,Q,n,n)9.平差主程序之讀入數據
31、typedef struct POINTchar name8;double x,y;int type;POINT;typedef struct READVALUEPOINT *begin;POINT *end;double value;READVALUE;POINT *GETPOINT(char *name,POINT *pPoint,int nPoint)int i;for(i=0;inPoint;i+)if (strcmp(pP,name)=0)return (pPoint+i) for(i=0;i0)pPoint=(POINT*)malloc(nDirect*size
32、of(POINT);if(nDirect0)pDirect=(READVALUE*)malloc(nDirect*sizeof(READVALUE);if(nDistance0)pDistance=(READVALUE*)malloc(nDistance*sizeof(RAADVALUE);fscanf(fp,”%lf,%lf,%lfn”,&mo,&mf,&ms);for(i=0;inKnownPoint;i+)fscanf(fp,”%s,%lf,%lfn”,pP,&pPointi.x,&pPointi.y);type=1;for( ;inPoint;i+)pPointi.
33、name=NULL; pPointi.x=0;pPointi.y=0;pPointi.type=0; for(i=0;inDirect;i+)fscanf(fp,”%s,%s,%lfn”,begin,end,&pDirecti.value);pDirecti.begin=GetPoint(begin,pPoint,nPoint);pDirecti.end=GetPoint(end,pPoint,nPoint);for(i=0;inDistance;i+)fscanf(fp,”%s,%s,%lfn”,begin,end,&pDistancei.value);pDistancei.begin=Ge
34、tPoint(begin,pPoint,nPoint);pDistancei.end=GetPoint(end,pPoint,nPoint);fclose(fp);10.角度檢驗(checkangle)#include int checkangle(double angle)int M,S;double MS;if(angle=0&angle360)MS=angle-(int)(angle);if(M6)S=(int)(MS*1000);if(S%106)return 1;return 0;11.前方交會#define PI=3014159265/*此處調用程序角度換弧度AngleToRadi
35、an*/Qianfang(double XE, double YE, double XF, double YF, doubleDEG, double DEF, double DFG, double DFE, double *DFE, double *DFG)double C,A,B;C=DGE-DGF;A=DEF-DEG;B=DFG-DFE;if(C-2*PI)|(C0&C-PI&CPI&C2*PI)XG=(XE/tan(B)+XF/tan(A)+YE-YF)/(1/tan(A)+ 1/tan(B);YG=(YE/tan(B)+YF/tan(A)-XE+XF)/ (1/tan(A)+ 1/ta
36、n(B);12.坐標概算全方向法子函數取出觀測方向GetAllDirectint GetAllDirect(char *name,int nDirect,READVALUE *pDirect, READVALUE *pStation)int i,nCount=0;for(i=0;iname,name)=0)pStationnCount.begin=p(pDirectnCount.begin;pStationnCount.end=p(pDirectnCount.end;pStationnCount.value=p(pDirectnCount.value; nCount+;return nCoun
37、t;坐標概算全方向法子程序實現流程(coordinate)coordinate (入口參數設置)READVALUE pStation50,pObject50;int nCount,i,j,k,m,n,p,nobject;for(i=0;i1)|( nCount=1)for(j=0;jtype=1)for(k=0;ktype=0) nobject=GetAllDirect(pStationj.end-name,nDirect,pDirect,pobject)m=-1;n=-1;for(p=0;pname,pP)=0)m=p; if(strcmp(pobjectp.end-na
38、me,pStationk.end-name)=0)n=p;if(m=0&n=0)pPointi=pStationk.end-pStationj.end;pStationj.end=pObjectm.value-pObjectn.value; Xe=pPointi.x; Ye=pPointi.y; Xf=pStationj.end-x; Yf=pStationj.end-y; Lef=pStationj.value; Leg=pStationk.value; Lfe=pObjectm.value; Lfg=pObjectn.value; Qianfang(Xe,Xf,Ye,Yf,Lef,Leg,
39、Lfe,Lfg,*Xg,*Yg;) pStationk.end-x=*xg; pStationk.end-y=*yg; pStationk.end.type=2; 13.坐標增量法(calcoordinate)子函數由端點名稱得邊長值的函數GetDistancedouble GetDistance(char *begin,char *end,int nDistance,READVALUE *pDistance)int i;for(i=0;iname,begin)=0&strcmp(pDistancei.end-name,end=0)|(strcmp(pDistancei.begin-name,
40、end)=0&strcmp(pDistancei.end,begin)=0)return pDistancei.value;return -1;/*函數取出觀測方向GetAllDirect*/void calcoordinate(int nDirect,READVALUE *pDirect,int nDistace,READVALUE *pDistance,int nPoint,POINT *pPoint) int nPoint,nCount,nDirect,nDistance; int m=-1,i,j,k; double x1,y1,x2,y2,A0,A,S,dx,dy; READVALU
41、E*pDirect=NULL; READVALUE pStation50; for(i=0;i0) nCount=GetAllDirect(pP,nDirect,pDirect,pStation50); for(j=0;jtype0)m=j; if(m!=-1) for(k=0;ktype=0) x1=pPointi.x; y1=pPointi.y; x2=pStationj.end-x; y2=pStationj.end-y; A0=Bearing(x1,y1,x2,y2); A=A0-(DMSToRAD(pStationm.value)-DMSToRAD(pStatio
42、nk.value); if(A2*PI)A=A-2*PI; S=GetDistance(pPointi,pStationk.end,nDistance,pDistance); if(Sx=pPointi.x+dx; pStationk.end-y=pPointi.y+dy; pStationk.end-type=2; 14.高斯正反算高斯正算:#include #include #define PI 3.14159265double DMSToRAD(double dDMS)int L1,L2;double T,L3;L1=(int)(dDMS+0.3);L2=(int)(dDMS-L1)*100+0.3);L3=(dDMS-L1)*100-L2)*100;T=(L1+L2/60.0+L3/3600.0)*PI/180.0;return T;void PreGa
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 清淤項目可行性分析報告
- 2023-2029年中國威士忌酒行業市場發展現狀及投資策略咨詢報告
- 刻字筆行業深度研究分析報告(2024-2030版)
- 中國紅外線夜視攝錄機行業市場發展監測及投資策略研究報告
- 中國玩具市場競爭格局及投資戰略規劃報告
- 中國法式門冰箱行業市場運營現狀及投資方向研究報告
- 品字尾輸出公插項目投資可行性研究分析報告(2024-2030版)
- 瓷磚檢測培訓課件
- 中國毛絨收納桶行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 網絡運營培訓課件
- 火災防治、隱患辨識與應急避險
- 2025年河北省滄州市初中學業水平摸底考試地理試卷(含答案)
- 危重患者血糖管理指南
- 交通管理與控制知到智慧樹章節測試課后答案2024年秋同濟大學
- 磷酸鐵鋰正極材料及鋰離子電池電池項目可行性研究報告
- 川劇變臉模板
- DB11-T 382-2017 建設工程監理規程
- 小紅書認證商標授權書
- 課程設計數學建模案例
- 2025年池州市投資控股集團招聘筆試參考題庫含答案解析
- 國家標準化代謝性疾病管理中心(MMC)及管理指南介紹(完整版)
評論
0/150
提交評論