clear
OPENLOOP=0
CLQR=1
SCLQR=1
F_DB=1
Ra=10;
Ki=10;
Kb=0.075;
J=0.006;
tf=20;
A=[-Ki*Kb/(Ra*J) 0;1 0];
B=[Ki/(Ra*J);0];
C=[1 0;0 1];
D=[0;0];
eig(A);
rank(ctrb(A,B));
if OPENLOOP==1,
t=[0:0.01:10];
[tr,tc]=size(t);
u=zeros(tr,tc);
y1=lsim(A,B,C,D,u,t);
y2=lsim(A,B,C,D,u,t,[pi/18 0]);
y3=lsim(A,B,C,D,u,t,[0 pi/18]);
plot(t,y1);
keyboard;
%pause
clg;
subplot(211)
plot(t,y2);
plot(t,y3);
end
if F_DB==1,
R=10;
%w=100;
w=0.025;
STOP=0;
while STOP==0,
R
Q=w*eye(2);
[k,s]=lqr(A,B,Q,R)
Acl=A;
Acl1=B*k;
Q=eye(2);;
P=lyap(Acl+Acl1, Q);
sigma=min(eig(Q))/2*max(abs(eig(P)));
delta=sqrt(max(abs(eig(P)))/min(abs(eig(P))));
tau1=sigma/(delta*norm(Acl1*(Acl+Acl1)))
tau=fix(tau1*1000)/1000
%%keyboard;
pause
STOP=1;
end
end
if CLQR==1,
dt=tau;
%%w=100;
%%R=10;
STOP=0;
while STOP==0,
w
R
dt
t=[0:dt:tf];
[tr,tc]=size(t);
%%Q=w*eye(2);
%%[k,s]=lqr(A,B,Q,R);
[An,Bn,Cn,Dn]=feedback(A,B*k,C,D*k,0,[0 0],[0;0],eye(2));
r=[zeros(1,tc);zeros(1,fix(tc/5)) ones(1,ceil(tc*4/5))*pi/18];
y=lsim(An,Bn,Cn,Dn,r',t);
%%clg
subplot(2,1,1);
plot(t,y(:,1),'.',t,y(:,2),t,r(2,:)');
xlabel('Time(sec)');
ylabel('rad/sec');
title('Loop 1 using a direct control');
%%keyboard;
pause
STOP=1;
end
end
if SCLQR==1,
dt=tau;
%%w=100;
%%R=10;
STOP=0;
while STOP==0,
w
R
dt
%%keyboard;
pause
t=[0:dt:tf];
[tr,tc]=size(t);
%r=[zeros(1,tc);zeros(1,round(tc/10)) ones(1,round(tc*9/10))*pi/18]';
%r=[zeros(1,tc);zeros(1,10) ones(1,tc-10)*pi/18]';
r=[zeros(1,tc);zeros(1,fix(tc/5)) ones(1,ceil(tc*4/5))*pi/18]';
%%Q=w*eye(2);
%%[k,s]=lqr(A,B,Q,R);
n=fix(tf/dt);
x0=[0 0];
x=x0;
for i=1:n,
i;
r0 = r(i:i+1,:);
t0 = [0 dt];
u0 = k*(r0(1,:)-x0)';
u0 = [u0;u0];
%pause
[ysc,x2]=lsim(A,B,C,D,u0,t0,x0);
x=[x;x2(2,:)];
x0 = x2(2,:);
end
%%clg
subplot(2,1,2);
plot(t,x(:,1),'.',t,x(:,2),t,r(:,2));
xlabel('Time(sec)');
ylabel('rad/sec');
title('Loop 1 using a networked control');
gtext('Theta_{ref}');
gtext('Theta');
gtext('Omega');
gtext('Theta_{ref}');
gtext('Theta');
gtext('Omega');
%%keyboard;
STOP=1;
end
end
小贝德罗
- 粉丝: 89
- 资源: 1万+
最新资源
- 基于TypeScript的数据库实训平台前端设计源码
- 基于SSM框架与微信小程序的图书馆自习室座位预约管理系统设计源码
- 基于SL4J格式的C++日志管理设计源码
- 基于yolov3-tiny-bubbliiiing和Tkinter的实时物体检测界面设计源码
- 基于《JS DOM 编程艺术》(第2版)的JavaScript DOM编程设计源码学习
- ADASIS V2&V3协议
- 基于HTML、JavaScript等技术的全栈前端学习笔记设计源码
- 基于Vue的网易云音乐高仿设计源码
- 基于C语言的串口数据流处理库设计源码
- PTA实验和作业成绩.rar
- 基于SpringBoot+Vue的校园闲置物品租售平台设计源码
- 基于Vue3+AntDesign4的ivzone CRUD组件库及后台管理模板设计源码
- 基于EVE ESI的合同估价与吉他价格计算器设计源码
- 基于Vue-cli3的仿去哪儿旅行APP设计源码
- 基于Windows日志监听的SQLServer登录失败IP黑名单自动添加设计源码
- 基于Java和最新框架的在线课程教育系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈