基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       在磁悬浮的许多实际应用中,都要求磁悬浮系统的悬浮气隙有较大的工作范围。但由于磁悬浮力-电流-气隙之间的非线性特性,系统模型开环不稳定。至少需要输出反馈进行闭环控制,才能够实现稳定悬浮。为了设计一个性能良好的悬浮控制器,基于磁悬浮系统的稳定性控制问题受到了广泛而又深入的研究。传统工业控制中多采用成熟的PID控制调节器,其中比例环节可以加快系统反应速度,积分环节可以消除静差,调节系统刚度;微分环节可以调节系统阻尼特性,改善系统的动态品质。

       PID调节器结构简单,调节方便,应用成熟。但是在高精度的磁悬浮技术场合,工况的复杂性和磁场本身的非线性使得传统PID控制器难以满足工程需要。对磁悬浮模型的稳定控制通常是将非线性磁悬浮模型在平衡点附近进行泰勒展开,忽略高阶项以后,便得到一阶线性化模型。这种线性化模型在磁悬浮控制中得到了广泛应用,并已在工程上验证了它的实用价值,但使用这种线性化方法设计的控制策略也有其局限性。由于线性化模型是在平衡点附近得到的,当系统的平衡点改变时,系统的动态特性会显著改变,控制策略将迅速恶化,影响系统稳定。此时,线性控制律往往不能满足系统稳定性的要求。为此需要更加先进的控制方法。近年来,随着工业水平的提高,很多先进控制方法涌现于自动化领域。

      智能控制智能控制方法是指基于在线学习和辨识的控制方法,如模糊控制、神经网络控制等,此类方法的特点是被控系统可当作“黑箱”来处理,不需要任何有关的先验知识,控制器可根据输出响应来学习系统特性并根据需要对控制参数实施在线调节。此类方法的优点是能够克服磁浮非线性和外界干扰给系统造成的影响。然而,智能控制系统本身具有复杂性,尚处于实验研究阶段,并未得到成熟的工程运用。

        系统辨识系统辨识就是利用系统观测到的信息,构造系统的数学模型的理论和方法。它涉及到的理论基础相当广泛,对于单变量线性系统,已经有一系列成功的理论和辨识方法,多变量系统中的研究还尚未成熟。然而,在单变量系统中与传统的控制方法相比并没有明显的优势。

       磁吸控制系统主要由铁心、线圈、传感器、控制器、功率放大器及其控制对象刚体等元件组成。系统结构如图3-1所示。
基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第1张图片

 基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第2张图片 

  基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第3张图片

线性方程的状态方程: 

基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第4张图片

 在这里,我们取一些值,得到状态方程式如下所示: 

基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第5张图片

其MATLA代码如下所示:

function y=MagLev(m,g,R,L,k,h0);

i0=h0*sqrt(m*g/k);

A=[0 1 0;2*k*i0^2/(m*h0^3) 0 -2*k*i0/(m*h0^2);0 0 -R/L];

B=[0;0;1/L];

C=[1 0 0];

D=0;

y=ss(A,B,C,D)

在本系统,我们取m=0.1,g=9.82,R=5,L=0.04,k=0.01,h0=0.02;

2.仿真效果预览

matlab2022a仿真结果如下:

基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第6张图片

 基于模糊pid控制器的S-函数磁悬浮非线性动态模型的控制仿真_第7张图片

3.MATLAB核心程序

clc;
clear;
close all;
 
 
 
y=MagLev;
yy=pole(y);
 
PD=tf(-1*[1 20],[1 50]);
rlocus(PD*MagLev);
 
PI=tf([1 1],[1 0]);
[y,t]=impulse(feedback(150*PI*PD*MagLev,1));
sgrid;
figure(2);
plot(t,y)
grid;
v0=0.991;h0=0.02;
[num,den]=tfdata(150*PD*PI,'v');
simulink;

function[sys,x0]=MagModel(t,x,u,flag)
m=0.1;
g=9.82;
R=5;
L=0.04;
k=0.01;
h0=0.02;
 
i0=h0*sqrt(m*g/k);
 
switch flag,
    case 1,
        xdot   =zeros(3,1);
        xdot(1)=x(2);
        xdot(2)=m*g-k*x(3)^2/x(1)^2;
        xdot(3)=-R/L*x(3)+1/L*u(1);
        sys=xdot;
    case 3,
        sys=x(1);
    case 0,
        sys==[3 0 1 1 0 0];
        x0=[h0+0.1*h0;0;i0];
    otherwise
        sys=[];
end
A135

4.完整MATLAB

V

你可能感兴趣的:(Matlab控制器,Simulink控制器,matlab,模糊pid控制器,S-函数,磁悬浮非线性动态模型)