控制原理matlab实验-MATLAB 控制原理实验
打开 MATLAB 的命令行窗口,先把那个长字符串删了,不然脚本直接崩溃。打开 Control System Toolbox,点进 Control Objects,随意拖一个 SISO 系统模型,比如一个一阶惯性环节。双击画布,屏幕上立马蹦出个状态方程,$stheta + theta = u$,系数数组写得密密麻麻,看着就头大。别急着跑代码,先看看参数配置。把采样周期 $T$ 设成 0.01 秒,跟真硬件脱节了,调试起来忒慢。采样率要够高,不然闭环响应看着像抖动的残影。把增益 $K$ 设得大一点,比如 10,看看系统如何反应。 直接运行 `step` 函数,屏幕上的曲线跳得飞快。
这不科学,真世界哪有几十毫秒就稳住的?得给系统喘口气,不能一上来就冲到最大值。先设置 `setpoint = 5`,然后慢慢把 `K` 加到 5,观察上升工夫是不是变短,超调量是不是在下降。别管参数表上写了多少,自己试出来的数据才靠谱。
比如我在实验里试过 $T=0.01$,$K=5$,结局系统先冲到 6.2,超调到了 20%,彻底不可接纳。
这时候该降 $K$ 了,降到 2 试试,曲线变得平滑多了,但响应慢了些,延迟增添了。 多了参数也没用,直接算闭环特征方程,$s^2 + 2s + 10 = 0$,根是复数 $-1 pm 3j$,阻尼比 $zeta=0.5$,震荡会挺明显。得加个微分环节,用级联方式串联一个带零阶保持的 P 型管住器,把比例项和积分项挤在一起。
这样管住器结构就清楚了,能清楚看到 PI 管住器的功能机制。先跑一个纯比例管住,响应快但稳态误差大。再引入积分环节,$K_p + K_i int e dt$,积分项会持续累积误差,直到误差归零。
这时候用 `step` 看闭环响应,积分工夫 $T_i$ 设得适度,比如 0.05 秒,响应斜率适中,没有大震荡。 接下来是个枯燥但关键的环节:信号处理。别光盯着绿线看,得去管住台看数字。用 `dsolve` 解微分方程,算出理论上的 $e(t)$。
然后拿 `step` 和 `impulse` 的响应跟理论值比。
比如理论值在 0.5 秒时误差是 -0.2,实测曲线在 0.49 秒误差就突到 -0.25,说明管住精度凑合,但抖动了。
这时候得看上升工夫和峰值。理论上升工夫是 1.2 秒,实测是 1.15 秒,差一点点。最大值理论是 1.0,实测 0.98,差异挺小。
这说明 PID 管住一般在工程上是够用的。 再试个大一点的场景,把这个一阶系统放在一个二阶系统里串联,要么加前馈补偿。前馈管住能削减延迟,把输入提前,管住效果手感像“预判”了一拍。
这时候数据表现会明显不同,响应曲线更陡峭,稳态误差简直为零。参数调整时,发现把前馈增益设为 3,系统能躲开干扰,输出平滑得像刚过马路。实验过程中时常遇到参数找不到合适值的尴尬局面。
比如积分工夫设忒小,系统死机;设大了,稳态误差又留不住。
这时候得边改边测,看大信号还是小信号的区别。对于大信号,反应要快一点;小信号能够宽容一些,出于误差容忍度高。 最终做个深入分析,把实测点的坐标打在图上,用 `plot` 连起来。你会发现曲线中间有细小的锯齿,那是采样带来的量化误差,并且分布不均匀。误差不是恒定的,它会在管住过程中周期性变化。
这就是 $e(t)$ 和 $u(t)$ 的相位差带来的。
要是相位差忒大,系统就超调;相位差合适但不够大,响应就慢。通过调整 $K_p$ 或 $T_i$,能够微调相位裕度,确保系统在保险频率范围内工作。
这次实验下来,手心里全是汗,但看着代码跑通,算出个中意的参数值,感觉辛苦了一半。真正的挑战还在参数整定和鲁棒性设计上,但这正是学科的魅力所在。赶明儿遇到复杂系统,就得学着把这些小模型串起来,用 MATLAB 的 `lsim` 函数试试脉冲响应,看看不同输入下的表现差异。管住的核心不是参数多难算,而是看参数调整后,系统如何适应变化。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
