1619|3

44

帖子

2

TA的资源

一粒金砂(高级)

楼主
 

控制之美(卷2)第一节——octave的环境搭建+基本测试 [复制链接]

本帖最后由 Zhao_kar 于 2024-1-24 20:46 编辑

控制之美(卷2)第一节——开箱+octave的环境搭建+基本测试

声明:

  • 本次参与好书共读活动:《控制之美(卷2)——最优化控制MPC与卡尔曼滤波器》活动,感谢eeworld提供免费阅读本书学习的机会。
  • 因为是大学僧,从1.12差不多就收到书了,但是因为期末,所以到今天才能正式的开始测评。
  • 本次主要是octave的环境搭建,还有基本测试,因为其语法近似于matlab,这一部分上手起来不会困难。
  • 最后会按照计划更新,这两周缺的内容也会在后续加更补上。
  • 本节测试以第一节的如何将连续系统转换为离散系统展开

一、Octave的环境搭建

1、先去官网下载资源,建议科学上网

主界面
下载(按需下载)
2、安装
初始界面
下载
选择目录路径
3、两个UI的选择(命令行和UI,一般用UI,如下)
具体的语法跟matlab差不多,这里不详细说了。

二、本书几个概念的引入(用于下文的测试)

1、线性时不变系统状态空间方程的解

首先这个是一个概念引入,下面为一个线性时不变系统状态空间方程的解

先关注几个重点概念:

n维状态变量x,m维输出变量y,p维输入变量u

矩阵:

  • A为n*n的矩阵,表示状态矩阵
  • B为n*p的矩阵,表示输入矩阵
  • C是m*m的输出矩阵
  • D是m*p的直接传递矩阵

然后具体后续的推导过程比较漫长,这边就不放了,总之得到的关键结果如下,也就是状态空间方程的解。

其中第一部分,也就是左边的式子,是一个和系统初始条件相关的部分,其中e的At是状态转移矩阵,而右边的部分是一个卷积关系,是系统状态和系统输入之间的关系,也就是输入和输出的之间是卷积。
2、了解完上述的概念后,接下来就是一个离散化的概念
首先采样原理就不细说了,这里以一个模拟信号的简单理解描述,比如一个ADC采集模拟信号,假定是一个1khz的采样率,那就是1ms采集一个点,假定使用单片机把adc的数据发送到pc端,那么会看到几个连着的点,这些点在时域为x轴的基础上,两个点之间的距离就是采样周期,相应的采样频率一个道理,然后为了采样的精度,本书给了两个方法。
其一是采集数量变大,也就是数据的总量变多,相应的需要高存储
其二是奈奎斯特采样定理,也就是fs=2fH
然后本文还有一个作者举的例子,用于理解这个概念和其存在的意义
比如把体重控制在一个范围内,需要一个计划,而假定我一个月记录一次体重,那么采样周期就是一个月,那么就是频率太低的情况,低频会导致精度低,换句话说,这一个月内的变化趋势会被忽略掉,我个人有一个理解就是,比如这一个月你的减肥计划,在前两周下降了,而后两周是缓慢上升,但是实际上你的计划是一个月四周都是缓慢下降,也就是说不能及时的反馈当前的状态。
第二个就是采样周期太短,比如10min一次,因为太快了,会获得大量的重复信息,也就是没办法去跟你的计划值进行比较,换句话说就是难以于参考对比,而且正因为数据太多了,你可能还需要考虑这一部分数据中实际有用的(玩数模玩的)。
综上,就是本次的理论知识的引入,接下来直接上代码,附带两个注释:

这里先知道这个离散的,然后看下面的代码。

三、如何将连续系统转换为离散系统

1、先看代码

% 构建系统矩阵 A
A = [0 1; -2 -3];

% 构建输入矩阵 B
B = [0; 1];

% 定义两组采样时间
Ts_1 = 0.2;  % 第一组采样时间
Ts_2 = 1;    % 第二组采样时间

% 根据公式计算第一组离散系统的状态转移矩阵 Fd_1 和输入矩阵 Gd_1
Fd_1 = expm(A * Ts_1);  % 计算状态转移矩阵
Gd_1 = inv(A) * (Fd_1 - eye(size(A, 1))) * B;  % 计算输入矩阵

% 根据公式计算第二组离散系统的状态转移矩阵 Fd_2 和输入矩阵 Gd_2
Fd_2 = expm(A * Ts_2);  % 计算状态转移矩阵
Gd_2 = inv(A) * (Fd_2 - eye(size(A, 1))) * B;  % 计算输入矩阵

% 将连续系统转换为离散系统
sys_d_1 = c2d(ss(A, B), Ts_1);  % 第一组离散系统
sys_d_2 = c2d(ss(A, B), Ts_2);  % 第二组离散系统

% 绘制连续系统的单位阶跃响应,使用红色
step(ss(A, B), 'r');
hold on;
% 绘制第一组离散系统的单位阶跃响应,使用蓝色
step(sys_d_1, 'b');
hold on;

% 绘制第二组离散系统的单位阶跃响应,默认颜色
step(sys_d_2);

2、得到的结果

补充:首先在知道两个矩阵的情况下,通过前面的理论,可以求得如下的结果(代码我改过,我把连续的结果2也放进来了,原先只有一个离散的结果)

其中红色为连续,蓝紫色是T=0.2s的采集,蓝色是T=1s,通过这个结果就可以对比了。

 

本次先简单做一个测试,后续更新会根据学习进度相应的安排。

下一次更新报告预计这周末补充一篇,毕竟按照计划需要差不多8篇。

此帖出自汽车电子论坛

最新回复

  详情 回复 发表于 2024-1-26 16:01
点赞 关注

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

离散化的概念还是挺有趣的啊

跟着楼主学习

此帖出自汽车电子论坛
 
 

回复

6561

帖子

9

TA的资源

版主

板凳
 

这本书非常的实用,也可以结合作者bilibili上的视频一块看  

此帖出自汽车电子论坛
个人签名

在爱好的道路上不断前进,在生活的迷雾中播撒光引

 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 

此帖出自汽车电子论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表