资源简介
多输入多输出的不确定系统性能分析以及配套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反激变换器仿真
- 下一篇:模糊层次分析法代码
相关资源
- prony 算法
- 蚁群算法论文+源代码
- 基于粒子群算法的非合作博弈的matl
- 协同进化遗传算法求解函数优化问题
- pri传统分选算法
- 基于RSSI的VIRE定位算法
- 相关向量机的快速算法
- Gardner_for _MPSK(PSK的符号同步算法)
- 粒子群算法优化pid源码 matlab仿真.ra
- 系数绝对值最大 图像融合MATLAB算法
- 灰度共生矩阵特征值不错的算法
- MATLAB烟花算法源代码
- lvq学习算法源码matlab
- EMD 算法MATLAB 程序
- 增广拉格朗日法.zip
- 世上最牛的23个图像跟踪算法MATLAB程序
- matlab2007B数模乘公交看奥运_搜索法+
- Norden E.Huang的FEEMD算法
- 基于遗传算法的旅游全国的路径最优
- 密钥生成CQG量化
- 密钥生成CQ量化
- dijkstra算法改进的matlab程序能求出两点
- 基于OFDMA系统的多用户资源分配算法,
- 基于遗传算法的机器人路径规划matl
- 基于FPGA分布式算法FIR滤波器verilog代码
- 自动寻峰谷算法matlab实现
- AR模型算法的matlab实现和实验分析
- Dijkstra最短路径算法的Matlab实现
- 多种群遗传算法的函数优化算法(源
- 随机梯度下降算法的MATLAB实现
评论
共有 条评论