需求描述
通過改變導軌傾斜角度,控制小球的位置。
模型
單自由度板球系統
模型部件有球、導軌
底座
MCD機電模型配置
添加剛體、碰撞體等,球碰撞體形狀爲膠囊
導軌碰撞體形狀選擇多個凸面體
添加距離傳感器
添加鉸鏈副和位置控制
運行結果
位置實時反饋,達到預期功能。
PID原理
PID控制器,由比例調節(Proportion)、積分調節(Integral)、微分調節(Differential)組成。作用爲使用比例、積分、微分這三種調節算法對輸入的誤差進行處理後,繼而輸出。
平行式PID公式上表達爲:
: 控制輸出
: 誤差, 即設定值 - 現在值
: 比例增益
: 積分增益
: 微分增益
PID控制器示意圖:
這兩篇寫得比較明白:
系統款圖
板球系統總框圖如下
PID算法編程方案
接下來,是進行編程方案的選擇,是自己寫還是調用成熟的PID算法。
方案可以分爲外部信號方案和MCD內部方案,也可分爲調用PID模塊和自行
編寫兩種方式。
可採用PLC PID模塊進行調節,與博圖聯合調試,採用PID功能進行調節
PID功能參見課程:TIA博途.探索之旅11_PID功能http://www.ad.siemens.com.cn/service/elearning/Course/1397.html
博主採用博圖PLC來自行編寫。
PLC編寫PID控制MCD
Main[OB0]塊中程序段1:
IF "Tag_1" THEN
// Statement section IF
"kp" := 10;
"ki" := 1;
"kd" := 1;
"set_position" := 10;
"out_position" := 0;
"out_positon_angle" := 0;
"error" := 0;
"error1" := 0;
"error2" := 0;
"errorall" := 0;
"Tag_1" := 0;
END_IF;
Main[OB0]塊中程序段2:採用位置式
"error" := "set_position" - "in_position";
"errorall" := "errorall" + "error";
//積分限幅
IF "errorall" > 10000 THEN
// Statement section IF
"errorall" := 10000;
END_IF;
IF "errorall" < -10000 THEN
// Statement section IF
"errorall" := -10000;
END_IF;
"kdout" := "kd" * ("error" - "error1");
"kiout" := "ki" * "errorall";
//位置式
"out_positon_angle" := "kp" * "error" +"kiout"+ "kdout";//度數
"outposition_suan" := "out_positon_angle";
//輸出限幅
IF "out_positon_angle" > 20 THEN
// Statement section IF
"out_positon_angle" := 20;
END_IF;
IF "out_positon_angle" < -20 THEN
// Statement section IF
"out_positon_angle" := -20;
END_IF;
"out_position" := "out_positon_angle" / 180 * 3.14159; //弧度輸出
"error2" := "error1";
"error1" := "error";
MCD首選項參數
摩擦過大,在小角度時,球無法滾動,適當調小
參數整定
- 比例,越大響應越快,在目標角度兩邊擺動的幅度也大,同時穩態誤差也越大。
- 積分,積分部分的作用是消除穩態誤差。
- 微分,微分項能預測誤差變化的趨勢,實現超前調節。
一些調試圖片
最終PID參數
視頻演示和模型分享
視頻演示
模型分享:
最終源模型和PLC工程文件分享:在交流羣(羣號:1105076200)中分享。
模型開發環境如下,博圖低版本可能打不開。
- Window 10
- UG NX 1847
- TIA Portal V15.1 + S7 PLCSIM Advanced V2.0 SP1
歡迎繼續閱讀另一個案例
【UG NX MCD 機電一體化概念設計】UG NX MCD+PLCSIM Advanced聯合仿真實例(一)基本配置
文章列表:
【UG NX MCD 機電一體化概念設計】PID算法在 UG NX MCD 中的應用案例設計與實現(一)
【UG NX MCD 機電一體化概念設計】PID算法在 UG NX MCD 中的應用案例設計與實現(二)