资源简介
多输入多输出的不确定系统性能分析以及配套simulink仿真,将代码、仿真以及理论分析结合起来,是一个完整的案例,易学习。

代码片段和文件信息
s = zpk(‘s‘)
clear all; close all;
G0=[87.8 -86.4; 108.2 -109.6];
G=tf([1][75 1])*G0;
G=minreal(ss(G)); % ss
% Inversed based controller
Kinv=0.7*tf([75 1][1 1e-5])*inv(G0); %控制器带宽越大系统响应越快 (逆基控制器)
Kinv=minreal(ss(Kinv)); % ss
% Weights
wp=0.5*tf([10 1][10 1e-5]); %
wp=minreal(ss(wp)); % ss
wi=tf([1 0.2][0.5 1]);
wi=minreal(ss(wi)); % ss
Wp=wp*eye(2); % 2x2
Wi=wi*eye(2); % 2x2
% Generalized plant P (构建广义P矩阵)
% |----Wi----Detal->---------| disturb
% v | u | |
% (-1)-->--K_out----|------------------+-----G-----+-|----Wp---->
% | |
% |-----------------------<-------------------------| -----(-1)-->
%
systemnames = ‘G Wp Wi‘;
inputvar = ‘[uncertain(2); disturb(2) ; K_out(2)]‘;
outputvar = ‘[Wi ; Wp ; -G-disturb]‘;
input_to_G = ‘[K_out+uncertain]‘;
input_to_Wp = ‘[G+disturb]‘;
input_to_Wi = ‘[K_out]‘;
sysoutname = ‘P‘;
cleanupsysic= ‘yes‘;
sysic;
N=minreal(lft(PKinv));
figure(1)
% mu for RP
blk=[1 1; 1 1; 2 2];
omega = logspace(-34101);
Nf=frd(Nomega);
[mubndsmuinfo]=mussv(Nfblk‘c‘);
muRP=mubnds(:1); muRPinf=fnorm(muRP); [muRPinfmuRPw] = norm(muRPinf) % muRPinf=5.7726
% Worst case weigthed sensitivity
Nsys=ltisys(N.aN.bN.cN.d1); % E=ones(dim(A))
delta=ublock(21);
[muupmuupfreq]=muperf(Nsysdelta); % muup=44.92
% mu for RS
Nrs=Nf(1:21:2); % Picking out wITi
blk=[1 1; 1 1];
[mubndsmuinfo]=mussv(Nrsblk‘c‘);
muRS=mubnds(:1); muRSinf=fnorm(muRS); [muRSinfmuRSw]=norm(muRSinf) % muRSinf=0.5242
% mu for NS (=max. singular value of Nrp)
Nnp=Nf(3:43:4); % Picking out wP*Si
[mubndsmuinfo]=mussv(Nnpblk‘c‘);
muNS=mubnds(:1); muNSinf=fnorm(muNS); [muNSinfmuNSw]=norm(muNSinf) % muNSinf=0.500
bodemag(muRP‘.‘muRS‘-*‘muNS‘--‘omega)
xlabel(‘Frequency‘);ylabel(‘ssv‘);
% text(0.010.5‘RS‘);
% text(200.8‘NP‘);
% text(0.34.5‘RP‘);
legend(‘muRP‘‘muRS‘‘muNS‘)
L = Kinv*G;
S = inv(eye(2)+L); % (eye(2)+L) 增加的是单位阵D,(eye(1)+L)增加全1阵D ABC矩阵均无变化
T = eye(2)-S; % C阵元素一致,但符号相反,T.D阵为0 (eye(2)-S)对D阵数值操作,对C阵符号操作
%-------------目标,观察系统奇异值曲线-------------------------------
%Ms = S;
figure(3);
sigma(S);
hold on;
% Output multiplicative robustness
sigma(T);
xlabel(‘Frequency‘);
legend(‘S‘‘T‘)
%都已经满足性能要求,且设计的频率没有发生重叠。但曲线过于完美。。。。。
%问题:双输入双输出系统为什么都只画了一条奇异值曲线;
%寻找方法验证:frd(换一种方法画奇异值曲线)
S=frd(Somega)
T=frd(Tomega)
blk=[1 1;1 1]
[mubndSmuinfo]=mussv(Sblk‘c‘)
[mubndTmuinfo]=mussv(Tblk‘c‘)
muS1=mubndS(:1)
muS2=mubndS(:2)
muT1=mubndT(:1)
muT2=mubndT(:2)
figure(4)
bodemag(muS1‘.‘muS2‘-‘muT1‘--‘muT2‘r.‘omega)
legend(‘muS1‘‘muS2‘‘muT1‘‘muT2‘)
%--发现两个通道的奇异值曲线只是重叠了
% t=0:0.01:15;
% %模拟动态系统T对任意输入的时间响应
% y1=lsim(Msones(size(t‘))*[1 0 0]t);
% y2=lsim(Msones(size(t‘))*[0 1 0]t);
% y3=lsim(Msones(size(t‘))*[0 0 1]t);
% figure(2); subplot(231);
% plot(ty1(:1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3630 2019-04-22 21:38 uncertainty_control_code_and_simuli
文件 24303 2019-04-22 21:38 uncertainty_control_code_and_simuli
目录 0 2019-04-22 21:38 uncertainty_control_code_and_simuli
- 上一篇:SABER反激变换器仿真
- 下一篇:模糊层次分析法代码
相关资源
- 基于小波变换的数字水印算法115024
- Dstar(动态路径规划)算法62845
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 光纤传输中的分布傅立叶算法matlab实
- k近邻算法matlab实现
- matlab编写的susan算法程序
- matlab-图像处理算法
- matlab链码提取算法
- matlab 数字图像对比度拉伸算法
- 数字图像处理radon matlab变换算法代码
- 主动轮廓模型算法matlab程序
- MATLAB 实现各类常见算法
- 数字信号处理 理论算法与实现 胡广书
- 基于BP神经网络的盲均衡算法 C程序(
- 基于harris算法的角点检测matlab原代码
- 图像匹配matlab源程序sift算法
- matlab编写的量子遗传算法
- 用蚁群算法求解TSP问题的matlab程序
- 粒子群算法matlab工具箱
- Matlab图像分割边缘提取算法
- prony 算法
- 蚁群算法论文+源代码
- 基于粒子群算法的非合作博弈的matl
- 协同进化遗传算法求解函数优化问题
- pri传统分选算法
- 基于RSSI的VIRE定位算法
- 相关向量机的快速算法
- Gardner_for _MPSK(PSK的符号同步算法)
- 粒子群算法优化pid源码 matlab仿真.ra
评论
共有 条评论