RM云台黑箱系统辨识及建模

基于MATLAB的嵌入式系统辨识与云台控制
本文围绕嵌入式系统辨识展开,介绍了系统辨识及黑箱方法、状态空间方程等基础知识。利用MATLAB产生扫频激励信号,在云台YAW轴控制中,调节PID参数构建速度环和位置环,采用硬定时器或软定时器方案驱动电机,最终得到系统传递函数,用于PID调参及射击系统建模。

基础知识

系统辨识及黑箱方法

系统辨识是通过考察系统的输入、输出及其动态过程,来定量或定性地认识系统的功能特性、行为方式,以及探索其内部结构和机理的一种控制论认识方法。

通过辨识建立数学模型的目的是估计表征系统行为的重要参数,建立一个能模仿真实系统行为的模型,用当前可测量的系统的输入和输出预测系统输出的未来演变,以及设计控制器。

黑箱方法,指内部构造还不清楚,由于条件的限制,只能通过外部观测和试验去认识其功能和特性的系统。人们把外部对黑箱的影响称为黑箱的输入,把黑箱对外部的反应称为黑箱的输出。

状态空间方程

系统的动态特性是用由状态变量构成的一阶微分方程组来描述的。它能反映系统的全部独立变量的变化,从而能同时确定系统的全部内部运动状态,而且还可以方便地处理初始条件。

状态空间表达式: 由状态方程和输出方程构成,在状态空间中对控制系统作完整表述的公式。

系统的状态方程为:

系统状态方程

其中,A 为 n×n 的常系数矩阵,称作系统矩阵 ; B 为 n×r 的常系数矩阵,称作控制矩阵。 A 与 B 都由系统本身的参数决定。 u 是输入信号, x 是系统状态向量。

系统的输出方程:系统输出方程

其中,C 为 m×n 的常系数矩阵,称为输出矩阵,它表达了输出变量与状态变量之间的关系; D 为 m×r 的常系数矩阵,称为直接转移矩阵,它表示输入变量通过矩阵 D 直接转移到输出。在大多数实际系统中, D=0 。 y 是输出信号。

黑箱系统辨识

基本流程如下图所示

在这里插入图片描述

激励信号

利用MATLAB产生频率从1Hz到500Hz变化的扫频信号。由于频率范围较大,且高频部分云台振幅变化较小,为了减少数据量,采用类指数形式的变化趋势。为了保证信号不会发生跳变,在每次信号频率发生变化时都需要从零相位开始,因此周期需要是整数。

clear; clc; close all;

F = ([1:0.5:22. 24:2:40, 50:10:120, 200, 250, 333, 500]);
T = round(1000./F);%周期
F = 1000./T;%频率

plot(F);
ylabel('F/Hz');

这里产生的频率和对应周期是1Hz到500Hz,但经过实测发现用不到过于高频的信号,实际使用的是1Hz到40Hz的信号并达到了更好的效果,代码做一些微调整就行。

云台YAW轴

根据经验和时域的响应情况,调节PID参数构建速度环和位置环使云台可以稳定的跟随目标角速度。

将上一步Matlab生成的F和T导入程序,并产生激励信号驱动电机。这里由于激励信号数据量很大,正弦信号在定时器里产生并驱动。这里我使用了两种方案:使用硬定时器或使用基于FreeRTOS的软定时器。

硬定时器方案:在CubeMX配置好定时器频率为500Hz,将信号生成函数扔进回调函数。这里使用了TIM8。
在tim.c文件中,定时器设置如下:

void MX_TIM8_Init(void)
{
   
   
  TIM_ClockConfigTypeDef sClockSourceConfig = {
   
   0};
  TIM_MasterConfigTypeDef sMasterConfig = {
   
   0};

  htim8.Instance = TIM8;
  htim8.Init.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值