• 沒有找到結果。

以微處理機系統決定交通指派問題之使用者均衡流量

N/A
N/A
Protected

Academic year: 2021

Share "以微處理機系統決定交通指派問題之使用者均衡流量"

Copied!
53
0
0

加載中.... (立即查看全文)

全文

(1)

運 輸 科 技 與 管 理 學 系 碩 士 班

碩 士 論 文

以微處理機系統決定交通路網之使用者均衡流量

Determining the User Equilibrium Flow of the Traffic

Assignment Problem by a Microprocessor System

究 生:謝智翔

指導教授:黃寬丞

博士

(2)

以微處理機系統決定交通路網之使用者均衡流量

Determining the User Equilibrium Flow of the Traffic Assignment Problem by

a Microprocessor System

研 究 生:謝智翔 Student:Chih-Hsiang Hsieh

指導教授:黃寬丞 Advisor:Kuancheng Huang

國 立 交 通 大 學

運 輸 科 技 與 管 理 學 系

碩 士 論 文

A Thesis

Submitted to Department of Transportation Technology and Management College of Management

National Chiao Tung University in partial Fulfillment of the Requirements

for the Degree of Master

in

Transportation Technology and Management July 2009

Hsinchu, Taiwan, Republic of China

(3)

以微處理機系統決定交通路網之使用者均衡流量

學生:謝智翔 指導教授:黃寬丞 博士

國 立 交 通 大 學

運輸科技與管理學系 碩士班

摘要

交通指派問題發展已久,相關研究也相當多,而「使用者均衡」是交通指派問題 中一個基本的模式。先前有研究以電子電路的概念,利用「電流」來比擬「車流」, 求解使用者均衡問題。理論上,以量測電流代替運算車流的方式來得到車流量的資 料,速度上應該較快,但是,這僅僅是軟體上的模擬運算,實際硬體電路是否可行卻 是未知,因實作時需要考量的因子更為繁雜。本研究透過小型微處理器控制整個電路 的運作,並發展出一套適合實作使用的電路演算法,以實現微處理機系統之實際硬體 製作。初步的實驗顯示,實作流量值與理論流量值之間差距不大,說明實作電路的可 行。 關鍵字:微處理器、電路實作、實作誤差

(4)

Determining the User Equilibrium Flow of the Traffic Assignment

Problem by a Microprocessor System

Student: Chih-Hsiang Hsieh Advisor: Dr. Kuancheng Huang

Department of Transportation Technology and Management

National Chiao Tung University

Abstract

The traffic assignment problem (TAP) has been researched for a long time, and the user equilibrium is one of the basic model of it. There are some researches using electrical current to simulate the traffic flow to solve the user equilibrium problem. By measuring electrical current substitute for computing traffic flow, it is faster to get the data of the flow theoretically. This is only a simulation on the software, and we don’t know the physical circuit can be implemented or not, because there are more complicated factors should be considered. This study controls the whole circuit operation by a small microprocessor, and establishes a physical circuit algorithm. The result shows that the difference between physical flow and theoretical flow is small, and it can illustrate the feasibility of physical circuit.

(5)

不知不覺就要畢業了,當初決定要轉考運管所是下了很大的決心,畢竟是自己沒 有接觸過的領域,只憑著一股「有興趣」的意念就跳進來了。首先感謝指導教授黃寬 丞老師,在這兩年給了我做研究上的許多建議,讓我的論文可以如期完成。接下來再 感謝口試委員許巧鶯老師、黃家耀老師在口試時所給予的許多中肯建議,讓我受益匪 淺。在這裡,認識了許多好朋友,除了實驗室的同學之外,也有其他實驗室的(廢話), 感謝同實驗室的景堯、兆哲、丞博、郁英,還有已畢業的老人展宗,以及各個實驗室 的好夥伴們(族繁不及備載),這是一段很快樂的時光,謝謝大家的幫忙以及照顧。還 要特別感謝的是我的女朋友-榆萱,這些年來的日子謝謝你陪伴在我的身邊,在我難 過或失意的時候安慰著我,在我開心的時候和我一起分享著喜悅,希望未來的日子我 們也可以一直的走下去。最後要感謝的是我的父母親,感謝在我決定轉考的時候支持 我,這些年來也不斷地給我鼓勵與包容,期許未來的我以後可以帶著你們的支持繼續 走下去。

(6)

目錄

中文摘要……….….……….III 英文摘要………..………IV 誌謝………..……….……….V 目錄……….……….VI 圖目錄……….….………..VIII 表目錄……….……….IX 第一章 簡介……….………..1 1.1 交通路網指派問題簡介……….….………1 1.2 使用者均衡……….………….2 1.3 使用者均衡與電路之相關性……….……….2 1.4 路段成本函數與歐姆定律……….……….3 1.5 實際電路製作之重要議題……….….5 第二章 文獻回顧………...………... ……7 2.1 交通指派演算法回顧……….. ……7 2.2 電路模擬演算法回顧………. …….8 第三章 電路模擬演算法與實際電路演算法……….……….…...10 3.1 子系統之電路模擬演算法………. …….………..……11 3.2 子系統之之實際電路演算法……….………...….12 3.3 系統電路模擬演算法……….………13 3.4 系統之實際電路演算法……….………15 第四章 實作的誤差與影響………..………..……….16 4.1 量化誤差的定義………..……….. ………16 4.2 電阻值量化的影響……….…………...….17 4.3 元件的誤差……….………18 4.4 量化誤差與元件誤差的綜合影響……….………19 4.5 元件的物理限制……….………21 第五章 微處理機系統之電子電路實作………...……..………...……….23 5.1 系統架構圖與元件介紹………...……….……….23 5.2 子路網之實際電路製作……….…………...….25

(7)

5.2.1 單起訖點對之電路製作……….…………...…..27 5.2.2 兩起點對一訖點之實際電路製作……….……….29 5.3 系統電路實際製作……….…………...….31 5.4 系統容量測試……….………33 5.5 運算時間之估算……….………37 第六章 結論與建議………..…………...……….………..…….38 參考文獻……….……….…..………..…….39 附錄一 微處理器(P89V51RD2)腳位圖及說明……….………..…..…40 附錄二 數位電阻 AD8400 接腳圖及說明………..………….42 附錄三 數位/類比轉換器(ADC0804)腳位圖及說明………...…….43 附錄四 移位暫存器(74164)腳位圖及真值表………..…….44

(8)

圖目錄

圖1.1 雙路段路網示意圖 ...2 圖1.2 非線性成本函數圖 ...4 圖1.3 歐姆定律關係圖 ...4 圖1.4 兩電阻並聯電路圖 ...5 圖3.1 全路網系統示意圖 ...10 圖3.2 子路網系統示意圖 ...10 圖3.3 雙曲線逼近成本函數示意圖 ...12 圖4.1 電腦模擬測試路網圖 ...17 圖4.2 電腦模擬測試電路圖 ...18 圖5.1 超級終端機顯示介面 ...25 圖5.2 電子電路架構圖 ...26 圖5.3 單起訖點對之電路實作圖 ...27 圖5.4 兩起點對一訖點之測試路網 ...29 圖5.5 兩起點對一訖點之電路實作圖 ...30 圖5.6 兩起點對兩訖點之測試路網(各 OD 間流量=1) ...32 圖5.7 兩起點對兩訖點之測試路網(各 OD 間流量=15) ...34 圖5.8 起點O1至訖點D1之通過路段 ...36 圖5.9 KEIL C 軟體偵錯介面圖 ...37 圖A.1 微處理器P89V51RD2 頂視圖 ...40 圖B.1 數位電阻AD8400 頂視圖 ...42 圖C.1 數位/類比轉換器 ADC0804 頂視圖 ...43 圖D.1 移位暫存器74164 頂視圖 ...44

(9)

表目錄

表4.1 數位電阻階數與實際阻值間的關係(以最大值為10KΩ為例) ...16 表4.2 量化階數不同對於目標值之影響 ...18 表4.3 三十個數位可變電阻之設定電阻值與實際表示阻值 ...20 表4.4 量化誤差與元件誤差合併考慮之影響 ...21 表5.1 單起訖點例題隨機更換電阻之15 組解 ...28 表5.2 兩起點對一訖點之路段成本參數 ...31 表5.3 兩起點對一訖點之理論與實際電路之各路段流量 ...31 表5.4 兩起點對兩訖點之路段成本參數(各 OD 間流量=1) ...33 表5.5 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=1) ...33 表5.6 測試路段之路段成本參數(各 OD 間流量=15) ...34 表5.7 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=15) ...34 表5.8 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=20) ...35 表5.9 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=30) ...35 表5.10 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=40) ...36 表A.1 P89V51RD2 接腳說明 ...40 表B.1 AD8400 腳位圖及說明 ...42 表C.1 ADC0804 接腳說明 ...43 表D.1 移位暫存器741647 真值表 ...44

(10)

第一章 簡介

1.1 交通路網指派問題簡介

近年來,由於都市快速的發展,「運輸規劃」這門學問已經成為一種顯學,因為 都市網路的日益複雜,使得做好規劃的工作充滿了挑戰性。在運輸規劃的過程中,最 主要有以下四個步驟: 1. 旅次產生(trip generation),是指將整個路網分成許多個區塊,並且由這些區 塊作為產生旅次的起點或是作為旅次的訖點。

2. 旅 次 分 配 (trip distribution) , 是 指 各 區 塊 間 形 成 一 對 對 起 訖 點 (origin- destination pair,OD pair)間之運量。例如,由區塊 i 出發往區塊 j 的流量可以

Qij表示。 3. 運具選擇(mode choice),考慮每一對起訖點在運輸活動可以選擇使用的運輸 模式,例如使用運具m,其對應流量可以 Qijm表示。 4. 交通指派(traffic assignment),考量各起訖點與各運具之路徑(path)來分配旅次 的計劃過程。其核心問題在於探討旅行者在某一路網中,會如何從起點選擇 適合的路徑到達目的地。若以 k 來代表到達訖點的路徑之一,其對應流量可Qijmk表示。 其中,交通指派問題是我們所關注的焦點。而在交通路網的流量模式中,使用者 均衡(User Equilibrium,簡稱為 UE)與系統最佳化(System Optimization,簡稱為 SO)是 兩個最基本的靜態交通路網模式,前者的任一起訖點間之旅行成本間相同,而後者的 全路網成本總和將會最低,不過,本研究所最關注的基本概念為「使用者均衡」。在 使用者均衡的狀況下,路網中的各個使用者,會選擇對於自己而言成本最低的路徑行 走,也就是說,在均衡狀態下,對於任何起訖點來說,路徑的旅行成本將會相同。使 用者均衡的概念,對於整個路網系統來說是非常重要的,旅行者希望能夠以最短的時 間抵達其目的地,近來更由於科技的發展,智慧型運輸系統(Intelligent Transport Systems,簡稱為 ITS)的發展日趨成熟,車輛導航系統的路徑規劃甚至也開始考慮道 路流量的大小,讓使用者可以最快速的方式抵達目的地。除此之外,政府部分也希望 可以對交通壅塞的路段進行拓寬或是其他改善,或是對於道路經施工或是遊行等等原 因封閉,進行車流量的進一步預測與執行相對應的措施,這些都與使用者均衡的概念 息息相關。

(11)

1.2 使用者均衡

在一個交通路網中,使用者會傾向於選擇對自己而言,成本最低的路徑行走。舉 圖1.1 的簡單的單一起訖點與雙路段路網為例,路段 1 與路段 2(即 Link 1 與 Link 2) 都擁有自己的路段成本函數,兩成本函數不相同。且路段流量高時,路段的行駛時間 會越長(因較容易塞車),也就是成本越高;路段流量低時,路段的行駛時間越短, 也就是成本越低。使用者在本路網中,將會選擇行駛時間較短的路段。舉例來說,在 無車流量時,行駛於路段1 耗時 10 分鐘,行駛於路段 2 耗時 5 分鐘,則當有一駕駛 要進路本路網時,自然會選擇路段2 行走,路段 2 的車流量將越來越高,行駛的時間 也會越來越長。當在路段2 行駛的時間超過了 10 分鐘時,選擇路段 1 行駛似乎更好 的選擇。久而久之,兩路段便會達到一均衡(equilibrium)狀態,也就是不論行駛於 路段1 或路段 2 的耗費時間皆相同,這就是所謂的使用者均衡現象。 圖1.1 雙路段路網示意圖 資料來源:(Huang,2007) 在使用者均衡的狀態下,對於路網中的任何起訖點對,其所使用任意一條路徑的 旅行時間皆相同,且旅行時間都要比該起訖對任一未使用的路徑都還要低或是相同, 此即為使用者均衡的定義。

1.3 使用者均衡與電路之相關性

我們發現,交通指派問題的使用者均衡與一般電子電路間,存在著許多相同點。 交通路網與電子電路之間不僅是網路結構相似,還有其他許多的相關性,分別簡介如 下: 1. 在如前述的並聯電路中,電流分配是根據分支電路之電阻值而定,且並聯處 兩端電壓會相等,這類似於交通路網中,車流分配是根據路段成本函數而決 定,且路段的旅行時間相等,亦即所謂使用者均衡的原理。 2. 在串聯的電路中,電路的總電壓降為電阻各端點之分壓降值加總,類似於交

(12)

通路網中,路段的總旅行時間為各路段旅行時間的加總。 3. 在串並聯混合電路中,電路的各節點將會滿足克希何夫電流定律(Kirchhoff’s current law),也就是節點之流入電流會等於流出電流,類似於交通路網中的 流量守恆。且電路中起訖點不同路徑之總電壓降,會等於起訖點之電壓差, 類似於交通路網中在使用者均衡時,各路徑之旅行時間相同。

1.4 路段成本函數與歐姆定律

路段成本函數的概念,代表著使用者行駛於某段道路上,所需耗費的成本。「成 本」二字的涵義有很多,但其中最廣泛應用的就是時間的成本,旅行時間越長,代表 著成本越高,在完全無車流時,路段會有一個自由車流的成本;而當路段的車流量越 來越大時,將會造成壅塞的現象,因此旅行時間也會越來越長。在這裡,我們常使用 美國公路局(U.S. Bureau of Public Roads,簡稱為 BPR)所發展出的路段成本函數(BPR function),函數如式(1-1): ) ) ( 15 . 0 1 ( ) ( 4 a a a a a C x T x t = × + × (1-1) a x :路段 a 上的流量 Ta:路段a 之固定成本 Ca:路段a 之道路容量 ) ( a a x t :路段a 的時間成本函數 按式(1-1),我們發現路段的成本函數並非線性的關係,而是以四次方的函式做遞 增的動作,因此,當流量 xa超過容量 Ca之後,成本 ta會非常急劇的上昇。圖1.2 即 為典型的BPR 函數圖形,此為 Ta =1、容量 Ca=50 的成本函數圖形,我們可以發現, 在流量小於 50 之前,因流量尚未超過路段限制容量,故成本上升幅度較緩;當流量 超過50 以後,已超越了本身路段之容量限制,故發現成本非線性地急速上升。 而在電子電路的領域中,我們所關注的最重要法則為歐姆定律(Ohm’s law),此指 在同一個導體中,經過導體兩端的電流與兩端的電壓成正比,與導體的電阻成反比, 公式如(1-2),其中 I 為電流,R 為電阻,V 為電壓: R V I = (1-2)

(13)

圖1.2 非線性成本函數圖 資料來源:本研究整理 由(1-2)式可知,歐姆定律是一線性的關係。在電阻相同的情況下,電壓增大,電 流就會增大;電壓減小,電流也跟著減小。現在假定有一個25Ω的電阻,其兩端有電 壓差,故電阻將會有電流通過,而其電壓-電流關係如圖 1.3,橫軸單位為伏特(V),縱 軸單位為安培(A),該圖之電壓與電流之間關係為線性。 圖1.3 歐姆定律關係圖 資料來源:本研究整理 現在應用歐姆定律至較為一般性的電路上,以圖1.4 之兩電阻電路為例,因兩電 阻為並聯,所以兩電阻兩端之電壓差為相同,I1為流經 R1之電流,I2為流經 R2之電 流,所以歐姆定律也可以寫成如(1-3)的公式: 2 2 1 1R I R I V = = (1-3)

(14)

路段成本函數是非線性的函數,且函數不會通過原點;歐姆定律卻是一個線性的 函數,且函數會經過原點,因此成本函數與歐姆定律存在著差異性。儘管在 1.3 節中,我們發現了許多交通指派問題與實際電路之間的關連性,但是兩者間網路 的建構還是存在有許多的相異點。 圖1.4 兩電阻並聯電路圖 資料來源:本研究整理

1.5 實際電路製作之重要議題

過去已有學者發展出一套遞迴的模擬演算法,將線性的歐姆定律應用到非線性的 成本函數之上,並運用其作電路流量均衡等的計算,但是,這僅是對其中的電路問題 進行軟體上的模擬而已,實際上的硬體系統是否可行卻是個未知數。假如電路能夠真 正的實作出來,將可進一步驗證電路模擬演算法之可行性,我們可以藉由實際的量測 電路,立刻得出諸如電壓、電流等各種資料,來推算出實際的路段成本、流量等等資 料,可以說是相當的方便快速,故這就是我們實作電路的目的。 理論上,以「量測」代替「運算」的方式來得到車流量的資料,速度上應該會快 上許多,因為運算需要時間,而量測的資料幾乎是可以立即得到,且利用直接量測的 方式取得資料,不會普通演算法一樣,隨著網路規模的增大,使運算時間變的更長。 經由模擬的數值,都是較為理想化的結果。不過,在實作電路上面,需要考慮的 因子非常多,不能僅透過先前的演算法來完成。在實作電路上,可能會遇到以下的幾 項問題: 1. 量化誤差:元件在數位值與類比值之間的量化轉換造成的誤差。 2. 元件誤差:各元件(如電阻)之間設定值的誤差。 3. 元件本身限制:元件或硬體系統本身工作條件上先天的物理限制。 本研究中,我們將利用一核心的小型微處理器控制整個電路中電阻的運作,再將 各個路段間的電壓值,透過類比/數位轉換器來轉換,並傳送回微處理器,微處理器 根據傳回值做運算,運算完畢後回傳電阻值以完成迴圈,其中存在著許多上述的問題 有待克服,主要的誤差(量化誤差、元件誤差等)會是在我們所使用的數位可變電阻身

(15)

上,且它還會有本身最大電阻值的限制;而類比/數位轉換器也會產生部分的量化誤 差,這些問題會對先前的演算法造成一定程度的影響,本研究需要克服這些問題,才 能真正地將理論電路實際製作出來。

(16)

第二章 文獻回顧

本章中,我們要先就傳統的交通指派演算法,以及學者所提出的電路模擬演算法 作一般性的介紹。而在後面的章節,我們將會以電路模擬演算法為基礎做延伸及後續 的研究工作。

2.1 交通指派演算法回顧

在運輸指派問題中,最重要的概念就是使用者均衡,根據Sheffi (1985)的數學規 劃模式,可表示如下。其他還有許多關於運輸指派問題研究的文獻,可參考Patriksson (1994) 及 Bell & Iida (1997) 的研究。

∑ ∫

= a x a a d t x z 0 ) ( ) ( min ω ω (2-1) r, s q f rs k rs k = ∀

(2-2) a δ f x r s k rs a, k rs k a =

∑∑∑

∀ (2-3) k, r, s frs k ≥ 0 ∀ (2-4) 其中: a x :路段 a 上的流量 rs q :起點r至訖點 s 的交通流量 rs k f :在路徑 k 上,起點 r 至訖點 s 的交通流量 ) (ω a t :路段a 在流量為 ω 時耗費之旅行成本 rs k a, δ :二元參數,起訖點 r , s 的路徑 k 包含路段 a 時為 1,否則為 0。 目標式(2-1)為各路段的成本函式在有流量下時之積分式總和,限制式(2-2)為流量 守恆限制式,限制式(2-3)代表各個路段的流量為所有起訖點路徑有經過該路段之總 和,限制式(2-4)表示流量恆大於零。 而在求解交通指派問題的演算法中,最常被使用的就是 Frank-Wolfe 演算法,參 考Sheffi (1985)的著作,簡介如下: 步驟 0: 初始化。初始流量為 0 時,執行全有全無指派(All-or-nothing),求得初 始流量{ 1 a x },遞迴次數 n=1。 步驟 1: 更新。設定t t xn a a a n a = ( ),∀ ,x 為路段 a 在遞迴次數 n 時之流量。 an 步驟2: 方向尋找。以 n a t 為依據,執行全有全無指派(All-or-nothing),這可

(17)

以產生一個輔助流量的集合{ n a y }。 步驟 3: 線性搜尋。對目標式做線性搜尋 min ( ) ( ) ,0 1 0 ≤ ≤ ∑

+α − ω ω α a x y x a n a n a n a d t ,以求得最佳αn 步驟 4: 移動。設定路段 a 下一次的流量x x y xn a a n a n n a n a+1= +α ( − ),∀ 步驟 5: 收斂測試。如已達成收斂條件,即停止,目前的{ n+1 a x }流量即為均衡的 路段流量集合。否則,設定遞迴n= n+1,並返回步驟1 演算。 由於在 Frank-Wolfe 演算法中,大部分的時間都在解決最短路徑問題(Patriksson, 1994),所以當路網規模越來越大時,演算法的效率便會變差。

2.2 電路模擬演算法回顧

根據文獻,已有多位學者利用電子電路觀念求解交通指派問題,Sasaki & Inouye (1974)利用電壓類比旅行成本,以及電流類比車流量的觀念,再運用歐姆定律,並增 加了通過節點的時間納入考慮,以求解交通指派問題,但仍僅限於求解線性成本函數 之問題。

Wang and Zhang (2005)根據克希荷夫定律(Kirchhoff ‘s Law)建立一套非線性的系 統,來計算交通指派問題中之使用者均衡,而該問題是由數學軟體MATLAB 來求解, 並與漸增法(Incremental assignment)比較結果,由於該研究是依賴數學軟體來解題,並 沒有強調其演算法對於解交通指派問題的效用,因此能否解決大型的交通路網問題是 個未知數。 Cho et al. (2006)利用了二極體這種非線性的電子元件的特性,以分段逼近的方 式,模擬一般成本函數與車流量之間的非線性關係。換句話說,將路段中非線性的成 本函數,以電阻及二極體來分段成幾條線性的成本函數,並利用此電路直接計算出電 流與電壓,以求解較為一般性的交通指派問題。儘管如此,該方法仍然存在著諸多現 實的限制。二極體有一個約0.6V~0.7V 的導通電壓,而當網路變得較為複雜之後,許 多二極體元件串聯的結果,電壓可能需要增至數十甚或數百伏特才能將二極體導通, 這在實際應用上會有些困難,因為過大的電壓可能造成實際系統過大的負荷。 Huang et al. (2007) 參考前面學者的研究,選擇了以純電阻電路作為基本的模擬 電路,再透過遞迴修正電阻值的方式,來逼近非線性的成本函數。與Cho et al.(2006) 的方法做比較,此方法不以二極體做模擬,僅利用純電阻模擬,這讓模擬電路的實作 變得較為可能,因為整個電路變的比較單純,前者直接利用非線性之電子元件近似非 線性成本函數,且電路兩端電壓差過大,讓實作變得較為困難。鄭兆哲(2009)針對了

(18)

先前演算法做了改良,改善了先前演算法的收斂問題,且其效率更好。先前演算法尚 未處理路段雙向流量的問題,該演算法將其加以改良以實現路段雙向流量問題的求 解。 本研究主要是根據鄭兆哲(2009)的文章做延伸的實作,實作上將會遇到許多實際 的問題,在1.5節中已有提及,並根據該研究演算法的架構,發展出了一套實際電路 製作時所使用的演算法,該法是針對實作時所產生的各項誤差以及限制所應運而生 的,故接下來的章節將會一一介紹。

(19)

第三章 電路模擬演算法與實際電路演算法

第二章所介紹的電路模擬演算法中,我們將會利用鄭兆哲(2009)的研究繼續做延 伸的工作。按照先前文獻所言,電路模擬時需注意不可在同一電路中擁有多起點與多 訖點,因為電子本身不認識路,而所流動之方向僅是由電壓降決定,故當同一電路同 時存在多起點與多訖點,則電流將會無法分配到正確的需求點,所以模擬時必須先將 全路網系統拆解成電流分配不產生衝突的子路網系統(Subsystem),這些子網路系統為 多起點對一訖點之網路。以圖3.1 為例,我們須將此兩起點對兩訖點之路網,拆解成 如圖3.2 的兩個子路網,而這兩個子路網都是兩起點對一訖點之路網。本研究採用單 起點對多訖點的子路網系統作為子問題的基礎,因為這種路網在實際電路的製作上較 為簡單。 圖3.1 全路網系統示意圖 資料來源:本研究整理 圖3.2 子路網系統示意圖 資料來源:本研究整理 據此,我們在 3.1 節將會簡介子系統之電路模擬演算法(Circuit Simulation Algorithm for Subsystem,簡稱 CSA-Sub),並在 3.2 節推導出電路子系統實作時,所 使用的子系統之實際電路演算法(Physical Circuit Algorithm for Subsystem,簡稱 PCA-Sub),其與 Huang et al. (2007)的研究相比較,增加了許多製作實際電路時需要考 慮的部份,這對於電路的實作工作將會有很大的幫助,3.3 節會介紹全系統之電路模 擬演算法(Circuit Simulation Algorithm for system,簡稱 CSA-Sys),該演算法的結構

(20)

與 Frank-Wolfe 演算法類似,但電路模擬演算法是將電子視為旅行者,讓電子去找尋 自己的路徑到訖點,故沒有Frank-Wolfe 演算法中”找尋最短路徑”的步驟。3.4 節介紹 了實作時使用的全系統實作電路演算法(Physical Circuit Algorithm for system,簡稱 PCA-Sys),這是根據 3.3 小節之演算法而來,與 3.2 節相同的是,同樣增加了實作時 的考量因素在內。

3.1 子系統之電路模擬演算法(CSA-Sub)

使用前述Huang et al. (2007)演算法之概念,將該演算法分別說明如後。現在沿用 前章的符號定義,並將iava分別設為路段a的電流與電壓值,Ra為路段a之電阻值, 成本函數為ta(xa),路段成本為can為遞迴次數,則子系統之實際電路演算法,其運 算步驟如下(鄭兆哲,2009): 步驟0:初始化。將子路網之各起點模擬成直流電流源I ,其電流值設為起點至rs 訖點之流量,即qrs = Irs;另外,將路網訖點模擬成接地點。每個路段 都個別模擬成電阻,以R 表示第 n 次迴圈的電阻值。在初始時,也就ann=0 時, 0 a R 為 1。 步驟1: 啟動電路,計算出各路段在電阻值 n a R 時的電流值 n a i 。 步驟2: 逼近,根據已測得的 n a i 與 n a v 逼近到成本函數上,藉以得到流量 n a x 與旅 行時間c an 步驟3: 利用歐姆定律,計算下一次各路段之電阻值,亦即 n a n a n a c x R +1 = / 步驟4: 將流量代回目標式(1)中,若前後兩次目標值的變化量在要求範圍內,即 為收斂,並停止計算;若不是,則回到步驟1 繼續計算。 本法主要是透過遞迴修正電阻值的方法,求得電路流量的解,而逼近的過程主要 是透過步驟2 來完成。逼近的方式有許多種,根據研究,共有三種不同的逼近方法, 但以雙曲線來逼近是最穩定的,可以避免使用其他方式逼近時,需求量大而不收斂的 情況,故本研究將以雙曲線逼近的方式做後續的研究工作。該法大略敘述如後:將電 流與電壓的乘積(i vn P a n a × = )定為一雙曲線,並用此求解其與成本函數的交點,以求 得路段流量與旅行成本。 圖 3.1 為雙曲線逼近成本函數之示意圖,一開始成本函數上之解為 A 點,可以據 此計算出電阻R ,電路啟動後電流通過,可量測出電路的均衡解 B 點(n n a i 與 n a v ),將 電流與電壓做乘積,可得到一條雙曲線,再利用此雙曲線將答案逼近到成本函數上面 的新解C 點( n a x 與 n a c ),接著算出 C 點之電阻Rn+1,如此不斷地反覆求解。

(21)

圖3.3 雙曲線逼近成本函數示意圖 資料來源:(鄭兆哲,2009)

3.2 子系統之實際電路演算法(PCA-Sub)

根據前述演算法,我們發展出一套子系統之實際電路演算法。先前的演算法在演 算時,沒有考慮到電阻值「量化誤差」的問題,因為在做電腦模擬時,數值都相當的 精確,但實際電路製作時,需要考慮量化的誤差,沒有辦法設定成理論的電阻值一定 等於實際的電阻值,這是因為元件本身的限制使然,無法做到百分之百的精確是必然 的。 另外,除了量化的影響之外,我們可能會碰到遞迴過程中,運算時的電阻值R 超an 過實體電阻最大值Rmax的限制,現在令演算法每次迴圈計算時其最大電阻值為R ,OnR max(Rn , a) a n O = ∀ ,我們必須將所有電阻值作等比例的轉換,亦即同乘以 n O R Rmax/ , 讓所有電阻值都不超過Rmax。基於以上各點,我們所發展出的實作電路演算法步驟如 下: 步驟0: 將子路網之各起點 r 模擬成直流電流源I ,電流值設為該起點至訖點之rs 流量,各起點電流值之比會等於實際各路段流量q 之比(亦即rs k I q rs rs = ,

(22)

且對每一個子路網,皆用同一個比值k);另外,將路網訖點模擬成接地 點。每個路段都個別模擬成電阻,以R 表示第 n 次迴圈的路段 a 電阻an 值。在初始時,也就是n=0 時, 0 a R 為1KΩ,最大阻值RO0 = K1 Ω 步驟1: 電阻值轉換,設各路段所得之新電阻值為 n a S (即 ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ × = n O n a n a R R R S max )。 步驟2: 將 n a S 量化,得新量化後之電阻值 n a Q 。 步驟3: 啟動電流源電路,取得此時各路段實際電流量 n a i 與電壓值 n a v 。 步驟4: 根 據 路 段 電 流 量 n a i , 計 算 實 際 交 通 路 網 之 車 流 量 n a f , 即 r k i f n a n a = × ,∀ 。接下來利用電壓值 n a v 計算出實際之旅行成本,即 max R R k v C n O a n a = × × ,計算出 f C P n a n a × = 之雙曲線。 步驟5: 求取雙曲線與成本函數之間的交點,交點之流量為 n a x ,成本為 n a c 。利用 歐姆定律,計算下一次各路段 a 之電阻值,也就是 n a n a n a c x R +1= / ,並求 取下一次迴圈時之RO,即R 1 max(Rn 1, a) a n O = ∀ + + 步驟6: 將流量代回目標式中,若前後兩次目標值的變化量在要求範圍內,即為 收斂,並停止計算;若不是,則回到步驟1 繼續計算。 在步驟 0 中,為了簡化初始值的計算,一般先將所有之 0 a R 設為全部相同,此處 之電阻初始值皆設為1KΩ。 步驟1 中,假如所使用的元件最大值為10KΩ,則我們就會把最大的電阻值設為 Ω K 10 。在遞迴的過程中,阻值可能會大於10KΩ,但是我們的數位可變電阻最大值 僅有10KΩ,無法顯示大於10KΩ的部份,所以必須以此做等比例的切換。這樣做對 於各路段的電流值不會有影響,因為只要各電阻間的阻值比是固定的,其所通過的電 流比例也一定會是固定的。 步驟4 中,必須將電路的實際電流量,以適當比例轉換成子路網的車流量。除此 之外,我們也要利用所取得之電壓值,轉換成在該路段上的旅行時間成本,並使用這 些流量與成本的資料,與成本函數做逼近。步驟4 即是流量轉換以及成本轉換的動作。

3.3 系統電路模擬演算法(CSA-Sys)

上兩節所提出之演算法,可以量測計算出單一起訖對的均衡流量,但一般交通路 網往往都是多重起訖點對的。且交通路網的特性與電路特性並非完全相同,比如說, 交通路網中可以有雙向的車流,但在路網中,電壓差決定的電流的方向,所以,某些 狀況下不能直接利用電路模擬路網。在多起訖點之路網中,使用者可以旅次分配辨認

(23)

自己的起訖點,但是電流本身是無法分別起訖點的。所以,前述方法在改良以後,學 者提出修正後的全系統電路模擬演算法,並假設路網有Π個旅次訖點,因此能夠拆解 成Π組多起點對單訖點之子路網系統,演算法如下(鄭兆哲,2009): 步驟0: 初始化,將路網拆解成子路網系統 π,對所有子路網系統 π 將 O-D 之起 點模擬成接地點,所有訖點模擬成直流電流源,電流值設為該訖點的需 求流量(qrs),末端直接接地。每個路段都個別模擬成電阻,並將初始值 電阻值Ra0設為1 後便啟動電路。最後將所子路網系統得到的流量合併 成為解集合xa0 ,∀a(亦為 x0),當作初始解。 步驟1: 轉換道路成本,我們將每個子路網的中路段的成本函數,設定為 )) )( ( ' ) ( ), 0 ( max( ) ( n, a n a a n a a a a t t x t x x u ω = + ω− π ,其中 n a x ,π為子路網系統π 經 過路段a 之流量。 步驟2: 找尋方向,根據新的成本函數ua(ω),∀π∈Π執行CSA-Sub,以合併所 有CSA-Sub 的解當作搜尋方向 yan,∀a。。 步驟3: 線性搜尋,利用 α ω ω α ∑

− + ≤ ≤ a x y x a n a n a n a d t ) ( 0 1 0 ( ) min 找出最適步幅αn。 步驟4: 找尋新解,設定新解為x x y xn a a n a n n a n a+1 = +α ( − ),∀ 。 步驟5: 測試收斂,若滿足所設定的收斂條件,就視同收斂並停止計算;若不是, 則回到步驟1繼續計算。 從上述方法中可發現,FWA 和 CSA-sys 主要的差別在於步驟 0、步驟 1 與步驟 2。 在步驟0 中,不採取前述 Frank-Wolfe 演算法的全有全無指派,是因為在全有全無指 派的時候,將會有指派流量為0 狀況,使得電路上之電流為需為 0,這會造成電阻值 的無法計算(按照歐姆定律,電流等於 0 會使電阻變得無限大)。CSA-sys 法雖然都將 起始電阻設定為1,但通常可以得到一個較好的起始解,對未來的收斂也不會有影響。 在步驟 1 與步驟 2 中,Frank-Wolfe 演算法主要是利用前次流量所得的成本做為 一常數,並藉此進行全有全無指派;而 CSA-sys 法將成本函數轉換成一階近似導函 數,根據新的成本函數和前次流量所得的成本利用CSA-sub 進行指派,這種利用非線 性成本函數,取代線性成本函數,以尋找最短路徑的解法,類似於 Regularized Frank-Wolfe Algorithm (Migdalas, 1984),主要可避免 Frank-Wolfe 演算法找尋可行解方 向時會找到邊界解(boundary solutions)的缺點。

(24)

3.4 系統實際電路演算法(PCA-Sys)

根據3.3 節之演算法,下面將介紹全系統之實際電路演算法。在 3.2 節中已說明, 實作使用的演算法要考慮的因子較多,故我們將對3.3 節多重起訖點之電路模擬演算 法做修正,使其可以在實際電路中完整地呈現。系統之實作電路演算法介紹如下: 步驟0: 初始化,將路網拆解成子路網系統 π,對所有子路網系統 π 將 O-D 之起 點模擬成接地點,所有訖點模擬成直流電流源,電流值設為該訖點的需 求流量(qrs),末端直接接地。每個路段都個別模擬成電阻,並將初始值 電阻值 Ra0 設為1KΩ。將所子路網系統得到的流量合併成為解集合 a xa0 ,∀ (亦為 x0)。 步驟1: 轉換道路成本,現在將每個子路網中路段的成本函數,設定成為 )) )( ( ' ) ( ), 0 ( max( ) ( n, a n a a n a a a a t t x t x x u ω = + ω− π ,其中xan,π為子路網經過路段 a 之流量。 步驟2: 找尋方向,根據新的成本函數ua(ω),∀π∈Π執行PCA-Sub,以合併所 有PCA-Sub 的解當作搜尋方向 yan,∀a。 步驟3: 線性搜尋,利用 α ω ω α ∑

− + ≤ ≤ a x y x a n a n a n a d t ) ( 0 1 0 ( ) min 找出最適步幅αn。 步驟4: 找尋新解,設定新解為x x y xn a a n a n n a n a+1 = +α ( − ),∀ 步驟5: 測試收斂,若滿足所設定的收斂條件,就視同收斂並停止計算;若不是, 則回到步驟1 繼續計算。 此與上小節演算法不同,步驟 0 中,3.3 節之演算法將初始電阻值設定為 1,但是 在實際電路上我們無法設定電阻值為1,故我們將初始值電阻值 Ra0設為1KΩ。在步 驟2 中,3.3 節所執行的子演算法為 CSA-Sub,這裡我們需要執行實體電路運作時的 子演算法PCA-Sub,這些是主要的不同之處。

(25)

第四章 實作的誤差與影響

4.1 量化誤差的定義

一般我們所採用的數字系統皆為十進位系統(decimal system),也就是以 0、1、 2、…、9 等十個數字作為計數的基底;但是想要控制數位電阻之電阻值,僅能以二進 位系統(binary system)的訊號輸出來控制,也就是以 0、1 兩個數字為計數之基底,換 言之,任何的十進位數字都須用0 或 1 來表示,以八位元的二進位系統為例,十進位 的1 代表二進位的 00000001;十進位的 2 代表二進位的 00000010,以此類推。故我 們想要控制數位電阻的值,就必須以此二進位的訊號來控制它。表3.1 顯示電阻的階 數變化所顯示的各階電阻值。 表4.1 數位電阻階數與實際阻值間的關係(以最大值為10KΩ為例) 階數(十進位) 階數(二進位) 實際電阻值 0 00000000 0.0000Ω 1 00000001 39.2157Ω 2 00000010 78.4314Ω 3 00000011 117.6471Ω … … … 254 11111110 9960.7843Ω 255 11111111 10000.0000Ω 資料來源:本研究整理 3.2 小節中說明,先前演算法在演算時,沒有考慮到電阻值「量化誤差」的問題。 何謂量化誤差?量化誤差就是量化的結果與未量化前實際值之間的差值。由於數位可 變電阻的特性限制,造成並非想要什麼電阻值都可以得到。舉一個最大值為10KΩ(即 Ω 10000 ),且為 8 位元共 256 階變化的電阻為例,其電阻值僅有 256 階的變化而已。 所以,當我們在計算時,得出某次遞迴之實際阻值為50Ω,但我們卻沒有辦法實際將 阻值調整至50Ω,僅能以39.0625Ω或78.125Ω來顯示,這就是量化的誤差。 顯然地,在一個範圍值內的量化階數越多,量化的誤差會越小。故我們在電路製 作時,一定要將量化誤差考慮進去。原先的數位可變電阻之電阻值為R ,而各電阻an 值分別經過量化後,阻值將會轉變成Q 。 an

(26)

4.2 電阻值量化的影響

實作電路演算法是根據前述的電路模擬演算法所推衍出來的,因為在實際電路 中,所使用的元件有著許多限制,在3.2 節中已提及,電阻本身存在著量化的誤差, 量化誤差對於電路的實作可能會造成影響。 受限於軟硬體的限制,以及操作上的便利性等等,因此我們選擇256 階的數位可 變電阻來做本實作。事實上,我們發現量化的階數對於目標值的影響而言,並不會太 過於劇烈,詳細情況將在後面說明。 在電路模擬演算法與實作電路演算法這兩個演算法中,後者新增新的演算步驟。 除了前述最大阻值的限制外,步驟2 將阻值量化,得到一個新的量化電阻值 Qan,此 處就有量化的誤差。也因為這樣,後面的電流與電壓計算,也都有造成一定程度的不 精確。 儘管因為量化之故,造成了演算法會提早收斂,但是,所求得的解與理論值之間, 差異可說是非常的微小,這顯示利用本演算法,量化所造成的誤差對於最佳解而言, 影響並不明顯。但在電阻有256 階的情況下是如此,那麼,我們現在想要探討的是, 量化的階數大小,對於答案的精確度是否影響很大呢?以常理判斷之,當電阻的量化 階數越少的時候,答案應該會更加的不精確,因為量化後所得之電阻值,離實際的阻 值應該會相差的更多,所以,我們現在使用電腦模擬的方式,並以圖4.1 的範例為例 題,此小型範例可以模擬成圖 4.2 的路網,並套入 3.2 節的演算法做電腦的模擬,用 以探討量化階數的變化對於實際阻值以及目標值的影響大小,結果如表4.2: 圖4.1 電腦模擬測試路網圖 資料來源:(Huang,2007)

(27)

圖4.2 電腦模擬測試電路圖 資料來源:本研究整理 表4.2 量化階數不同對於目標值之影響 階數 遞迴次數 x1 x2 目標值 目標值誤差 11.540 8.460 1231.331 256 *19 11.511 8.489 1231.353 0.00182% 128 *18 11.575 8.425 1231.357 0.00200% 64 13 11.513 8.487 1231.351 0.00165% 32 11 11.494 8.506 1231.389 0.00473% 16 7 11.635 8.365 1231.588 0.02091% 資料來源:本研究整理 註:*號表示該次運算結果,會發生如同 3.2 節所述之收斂值不唯一的現象。在 256 階的實驗中,第 20 次遞迴之 解為(11.562, 8.438),目標值 1231.345,誤差為 0.00117%;在 128 階的實驗中,第 19 次遞迴之解為(11.524, 8.476), 目標值1231.337,誤差為 0.00050% 令人驚異的發現,儘管阻值是經過量化之後的電阻值,但是其對於各路段之流量 解的影響卻是相當的有限,因為對於解的影響不大,使得各目標值也與理論目標值之 間差距甚微;而隨著階數的減少,目標值的誤差雖然越來越大,但是影響幅度有限。

4.3 元件的誤差

電阻除了量化的誤差之外,本身還存在有其他的誤差。以市售的一般型電阻為 例,每一顆電阻都只有一個固定的電阻值,即所謂「定值電阻」,但其理論電阻值與 實際電阻值之間往往存在著誤差,這是因為現實的電阻器本身除電阻外,還擁有著微 量的電感或電容,使其阻值與理想的電阻器有所差異。一般電阻的誤差約在5%左右, 這也就是說電阻的最大值不固定,即所謂的元件誤差。 電子元件的各種標示值與實際值之間常常存在著誤差。同樣地,我們所使用的數 位可變電阻也有著類似的誤差,因為每一顆元件的最大值都不一樣,甚至是實驗當時 的溫度、溼度等變化,對於元件的精準度都有影響。以理論最大值為10KΩ的數位可 變電阻來說,據實際量測的結果,此型數位可變電阻的最大值約在9.5KΩ~10.5KΩ之

(28)

間,而最大值與其量化後每一階的距離有關係,電阻最大值較大,電阻每階的間距也 較大。我們實際的測量了 30 個數位可變電阻,且每個電阻分別設定小、中、大三種 不同的電阻值,來驗證是否每一個電阻間存在著差異,結果如表4.3。 在這裡我們計算了變異係數的大小。在一般的情形下,要比較多組資料的差異, 不能只比較標準差的大小,需要一種相對的測度值作為比較的標準。變異係數的定義 如(4-1)式: % 100 × ⎟ ⎠ ⎞ ⎜ ⎝ ⎛ = X s CV (4-1) 變異係數就是一種相對測度值,其中X 為算術平均數,s為樣本標準差。這裡發現, 隨著設定的電阻值越高,雖然實際電阻值的標準差越來越大,但是其變異係數並沒有 明顯的變化。由此試驗我們可以得知,各電阻樣本之間的確天生存在著差異性。

4.4 量化誤差與元件誤差的綜合影響

既然電阻間存在著差異,則它對於實際電路求解的影響會有多少?我們想利用電 腦模擬的方式,合併考量前一小節量化誤差與本節電阻間之元件誤差,探討其對於目 標解的影響。現在利用電腦隨機取樣兩個電阻值,範圍在9.5KΩ~10.5KΩ之間,我們 得到9.7KΩ與10.4KΩ,並以此作為兩電阻之最大阻值,以此為基礎,做電腦的模擬 運算。接下來,再次使用圖4.1 的範例為例題,且將之模擬成圖 4.2 的路網。 表4.4 為模擬之後的結果,可以發現,相較於前面量化階數對目標值的影響,合 併考量兩種誤差之後,其對於目標值的影響似乎更大,且也同樣是量化的階數越少 時,目標值的誤差會越大,故我們在實際製作電路上,必要更加注意其所造成之影響。 而除了電阻之外,經由類比/數位轉換器將類比電壓轉換成數位訊號,同樣地也 要將電壓的量化誤差計算進去,但是,經過實驗的發現,電壓的誤差影響也並不大, 下一章將有實際的演算範例。

(29)

表 4.3 三十個數位可變電阻之設定電阻值與實際表示阻值 編號\階數 10 100 200 1 0.42 3.77 7.5 2 0.44 3.98 7.87 3 0.44 4.00 7.93 4 0.45 4.01 7.91 5 0.43 3.88 7.60 6 0.44 4.01 7.97 7 0.43 3.90 7.70 8 0.43 3.89 7.61 9 0.40 3.54 6.92 10 0.44 3.85 7.58 11 0.39 3.55 6.91 12 0.43 3.81 7.58 13 0.43 3.85 7.55 14 0.41 3.77 7.42 15 0.43 3.87 7.52 16 0.42 3.82 7.50 17 0.43 3.90 7.52 18 0.40 3.61 7.11 19 0.41 3.70 7.32 20 0.40 3.62 7.18 21 0.42 3.79 7.53 22 0.41 3.65 7.23 23 0.43 3.91 7.85 24 0.43 3.90 7.76 25 0.43 3.84 7.64 26 0.44 3.98 7.87 27 0.43 3.88 7.66 28 0.43 3.85 7.50 29 0.42 3.85 7.59 30 0.41 3.72 7.43 平均 0.424 3.823 7.542 理論值 0.43 3.94 7.84 標準差 0.0145 0.1308 0.2737 變異係數 3.43% 3.42% 3.62% 資料來源:本研究整理

(30)

表4.4 量化誤差與元件誤差合併考慮之影響 階數 遞迴次數 x1 x2 目標值 目標值誤差 11.540 8.460 1231.331 256 *24 11.628 8.372 1231.553 0.0180% 128 *16 11.678 8.322 1231.872 0.0439% 64 14 11.664 8.336 1231.774 0.0360% 32 *8 11.975 8.025 1236.693 0.4354% 16 *4 12.242 7.758 1245.280 1.1329% 資料來源:本研究整理 註:*號表示該次運算結果,會發生如同 3.2 節所述之收斂值不唯一的現象。在 256 階的實驗中,第 25 次遞迴之 解為(11.653, 8.347),目標值 1231.695,誤差為 0.0296%;在 128 階的實驗中,第 17 次遞迴之解為(11.628, 8.372), 目標值1231.553,誤差為 0.0180%;在 32 階的實驗中,第 9 次遞迴之解為(11.357, 8.643),目標值 1232.282,誤差為 0.0773%;在 16 階的實驗中,第 5 次遞迴之解為(10.973, 9.027),目標值 1240.513,誤差為 0.7457%。

4.5 元件的物理限制

在演算法迴圈進行的時候,可能會遇見其遞迴電阻值,大於數位可變電阻之最大 可顯現值的狀況,以最大值為10KΩ的數位可變電阻來說,最多也只能顯示出10KΩ左 右的電阻值,但是迴圈過程很可能發生電阻值超過10KΩ的狀況,乍看之下這會對於 實際上的求解產生限制,故在實作的演算法中我們將要考慮這樣的因子。 但事實上,這對於我們實際電路的求解並不會產生非常大的影響,因為只要各個 電阻間的阻值比是固定的,其所通過的電流比也一定會是固定的。以圖1.4 的簡單雙 路段路網為例,假設在某次遞迴時,兩路段的阻值分別為12KΩ與21KΩ,故兩路段 之電阻值比為 12:21,即 7:4。現根據歐姆定律,發現通過電阻之電流比將一定會是 7:4,但是電阻只能顯示最大值10KΩ,故我們只要調整兩路段的阻值,如1.2KΩ與 Ω K 1 . 2 ,其阻值比是7:4,則通過之電流比將也會是 4:7,以這樣的方式,就可以克服 元件本身限制的問題。 除此之外,當電阻設定值過大,使得整個網路的等效電阻乘以定電流值超過了 max V ,也就是全網路最大電壓差時,會造成定電流源電流的下降。全網路的總壓降受 限於電源供應器本身所供給之電壓限制,不可能超過 5V,此處的Vmax就等於 5。3.2 的演算法提到了比值k,該比值的設定是事先估算過的,透過計算,使得實際通過電 路路網的定電流值或是電阻值不會過大,讓該電路路網之總壓差不會超過Vmax,超過 的話將會造成定電流的下降。 那定電流值的下降是否會對求解造成影響?答案是不會的,因為就算電流值會下 降,其所分配到各個電阻之間的電流值也會同等比例地下降,根據3.2 節的 PCA-Sub,

(31)

只要各路段的電流下降比例一致,我們就可以利用演算法將之修正回來。

除此之外,元件本身所能通過的電流也不能太大。文獻中指出,數位可變電阻所 能通過之電流不能超過5mA,故這對演算法也會有一些限制存在,不過無論電流通過 多寡,其各電阻之間通過電流的比例也會一樣的,故我們所發展出的演算法也要針對 此作處理。

(32)

第五章 微處理機系統之電子電路實作

本章進入了實際製作電路的主題。5.1 節將會介紹整個電路系統的架構圖,還有 所使用元件的簡單介紹;5.2 節就是單起訖點對的電路實際製作,以及實驗結果;5.3 節則是兩起點對一訖點的電路製作與結果;5.4 節為較為一般性的多重起訖點電路製 作及結果;最後5.5 節則是增加了路網供需改變後的一些測試結果。

5.1 系統架構圖與元件介紹

為了模擬第三章演算法中,不斷遞迴計算的運算過程,在電路的製作上,我們必 須利用單晶片微電腦來做控制。單晶片微電腦,顧名思義就是將各種有關電腦的單 元,都製作在同一個晶片上,藉此達成控制的動作。在本實作中,我們使用了 NXP 公司所生產的P89V51RD2 這種 MCS-51(MCS:Micro Computer System)單晶片來做處 理架構的核心,這也是目前世界上非常普遍的一種單晶片微電腦。P89V51RD2 單晶 片之說明,如附錄一所示。在本微處理器中,共有32 個輸入/輸出腳位,我們將會使 用P0.0~P0.7 這八個腳位當做數位電壓值的輸入,而微處理器內部可以將此數位訊號 換算成類比訊號值,作為演算法運算之用。運算結束後,所得之電阻值再經由輸入/ 輸出腳位傳至數位可變電阻(digital potentiometer,簡稱 digipot),以更改電阻值。

又由於電阻值必須不斷地變動,數位可變電阻的使用是必須的。我們選用Analog Devices 公司所生產,型號為 AD8400 的數位可變電阻來實作電路。本元件的最大電 阻值為10KΩ,共有 256 階,也就是說,將電阻值10KΩ平均分配 256 階,理論上每 Ω ) 256 / 10000 ( 為 一 階 , 第 一 階 為 10000/256=39.0625Ω , 第 二 階 為 Ω = ×2 78.125 ) 256 / 10000 ( ,以此類推。 由於實際電路理論的限制,電阻的第 0 階應為0Ω,又根據式(1-1)的歐姆定律, 電阻R=0會導致電流會趨近於無限大,過大的電流將會燒毀電阻,故電阻第0 階時, 為了保護元件,本身會有一個約40Ω的電阻值,用意為保護電阻,故實際每一階的距 離應為(10000−40)/256Ω。該元件之腳位說明如附錄二所示,這是一個八腳位的電子 元件。 前面有提及,在遞迴的過程中,我們有需要將電路所實際量測的電壓,傳送到微 處理器的步驟,這時就需要使用類比/數位轉換器(A/D Converters,簡稱 ADC),它可 以將類比的電壓值轉變成為數位訊號值,因為微處理器的輸入以及輸出,都是使用數 位信號,故將類比電壓值轉成數位訊號有其必要性。我們所使用的是 ADC0804 這個 型號的 ADC,它能把輸入的類比電壓值,轉換成 256 階的數位電壓值作輸出。較詳

(33)

細的ADC0804 腳位說明如附錄三所示。 因為需要利用微處理器控制的元件數較多,但 P89V51RD2 中也只有 32 個輸入/ 輸出埠而已,我們將會面臨到腳位不夠的問題,這時就需要利用74164 這個 IC。這是 一個八位元的移位暫存器,我們主要是利用它來控制各個元件的 CS(chip select)腳 位,該腳位可以控制元件為啟動或是關閉。一般而言,當CS 為低電位,也就是 CS=0 時,元件啟動;反之,元件關閉。我們僅須適當調整74164 的輸入部分,在輔以相對 應的時脈觸發,便可以達成依序分別啟動元件的目的,如此做將可以解決微處理機腳 位不足的問題。詳細的74164 腳位與真值表,如附錄四所示。 在程式的撰寫上面,所使用的是德國Keil 公司所開發出的 Visionμ 軟體,這是一 個整合性的軟體,可以用在C 語言的撰寫以及組合語言的應用上。此軟體把專案的管 理、程式原始碼的撰寫、編譯、偵錯;模擬等等功能都整合在一起,且還內涵許多 MCS-51 單晶片的系統和周邊的設備環境設定等等,目前也是全球使用最廣泛的單晶 片程式撰寫工具。以下對於電路的實際流程做說明: 1. P89V51RD2 內設定數位電阻值,將前次迴圈所得之電阻值,轉換成數位信號, 透過P1.1 腳位輸出,依序將值輸出至各個數位可變電阻內。途中須用 P1.6 腳 位輸入二位元值到74164 內,讓 74164 可控制數位可變電阻的 CS 腳位,當 CS=0 時,電阻將會啟動。之後,電阻將會顯示量化後之阻值。 2. 數位可變電阻的電阻值皆已設定完畢,電流流經電阻會產生電壓差,此電壓差 的類比訊號,在CS=0 為低電位時,可藉由 ADC 之 Vin(+)及 Vin(-)腳位感應, 而CS 的控制同樣需藉由 74164 達成;接下來控制 WR,當正時脈邊緣觸發時, 類 比 電 壓 值 開 始 轉 換 成 數 位 電 壓 值 ,RD=0 時數位電壓值資料開始透過 DB0~DB7 之腳位輸出,不過此處 RD 腳位會直接接地,如此較為簡便。 3. 數位輸出信號由 P89V51RD2 之 P0.0~P0.7 腳位接收,且微處理器內部會將數 位信號計算回類比電壓值,再藉由演算法的運算,可得出下一次迴圈時所需之 電阻值。 4. 在演算法運算的時候,可以透過 P3.0 腳位的串列埠接收,以及 P3.1 的串列埠 發射,將各種數值(如電壓值、電流值……)經由 MAX232 元件之轉換,發送至 個人電腦,而個人電腦可藉由超級終端機此程式來接收資料,並將其顯示於螢 幕上觀看。 圖5.2 所代表的是整個系統的架構圖,圖中被方框框起的數位電阻及類比/數位轉 換 器 部 份 , 所 代 表 的 就 是 整 個 實 際 的 交 通 路 網 。 從 圖 中 可 以 暸 解 , 微 處 理 器 (P89V51RD2)可以輸出阻值,再藉由 74164 控制數位電阻,使數位電阻顯示相對應之 電阻值。而流經數位電阻的電流造成了壓降,其壓降就由類比/數位轉換器(ADC0804)

(34)

來負責測量。各個 ADC0804 所得之電壓資料,傳送至微處理器,讓微處理器可以藉 由演算法,求出下一次遞迴時,需要輸出至數位電阻之電阻值。 在電路演算的過程中,運算是藉由微處理機的控制達成的,欲得知計算時各變數 的值,可將電路與個人電腦,每當微處理機計算出某變數之值,便可將其傳送至電腦 上顯示。個人電腦端的接收平台是利用Windows 內建的超級終端機完成,圖 5.1 為超 級終端機的基本顯示介面。 在進行實作前,先在考慮有量化誤差的情況下,做電腦上的模擬演算,以觀察誤 差對於最佳解、以及目標值的影響有多少。我們在每一次的迴圈中,所求出之理論的 電阻值,都要將他表示成經過數位量化後,實際上數位可變電阻所能顯示的阻值,且 電壓經過ADC0804 轉換的誤差也要考慮進去。 圖5.1 超級終端機顯示介面 資料來源:本研究整理

5.2 子路網之實際電路製作

本節中將會進入實際製作的主題,首先我們利用3.2 節中提及的子系統之實際電 路演算法(PCA-sub)來製作實際電路。5.2.1 的實作路網較為單純,僅含有一組起訖對 與兩個路段;而5.2.2 的路網則包含了兩起點與一訖點,總共有六個路段。

(35)
(36)

5.2.1 單起訖點對之電路製作

現在考慮一單OD 點對的路網,為了簡化計算的過程,我們所挑選的電路,在遞 迴過程中均沒有超過10KΩ的現象產生。我們選擇如圖 1.4 之路網,並隨機挑選兩個 數位可變電阻,作為路網中的路段,其成本函數如下: 2 1 1 1(x ) 1 6x c = + 2 2 2 2(x ) 2 x c = + 1 = rs q 目標式 1 2 13 32 3 1 2 2 ) (x x x x x z = + + + 理論上,本範例最佳解應為(i1 , i2)= (0.4633, 0.5367),目標值為 1.78712。而有經 由量化過程的系統最佳解為(i1 , i2)= (0.4641, 0.5359),目標值為 1.78713,詳細計算過 程不再贅述。 此處之OD 流量為 1,作如此設定的原因是因為實際硬體電路的限制,電流不可 以超過5mA 之故,所以先利用低電流的電路來驗證電路實作的可行性。實際電路如 圖5.3: 圖5.3 單起訖點對之電路實作圖 資料來源:本研究整理

P89V51RD2

AD8400

ADC0804

(37)

解說: 1. P89V51RD2:主要微處理器,程式在此進行運算,可將電阻值以串列方式傳至數 位可變電阻,再接收ADC 所傳過來之並列電壓值做運算。 2. AD8400:數位可變電阻,可依傳入之串列訊號的改變而改變其電阻值。 3. ADC0804:類比/數位轉換器,將類比的電壓值轉變成數位且並列之值輸出至微 處理器。 本題之理論上最佳解為(i1 , i2)= (0.4633, 0.5367),電阻值(R1, R2) = (4.938, 4.263); 而實際電路所測量出之結果為(i1 , i2)= (0.461, 0.539),電阻值(R1, R2) = (4.93, 4.22),實 做電路之結果與理論結果相去不遠。 由4.3 節得知,每顆電阻所擁有的最大值不同,連帶使得階數的電阻值也略有不 同,導致就算某兩顆電阻其階數相同,經由量化後的實際電阻值也可能不同,現在我 們想知道,這樣的狀況對於實際求解是否有影響。現在我們仍然測試圖4.3 之例題, 但現在隨機挑選30 個電阻作更換,再求取本例題之解。所得到的 15 組解如表 5.1: 表5.1 單起訖點例題隨機更換電阻之 15 組解 組別 I1 I2 1 0.461 0.539 2 0.461 0.539 3 0.456 0.544 4 0.457 0.543 5 0.449 0.551 6 0.452 0.548 7 0.458 0.542 8 0.465 0.535 9 0.452 0.548 10 0.457 0.543 11 0.460 0.540 12 0.458 0.542 13 0.456 0.544 14 0.455 0.545 15 0.457 0.543 資料來源:本研究整理 經由上述的實驗結果發現,元件的誤差等影響,對於實際電路求解來說影響不 大,且各電阻通過之電流與理論值之間的差距,大約也都不超過 5%。透過這樣的小 型範例測試,說明元件的誤差及量化的影響應為有限。前述之電路實做結果,電阻值

(38)

的解也與理論值有一些差距,究其原因,可能如下: 1. 量化的誤差 如前一小節所述,將前一步驟所計算得出之電阻值轉成數位信號,並將其輸入至 可變電阻值,將會有量化誤差產生,且使用ADC0804 量測電壓時,同樣也有量化 的誤差,因這兩者都是256 階的 IC,以 ADC0804 來說,最大可顯示之電壓為 5V, 共有256 階,所以大約每 0.02V 為一階,故某些電壓值無法顯示是必然的。 2. 元件本身的誤差與演算法的限制 前面已說明過,我們所使用的數位可變電阻,雖然號稱最大值為10KΩ,但其實際 最大值隨著元件的不同,甚至是實驗當時的溫度、溼度等不同,而會有所變化。 如前所述,數位可變電阻的最大值可能從9.5KΩ~10.5KΩ,可將近有1KΩ之差 距,但是,我們在撰寫微處理器內部程式碼時,卻沒有將所有元件的最大電阻值 都考慮進去來計算,而是一律使用最大電阻值為10KΩ計算。最大可能之電阻值的 不同,使得電阻每一階的距離也稍有不同,所以,當我們認為在某次迴圈下,將 要給某電阻值一個數位信號,使之轉換成類比的電阻值時,電阻所實際顯現出來 之電阻值,卻可能與預期該得到之值之不同,這將會對於演算的準確性造成影響, 惟其影響較有限。

5.2.2 兩起點對一訖點之電路實際製作

儘管實際電路擁有許多的誤差,但是其最終結果還算令人滿意,結果的誤差也沒 有很大,所以,我們想要製作更大的電路繼續來驗證電路實驗的可行性,接下來我們 挑選了如圖 5.4 的路網圖,該路網有兩起點、一訖點,各起點至訖點之流量均為 1, 實際製作之電路如圖5.5: 圖5.4 兩起點對一訖點之測試路網 資料來源:本研究整理 D O1 1 O2 1

(39)

圖5.5 兩起點對一訖點之電路實作圖 資料來源:本研究整理 本電路中,除了原本的 P89V51RD2、ADC0804、及數位電阻等元件外,另外增 加了74164 這個 8 位元的移位暫存器(架構圖如附錄),其主要用途是將所輸入之串列 資料轉換成為8 位元的並列資料輸出。而原因是因為當微處理器所需要控制的電阻越 來越多時,將會使微處理器本身的腳位不敷使用。以P89V51RD2 為例,總共只有 40 個腳位,而實際能用來作為輸入或輸出之腳位,更是只有32 個,所以我們透過此移 位暫存器,依序的控制數位可變電阻以及類比/數位轉換器(ADC),以達到節省腳位的 目的。而本路網各路段之成本函數可如表5.2 所示,數值計算之解如表 5.3,電路實際 測量所得之解如表5.4:

結果分析

所得之電路實做結果與實際值同樣有一段差距,但是差距並不很大,流量的最佳 解與理論之最佳解之間,大約有5%以內的誤差,此誤差就結果來看,比之前的單 OD 網路誤差要來的更大一些。原先我們認為,前述的量化誤差、元件誤差等等,可能隨

74164

74164

(40)

著路網的增大,誤差之間可能相互抵銷,但事實並非如此,後續將會對此議題做更深 入的研究。 表5.2 兩起點對一訖點之路段成本參數 成本函數 4 2 1 ) ( a a a x p p x t = + 路段a p1 p2 1 0.8 0.50 2 0.6 0.60 3 1.0 0.45 4 1.0 0.40 5 1.2 0.20 6 1.0 0.70 資料來源:本研究整理 表5.3 兩起點對一訖點之理論與實際電路之各路段流量 路徑 理論流量 實際流量 1 0.356 0.368 2 0.644 0.632 3 0.700 0.721 4 0.300 0.279 5 1.057 1.080 6 0.943 0.920 資料來源:本研究整理

5.3 系統電路實際製作

將前一小節的路網繼續擴展,現在希望製作多起訖點之實際路網。根據 3.3 節的 多重起訖點之電路模擬演算法,多起訖點演算法在計算時,是將全路網拆解成多個單 起點對多訖點的子路網,並將所有子路網所得到的流量合併,再經由道路成本的轉 換、搜尋至最適步幅等等的步驟,求得新解。我們所測試的路網圖結構如圖5.7,這 是一個擁有6 節點,以及 8 路段的問題,且各個起訖對之間的流量均為 1:

(41)

5.6 兩起點對兩訖點之測試路網(各 OD 間流量=1) 資料來源:本研究整理 按照之前的多重起訖點之電路模擬演算法,很快的發現了實際電路上的問題,導 致我們沒有辦法實際的利用8 個可變電阻來代表 8 個路段。由於在演算法中,是將全 路網拆解成多個單起點對多訖點的子路網,那麼,理論上沒有使用到的路段應該不會 有任何電流量的通過,但是實際上這是不可能的。倘若我們一開始就將所有的電阻都 安置在電路板上,那麼,演算法中未使用的路段仍會有電流的通過。以圖5.7 為例, 假設我們所設定的子路網為1-2-5-6-7-8 與 3-4-5-6-7-8,則當我們在為 1-2-5-6-7-8 路網 進行演算時,因為路段3、4 是與其相接的,則勢必會有電流通過路段 3 與 4,使得演 算時所得到的子路網電流狀況,必不能代表當時實際的子路網電流。當然,理論上也 可以將未使用路段電阻設定為無限大,如此一來依據歐姆定律,這些路段的流量就會 變成0,但是實際上我們是沒有辦法將電阻設定為無限大的,在我們的例子中,電阻 值最大僅能設定成10KΩ。。 那麼,又該如何解決在計算子路網流量時,未使用路段卻也有流量通過的情況發 生呢?以圖5.7 為例,在計算流量時,我們會將其拆成 1-2-3-4-5-7 與 1-2-3-4-6-8 兩個 子路網,這兩個子路網的架構為對稱,且與圖5.5 架構類似。事實上,演算法計算時, 我們的確只會用到子路網來求取當時相對應的電流、電壓、電阻等數值,總流量的計 算是在所有子路網流量都求得並相加後,再經由線性搜尋而得,故當我們實際製作路 網時,實際上也只需要接出如圖5.5 的子路網,再經由微處理機的運算就可以了。所 製作出的實際電路如圖 5.6,這和兩訖點對一訖點的實際電路是一樣的。本路網各路 段之成本函數可如表5.4 所示,數值計算與電路實際測量之解如表 5.5: D1 D2 O1 1 1 O2 1 1

(42)

表5.4 兩起點對兩訖點之路段成本參數(各 OD 間流量=1) 成本函數ta(xa)= p1+ p2xa4 路段a p1 p2 1 0.40 0.25 2 0.50 0.40 3 0.60 0.50 4 0.30 0.30 5 0.60 0.25 6 0.25 0.25 7 0.25 0.30 8 0.40 0.30 資料來源:本研究整理 表5.5 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=1) 路段a 理論流量 實際流量 1 1.106 1.086 2 0.894 0.914 3 0.841 0.913 4 1.159 1.087 5 0.864 0.936 6 1.083 1.106 7 1.136 1.064 8 0.917 0.894 目標值 3.7285 3.7428 資料來源:本研究整理 所得之電路實做結果與實際值仍有一段差距,同樣地,差距也不大,流量的最佳 解與理論之最佳解之間,大約有 5%以內的誤差。並且,理論的目標值為 3.7285,與 實作電路的目標值3.7428 之間的誤差也不超過 1%。

5.4 系統容量測試

先前的試驗證明,利用電路求解流量問題的解應為可行,現在我們想擴大 OD 間的 流量,以求解較為一般性的交通指派問題,因為一般的指派問題,不太可能發生起訖 點流量僅為1 的狀況,現在仍沿用圖 5.7 之路網,但是改變各 OD 間之流量如圖 5.8:

(43)

圖5.7 兩起點對兩訖點之測試路網(各 OD 間流量=15) 資料來源:本研究整理 我們設定了一組新的路段之成本函數,如下表 5.6,每條路段都有其自由車流食 旅行時間與容量限制。以路段1 為例,自由車流旅行時間為 2,其道路容量限制為 15。 最佳解流量與電路計算解如表5.7: 表5.6 測試路段之路段成本參數(各 OD 間流量=15) 成本函數 ( ) (1 0.15 ) 4 ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + = a a a a a C x T x t 路段a Ta Ca 1 2 15 2 2 30 3 3 15 4 3 25 5 2 10 6 2 10 7 3 15 8 3 15 資料來源:本研究整理 表5.7 兩起點對兩訖點之理論與實際各路段之流量(各 OD 間流量=15) 路段a 理論流量 實際流量 誤差百分比 1 14.223 15.321 7.72% 2 15.777 14.678 -6.96% 3 13.549 13.575 0.19% 4 16.451 16.424 -0.17% 5 14.036 14.802 5.46% 6 13.736 12.926 -5.90% 7 15.964 15.197 -4.80% 8 16.264 17.173 5.59% 目標值 315.270 315.814 0.17% 資料來源:本研究整理 D1 D2 O1 15 15 O2 15 15

數據

圖 1.2  非線性成本函數圖  資料來源:本研究整理  由(1-2)式可知,歐姆定律是一線性的關係。在電阻相同的情況下,電壓增大,電 流就會增大;電壓減小,電流也跟著減小。現在假定有一個 25 Ω 的電阻,其兩端有電 壓差,故電阻將會有電流通過,而其電壓-電流關係如圖 1.3,橫軸單位為伏特(V),縱 軸單位為安培(A),該圖之電壓與電流之間關係為線性。  圖 1.3  歐姆定律關係圖  資料來源:本研究整理  現在應用歐姆定律至較為一般性的電路上,以圖 1.4 之兩電阻電路為例,因兩電 阻為並聯,所以兩
圖 3.3  雙曲線逼近成本函數示意圖  資料來源:(鄭兆哲,2009)  3.2  子系統之實際電路演算法(PCA-Sub)  根據前述演算法,我們發展出一套子系統之實際電路演算法。先前的演算法在演 算時,沒有考慮到電阻值「量化誤差」的問題,因為在做電腦模擬時,數值都相當的 精確,但實際電路製作時,需要考慮量化的誤差,沒有辦法設定成理論的電阻值一定 等於實際的電阻值,這是因為元件本身的限制使然,無法做到百分之百的精確是必然 的。  另外,除了量化的影響之外,我們可能會碰到遞迴過程中,運算時的電阻值 R 超
圖 4.2  電腦模擬測試電路圖  資料來源:本研究整理  表 4.2  量化階數不同對於目標值之影響  階數  遞迴次數  x 1 x 2 目標值  目標值誤差     11.540 8.460 1231.331    256 *19 11.511 8.489 1231.353  0.00182%  128 *18 11.575 8.425 1231.357  0.00200%  64 13  11.513 8.487 1231.351  0.00165%  32 11  11.494 8.506 123
表 4.3  三十個數位可變電阻之設定電阻值與實際表示阻值  編號\階數 10 100 200  1 0.42  3.77  7.5  2 0.44  3.98  7.87  3 0.44  4.00  7.93  4 0.45  4.01  7.91  5 0.43  3.88  7.60  6 0.44  4.01  7.97  7 0.43  3.90  7.70  8 0.43  3.89  7.61  9 0.40  3.54  6.92  10 0.44  3.85  7.58  11 0.39
+7

參考文獻

相關文件

Proceedings of the 28 th Conference of the International Group for the Psychology of Mathematics Education, 2004 Vol 4 pp

volume suppressed mass: (TeV) 2 /M P ∼ 10 −4 eV → mm range can be experimentally tested for any number of extra dimensions - Light U(1) gauge bosons: no derivative couplings. =>

incapable to extract any quantities from QCD, nor to tackle the most interesting physics, namely, the spontaneously chiral symmetry breaking and the color confinement.. 

• Formation of massive primordial stars as origin of objects in the early universe. • Supernova explosions might be visible to the most

Proceedings of the 28 th Conference of the International Group for the Psychology of Mathematics Education, 2004 Vol 4 pp

(Another example of close harmony is the four-bar unaccompanied vocal introduction to “Paperback Writer”, a somewhat later Beatles song.) Overall, Lennon’s and McCartney’s

The min-max and the max-min k-split problem are defined similarly except that the objectives are to minimize the maximum subgraph, and to maximize the minimum subgraph respectively..

• Any node that does not have a local replica of the object periodically creates a QoS-advert message contains (a) its δ i deadline value and (b) depending-on , the ID of the node