新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PID參數的確定及實際應用

        PID參數的確定及實際應用

        作者: 時間:2012-09-15 來源:網絡 收藏

        對于PID 參數的確定前輩們早就說了

        先把 I 和D =0 搞好P在說

        我們接下來就先搞P

        首先定義一個PID 的變量

        struct pid_unit unit; // 生成一個PID控制模塊
        然后PID

        pid_init(unit, 1, 0,0); // 對該模塊進行

        為什么用1呢?我采樣的是一個0-1024的 給的控制信號是一個 0-10 000 000 的延時值

        這個和1有什么關系呢?

        我也不清楚 反正先用1搞吧看看效果

        不過明眼人一看 就知道如果是1的話 系統 設定采樣值是512 初始狀態是0

        那么輸出 會從0開始增加(采樣值 和控制信號) 大致趨勢為(YZ 代表示采樣狀態可能正可能負)

        (0 0) (0 1*512)(YZ0 512+YZ0) 。。

        我們可以這么理解 我給了512的控制信號 看看情況。。系統輸出小于512的話 那么我在給一個512的信號 加上 系統輸出增加量(應為上一次是0 所以這次就是YZ0) 如果系統輸出大于512 那么 加的這個YZ0自然就是負值

        也就是說 系統給的控制信號會小于512

        這就是 直觀的P 控制效果

        先拿去用用在說

        時間常數選為 1 這個我覺得可以隨便選,,應為我不是真實的 采樣時間 這個1表示的只是一個采樣 間隔單位

        具體影響還是* P I D 去調整

        函數調用 pid_control(unit, (conv-redvad),1);

        繼昨天的P 程序,,

        反正亂七八糟的,,今天程序總算正常運行了

        (沒有良好的編程習慣是不行的)

        記得昨天P取得是1哈。。。

        效果不錯。。燈泡 在最亮 到最暗 之間 迅速變化著

        可以得出以下結論:

        1我的P調節正常工作了

        2:P的系數 取得太大太大,,,整個系統震蕩,,而且劇烈的嚴重

        基于此現修改P=0.25 為什么是0.25 呢? 應為是0.25=1/4

        為什么是1/4呢?因為 我的是單片機 算完后 左移2位就完成了

        不過有個問題哦,,,就是我的PID 子函數 為了通用性 不方便修改

        而我不希望 將0.25 作為P的比例系數傳進去,,

        不管了 反正現在 I 和D都是0 先這樣搞

        dpid=pid_control(unit, (convad-redvad),1)>>2;

        未完待續



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桑植县| 冷水江市| 贡嘎县| 泽库县| 平江县| 栖霞市| 海原县| 海宁市| 金乡县| 全州县| 乐至县| 嵩明县| 砚山县| 册亨县| 库尔勒市| 泽库县| 阿图什市| 隆林| 吴堡县| 双流县| 商水县| 台州市| 阜平县| 永仁县| 夹江县| 忻州市| 子洲县| 余姚市| 宜良县| 鸡东县| 尼勒克县| 谷城县| 西城区| 汉源县| 大同县| 开封市| 华亭县| 东丰县| 泰州市| 万安县| 攀枝花市|