Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
假設
pwm輸出 10% capture 周期 100 pwm輸出 20% capture 周期 200 pwm輸出 30% capture 周期 300 pwm輸出 40% capture 周期 400 現在周期是 100 ,目標周期是 500 你要怎麼做? 一、直接輸出到 50% 二、一次增加 『10%』 『慢慢』加到 『50%』 三、『慢慢地』增加 『1%』 『慢慢地』加到 『50%』 這就是 p ,也是最簡單的模型 又會產生什麼問題呢?建議你上網多多 surf 相關 pid 的資料 一、的做法會如何 二、的做法又會如何 三、的做法又會如何 想一想吧 重點: 多久輸出、輸出多少
發表於: 2008/11/5 14:54
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
中級會員
|
如Eigen大大所說的
那我是不是該把控制命令與回授訊號還有誤差值 甚至其他定義都改為unsigned int 來處理呢?? 另外 我覺得我有一個模糊的觀念 在控制上我可以透過書本去計算得到kp ki kd值 也知道他們是比例積分微分關係 可是我有一個想法 假設我用最簡單的p控制來說 假如我控制命令減去回授 得到的誤差為0 代表此時輸出與輸入控制相等 達到控制 我有一個疑問就是那誤差為0時 我的p控制輸出為0 那p後面的輸出不就沒有動作? 譬如說控制命令6度 回授6度 相減得到0度 代表沒有誤差 此時p控制輸出為0 那輸出怎麼還會維持在6度?? 還是說我少寫一些程式判別??
發表於: 2008/11/5 13:43
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
最早在電力系統計算時, 因為線路變壓器太多, 發展出一套標么值(pu)系統, 所有參數都要正規化, 計算過程中只有-1~+1, 再任何一側計算的結果, 都可直接映射到任一側.
對應到現在的Q格式, 就好比Q15, 原理一模一樣, 但是Q格式是專為數位所產出, 因此才又有Q0~Qxx, 那麼出個習題: Q1 +Q15 = Q? Q15+Q15 = Q? Q15*Q15 + Q15+Q15 = Q? Q1 *Q15 + Q2 +Q8 = Q?
發表於: 2008/11/5 13:19
Edited by edwardlee on 2008年11月05日 13:40:58
|
|||
Thanks,
Edward Lee |
||||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
中級會員
|
我是用來控制風扇馬達的
發表於: 2008/11/5 13:06
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
你到底要用 pid 控制什麼東西?
發表於: 2008/11/5 12:56
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
在此之前我從未聽過 什麼叫做 q 格式
不過我們在處理 pid 的手法卻和 q格式一樣 我們會將參數、輸出、變數 放大 2^16 ex: kp = 0.5441; 我會改成 kp = 35658 不要用 浮點數,8bit mcu 會做死,你也會做死 不能用一般 pc的想法來實作 mcu 8bit mcu 帶 c compiler 只是讓初學者看似容易入門罷了 真的要實作出產品,還是需要有組合語言的基礎
發表於: 2008/11/5 12:55
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
網路上抄下來的:
Q格式:小數點位於第 n 位元之右側,稱為Qn 格式。例如; 16 位元二進位無號數:0100 0010 1000 0001 a在Q0格式下其表示的是:2^14+2^9+2^7+2^0=17025(d) a在Q8格式下其表示的是:2^6+2^1+2^-1+2^-8=66.50390~(d) a在Q16格式下其表示的是:2^-2+2^-7+2^-9+2^-16=0.25978~(d) 進行加法或減法時,Q格式並不會影響運算法則,兩個Q8 格式的小數相 加,所得到的數值仍是Q8格式。兩個Q6格式相減,所得到的數值仍是Q6格 式。因此在定點數之加減運算並不因Q格式不同而有差異。不過可能會產生溢位(overflow),而且不同格式的數值不能直接相加減。 乘法時,Q格式便會影響運算結果。兩個16 位元數做乘法,會得到32 位元數。此時只能取16位元。 aQ0 格式:取運算結果最低的16 位元,刪除較高的16 位元。 aQ16 格式:取運算結果最高的16 位元,刪除較低的16 位元。 3 處理有數號是採Q15格式來表示定點數,因為MSB被用來表示正負號。且在乘法運算不考慮溢位的問題。 舉例:+0.5 × (-0.5) = -0.25 1.100 0000 0000 0000× 0.100 0000 0000 0000 s⊕s.11 0000 0000 0000 0000 0000 0000 0000 得到的結果MSB 為兩數的MSB 做XOR 求得,並取上面畫底線Q15 的部分 可得1.110 0000 0000 0000 (16bit)。為了使結果也是Q15 格式,由於最高兩位元 僅是表示正負號,所以DSP會自行將結果的最高位元捨棄。
發表於: 2008/11/5 12:46
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
中級會員
|
另外一提
葛大哥說用MATLAB跑出來的KP KI KD值 並不能拿來用在我的PIC16F917使用 他說KP KI KD值 只能用測試法來調了 請問有經驗的 是這樣??
發表於: 2008/11/5 11:44
|
|||
|
Re: 請問PID程式問題
|
||||
---|---|---|---|---|
資深會員
|
大家好:
個人也想了解何謂Q格式,煩請告知. Thanks.
發表於: 2008/11/5 11:10
|
|||
|