目录
💥1 概述
📚2 运行结果
🎉3 参考文献
👨💻4 Matlab代码
💥1 概述
磁悬浮列车作为一种新型地面交通工具,已经在实践中得到了成功的应用。传统的EMS型磁悬浮系统在结构上简单可靠,而且在技术上已经相当成熟,但是由于悬浮力全部由电磁铁来提供,因而电流和功耗都很大,而且影响悬浮气隙的进一步增大。
本项目利用Matlab软件探索了线性磁悬浮多输入多输出(MIMO)系统的线性系统控制器设计、实现和分析。控制器是使用经典控制和现代控制方法为系统工厂设计的。为工厂设计并实施了两个PID控制器(每个输入输出模式一个)和一个带观察器的状态反馈控制器,以满足所需的设计规范。
📚2 运行结果










主函数部分代码:
clcclearclose all% Since there is no motion in magnets so d^2y1=d^2y2=0syms y1 y2 u1 u2 a b c d m g yc y1_0 y2_0 u1_0 u2_0a = 1.65;b = 6.2;c = 2.69;d = 4.2;N = 4;m = 0.12;g = 9.8;yc = .12;y1_0=.02;y2_0=-0.02;% Calculation of u10 and u20u1_0= a*(b + y1_0)^4*(g*m + c/(d - y1_0 + y2_0 + yc)^4)u2_0=a*(g*m - c/(d - y1_0 + y2_0 + yc)^4)*(b - y2_0)^4E= (4*c) /(((d - y1_0 + y2_0 + yc)^5))F= (4*u1_0)/(a*(b + y1_0)^5)G= 1 /(a*(b + y1_0)^4)H= (4*u2_0)/(a*(b - y2_0)^5)I= 1 /(a*(b - y2_0)^4)% ***************************************************88fprintf( '\n ------------------------------------------------------------------------------------------------------------\n')fprintf('x=Ax+Bu\n')fprintf('Y=Cx+Du\n')% [0 1 0 0, -(F+E)/m 0 E/m 0 , 0 0 0 1, E/m 0 (H-E)/m 0 ]fprintf('A=\n')fprintf(' 0 1 0 0 \n')fprintf('-(F+E)/m 0 E/m 0 \n')fprintf(' 0 0 0 1 \n')fprintf(' E/m 0 (H-E)/m 0 \n')fprintf('B=\n')fprintf(' 0 0 \n')fprintf(' G/m 0 \n')fprintf(' 0 0 \n')fprintf(' 0 I/m \n')fprintf('\n ------------------------------------------------------------------------------------------------------------\n')A=[0 1 0 0; -(F+E)/m 0 E/m 0 ; 0 0 0 1; E/m 0 (H-E)/m 0 ]B=[0 0 ; G/m 0; 0 0 ; 0 I/m]C=[1 0 0 0; 0 0 1 0 ]D=[ 0 0 ; 0 0 ]fprintf('\n ------------------------------------------------------------------------------------------------------------\n')fprintf('\n State Space Model \n')sys=ss(A,B,C,D)%3 Transfer function of the open-loop system.fprintf('\n ------------------------------------------------------------------------------------------------------------\n')fprintf('\n Transfer function of the open-loop system.\n')fprintf(' Y ( S ) − 1 \n')fprintf('TF ( S ) =---------- = C ( SI − A ) B + D \n')fprintf(' U ( S )\n')TF=tf(sys)TF11=TF(1,1)TF22=TF(2,2)fprintf('\n ------------------------------------------------------------------------------------------------------------\n')[num1,den1] = tfdata ( TF11,'v')[A1,B1,C1,D1] = tf2ss ( num1, den1 )fprintf('************************* \n')sys1 = ss ( A1, B1, C1, D1 )[num2,den2] = tfdata ( TF22,'v')[A2,B2,C2,D2] = tf2ss ( num2, den2 )sys2 = ss ( A2, B2, C2, D2 ) ;fprintf('\n ------------------------------------------------------------------------------------------------------------\n')%%4 Controllable, Observable, and Jordan canonical forms.fprintf('---------------------------------------------------------------------------------------\n')fprintf('3----Obtain the controllable, observable, and Jordan canonical forms.\n')fprintf('---------------------------------------------------------------------------------------\n')Cx=ctrb(A,B);Rank_Cx=rank(Cx);Cx=ctrb(A,B);Rank_Cx=rank(Cx);B1=B(:,1)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if (Rank_Cx==size(A,1))fprintf("This system is Controllable")CP_A =round(poly(A),6)n=size(A,1)IA1 = eye(n-1,n-1);Ac1=zeros(n,n);Bc1=zeros(n,1);Ac1(1:n-1,2:n)=IA1;Ac1(n,:)=-CP_A(:,n+1:-1:2)Bc1(n,1)=1% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Cx1=ctrb(A,B1)Cxc1=ctrb(Ac1,Bc1)Tc1=Cx1*inv(Cxc1)Cc1=C*Tc1Dc1=Dif Bc1==round(inv(Tc1)*B1,4)disp('******************** Successfull ')elsedisp('you did wrong')inv(Tc1)*B1pauseend
🎉3 参考文献
[1]李才永. 非线性系统多模型分析及增益调度PID控制器设计[D].华北电力大学(河北),2004.
点击文章左下角【阅读全文】
部分理论引用网络文献,若有侵权联系博主删除。



















