【介电弹性体 PID DEA模型】 1、模型参数和构型参考于下图论文论文复现; 2、PID控制器的多种情况对比延迟非线性各种扰动不同控制参数 3、matlab/simulink模型介电弹性体驱动器DEA这玩意儿玩起来是真上头尤其是加上PID控制之后整个系统就像在钢丝上跳舞。今天咱们直接上手拆解论文里的PID控制模型顺便在Simulink里搞点动静出来。先看这个模型的骨架——弹簧质量块结构加载电压驱动。参数表里弹性模量1.5MPa初始厚度1mm这些数都得记牢了后面调PID的时候这些物理量直接关联系统响应速度。重点是这个电压-形变关系式function deformation voltage2deformation(V, k, epsilon_r) % k是弹性系数epsilon_r是相对介电常数 max_strain 0.3; % 材料极限应变 deformation min((epsilon_r * V^2)/(k * 1e6), max_strain); end这里面的平方电压项直接导致非线性这也是为啥普通PID容易翻车。注意那个min函数可不是摆设实际测试时超过0.3应变率材料直接摆烂不干活。接下来搞PID控制器Simulink里别傻乎乎地用现成的PID模块。咱们得手动搭建才能玩花样【介电弹性体 PID DEA模型】 1、模型参数和构型参考于下图论文论文复现; 2、PID控制器的多种情况对比延迟非线性各种扰动不同控制参数 3、matlab/simulink模型!Simulink PID结构图% 离散PID实现代码 Kp 2.5; Ki 0.8; Kd 0.2; error setpoint - feedback; integral integral error*Ts; derivative (error - prev_error)/Ts; output Kp*error Ki*integral Kd*derivative; prev_error error;当遇到0.5秒的系统延迟时在Derivative项后面串个Transport Delay模块参数设成0.5秒。这时候如果Kd值超过0.3系统立马开始鬼畜振荡亲测有效。扰动测试最带劲在系统输入端加个Band-Limited White Noise模块噪声功率设0.02。这时候把Ki调到1.2以上能看到执行器开始抽搐式响应。解决办法是在积分项前面加个死区if abs(error) 0.05 integral integral; % 死区冻结积分 else integral integral error*Ts; end这招能把振幅压制在5%以内但会带来约0.1秒的响应滞后——鱼和熊掌的问题。最后来个参数调试骚操作把Simulink的仿真步长设为变步长用ode23t求解器。开个实时调参面板左手调Kp右手晃鼠标看着相位图从螺旋发散变成稳定极限环比玩赛车游戏还刺激。记住当超调量突然减小时赶紧看是不是触发了应变限制器别被假优化忽悠了。模型文件建议保存成Version 7.3格式的.mat文件不然那堆自定义模块容易崩。顺便说句论文里的图3数据用CSV格式导入后用移动平均滤波处理下再对比否则噪声会让你的拟合度指标哭出声。