看板 Mechanical 關於我們 聯絡資訊
既然有人願意討論,良性的討論是值得深入的 不過我想先講個前提,伺服系統各家有各家的演算法則 雖然萬法不離其宗,最終仍是回到PID的演算。但PID演算的細節各家有各家的玩法 不光是每個廠商自己的PID演算會有差異,同一家產品不同系列就不盡相同 而開放調整的參數更是影響到使用者能調整的範圍跟程度。 所以雖然原則不變,但細節差異甚大 ※ 引述《snaken (snaken)》之銘言: : 標題: Re: [心得] PLC 過往工作及最近面試 : 時間: Sat Oct 21 01:31:30 2017 : : 難得有人想要討論這一個問題,這邊也來分享一下小弟的看法。 : : : : : 其實在伺服控制裡面,控制脈波與編碼器回授脈波兩者是有關係的 : : 在位置環控制中的第一件事就是 : : (控制脈波) x (某個倍率) - (編碼器回授) = deltaP : : dP 之後才開始處理位置增益之後的速度環、電流環 : : 這個不知所以然的 (某個倍率)被某個偉大的前輩構思出了 "電子齒輪比" 這個概念 : : 這東西的目標,其實就是希望使用者把這個值後面的東西都當作一個黑盒子 如果我沒有理解錯 大大的意思是 控制命令(setpoint)- 迴授位置(feedback pos) = 位置誤差(position error) 這是位置控制迴路(position control loop) 的第一步 有了位置誤差以後(P.E.,對應大大文中的DP),就可以丟入PID演算去做後面那段"黑盒子" 如果這個說法符合的話,我就不同意"某個倍率"這件事了 因為這裡的"某個倍率"其實指的就是電子齒輪比 並不是先有位置迴路的"某個倍率",才有電子齒輪比 而是先創造出了"電子齒輪比",才有了"某個倍率"這件事 位置迴路的開頭,就是把目標位置-實際位置 ,得到位置誤差, 以位置誤差作為PID演算的基本參數 而因為引入了電子齒輪比這個參數 才會造成命令位置必須是"脈波命令"x"某個倍率" 這個"某個倍率"就是電子齒輪比 大大的說法是倒果為因了 更仔細的解釋的話 命令位置 = 脈波命令 x 電子齒輪比 在最原始的控制時,如果沒有電子齒輪比 那麼命令位置就等於脈波命令, 所以命令位置 = 脈波命令 = 編碼器回授 是因為導入了電子齒輪比,才使得命令位置與脈波命令之間多了一個倍率關係 而這個倍率就是電子齒輪比。 : : 畢竟大家是用伺服的人,不是開發伺服的人,把自己的人生搞那麼複雜做甚麼呢? : : 以現狀來說,我們通常就是跟客戶講說: : : 阿你就看馬達轉一圈,載台走多少填進去就對了 : (對不起我們就是那種亂教的人....) : : 然後默默的三菱還真的設計了參數只要填螺距一個參數即可.... : : 我也不是沒有遇過真的有興趣想學想了解的客戶,反正講清楚一點也不花多少時間 : : 但大家身在這個行業應該也了解,不是每個人都這麼有慧根 : 這是事實,不過我一直認為,造成了使用者不求甚解的原因,設備製造商也是共業 長久以來,伺服製造商把"黑盒子"包得死死得不讓使用者一窺究竟 使用者就被教育成不必去理解內部演算在做什麼的觀念,反正會使用就好 說得更明白一點,對,就是你,日系的設備商。 相對的如果看歐系的伺服系統,說明書裡大多都把整個控制迴路都解釋得很清楚 包含每個參數的控制模型跟演算法,說明書裡大多解釋得很清楚 但臺灣因為受到日本設備長時間的影響(加上閱讀英文的障礙) 所以就算有說明書,願意看的人也是蓼蓼無幾... : : : : : : : : 順便附帶說明,編碼器解析度拉高,其實對於位置控制的精確度提升是非常有限的 : : 講白點,你要控制一組滑台系統走出1um,最大重點之一是機構要夠力 : : 難道真的有人為以為買了一隻20bit (1,048,576)的馬達,配上1mm的螺桿 : : 可以做出1nm的控制? 這裡我可以理解。其實更深入來說,編碼器解析度跟精度是兩件事 編碼器本身也有精度,而精度並不等於解析度 用旋轉編碼器解釋太麻煩,直接用光學尺來說明 光學尺解析度譬如是1um好了,精度不會是1um。解析只是解析, 它從來沒跟你說每一個脈波不會有誤差,這一次你讀到十個脈波,跟下一次讀到十個脈波 實際位置並不見得是一樣的 不過解析度跟精度之間的關係,比較像是天花板的關係 沒有解析度就沒有精度 (但有解析度不代表有精度) 一個解析度1um的編碼器,"控制精度"理論上的極限就是+- 1um 意思是你能看到在Inpos後,編碼器永遠只正負跳一個脈波,這是控制的極限 但完全不代表最終精度就會有1um,這跟編碼器本身的精度、還有機構有相關 而機構永遠才是限制一套系統能達到多少精度的最根本原因 控制精度早就遠遠遠遠超過人類能製造出的機構精度條件了 控制精度要壓在0.1um以下,以目前的技術來說根本一塊蛋糕 但是機構要能達到這個條件... 很拼啊 或是換句話說,你給我一套解析度到0.1um的編碼器+馬達 我可以很輕易的控制馬達往前走0.1um,並用編碼器的回授訊號證明給你看 但實際上機構有沒有動?動了多少? 這我就無能為力了 : : 編碼器的解析度提升,主要的功能在於速度環頻寬的拉高。 : : 用白話點來說就是這個馬達加速更有力,更有貼背感(!?) : : 目標速度再快都可以追得上! : 雖然不能說你錯,但實際上還真的不是這樣 編碼器解析度增加,的確跟控制迴路的頻寬有關, 但限制控制頻寬的一直都不是編碼器解析度,而是伺服系統本身的性能限制 還有機構條件 (一樣的,機構才是真正的原因) 一套由0.5kw伺服構成的小型系統,頻寬(band width)能拉到300Hz已經是驚為天人了 你怎麼會認為是編碼器解析度造成系統頻寬拉不上去的? 而頻寬影響的也不是加速 影響馬達加速能力的是馬達轉矩/推力 F = MA,牛頓第二運動定律不要忘了(轉動系統的話,角加速度 = 轉動慣量 x 轉矩) 頻寬影響的是系統的響應性,反應在結果上,影響的是追隨性跟精度表現 編碼器解析度的提升,首要目標還是要提高精度表現 雖然前面說,高解析度不等於高精度,但低解析度保證等於低精度 : : : : : 位置控制的精度要拉高,其實到位區間(Inpos)的影響遠遠大於其他任何參數 其實我不懂這句意思,可以更仔細解釋嗎? : : 而雜訊影響又遠遠大於一切 : : 這時通訊型的好處就出來了,通訊基本上可以當作是一個完全沒有雜訊的東西 : : 但在初期(大約十來年前),RT通訊不像現在暴力,所以通訊型的伺服反而比較慢 : : 因為那個年代的通訊時間可能只有10ms才給一次封包 : : 對於需要高速變換動作的機台而言,這個東西顯得不是很夠力 : : 其實一直到這幾年,比較精確地講應該是 Mechalink2 / SSCnet / EtherCAT之後 : : 大家把通訊時間一鼓作氣縮到1ms以下,通訊型才在高階伺服站穩腳步 : : 不然以前高階都還是DSP 軸卡做全閉迴路控制的天下。 : 我不懂雜訊跟通訊型之間的關係在哪?只要是數位式,理論上抗雜訊能力就可以控制得很好 而傳統的脈波,其實本身就是數位訊號,差別只在掉脈波的話沒人知道 通訊型保證不會掉資料就是了(會有糾錯機制) 要說雜訊影響的話,指的應該是更早期的類比伺服,這種伺服的迴授是類比式 編碼器(是不是能叫做編碼器我也不確定)本身是一顆發電機 馬達旋轉產生電壓迴授,其迴授的物理意義是速度值(轉速跟電壓有比例關系) 這種迴授很容易受到干擾影響。不知道多久以前就已經不使用了 : : : 科技進步本來就是要減少腦力消耗,這些控制元件以後一定也會越來越無腦好用 : : 電控人的精力就可以專注在其他更有價值的事情上! : : : : : : : ※ 引述《wisdom ()》之銘言: : : : 推 syatoyan: 誠心發問 為什麼電子齒輪比害人不淺? 10/09 05:46 : : : → syatoyan: 靠調整電子齒輪比 可以藉由較高的回授脈波數 得到更精準 10/09 05:47 : : : → syatoyan: 的誤差 不是可以做更精準的誤差修正嗎? 10/09 05:48 : : : → syatoyan: 還是說 那樣得到的誤差值其實是假的 實際誤差還是以 10/09 05:49 : : : → syatoyan: 編碼器的規格為基準? 10/09 05:50 : : : → syatoyan: 可是使用者卻認為有電子齒輪比 所以我只要以最低階的 10/09 05:51 : : : → syatoyan: 所以造成 只要使用最低階的編碼器 + 電子齒輪比設定 10/09 05:54 : : : → syatoyan: 也可以做到誤差0.1mm的精準控制 這種錯覺? 10/09 05:54 : : : → syatoyan: 弱弱的推測是不是這樣的現象 所以電子齒輪比不好? 10/09 05:55 : : 你的觀念有誤,這是我說電子齒輪比害人不淺的原因之一 : : 電子齒輪比的存在原因 : : 是因為編碼器解析度越來越高,使用者需求的馬達轉速增加 : : 但脈波發送/接收模組的反應速度跟不上造成的 : : 我們舉個例子,為求容易理解 & 計算方便,我用非真實數據來解釋 : : 假設編碼器解析度是 360 inc/rev,意即馬達每轉一度,編碼器可以輸出一個訊號 : : (這裡我不用"脈波",是因為很多人又會被編碼器脈波跟控制脈波搞混) : : 換句話說,編碼器的解析度是 1度,那麼這個伺服系統能達到的理論控制精度也就是1度 : : 理論控制精度有兩個函義 : : 1. 你能控制馬達往前/後轉1度。 : : 2. 定位精度極限理論上是 +- 1度 : : 接下來,我們要把脈波控制跟編碼器"脈波"混在一起講了 : : 理論上,以pulse chain作為控制命令,一個控制脈波 = 一個編碼器脈波 : : 也就是說,驅動器接收到一個脈波,會控制馬達轉一個編碼器單位 : : 以這裡的例子,就是轉1度。 : : 請注意,在這裡的例子裡,你是無法控制馬達轉0.5度或任何小於1度的角度 : : 假設你希望馬達每秒轉10圈(10rps = 600rpm) : : 意即你要控制脈波輸出10 x 360 = 3600 Hz : : 再假設,你使用的脈波輸出模組,最高的輸出頻率只有2k Hz(先別管哪來這麼爛的模組) : : 換句話說,在這套系統裡,你無法得到你要的目標轉速 : : 於是聰明的製造商,就引入了電子齒輪比這個參數 : : 電子齒輪比讓控制脈波 = 編碼器脈波 x 電子齒輪比 : : 換句話說,如果電子齒輪比設成 2 : : 一個控制脈波,驅動器會讓馬達轉 2度 : : 這樣的話,只要1800Hz的脈波頻率,就能讓馬達達到600rpm的轉速 : : 不改變任何硬體條件的前提下,立刻解決這個問題。 : : 請留意,這才是電子齒輪比最初設計出來的初衷, : : 只是為了解決脈波產生/接收模組的反應速度不夠快的問題而已。 : : 而使用電子齒輪比會造成一個根本問題,就是你的控制精度直接下降 : : 以上面的例子,你最小只能控制馬達一次轉2度,控制精度會下降 : : 意即你只能控制馬達走0、2、4..... 這些角度,命令無法給1、3、5.....這些度數 : : (當然定位精度不會改變,一樣是 +- 1度。) : : 所以現在所有電子齒輪比的延伸應用 : : 包含用來將減速比、螺桿導程計算後導入電子齒輪比 : : 讓PLC的控制單位 = 機構單位,這種作法看似讓應用變得方便了 : : 實際上並不是正確的使用。 : : 而業界不僅是大教特教這種用法,還出書教你怎麼算 : : 幾乎工控人都把這套方法當成聖經不容挑戰了.... : : 當然很多人會說,編碼器解析度這麼高,換算到螺桿精度後, : : 一個編碼器解析度可能是1nm,我只需要1um的控制就好, : : 何必管設定電子齒輪比後造成的控制精度下降? 不影響使用啊 : : 這我同意,這也是電子齒輪比在應用上,這麼多年來也沒有人有意見的原因。 : : 不過我說的害人不淺,不完全是應用上不合理,其實稍微不那麼低階的驅動器 : : 都可以讓你設定減速比跟螺桿導程,驅動器內部會自動幫你換算 : : 但因為根深蒂固長久以來的使用習慣,太多人已經寧願就他原本那套電子齒輪比 : : 算好丟一個參數進去就好,也不願意去使用正確的參數設定。此其一 : : 再者是,控制脈波跟編碼器回授脈波,本質上兩者是沒有關係的 : : 只是在控制上,一開始為求最大控制精度 : : 自然會讓控制脈波跟回授脈波 = 1:1 : : 電子齒輪比的引入,造成為數不少的工控人對這兩者產生誤解 : : 錯誤觀念一久,就很難改了。 : : 很多人真的以為,控制命令(脈波),跟編碼器回授(脈波),兩者一定要有一個比例關係 : : 當使用到比較進階的系統時,反而一直糾結在控制命令的問題上 : : 結論 : : 1. 電子齒輪比的使用會導致控制精度下降 : : 2. 沒搞懂電子齒輪比的使用者一大票 : : 3. 搞懂但被電子齒輪比這個觀念限制住的使用者又是一大票 : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.140.184 : ※ 文章網址: https://www.ptt.cc/bbs/Mechanical/M.1508520692.A.EC8.html : 推 GOFEN: U文 10/21 01:36 : 推 b2481: 推,好文!! 10/21 02:05 : → b2481: 但是為什麼解析度提高 能提高速度迴路頻寬? 有點難理解 10/21 02:06 : 推 duser: 受益良多,希望這系列文章能繼續討論下去 10/21 02:14 : 推 nfs258147: 解析度提高>代表更能掌握物體真實的狀態 10/21 07:59 : 推 nfs258147: 假設有一個編碼器,它每圈只能輸出一個pulse、代表它只 10/21 08:07 : → nfs258147: 有偵測一圈以上的能力。如果馬達以正負30度高速來回運 10/21 08:07 : → nfs258147: 轉,則這顆編碼器完全不知道發生什麼事。接著再想看看 10/21 08:07 : → nfs258147: ,如果換一顆解析度更高的編碼器會怎樣? 10/21 08:07 : → nfs258147: 不知道這樣講對不對 10/21 08:08 : 推 nfs258147: 當你越清楚一個人,你越會知道他會怎麼跑XD 10/21 08:10 : 推 nfs258147: 但我也很推Snaken的觀念。在這個時代要學的事太多,必 10/21 08:14 : → nfs258147: 須站在巨人的肩膀上才能思考更多重要的事。電子齒輪比 10/21 08:14 : → nfs258147: 也許會讓控制精度會下降,但依據80/20法則,它可以滿 10/21 08:14 : → nfs258147: 足80%沒那麼要求的場合了。 10/21 08:14 : 推 nfs258147: 以前我都會糾正客戶。但後來發現,讓他們能會去運用比 10/21 08:17 : → nfs258147: 較重要(即使是有一點錯誤的觀念),因為他們真的不在 10/21 08:17 : → nfs258147: 意事情的正確性;而且糾正客戶,常常不會有好下場。 10/21 08:17 : 推 sony0955: 希望可以有更多討論 謝! 10/21 09:23 : → snaken: 非常同意nfs的看法 10/21 09:31 : → snaken: 順便更正一下,現在的伺服,其實編碼器不回傳脈波 10/21 10:01 : → snaken: 驅動器事實上也是透過通訊讀取encoder的值 10/21 10:02 : → snaken: 所以driver上面的"編碼器ABZ輸出" 10/21 10:02 : → snaken: 事實上也是"電子齒輪比" 處理過的結果喔 :) 10/21 10:03 並不完全是這樣的 現在的編碼器的確有純通訊型的,但其實多但是在比較中低階的系統上使用 因為純通訊的取樣週期還是很長,不像純脈波訊號,取樣頻率可以拉到很高 而中高階的系統,其實會搭配通訊跟脈波回授 在絕對式編碼系統上,會使用通訊來回傳絕對位置,但丟ABZ訊號來讀取精確位置 這樣做可以兼顧絕對位置 & 高解析度需求 但在增量式系統上,通訊其實反而是雞肋,主流還是純ABZ丟脈波回授 這可以看目前的光學尺,增量式訊號都還在ABZ(或Sin/Cos)可見一斑 : → Kayusumi: 解析度拉高 低轉速控的比較穩 10/21 13:51 以目前的編碼器解析度來說,低速控制不穩真的跟解析度無關 單純驅動器的控制能力問題而已 : 推 nfs258147: Snaken大,謝謝分享!以前都只是會用而已,沒想到背後 10/21 13:55 : → nfs258147: 有這些故事 10/21 13:55 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.253.204.1 ※ 文章網址: https://www.ptt.cc/bbs/Mechanical/M.1508591345.A.015.html
vul3so4: 推分享 10/22 01:29
Simonfenix: 感謝分享 10/22 10:55
wang1234: 推一個 很多東西都已經還給指導教授了 這幾篇又讓我開 10/22 17:35
wang1234: 始回憶思考了 10/22 17:35
ts02998549: 推~謝謝分享 10/22 17:49
b2481: 到位區間(Inpos)是指實際位置在目標位置的某個範圍內,即視 10/23 07:10
b2481: 維到達目標位置,那段應該是指說到位區間越窄,控制精度越高? 10/23 07:10
b2481: 到位區間變窄,的確可提高馬達精度,但不確定是不是主要因素 10/23 07:12
wisdom: 我理解一下,意思是position window越小(這其實是一個參 10/23 09:07
wisdom: 數設定,用來規範伺服送出到位訊號的時機),定位精度越高 10/23 09:07
wisdom: 。 我只能說這又倒果為因了,實際上一套伺服能達到的整 10/23 09:08
wisdom: 定精度。,在系統設置好之後就已經決定了。如果本身的整定 10/23 09:08
wisdom: 精度只有1um,你把position window設到0.1,整定精度也不 10/23 09:08
wisdom: 會變0.1,只是會永遠送不出到位訊號而已。所以不存在inpos 10/23 09:08
wisdom: 設定影響整定精度的理由。你頂多說,如果把到位區間放很大 10/23 09:08
wisdom: ,系統可以很早送出到位訊號而已。 10/23 09:08
tyc5116: 本篇正解,不過電子齒輪比歸電子齒輪比,那個所謂的"某個倍 10/23 12:06
tyc5116: 率",容易聯想到速度迴路的kp 10/23 12:06
b2481: 理解w大的意思,感覺精度這個詞詞涵蓋意義太廣,所以有些誤 10/23 13:06
b2481: 解,到位區間比較類似容許誤差 10/23 13:07