当前位置:文档之家› 预测控制matlab工具箱

预测控制matlab工具箱

预测控制matlab工具箱
预测控制matlab工具箱

matlab 预测控制工具箱

一、设计示例

注:示例均为matlab 自带

1、伺服系统控制器的设计

图4-1 位置伺服系统原理图

(1)伺服系统数学模型

位置伺服系统由直流电机、变速箱、弹性轴、负载等组成(见图4-1)。可用如下微分方程来描述:

上式中的变量定义及取值见表4-1。

欢迎流通!西安交通大学自动化系,

2

将上述微分方程写成状态方程形式,有

其中,。

(2)控制目标及约束

控制目标:在电压V 的控制下,使过载角位置跟踪指定值。输出量仅有可观测。

弹性轴承受的强度有一定的限制,因此对输出力矩T 的赋值作一定约束:

对输入电压的约束:

该系统有一个输入V ,两个输出:(可测量)和T (不可测量)。

(3)在matlab 中定义该系统的状态空间模型

首先需要在matlab 中对系统的数学模型进行定义。可以直接在命令行输入mpcmotormodel (建议做法),也可以在命令行中输入下列命令:

% DC-motor with elastic shaft

%

%Parameters (MKS

%-----------------------------------------------------------

Lshaft=1.0; %Shaft length

dshaft=0.02; %Shaft diameter

shaftrho=7850; %Shaft specific weight (Carbon steel

G=81500*1e6; %Modulus of rigidity

tauam=50*1e6; %Shear strength

Mmotor=100; %Rotor mass

Rmotor=.1; %Rotor radius

Jmotor=.5*Mmotor*Rmotor^2; %Rotor axial moment of inertia Bmotor=0.1; %Rotor viscous friction coefficient (A CASO

R=20; %Resistance of armature

Kt=10; %Motor constant

gear=20; %Gear ratio

Jload=50*Jmotor; %Load inertia

Bload=25; %Load viscous friction coefficient

Ip=pi/32*dshaft^4; %Polar momentum of shaft

(circular section

Kth=G*Ip/Lshaft; %Torsional rigidity

(Torque/angle

Vshaft=pi*(dshaft^2/4*Lshaft; %Shaft volume

Mshaft=shaftrho*Vshaft; %Shaft mass

Jshaft=Mshaft*.5*(dshaft^2/4; %Shaft moment of inertia

JM=Jmotor;

JL=Jload+Jshaft;

Vmax=tauam*pi*dshaft^3/16; %Maximum admissible torque Vmin=-Vmax;

%Input/State/Output continuous time form

%----------------------------------------------------------

AA=[0 1 0 0;

-Kth/JL -Bload/JL Kth/(gear*JL 0;

0 0 0 1;

Kth/(JM*gear 0 -Kth/(JM*gear^2

-(Bmotor+Kt^2/R/JM];

3

BB=[0;0;0;Kt/(R*JM];

Hyd=[1 0 0 0];

Hvd=[Kth 0 -Kth/gear 0];

Dyd=0;

Dvd=0;

% Define the LTI state-space model

sys=ss(AA,BB,[Hyd;Hvd],[Dyd;Dvd];

(4)利用MPCTOOL 界面设计控制器

第一步:导入模型

在命令行窗口中输入mpctool ,工具箱界面出来后点击Imort Plant…,此时界面如4-2所示。

图4-2 Import Dialog Box with the Servomechanism Model Selected

此时先前定义的伺服系统数学模型sys 默认被选中,Properties 列出了该模型的主要属性。

点击Import ,导入数学模型,见4-3所示。

第二步:设置属性

系统的数学模型导入后,需要对输入变量和输出变量的属性做一些修改,使之符合实际情况。默认情况下,输入变量类型均是manipulated ,本例中不需要修改。默认输出变量类

型是measured ,本例的两个输出变量中,可测量,T 不可测量,需要相应修改。

4

5 可以修改输入变量和输出变量的名称,增加描述性内容,设置单位和初始值。此处将In1,Out1,Out2修改为V ,ThetaL,T ,其它修改见图4-3。

图4-3 Design Tool After Importing the Plant Model and Specifying Signal Properties 本例中的模型为连续系统,需要将之变为离散系统。选中MPCdesign---Controllers---MPC1---Model and Horizons,将Control interval(time units(采样周期)改为0.1,其它设置不变,见图4-4。

6

图4-4 Controller Design View, Models and Horizons Pane

接下来设置变量约束。点击Constraints 面板,输入变量V 、输出变量

和T 的设置见图4-5。一般情况下需要对输入进行约束,而不对输出量作限制。角位置输出

受到实际物

理装置的限制,因此不作限制。对输出力矩T 设置了约束范围。 Max down rate 为非正值(或留空),它限制了每一个控制周期内控制量的减小幅度,同理,Max up rate为非负值(或留空),他对每一个控制周期内控制量的增幅做了限制。此处均留空。

图4-5 Controller Design View, Constraints Pane 接下来点击Weight Tuning面板,此面板用于在设计控制器时对性能进行折中考虑。首先看Output weights,控制器的目的是为了尽可能缩小输出量与设定值之间的偏差。控制器计算预测时域内每个预测点处的实际值与设定值的误差,将之平方,然后相加,得到预测误差总和。控制器的一个目标就是使预测误差总和最小化,从而得到良好的跟踪效果。此处,

角位置输出

应跟踪设定值,输出力矩T 则不需要有此限制。

输入变量V 处于不断变化之中,Weight 应该设为0,为了使控制量变化平缓,此处设置Rate Weight为0.1。在进行权重设置时需要记住一点,权重间的相对大小的重要性要远远大于绝对大小。例如,变量A 变化0.1单位与变量B 变化100单位效果等同,那么在设置权重时,A 的权重将是B 权重的1000倍。上方的

滑动条用来整定控制器的总体性能。滑动条越靠近左方,对控制量的惩罚项越大,这会增加控制器的鲁棒性,但会降低跟踪精度。当存在不可测量干扰时,Estimation 选项卡用来调节控制器的响应,此处没有用到。

7

图4-6 Controller Design View, Weight Tuning Pane

第三步:仿真场景的设置见图4-7所示。Setpoints 用来设置输出参考信号。设置ThetaL 的参考信号为阶跃信号,阶跃时间为1s ,幅度为1。设置T 的参考信号为常值信号,幅度为零。 Look ahead 选项假定参考信号的变化是已知的,这样控制器可以提前修正控制变量来提高跟踪精度,这在实际中不常见,此处不选中。

8

图4-7 Simulation Settings View for "Scenario1"

第四步:开始仿真点击Simulate 按钮,或者工具栏中的绿色箭头,开始仿真。结果见4-8所示。灰色线为设定值,蓝色线为实际输出值。可见,输出信号在30s 时仍没有稳定下来,没有实现指令信号的准确跟踪。有一点值得称道,输出力矩和控制电压(此处没有给出)在指定范围之内。

0.511.52T h e t a L , R a d i a n

s

T , N . m

Plant Outputs

Time (sec

图4-8 Response to Unit Step in the Angular Position Setpoint

为了得到更快速、精确的响应,进入MPC1 Weight Tuning选项板,将滑动条拖至最右方,然后重新开始仿真,仿真结果见图4-9和图4-10。可见,此时的响应速度和跟踪精度都有了很大的改进。

00.20.40.60.811.21.4T h e t a L , R a d i a n

相关主题
文本预览
相关文档 最新文档