一级倒立摆matlab仿真,一级倒立摆的Simulink仿真「建议收藏」

一级倒立摆matlab仿真,一级倒立摆的Simulink仿真「建议收藏」一级倒立摆的Simulink仿真单级倒立摆稳定控制直线一级倒立摆系统在忽略了空气阻力及各种摩擦之后,可抽象成小车和匀质摆杆组成的系统,如图1所示。mg杆长为2u图1直线一级倒立摆系统图2控制系统结构假设小车质量M=0.5kg,匀质摆杆质量m=0.2kg,摆杆长度2l=0.6m,x(t)为小车的水平位移,θ为摆杆的角位移,。控制的目标是通过外力(t)使得摆直立向上2…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

41528d3028836879cd698677c3999917.gif一级倒立摆的Simulink仿真

单级倒立摆稳定控制 直线一级倒立摆系统在忽略了空气阻力及各种摩擦之后,可抽象成小车和匀质摆杆组成的系统,如图1所示。m g杆长为 2u图1 直线一级倒立摆系统图 2 控制系统结构假设小车质量M =0.5kg,匀质摆杆质量 m=0.2kg,摆杆长度 2l =0.6m,x(t)为小车的水平位移, θ 为摆杆的角位移, 。控制的目标是通过外力 (t)使得摆直立向上2/8.9smgu(即 )。该系统的非线性模型为:0)(t,其中 。ulxMl glJ 22 )sin()()cos(co 231mlJ解:一、 非线性模型线性化及建立状态空间模型因为在工作点附近( )对系统进行线性化,所以0,可以做如下线性化处理:32sin,cos1!!当 θ 很小时,由 cosθ、sin θ 的幂级数展开式可知,忽略高次项后,可得 cosθ≈1,sinθ≈θ ,θ’ ^2≈0;因此模型线性化后如下:(J+ml^2 )θ’ ’+mlx’=mglθ (a)mlθ’+(M+m) x’=u (b) 其中 231mlJ取系统的状态变量为 输出 包括小车位移和摆杆,,,,4321 xTxy][的角位移.即 X= = Y= = 432x x31由线性化后运动方程组得X1’=x’=x2 x2’=x’= x3+ umMg3)(4m3)(4X3’ =θ’=x4 x4’=θ’= x3+ u l)( l)(故空间状态方程如下:X’= = +  43 21x 03)(401)(3010mlMg432xmlM3)(0)(4u X’= = + u 43 21xx018.30672.1431x54.082.Y= = 31x04321x二、通过 Matlab 仿真判断系统的可控与可观性,并说明其物理意义。(1)判断可控性代码:A=[0 1 0 0;0 0 -2.627 0;0 0 0 1;0 0 31.1818 0];B=[0;1.8182;0;-4.5455];P=ctrb(A,B);n=rank(P);运行了得 n= 4所以 P 为满秩,系统能控(2)判断可观性代码:A=[0 1 0 0;0 0 -2.627 0;0 0 0 1;0 0 31.1818 0];B=[0;1.8182;0;-4.5455];C=[1 0 0 0;0 0 1 0];P=obsv(A,C);n=rank(P);运行了得 n= 4所以 P 为满秩,系统能观。三、能否通过状态反馈任意配置系统的极点?若能,通过 Matlab 仿真确定反馈控制规律 K(如图 2),使得闭环极点配置在上。并给出系统在施加一个单位脉冲输入时j1,2,14.3状态响应曲线;答: 因为系统完全能控,所以能通过状态反馈任意配置系统的极点。要将闭环极点配置在 上,所以期望特征方程为j1,2,14.3| I—(A-BK)|=( )*( +2)*( ( +1)^2+1)? ?+1 ? ?= ^4+5 ^3+10 ^2+ +4? ? ? 10?Matlab 求解 K 如下:A=[0 1 0 0;0 0 -2.627 0;0 0 0 1;0 0 31.1818 0];B=[0;1.8182;0;-4.5455];J=[-1 -2 -1+i -1-i];K=place(A,B,J);运行得:K=[ -0.089378 -0.22345 -9.0957 -1.1894];未加入极点配置。仿真图:未进行极点配置仿真电路图(1)X 的响应图:Θ 的响应图:配置后:加入极点配置仿真图(2)X 的响应图:Θ 的响应图:四、 用 MatLab 中的 lqr 函数,可以得到最优控制器对应的 K。要求用 LQR 控制算法控制倒立摆摆动至竖直状态,并可以控制倒立摆左移和右移;欲对系统进行最优状态反馈设计,及小化性能指标为:J= dt1 2 ∫∞0[????+????]编写 matalab 程序如下:A=[0 1 0 0;00 -2.627 0;0 0 0 1;0 0 31.1818 0];B=[0;1.8182;0;-4.5455];C=[1 0 0 0;0 0 1 0];D=[0;0]x=1;y=1;Q=[x 0 0 0;0 0 0 0;0 0 y 0;0 0 0 0];R=1;G=lqr(A,B,Q,R);A1=[(A-B*G)];B1=[B];C1=[C];D1=[D];t=0:0.01:5;U=zeros(size(t));x0=[0.1 0 0.1 0];[Y,X]=lsim(A1,B1,C1,D1,U,t,x0);plot(t,Y);legend( 小车 , 倒立摆 );运行可得:G=[-1 -1.5495 -18.68 -3.4559]由图分析可得调节时间很长,所以增加 Q 的比重,将上程序中的 x,y 改为 x=150,y=150.运行可得:G=[-12.247 -9.3413 -41.934 -7.7732]比较可得,控制效果明显改善。但反馈增益变大,意味着控制作用变强,消耗能量变大。将 G 放入系统中,进行 simulink 仿真可得:仿真电路图:仿真结果:X 的响应图:Θ 的响应图:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171026.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号