【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)

需求描述

通过改变导轨倾斜角度,控制小球的位置。

模型

单自由度板球系统

模型部件有球、导轨
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第1张图片
底座
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第2张图片

MCD机电模型配置

添加刚体、碰撞体等,球碰撞体形状为胶囊
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第3张图片
导轨碰撞体形状选择多个凸面体
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第4张图片
添加距离传感器
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第5张图片
添加铰链副和位置控制
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第6张图片
运行结果

位置实时反馈,达到预期功能。
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第7张图片


PID原理

PID控制器,由比例调节(Proportion)、积分调节(Integral)、微分调节(Differential)组成。作用为使用比例、积分、微分这三种调节算法对输入的误差进行处理后,继而输出。
平行式PID公式上表达为:
u ( t ) = K p e ( t ) + K i ∫ 0 t e ( τ ) d τ + K d d d t e ( t ) u(t)=K_{p}e(t)+ K_{i}\int_{0}^{t} e(\tau ) d\tau + K_{d}\frac{d}{dt} e(t) u(t)=Kpe(t)+Ki0te(τ)dτ+Kddtde(t)
u ( t ) u(t) u(t): 控制输出
e ( t ) e(t) e(t): 误差, 即设定值 - 现在值
K p K_{p} Kp: 比例增益
K i K_{i} Ki: 积分增益
K d K_{d} Kd: 微分增益

PID控制器示意图:
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第8张图片

这两篇写得比较明白:

  • 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)
  • 离散PID

系统款图

板球系统总框图如下
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第9张图片

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首选项参数

摩擦过大,在小角度时,球无法滚动,适当调小
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第10张图片

参数整定

  1. 比例,越大响应越快,在目标角度两边摆动的幅度也大,同时稳态误差也越大。
  2. 积分,积分部分的作用是消除稳态误差。
  3. 微分,微分项能预测误差变化的趋势,实现超前调节。

一些调试图片
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第11张图片
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第12张图片
最终PID参数
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第13张图片

视频演示和模型分享

视频演示

NX MCD pid板球控制 板球系统
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第14张图片

模型分享:
最终源模型和PLC工程文件分享:在交流群(群号:1105076200)中分享。
【UG NX MCD 机电一体化概念设计】PID算法在 UG NX MCD 中的应用案例设计与实现(二)_第15张图片
模型开发环境如下,博图低版本可能打不开。

  • 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 中的应用案例设计与实现(二)

你可能感兴趣的:(MCD,运动控制)