目录
前言:尽管不太想传这一期内容,但是这门课的老师卡我绩点,真的难受,害怪我太菜了,怪我,怨我。愿后来者能轻松点。能站着就不要躺,要站也要站在巨人的肩膀上。
一.目的
1.加深理解和掌握计算机控制系统的组成结构和原理。
2.学习并掌基于状态空间的数字控制器的设计。
二.内容
设计任务:考虑一个典型的电机位置伺服系统,其传递函数是 ,其中参数K和A根据学生学号最后三位数abc来确定:A=a+5, K=(b+1)*7+3*c。系统的输入端存在扰动w=-0.2, 控制信号的饱和限幅范围是(-5, +5), 并假定系统的初始状态为0。系统的输出量(位置信号)通过一个光电编码器进行测量,而速度信号没有测量。
(1)采用基于离散状态空间的方法设计一个数字控制器(带有状态估计器),实现准确的伺服定位控制,性能要求:对单位阶跃给定信号(r=1)进行跟踪的调节时间<5秒(误差带1%),超调<20%, 无稳态误差;
(2)利用上一步设计的控制器,分别考察当给定信号r取不同值(比如r=10)或扰动w取不同值(比如w=0.2)时的闭环系统性能。
三.实验过程与结果
1.推算出控制对象的模型参数
随机数213 。
因此 A=2+5=7;K=(1+1)*7+3*3=23 传递函数使用零极点模式。
2. 状态空间的数字控制器的设计原理
离散的状态空间模型如下
设置控制律如下
变化后状态空间模型变为
使用终值定理
3、实验代码(借鉴PPT内容)
num= [23];
den= [1,7,0];
[A,B,C,D]=tf2ss (num, den) ;
% Discrete state-space model
T = 0.1;
[Phi,Gama,H,J]=c2dm (A,B,C, D,T, 'zoh' )
E = Gama;
% pole-placement;
zeta=0.307;
omega=2.1;
s1=-zeta*omega+j*sqrt(1-zeta^2)*omega;
s2=-zeta*omega-j*sqrt(1-zeta^2)*omega;
p=[exp(s1*T); exp(s2*T)];
K = acker(Phi, Gama, p);
N = inv(H*inv(eye(2)-Phi+Gama*K)*Gama);
Kw = N*H*inv(eye(2)-Phi+Gama*K)*E;
%desired estimator poles (n+1)
pe = [p*0.5; sum(p)/4];
Phi_bar=[Phi E; 0 0 1];
H_bar=[H 0];
% prediction estimator gain
Lp = acker(Phi_bar', H_bar', pe)';
Gama_bar=[Gama; 0];
% Estimator matrices
Av=Phi_bar - Lp*H_bar;
Bv=[Gama_bar Lp];
Cv=eye(3);
Dv=zeros(3,2);
sim('estimate_design');
4、仿真图像
5、仿真结果
四、实验分析与结论
1.性能分析
①r=1,w=-0 .2时由输出信号曲线可知,该系统超调量小于5%,调节时间小于5秒,无稳态误差,很好地满足了设计要求。当扰动进入时间延后时系统的输出变化量比较大。
②r=10,w=-0 .2时输出曲线超调量太大将近10%,不符合要求,但调节时间小于5s,响应较快。
③r=1,w=0.2时输出曲线超调量太大将近50%,不符合要求,同样调节时间小于5s,响应较快。
2、存在不足
(1)对于simulink的模块使用不是很熟悉,比如Gain里面调参数。
3、总结
基于状态空间的数字控制器的设计是一门大学问。