广义预测控制及其matlab仿真,广义预测控制(GPC).doc

广义预测控制(GPC).doc

广义预测控制(GPC)

1.GPC基本原理介绍

广义预测控制 (GPC) 是牛津大学的Clarke等于1987年提出的,基于参数模型,它是以(CARIMA)受控自回归积分滑动平均模型的基础,并结合辨识和自校正机制,表现出良好的鲁棒性。特点:

(1)基于CARIMA模型;

(2)目标函数中对控制增量加权的考虑;

(3)利用输出的远程预报;

(4)控制时域长度概念的引入;

(5)丢番图方程的递推求解;

1.1 预测模型

假设系统基于下面的CARIMA模型,

其中,和是系统的输出、输入和干扰信号。

,(是向后移时间算子),模型即

是系数,用数据辨识得到。

为得到的步向前预测值,考虑下面的丢番图方程组:

(2)

简写成:,其中和为待求多项式,,

,,

(3)

将(2)代入(3)得:

(4)

得到未来输出的预测值:

(5)

为将中已知信息和未知信息分离开来,在考虑另一组丢番图方程: (6)

其中和为待求多项式,,

,,

将(6)代入(5)得:

<
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
广义预测控制(GPC)是一种反馈控制算法,它利用过去的控制数据来预测未来的输出,并根据这个预测来实时调整控制输入。在MATLAB中,可以使用控制系统工具箱中的GPC函数来实现GPC控制。以下是使用MATLAB实现GPC控制的步骤: 1. 定义控制系统模型:使用MATLAB中的tf或ss函数来定义系统的传递函数或状态空间模型。 2. 定义GPC控制器:使用MATLAB中的gpc函数来创建GPC控制器对象。此函数需要指定GPC控制器的参数,例如控制时间步长、预测时间步长、控制器阶数等。 3. 设计GPC控制器:使用MATLAB中的design函数来设计GPC控制器。此函数需要指定所需的控制器性能要求,例如控制器的稳态误差和性能指标。 4. 仿真GPC控制器:使用MATLAB中的sim函数来模拟GPC控制器的性能。此函数需要指定模拟时间范围、初始条件和控制输入。 5. 评估GPC控制器性能:使用MATLAB中的step函数来计算GPC控制器的性能指标,例如稳态误差和响应时间。 下面是一个示例MATLAB代码,展示如何使用GPC进行控制: %% 定义控制系统模型 G = tf([1],[1 -1.5 0.7],1); %% 定义GPC控制器 Ts = 0.1; % 控制时间步长 N = 5; % 预测时间步长 M = 2; % 控制器阶数 gpc_obj = gpc(G,Ts,N,M); %% 设计GPC控制器 p = [1 0]; % 希望输出的理想响应为一个阶跃函数 q = 1; % 控制器性能指标为输出误差 gpc_obj = design(gpc_obj,p,q); %% 仿真GPC控制器 t = 0:Ts:10; % 模拟时间范围 u = ones(size(t)); % 初始控制输入为1 [y,t] = sim(gpc_obj,G,u,t); % 计算GPC控制器的输出 %% 评估GPC控制器性能 % 计算稳态误差 steady_state_error = abs(p(end) - y(end)); % 计算响应时间 rise_time = t(find(y>=p(end)*0.9,1)) - t(find(y>=p(end)*0.1,1)); 以上代码演示了如何使用MATLAB中的GPC函数进行控制。通过定义控制系统模型、设计GPC控制器并仿真模拟,可以评估GPC控制器的性能指标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值