理想双惯量系统的建模与控制

数学建模

  两个滑块放置在光滑地面上,质量分别为 m 1 m_1 m1 m 2 m_2 m2,滑块之间通过刚度为 k k k的弹簧连接。假设 m 1 m_1 m1上的力可控,滑块各自的位移 x 1 , x 2 x_1,x_2 x1,x2可测量,如何实现滑块 m 2 m_2 m2的位置跟随控制?
在这里插入图片描述
  建立时域动态方程,并求解传递函数:
{ { m 1 x ¨ 1 = F − k ( x 1 − x 2 ) m 2 x ¨ 2 = k ( x 1 − x 2 ) → { ( s 2 m 1 + k ) x 1 = F + k x 2 ( s 2 m 2 + k ) x 2 = k x 1 → x 2 F = 1 s 2 k / m 1 m 2 s 2 + k ( m 1 + m 2 m 1 m 2 ) \left\{ \begin{array}{l} \left\{ \begin{array}{l} {m_1}{{\ddot x}_1} = F - k\left( {{x_1} - {x_2}} \right)\\ {m_2}{{\ddot x}_2} = k\left( {{x_1} - {x_2}} \right) \end{array} \right. \to \left\{ \begin{array}{l} \left( {{s^2}{m_1} + k} \right){x_1} = F + k{x_2}\\ \left( {{s^2}{m_2} + k} \right){x_2} = k{x_1} \end{array} \right.\\ \to {\textstyle{{{x_2}} \over F}} = {\textstyle{1 \over {{s^2}}}} \frac{k/m_1m_2}{s^2 + k(\frac{m_1+m_2}{m_1m_2})} \end{array} \right. {m1x¨1=Fk(x1x2)m2x¨2=k(x1x2){(s2m1+k)x1=F+kx2(s2m2+k)x2=kx1Fx2=s21s2+k(m1m2m1+m2)k/m1m2

特性分析

  考虑一个具体的案例:
x 2 F = 1 s 2 100 s 2 + 100 {\textstyle{{{x_2}} \over F}} = {\textstyle{1 \over {{s^2}}}}{\textstyle{{100} \over {{s^2} + 100}}} Fx2=s21s2+100100

  结合物理意义,画出模型整体框图,并画一下波特图:
在这里插入图片描述

numerator = [100];
denominator = [1 0 100 0 0];
sys = tf(numerator, denominator)
figure
bode(sys);

% 绘制阶跃响应曲线
figure;
step(sys);
grid on;

在这里插入图片描述在这里插入图片描述
  分析一下谐振环节,画一下波特图:

numerator = [100];
denominator = [1 0 100];
sys = tf(numerator, denominator);
figure;
bode(sys);

% 绘制阶跃响应曲线
figure;
step(sys);
grid on;

在这里插入图片描述 在这里插入图片描述

级联控制器

控制结构

  建立经典的三环控制结构:
在这里插入图片描述

加速度环控制器设计

  建立加速度开环模型,对比不同控制器的闭环效果(见附录)。对于谐振系统,仅通过P或PI控制器无法完成闭环控制。选择表现相对比较好的PDF控制器,完成加速度控制器的设计:

numerator = 100;
denominator = [1, 0, 100];
sys_a_open = tf(numerator, denominator)

% 对比选择PID类型,并设计PID控制器
N1_pid_compare(sys_a_open, 2);

% 根据对比结果,选择PDF控制器
C_a = pidtune(sys_a_open, 'PDF');

% 将PID控制器与原始系统组合,加速度环闭环传函
sys_a_close = feedback(C_a * sys_a_open, 1);

在这里插入图片描述

速度环控制器设计

sys_v_open = sys_a_close * tf(1,[1 0])

% 对比选择PID类型,并设计PID控制器
N1_pid_compare(sys_v_open, 0.2);

% 根据对比结果,选择PDF控制器
C_v = pidtune(sys_v_open, 'PDF');

% 将PID控制器与原始系统组合,速度环闭环传函
sys_v_close = feedback(C_v * sys_v_open, 1);

在这里插入图片描述

位置环控制器设计

sys_x_open = sys_v_close * tf(1,[1 0])

% 对比选择PID类型,并设计PID控制器
N1_pid_compare(sys_x_open, 0.2);

% 自动设计PID控制器
C_x = pidtune(sys_x_open, 'PDF');

% 将PID控制器与原始系统组合
sys_x_close = feedback(C_x * sys_x_open, 1);

在这里插入图片描述

阶跃响应对比

% 阶跃响应对比
figure
step(sys_a_close, sys_v_close, sys_x_close);
grid on;
legend('sys\_a\_close', 'sys\_v\_close', 'sys\_x\_close');
title('Step Response with PID Controller');
xlabel('Time');
ylabel('Amplitude');

在这里插入图片描述

附录

function N1_pid_compare(sys, tEnd)
    [ctrl_p,info_p] = pidtune(sys,'P');
    sys_p = feedback(ctrl_p*sys, 1);

    [ctrl_pi,info_pi] = pidtune(sys,'PI');
    sys_pi = feedback(ctrl_pi*sys, 1);

    [ctrl_pd,info_pd] = pidtune(sys,'PD');
    sys_pd = feedback(ctrl_pd*sys, 1);

    [ctrl_pdf,info_pdf] = pidtune(sys,'PDF');
    sys_pdf = feedback(ctrl_pdf*sys, 1);

    [ctrl_pid,info_pid] = pidtune(sys,'PID');
    sys_pid = feedback(ctrl_pid*sys, 1);

    [ctrl_pidf,info_pidf] = pidtune(sys,'PIDF');
    sys_pidf =  feedback(ctrl_pidf*sys,1);

    figure()
    step(sys_p, sys_pi, sys_pd, sys_pdf, sys_pid, sys_pidf);
    xlim([0 tEnd]);
    legend('P', 'PI','PD','PDF','PID','PIDF');
end
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值