意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议

【物理应用】matlab模拟分数模糊推理系统的倒立摆控制(物理在生活中的应用)

来源:恒创科技 编辑:恒创科技编辑部
2023-12-27 09:22:59
1 内容介绍

讨论了一阶倒立摆控制系统的数学模型及其建立方法,并通过MATLAB的Simulink模型整定出一阶倒立摆双闭环PID控制系统的最优控制参数,最后对该系统的鲁棒性进行了仿真分析.

2 部分代码

%% The reference Papers

% Mehran Mazandarani, L. Xiu,Interval Type-2 Fractional Fuzzy Inference


【物理应用】matlab模拟分数模糊推理系统的倒立摆控制(物理在生活中的应用)


% Before using FFIS.m read please carefully watch the video files and read

% the help file, Help_FFIS201210_updated.pdf.

%% The example of control of inverted pendulum system using FFIS

% This program is the first version of the function FFIS.m (FFIS_201210)

% The algorith of this function has not been written in an optimal manner.

% Thus, naturally, it may take more time than that one may expect for

% getting the output.

% Based on the settings in this example, it takes several minutes to get

% the output.


%% Initialize the Fuzzy system structure (Initialization Section)

clc

clear

% close all


fis=readfis('fis');


%% Fractional Indices

% Fids={value_1,form_1, value_2,form_2,...,value_m,form_m}

% Read the help_FFIS.pdf for more information about the cell arraye Fids.


% fis.Outputs.MembershipFunctions


% In this example the following indices have been considered arbitrary.

Fids={0.5, 'a', 0.5, 'a', 1,'a', 0.5, 'b', 0.5,'b'};


% For Mamdani's FIS

% Fids={1, 'a', 1, 'b', 1,'a', 1, 'b', 1,'b'};


%% Model (The main section)





T=3;

n=3000;

tspan=linspace(0,T,n+1);

h=tspan(2)-tspan(1);


% % This is the gain of control signal based on the control structure.

Kgain=220;


% % % % Pendulum parameters

g=9.8;

m=2;

M=8;

l=2;

% x1 is the angle of the pendulum and is used as the error

% x2 is the derivative of the x1, i.e. the derivative of the error

% % % % % % % % % % % % % % % % % %

% x1=theta;

% x2=theta_dot;

x1=zeros(1,n+1);

x2=zeros(1,n+1);

u=zeros(1,n);

x1(1)=0.3; % the initial condition

x2(1)=0.1; % the initial condition

a=1/(M+m);


% Model part

for cnt=1:n


Inputs=[x1(cnt); x2(cnt)];


% % % the control signal

u(cnt)=FFIS(fis,Inputs,Fids);


u(cnt)=Kgain*u(cnt);


% % The model has been considered in a descrete form by the use of

% % forward approximation of the derivative definition.


x1(cnt+1)=x1(cnt)+h*x2(cnt);

k1=g*sin(x1(cnt))-a*m*l*x2(cnt)^2*sin(2*x1(cnt))/2-a*cos(x1(cnt))*u(cnt);

k2=4*l/3-a*m*l*cos(x1(cnt))^2;

x2(cnt+1)=x2(cnt)+h*k1/k2;


end



figure(1)

plot(tspan(1:numel(x1)),x1,'LineWidth',2)

grid on

hold on

figure(2)

plot(tspan(1:numel(u)),u/Kgain,'LineWidth',2)

grid on

hold on






3 运行结果

【物理应用】matlab模拟分数模糊推理系统的倒立摆控制_ide

【物理应用】matlab模拟分数模糊推理系统的倒立摆控制_sed_024 参考文献

[1]胡全义, 黄士涛, 李洪洲,等. 自适应神经模糊推理系统在倒立摆控制中的应用[J]. 机电工程, 2007, 24(1):4.

部分理论引用网络文献,若有侵权联系博主删除。


上一篇: 【图像分割】基于混洗Shuffled Complex Evolution实现图像分割附matlab代码 下一篇: 【PID优化】基于人工蜂群算法PID控制器优化设计含Matlab源码(pid参数优化)