自学# matlab画fal函数图像(分段) 您所在的位置:网站首页 log4x图像怎么画 自学# matlab画fal函数图像(分段)

自学# matlab画fal函数图像(分段)

2024-07-17 04:51| 来源: 网络整理| 查看: 265

固定α改变δ或固定δ改变α画出fal函数的图像,利用曲线的平滑和连续性判断自抗扰的控制性能,从而对fal函数进行优化

公式如下

%固定δ为0.01,改变α% e=-1:0.01:1; fal1=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal1(i)=(abs(e(i))^0)*sign(e(i)); else fal1(i)=e(i)/(0.01^(1-0)); end end fal2=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal2(i)=(abs(e(i))^0.2)*sign(e(i)); else fal2(i)=e(i)/(0.01^(1-0.2)); end end fal3=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal3(i)=(abs(e(i))^0.4)*sign(e(i)); else fal3(i)=e(i)/(0.01^(1-0.4)); end end fal4=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal4(i)=(abs(e(i))^0.6)*sign(e(i)); else fal4(i)=e(i)/(0.01^(1-0.6)); end end fal5=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal5(i)=(abs(e(i))^0.8)*sign(e(i)); else fal5(i)=e(i)/(0.01^(1-0.8)); end end fal6=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal6(i)=(abs(e(i))^1)*sign(e(i)); else fal6(i)=e(i)/(0.01^(1-1)); end end hold on plot(e,fal1) hold on plot(e,fal2) hold on plot(e,fal3) hold on plot(e,fal4) hold on plot(e,fal5) hold on plot(e,fal6) %固定α为0.25,改变δ% close all clc e=-1:0.01:1; fal1=zeros(size(e)); for i=1:length(e) if abs(e(i))>0 fal1(i)=(abs(e(i))^0.25)*sign(e(i)); else fal1(i)=e(i)/(0^(1-0.25)); end end fal2=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.2 fal2(i)=(abs(e(i))^0.25)*sign(e(i)); else fal2(i)=e(i)/(0.2^(1-0.25)); end end fal3=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.4 fal3(i)=(abs(e(i))^0.25)*sign(e(i)); else fal3(i)=e(i)/(0.4^(1-0.25)); end end fal4=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.6 fal4(i)=(abs(e(i))^0.25)*sign(e(i)); else fal4(i)=e(i)/(0.6^(1-0.25)); end end fal5=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.8 fal5(i)=(abs(e(i))^0.25)*sign(e(i)); else fal5(i)=e(i)/(0.8^(1-0.25)); end end fal6=zeros(size(e)); for i=1:length(e) if abs(e(i))>1 fal6(i)=(abs(e(i))^0.25)*sign(e(i)); else fal6(i)=e(i)/(1^(1-0.25)); end end hold on plot(e,fal1) hold on plot(e,fal2) hold on plot(e,fal3) hold on plot(e,fal4) hold on plot(e,fal5) hold on plot(e,fal6)

改变坐标轴范围

axis([-1 1 -1.5 1.5]);

如图 所示为当 δ=0.01,α 取值不同时 fal(e,α,δ)函数响应曲线,当 α=0.25,δ 取值不同时 fal(e,α,δ)函数响应曲线。从图中可以看出: α 值取值不同时,fal(e,α,δ)函数的线性度也不同。α 值越小,非线性度越强,α 值 越大,非线性度越弱;δ 值决定了 fal(e,α,δ)函数的非线性区间范围,δ 值越大,线 性区间越大,δ 值越小,线性区间则越小。 可以发现,fal(e,α,δ)函数曲线在|e|=δ 时虽然连续但是并不平滑, 存在突变从而会导致系统的控制性能不佳。针对这个问题,将 fal(e,α,δ)函数改写为:

为保证 fal'(e,α,δ)函数在|e|=δ 处连续且可导,需要满足

求得:

e=-1:0.01:1; fal1=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal1(i)=(abs(e(i))^0)*sign(e(i)); else fal1(i)=((3-0)*(0.01^0))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((0*(0.01^(0-1))*sin(0.01)-(0.01^0)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end fal2=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal2(i)=(abs(e(i))^0.2)*sign(e(i)); else fal2(i)=((3-0.2)*(0.01^0.2))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((0.2*(0.01^(0.2-1))*sin(0.01)-(0.01^0.2)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end fal3=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal3(i)=(abs(e(i))^0.4)*sign(e(i)); else fal3(i)=((3-0.4)*(0.01^0.4))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((0.4*(0.01^(0.4-1))*sin(0.01)-(0.01^0.4)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end fal4=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal4(i)=(abs(e(i))^0.6)*sign(e(i)); else fal4(i)=((3-0.6)*(0.01^0.6))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((0.6*(0.01^(0.6-1))*sin(0.01)-(0.01^0.6)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end fal5=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal5(i)=(abs(e(i))^0.8)*sign(e(i)); else fal5(i)=((3-0)*(0.01^0.8))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((0.8*(0.01^(0.8-1))*sin(0.01)-(0.01^0.8)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end fal6=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.01 fal6(i)=(abs(e(i))^1)*sign(e(i)); else fal6(i)=((3-1)*(0.01^1))*sin(e(i))/(3*sin(0.01)-0.01*cos(0.01))+((1*(0.01^(1-1))*sin(0.01)-(0.01^1)*cos(0.01))*e(i)^3)/(3*(sin(0.01^2))-(0.01^3)*cos(0.01)); end end hold on plot(e,fal1) hold on plot(e,fal2) hold on plot(e,fal3) hold on plot(e,fal4) hold on plot(e,fal5) hold on plot(e,fal6) e=-1:0.01:1; fal1=zeros(size(e)); for i=1:length(e) if abs(e(i))>0 fal1(i)=(abs(e(i))^0.25)*sign(e(i)); else fal1(i)=((3-0.25)*(0^0.25))*sin(e(i))/(3*sin(0)-0*cos(0))+((0.25*(0^(0.25-1))*sin(0)-(0^0.25)*cos(0))*e(i)^3)/(3*(sin(0^2))-(0^3)*cos(0)); end end fal2=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.2 fal2(i)=(abs(e(i))^0.25)*sign(e(i)); else fal2(i)=((3-0.25)*(0.2^0.25))*sin(e(i))/(3*sin(0.2)-0.2*cos(0.2))+((0.25*(0.2^(0.25-1))*sin(0.2)-(0.2^0.25)*cos(0.2))*e(i)^3)/(3*(sin(0.2^2))-(0.2^3)*cos(0.2)); end end fal3=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.4 fal3(i)=(abs(e(i))^0.25)*sign(e(i)); else fal3(i)=((3-0.25)*(0.4^0.25))*sin(e(i))/(3*sin(0.4)-0.4*cos(0.4))+((0.25*(0.4^(0.25-1))*sin(0.4)-(0.4^0.25)*cos(0.4))*e(i)^3)/(3*(sin(0.4^2))-(0.4^3)*cos(0.4)); end end fal4=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.6 fal4(i)=(abs(e(i))^0.25)*sign(e(i)); else fal4(i)=((3-0.25)*(0.6^0.25))*sin(e(i))/(3*sin(0.6)-0.6*cos(0.6))+((0.25*(0.6^(0.25-1))*sin(0.6)-(0.6^0.25)*cos(0.6))*e(i)^3)/(3*(sin(0.6^2))-(0.6^3)*cos(0.6)); end end fal5=zeros(size(e)); for i=1:length(e) if abs(e(i))>0.8 fal5(i)=(abs(e(i))^0.25)*sign(e(i)); else fal5(i)=((3-0.25)*(0.8^0.25))*sin(e(i))/(3*sin(0.8)-0.8*cos(0.8))+((0.25*(0.8^(0.25-1))*sin(0.8)-(0.8^0.25)*cos(0.8))*e(i)^3)/(3*(sin(0.8^2))-(0.8^3)*cos(0.8)); end end fal6=zeros(size(e)); for i=1:length(e) if abs(e(i))>1 fal6(i)=(abs(e(i))^0.25)*sign(e(i)); else fal6(i)=((3-0.25)*(1^0.25))*sin(e(i))/(3*sin(1)-1*cos(1))+((0.25*(1^(0.25-1))*sin(1)-(1^0.25)*cos(1))*e(i)^3)/(3*(sin(1^2))-(1^3)*cos(1)); end end hold on plot(e,fal1) hold on plot(e,fal2) hold on plot(e,fal3) hold on plot(e,fal4) hold on plot(e,fal5) hold on plot(e,fal6)

改良后的函数曲线为:

改进 后的 fal'(e,α,δ)函数曲线较之前更加平滑,且在|e|=δ 处连续且可导。并且 δ 值对整 个曲线的影响降低,突变现象明显减弱,可有效减轻非线性函数产生的高频颤振现象

参考文献:基于模糊自抗扰的矿用电机车PMSM速度控制系统研究



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有