0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

典型的反饋控制器和PID控制器算法原理解析

454398 ? 來源:博客園 ? 作者: sasasatori ? 2020-11-06 15:23 ? 次閱讀

算法原理

PID控制器比例(proportion)、積分(integral)微分(differential)控制器, 該算法以誤差作為輸入量,經(jīng)過對比例,積分,微分三項(xiàng)加權(quán)求和之后得到輸出量。PID控制器是非常經(jīng)典的控制器,簡單易懂,不需要精確的系統(tǒng)模型就可以使用,應(yīng)用非常廣泛。

關(guān)于PID的介紹資料網(wǎng)上有很多,也有很多講的通俗易懂的。

我這里介紹算法原理時(shí)除了定性分析之外,還會(huì)涉及到一部分理論知識,需要一定的《自動(dòng)控制原理》信號與系統(tǒng)》的專業(yè)知識,不過不會(huì)過于深入,都是簡單的入門級知識。

我們先說一下為什么需要閉環(huán)控制,以控制一個(gè)電機(jī)的轉(zhuǎn)速為例。在實(shí)際控制之前,我們可能會(huì)想當(dāng)然的覺得,只要我給電機(jī)一個(gè)100轉(zhuǎn)/min的轉(zhuǎn)速期望,它就會(huì)乖乖輸出100轉(zhuǎn)/min的結(jié)果,但是實(shí)際情況呢?電機(jī)空載的情況下它或許還能夠達(dá)到期望的轉(zhuǎn)速,但是假如給電機(jī)上加了一個(gè)10斤的負(fù)載呢?它的轉(zhuǎn)速可能就掉到80轉(zhuǎn)/min去了,再繼續(xù)增加負(fù)載,轉(zhuǎn)速可能會(huì)繼續(xù)下降。

再舉一個(gè)例子,做過智能小車之類的同學(xué)應(yīng)該會(huì)深有體會(huì),單片機(jī)輸出同樣脈寬PWM給電機(jī),但是隨著電源電壓,輪子松緊等因素的干擾,幾乎每次電機(jī)最后輸出的實(shí)際轉(zhuǎn)速都會(huì)變化。

如何解決這個(gè)問題呢?其實(shí)我們只需要根據(jù)電機(jī)的實(shí)際轉(zhuǎn)速來改變我們的給電機(jī)的輸入量就可以了。比如同樣是希望電機(jī)掛了10斤負(fù)載的情況下能夠輸出100轉(zhuǎn)/min,由于給電機(jī)的輸入對應(yīng)于空載100轉(zhuǎn)/min時(shí),實(shí)際輸出只有80轉(zhuǎn)/min,可以考慮將輸入量提高到對應(yīng)于空載時(shí)120轉(zhuǎn)/min,這時(shí)電機(jī)的實(shí)際輸出或許就能夠達(dá)到100轉(zhuǎn)/min。同樣的,如果負(fù)載繼續(xù)增加,我們就進(jìn)一步增大輸入量,以控制實(shí)際輸出保持在100轉(zhuǎn)/min。

Robomaster的大部分電機(jī)都是帶霍爾傳感器,可以反饋轉(zhuǎn)速/位置信息的,因此都可以通過閉環(huán)的方式進(jìn)行控制。

然后我們介紹一下什么是典型的反饋控制器(該模型可以在matlabsimulink中打開):

一般我們會(huì)將受控對象的反饋(measured output)與我們的期望(reference)輸入相減,得到一個(gè)誤差值(error),然后以該誤差作為輸入量給控制器(controller),控制器最后輸出結(jié)果(control input)直接傳給受控對象(plant)。

依然是結(jié)合我們之前的電機(jī)的例子,這里的期望即我們的期望電機(jī)轉(zhuǎn)速100轉(zhuǎn)/min,反饋即我們通過霍爾傳感器獲得的電機(jī)實(shí)際轉(zhuǎn)速80轉(zhuǎn)/min,我們將他們做差得到誤差,然后將其送入控制器中,控制器根據(jù)內(nèi)部的算法得到結(jié)果,算出120轉(zhuǎn)/min的期望給電機(jī),就能夠使電機(jī)的實(shí)際轉(zhuǎn)速恰好等于期望。

由于誤差控制器輸出都是時(shí)變的,我們分別假設(shè)其為err(t)和U(t),這樣我們就可以引出連續(xù)型PID的公式

U(t)=Kp?err(t)+Ki?∫err(t)dt+Kd?derr(t)dtU(t)=Kp?err(t)+Ki?∫err(t)dt+Kd?derr(t)dt

即對err(t)分別進(jìn)行比例,積分,微分運(yùn)算之后進(jìn)行加權(quán)求和得到輸出U(t)。為什么會(huì)同時(shí)需要這三項(xiàng)呢?我們來定性的分析一下每一項(xiàng)的含義——

首先我們假設(shè)Ki和Kd兩個(gè)系數(shù)均為0,則公式變化為

U(t)=Kp?err(t)U(t)=Kp?err(t)

即輸出量隨誤差大小等比例變化,那么這樣得到的輸出結(jié)果會(huì)是什么樣的呢?(藍(lán)線為輸出,黃線為期望,紫線為誤差)

我們會(huì)發(fā)現(xiàn)輸出出現(xiàn)了兩個(gè)問題——第一,出現(xiàn)了超調(diào),第二,出現(xiàn)了靜差。

超調(diào)即實(shí)際輸出量出現(xiàn)了一個(gè)大于期望值的尖峰,超調(diào)可能會(huì)引發(fā)很嚴(yán)重的問題——系統(tǒng)不穩(wěn)定,這種情況往往出現(xiàn)在比例項(xiàng)過大的情況。一個(gè)超調(diào)量引發(fā)另一個(gè)超調(diào),導(dǎo)致系統(tǒng)處于持續(xù)的震蕩狀態(tài)中,比如下圖這種情況——

體現(xiàn)在實(shí)際的機(jī)器人中就會(huì)是“嘿,你的云臺瘋了”或者“嘿,你的底盤瘋了”,你會(huì)看見自己的機(jī)器人的云臺抽風(fēng)一般的抽搐點(diǎn)頭,底盤如同脫韁的野馬肆意奔馳.......(所以為了安全,一定要給輸出添加限幅??!被云臺打到或者被底盤撞到真的很疼?。。?/p>

靜差即輸出穩(wěn)定在一個(gè)小于期望的值,引發(fā)這一點(diǎn)的問題之一是比例系數(shù)過小。因?yàn)槲覀冎垒敵鍪呛驼`差成正比例的,如果比例系數(shù)小了,則輸出自然也會(huì)小。適當(dāng)?shù)脑龃蟊壤禂?shù)可以改善這一問題,但是永遠(yuǎn)不可能徹底消除靜差,因?yàn)槿绻娴倪_(dá)到了輸出等于期望,也就是err(t)等于0的情況,則輸出U(t)就也為0了......我們來看一下增大比例項(xiàng)的結(jié)果:靜差大大減小,但是超調(diào)也增大了。

所以我們可以看出純比例控制所遇到的一個(gè)矛盾的問題,系數(shù)太小則存在靜差,系數(shù)太大則存在超調(diào),所以為了解決這一問題,我們需要提高系統(tǒng)階數(shù),引入積分項(xiàng)。

引入積分項(xiàng)后,公式變成

U(t)=Kp?err(t)+Ki?∫err(t)dtU(t)=Kp?err(t)+Ki?∫err(t)dt

我們來分析一下積分項(xiàng)是如何解決靜差這個(gè)問題的。由于積分的累積性,只要存在誤差,積分項(xiàng)就會(huì)持續(xù)作用,即使在err(t)為0時(shí),積分項(xiàng)也不會(huì)為0,而是繼續(xù)保持作用,維持U(t)不為0。但是需要注意的是,積分項(xiàng)對于輸出的影響是比較大的,不能貿(mào)然給很大的積分系數(shù),否則......(“嘿,你云臺/底盤瘋了”),此外積分項(xiàng)一定程度上會(huì)助長超調(diào)的影響,使系統(tǒng)趨于穩(wěn)定的時(shí)間變得更久,如下圖所示。

通過增加積分項(xiàng),我們解決了靜差這一問題,但是超調(diào)問題依然存在,雖然通過增加減小比例項(xiàng)和積分項(xiàng)可以一定程度上的減小超調(diào),但是代價(jià)就是輸出消除靜差的時(shí)間又要被延長了。所以這時(shí)我們引入第三項(xiàng)微分項(xiàng)。這時(shí)我們就得到了真正的完整PID控制器公式——

U(t)=Kp?err(t)+Ki?∫err(t)dt+Kd?derr(t)dtU(t)=Kp?err(t)+Ki?∫err(t)dt+Kd?derr(t)dt

微分項(xiàng)的意義何在呢?我們可以將其與物理中的阻尼概念聯(lián)系起來。每當(dāng)err(t)產(chǎn)生急劇變化時(shí),就會(huì)產(chǎn)生一個(gè)很大的微分項(xiàng)來抵消這一急劇的變化。這就恰好和我們的超調(diào)現(xiàn)象相對應(yīng),因?yàn)?strong>超調(diào)正是一個(gè)急劇上升后急劇下降的尖峰,而微分項(xiàng)是來和它做抵消的。

我們來看一下引入微分項(xiàng)后的輸出結(jié)果——

可以看到超調(diào)量大大減小,且系統(tǒng)恢復(fù)穩(wěn)定的時(shí)間也加快了。

通過以上的分析,我們知道了PID控制器各項(xiàng)的作用。然而注意,上面所說的一切都只是定性分析,下面讓我們來結(jié)合《信號與系統(tǒng)》以及《自動(dòng)控制原理》的專業(yè)知識,來說一下PID更深層次的原理,沒有相關(guān)基礎(chǔ)的同學(xué)可以跳過這一部分。

我們引入傳遞函數(shù)來進(jìn)行系統(tǒng)穩(wěn)定性的分析,一個(gè)閉環(huán)控制系統(tǒng)的系統(tǒng)框圖如下——

假設(shè)我們已經(jīng)獲得了云臺的傳遞函數(shù)(可以通過系統(tǒng)辨識獲得)

寫出PID控制器的s域表達(dá)式如下:

U(s)=Kp+Ki?1s+Kd?sU(s)=Kp+Ki?1s+Kd?s

通過調(diào)節(jié)積分項(xiàng),使積分段作用于系統(tǒng)的低頻成分,保證系統(tǒng)穩(wěn)定性,將微分段作用于系統(tǒng)的高頻成分,保證系統(tǒng)的動(dòng)態(tài)性能。

在自動(dòng)控制原理中,我們知道一個(gè)系統(tǒng)穩(wěn)定的條件是該系統(tǒng)的極點(diǎn)全部位于復(fù)平面左側(cè)。所以任何控制器所做的首要任務(wù)是配置系統(tǒng)極點(diǎn),舉一個(gè)例子。假設(shè)一個(gè)系統(tǒng)傳遞函數(shù)為

G(s)=1s?1G(s)=1s?1

顯然其開環(huán)不穩(wěn)定,其閉環(huán)傳函為

Φ(s)=G(s)1+G(s)H(s)=1sΦ(s)=G(s)1+G(s)H(s)=1s

顯然閉環(huán)系統(tǒng)極點(diǎn)在原點(diǎn)上,不穩(wěn)定

而在引入前饋純比例控制器

C(s)=2C(s)=2

之后,我們可以看到閉環(huán)傳函變?yōu)?/p>

Φ(s)=C(s)G(s)1+C(s)G(s)H(s)=2s+1Φ(s)=C(s)G(s)1+C(s)G(s)H(s)=2s+1

系統(tǒng)極點(diǎn)為s=-1,系統(tǒng)穩(wěn)定。

在保證系統(tǒng)穩(wěn)定的前提下,我們根據(jù)系統(tǒng)閉環(huán)傳遞函數(shù)的波特圖進(jìn)行分析,使幅頻響應(yīng)和相頻響應(yīng)滿足幅度裕度條件和相位裕度條件,可以借助matlab的工具箱進(jìn)行分析。

關(guān)于系統(tǒng)辨識以及根據(jù)系統(tǒng)辨識的結(jié)果設(shè)計(jì)控制器,可以參考官方的開源教程

https://bbs.robomaster.com/thread-4941-1-1.html

https://bbs.robomaster.com/thread-5059-1-1.html

當(dāng)然,沒有掌握這些知識不代表一個(gè)人不能調(diào)PID,同樣一個(gè)人掌握了這個(gè)知識也不等于他一定能夠調(diào)好PID,很多情況下系統(tǒng)的傳遞函數(shù)并不容易獲取,所以經(jīng)驗(yàn)依然非常非常重要。

代碼實(shí)現(xiàn)

需要注意的是,前文我們一直在討論連續(xù)型PID控制器,但是單片機(jī)內(nèi)部是一個(gè)數(shù)字系統(tǒng),數(shù)字系統(tǒng)必然是離散的,所以我們需要把連續(xù)型PID轉(zhuǎn)換出離散型PID,當(dāng)然這一點(diǎn)其實(shí)也沒有任何難度,只不過是把積分變成求和,微分變成差分而已。

離散型PID公式如下

U(n)=Kp?err(n)+Ki?∑err(n)+Kd?[err(n)?err(n?1)]U(n)=Kp?err(n)+Ki?∑err(n)+Kd?[err(n)?err(n?1)]

眼尖的同學(xué)注意到我沒有把周期T寫在公式里面,其實(shí)考慮到周期是一個(gè)常數(shù),我把它直接合在了系數(shù)中。

這里對應(yīng)到代碼中,也告訴了我們兩件事

PID控制器的運(yùn)算必須在定時(shí)中斷中執(zhí)行

采樣周期和控制周期會(huì)影響系數(shù)

關(guān)于第二點(diǎn)特別說明一下,一般來說增加控制周期和采樣周期是可以讓我們的控制變得更加平滑,控制周期即執(zhí)行控制代碼的周期,一般是放置運(yùn)算PID代碼的定時(shí)器的周期,采樣周期即獲取傳感器數(shù)據(jù)的周期,比如電機(jī)的采樣周期就是CAN接收中斷的周期。

最后我們依然是結(jié)合官方開源代碼來理解PID的代碼實(shí)現(xiàn)。

這是pid.c下的pid_calculate函數(shù),結(jié)合公式可以很容易理解含義。set即期望,get即反饋,兩者相減得到誤差err,pid->pout即比例項(xiàng),直接將err線性放大,pid->iout即積分項(xiàng),對err進(jìn)行累加,pid->dout即微分,對err做差分。最后將三者疊加得到pid控制器輸出。

/**
  * @brief     calculate delta PID and position PID
  * @param[in] pid: control pid struct
  * @param[in] get: measure feedback value
  * @param[in] set: target value
  * @retval    pid calculate output 
  */
float pid_calculate(struct pid *pid, float get, float set)
{
  pid->get = get;
  pid->set = set;
  pid->err = set - get;
  if ((pid->param.input_max_err != 0) && (fabs(pid->err) > pid->param.input_max_err))
    return 0;

  pid->pout = pid->param.p * pid->err;
  pid->iout += pid->param.i * pid->err;
  pid->dout = pid->param.d * (pid->err - pid->last_err);

  abs_limit(&(pid->iout), pid->param.inte_limit);
  pid->out = pid->pout + pid->iout + pid->dout;
  abs_limit(&(pid->out), pid->param.max_out);

  return pid->out;
}

調(diào)參技巧

最后說一點(diǎn)關(guān)于調(diào)參的問題,當(dāng)然不會(huì)具體到各個(gè)參數(shù)的調(diào)節(jié)上,因?yàn)檫@個(gè)東西往往是各執(zhí)一詞,不同的人調(diào)起PID來即使大思路一致,具體細(xì)節(jié)上依然可能會(huì)有各種各樣的不同。這里更多是推薦一些調(diào)參的工具,方法,注意事項(xiàng)等。

首先是工具,這里就要搬出我們無敵的Jscope了,在之前的博文中也提到過,這是一個(gè)非常便利的虛擬示波器,在mdk中由于只能看到數(shù)值,很難分析系統(tǒng)的動(dòng)態(tài)性能,所以Jscope在這時(shí)可以派上大用處——

直接上官網(wǎng)就可以免費(fèi)下載,建議使用比較新的版本,舊的版本存在不能查看結(jié)構(gòu)體內(nèi)部變量,不能正常畫浮點(diǎn)數(shù)波形等一些問題。

然后是方法,這里說的方法不是說PID的參數(shù)調(diào)節(jié)順序之類的(雖然正常人都是先調(diào)P然后I,D),而是如何設(shè)計(jì)輸入與如何評價(jià)輸出。設(shè)計(jì)輸入時(shí),一般以階躍信號作為輸入,逐步提升階躍幅值以測定系統(tǒng)魯棒性。進(jìn)一步測試時(shí)可以將窄方波脈沖當(dāng)作沖激信號來輸入,因?yàn)橘悎錾系臎_擊一般是被可以看作沖激的,RM這個(gè)比賽一定程度上檢驗(yàn)的就是穩(wěn)定性,對自己系統(tǒng)的穩(wěn)定性界限心知肚明對一個(gè)電控隊(duì)員來說是很重要的。

評價(jià)輸出則根據(jù)超調(diào)量,靜差,恢復(fù)時(shí)間等參數(shù)作為指標(biāo)。理想的輸出曲線自然是能夠又快又不超調(diào)的貼合上期望曲線,然后根據(jù)實(shí)際情況來調(diào)整參數(shù),出現(xiàn)超調(diào)時(shí)適當(dāng)衰減比例項(xiàng),恢復(fù)時(shí)間過長時(shí)適當(dāng)減小積分項(xiàng),增大微分項(xiàng)等等。必須在調(diào)參的一開始就定好系統(tǒng)的靜態(tài)和動(dòng)態(tài)性能指標(biāo),有的放矢才能提高效率。

最后是注意事項(xiàng):記得給控制器的輸出限制幅度,切記,切記,切記,被鐵疙瘩狠狠打一下或者撞一下,輕則瘀傷,重則傷筋動(dòng)骨,希望各位電控同學(xué)注意自己的生命安全。一般調(diào)車時(shí)我個(gè)人不會(huì)把車放在地上調(diào),而是放在車架上,這樣可以在一定程度上避免跑飛帶來的危險(xiǎn)。

另外可以適當(dāng)考慮采用無線下載器,磁吸附線等,保護(hù)好自己的下載器也是很重要的,在越來越多的隊(duì)伍使用滑環(huán)做小陀螺的RM賽場上,云臺抽風(fēng)打轉(zhuǎn)很有可能直接扯斷下載線......

結(jié)語

關(guān)于PID就先說這么多了,還是那句話,實(shí)踐出真知。掌握PID的理論可以幫助一個(gè)人更加科學(xué)地去調(diào)參,但是光有理論沒有實(shí)踐是沒有意義的,還是得多調(diào),積累經(jīng)驗(yàn)才行。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628422
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15886

    瀏覽量

    175386
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5058

    瀏覽量

    212202
  • 霍爾傳感器
    +關(guān)注

    關(guān)注

    26

    文章

    679

    瀏覽量

    62803
  • PID控制器
    +關(guān)注

    關(guān)注

    2

    文章

    167

    瀏覽量

    18488
收藏 人收藏

    評論

    相關(guān)推薦

    四軸飛行控制器的秘密——PID算法解析

    常用四軸的兩種PID算法  這里主要講解的PID算法屬于一種線性控制器,這種控制器被廣泛應(yīng)用于四
    發(fā)表于 05-30 10:08

    PID控制器簡介

    ,參數(shù)的選定比較簡單等優(yōu)點(diǎn);而且在理論上可以證明,對于過程控制典型對象──“一階滯后+純滯后”與“二階滯后+純滯后”的控制對象,PID控制器
    發(fā)表于 09-07 08:06

    PID控制器的設(shè)計(jì)

    目 錄一、序言二、PID控制器的設(shè)計(jì)1.PID控制原理圖2.PID控制器傳遞函數(shù)的一般表達(dá)式三、
    發(fā)表于 02-23 07:14

    基于MBP算法PID控制器設(shè)計(jì)

    針對一般BP 算法存在的不足,提出一種改進(jìn)的BP 算法,并將其應(yīng)用于PID 控制器的參數(shù)設(shè)計(jì)中,并且克服了常規(guī)的PID
    發(fā)表于 08-07 09:42 ?18次下載

    pid控制器原理

    pid控制器原理       在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)控制規(guī)律為比例積分微分控制
    發(fā)表于 09-10 12:44 ?1.3w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>原理

    13個(gè)基于PID控制器的設(shè)計(jì)實(shí)例

    PID控制器(比例-積分-微分控制器)是一個(gè)在工業(yè)控制應(yīng)用中常見的反饋回路部件,由比例單元比例P(proportion)、積分單元I(int
    發(fā)表于 11-15 11:36 ?72次下載

    PID控制器PID算法的研究

    PID 算法 在過程控制中,PID 控制器,一直是應(yīng)用最為廣泛的一種自動(dòng)控制器;
    發(fā)表于 11-21 17:03 ?28次下載

    pid控制器的輸入輸出_PID控制器控制實(shí)現(xiàn)

    本文首先介紹的是PID控制器的工作原理,其次介紹的是pid控制器的輸入輸出,最后介紹了PID控制器
    的頭像 發(fā)表于 06-01 09:09 ?2.8w次閱讀

    PID控制器控制電壓的詳細(xì)介紹和PID控制器的C程序的概述

    本文檔的主要內(nèi)容介紹的是PID控制器控制電壓的詳細(xì)介紹和PID控制器的C程序的概述
    發(fā)表于 06-07 08:00 ?71次下載
    <b class='flag-5'>PID</b><b class='flag-5'>控制器</b><b class='flag-5'>控制</b>電壓的詳細(xì)介紹和<b class='flag-5'>PID</b><b class='flag-5'>控制器</b>的C程序的概述

    pid控制器工作原理

    PID控制器廣泛應(yīng)用于工業(yè)過程控制。工業(yè)自動(dòng)化領(lǐng)域的大約95%的閉環(huán)操作使用PID控制器。控制器
    發(fā)表于 07-18 15:10 ?1.1w次閱讀
    <b class='flag-5'>pid</b><b class='flag-5'>控制器</b>工作原理

    基于粒子群算法的無線充電PID控制器

    基于粒子群算法的無線充電PID控制器
    發(fā)表于 06-30 14:52 ?6次下載

    PID控制器的含義

    PID控制器的含義 PID 控制器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差。將偏差
    發(fā)表于 03-09 14:22 ?3498次閱讀

    什么是PID控制器?有哪些作用?

    在現(xiàn)代工業(yè)自動(dòng)化控制系統(tǒng)中,PID(比例-積分-微分)控制器無疑是最常見且重要的控制算法之一。PID
    的頭像 發(fā)表于 06-05 15:30 ?1144次閱讀

    PID控制器與開關(guān)控制器的區(qū)別

    在工業(yè)自動(dòng)化控制系統(tǒng)中,PID控制器和開關(guān)控制器是兩種常見的控制策略。它們各自具有獨(dú)特的工作原理、應(yīng)用場景和優(yōu)缺點(diǎn)。本文旨在詳細(xì)探討
    的頭像 發(fā)表于 06-05 15:50 ?422次閱讀

    PID控制器與PWM控制器的區(qū)別

    在工業(yè)自動(dòng)化和控制系統(tǒng)設(shè)計(jì)中,PID控制器(比例-積分-微分控制器)和PWM控制器(脈沖寬度調(diào)制控制器
    的頭像 發(fā)表于 06-05 18:25 ?1779次閱讀