自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 Bumpless Control Transfer(斜坡启动与闭环)

启动前斜坡输入,待输出值接近输入值时,启用PI闭环,可以降低系统振荡。

2023-04-23 22:46:11 211

原创 【F280039C】Serial Peripheral Interface (SPI)

串行外设接口(SPI),它是一种高速同步串行输入和输出(I/O)端口,允许程序长度(1到16位)的串行位流以程序的比特传输速率进出设备。

2022-11-10 14:46:33 881

原创 输入整形的matlab代码实现【新】

输入整形技术可以对输入轨迹二次优化,对机械臂的振动抑制有良好的效果,其本质是一种特定频率的滤波器或者说陷波器。下面采用matlab的脚本函数实现,并针对二阶欠阻尼系统仿真验证。

2022-11-09 22:22:27 2806 1

原创 【F28003x】 Enhanced Pulse Width Modulator (ePWM)

DSP280039C芯片ePWM模块的一些说明。

2022-11-07 15:35:43 1255

原创 感应电机的矢量控制策略【Ⅱ】

磁通水平的降低不可避免的带来转矩输出能力的减弱,系统的动态响应速度就会明显低于标准矢量控制恒额定磁链运行的情况,出现动态速降大、加速缓慢等问题。在负载转矩突然增大的动态过程中,由于瞬时电磁转矩低于负载转矩,必然导致瞬时转速下降。

2022-10-20 14:45:38 443

原创 感应电机的矢量控制策略【Ⅰ】

电动汽车的电驱动系统主要由驱动电机、功率变换器和控制器三大部分组成。驱动电机主要采用PMSM、开关磁阻电机、IM等交流电驱动系统。

2022-10-20 13:46:10 1167

原创 【F28003x】Comparator Subsystem(CMPSS)

比较器子系统(CMPSS)由模拟比较器和支持电路组成,这些电路适用于功率应用,如等。比较器子系统是围绕一些模块构建的。

2022-10-19 10:52:11 1558

原创 【F28003x】 ADC模块

DSPc2000、ADC相关

2022-10-18 13:50:36 1361

原创 观测器计算频率与效果对比

实验情况下,对比不同的观测器计算频率下,观测效果的差异。图中红色为观测值。速度环内计算(8KHz)速度环内计算,加400Hz低通滤波电流环内计算(16KHz)在观测器带宽相同的情况下,计算频率越高观测效果越好。...

2021-12-07 14:32:39 886

原创 Ubuntu报错“unrecognized command line option ‘-std =c17‘“

原因Gcc版本过低需要升级,目前我用的是ubuntu18.04,基础包gcc最高版本为7.5.下载新版本以gcc的9.10版本为例,下载地址:http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-9.1.0/下载完成解压到一个文件夹,以解压到Downloads为例,然后进入解压文件夹,并配置依赖库:cd gcc-4.8.2./contrib/download_prerequisites这个神奇的脚本文件会帮我们下载、配置、安装依赖库,可以节.

2021-09-15 14:09:58 3614 1

原创 Ubuntu终端命令“command ‘make‘ not found“解决

问题如下:依次执行以下3条指令:sudo apt-cdrom addsudo apt-get updatesudo apt-get install build-essential

2021-09-15 10:30:39 9591

原创 Ubuntu终端命令安装软件报错“could not get lock /var/lib....“解决

移除锁定文件夹重新配置重新安装软件

2021-09-15 09:41:21 168

原创 CDHD 手册

EtherCAT或PROFIBUS通讯使用RJ45电缆:通过接口C5,将主机连接至驱动器;通过C6链接至下一个节点。驱动器状态七段式数字显示器提供驱动器的各种指示,比如操作模式、驱动器的是能状态和故障情况。规则:小数点–使能/禁止状态,若显示,则驱动器在使能状态。稳定发光数字 --操作模式或者警告。数字显示器状态说明0: 串行速度控制模式;1: 模拟速度控制模式;2: 串行电流控制模式;3: 模拟电流控制模式;4: 主/从传动控制模式;8: 位置控制模式;E: 驱动器处于

2021-05-22 10:48:34 1911

原创 输入整形 matlab仿真

ZV输入整形、ZVD输入整形的仿真。

2021-04-01 21:23:18 4772 7

原创 matlab传函离散化 -- 整数系数

matlab内置的离散化传递函数的系数表示多为科学计数法,一些情况下会损失参数精度,导致离散化之后的参数有可能得不到想要的结果。通过设置syms 变量,将z变换之后的离散化系数表示为整数,便于编程实现。matlab内置方法Pp = tf(2,[0.015 0.01 2])Gpp = c2d(Pp,0.001)[num1,den1] = tfdata(Pp)step(Gpp)Gppp = c2d(Pp,0.001,'tustin')编程实现% z 变换计算方法disp('要离散化的传递函

2021-03-06 17:09:54 1746

原创 不确定性直流电机的systune整定

直流电机电压到角速度之间的传递函数:反电势常数:Kb,力矩常数:Km,阻尼系数:Kf将物理参数建模为百分比不确定性模型。R = ureal('R',2,'Percentage',40);L = ureal('L',0.5,'Percentage',40);K = ureal('K',0.015,'Range',[0.012 0.019]);Km = K; Kb = K;Kf = ureal('Kf',0.2,'Percentage',50);J = ureal('J',0.02,'Perc

2021-02-07 21:55:23 226

原创 鲁棒控制器设计方法(systune,hinfsyn,musyn...)

文章目录固定结构控制器鲁棒控制器整定本文档包含的控制器整定方法分为两类:指定结构的控制器整定:systune, hinfstruct广义控制对象整定:musyn, mixed musyn, hinfsyn以具有不稳定极点的一阶系统为例,假设控制对象具有乘性不确定性,且不确定性的加权函数在低频下不确定性较弱,高频下不确定性较强。% 乘性不确定性控制对象 Pn = tf(1,[1 -1]); % 标称模型,具有不稳定极点delta = ultidyn('delta',[1,1]);Wp =

2021-02-05 17:11:04 3236

原创 柔性控制对象的鲁棒控制器设计

文章目录Hinf 方法针对含尺子柔性的控制对象建模并设计输出反馈鲁棒控制器:Hinf 方法% 创建广义模型Ks = 2;Jl = 0.0015;Bl = 0.009;Jm = 119e-7;Bm = 0.001;Ww1 = 0.001;Ww2 = 0.001;Wz1 = 0.01;Wz2 = 0.01;A = [0 1 0 0; -Ks/Jm -Bm/Jm Ks/Jm 0; 0 0 0 1; Ks/Jl 0 -Ks/Jl -Bl/Jl];B1 = [0 0

2021-02-02 20:41:31 196

原创 μ综合分析 弹簧质量阻尼系统

考虑图1中的质量弹簧-阻尼器系统。弹簧k2和阻尼器b2分别连接到壁和质量m2上。质量块m2也通过弹簧k1和阻尼器b1连接到质量块m1。质量2受干扰力f2影响。该系统通过作用在质量m1上的力f1来控制。我们的设计目标是使用控制力f1来减弱扰动f2对质量m2位置的影响。力f1不直接作用在质量m2上,而是通过弹簧刚度k1作用。因此,弹簧刚度k1的任何不确定性将使控制问题更加困难。控制问题表达为:控制器测量质量m2的噪声位移并施加控制力f1。传感器噪声Wn被建模为常数0.001。执行器命令在低频处的系数为0.

2021-02-02 09:56:31 4212 3

原创 Simulink--系统传递函数分析

slLinearizer在Simulink模型和线性化命令getIOTransfer,getLoopTransfer,getSensitivity和getCompSensitivity之间提供接口。使用slLinearizer可以有效地批量线性化模型。可以配置slLinearizer接口以在一系列操作点处线性化模型,并指定模型参数值的变化。使用接口分析点和永久开口从模型中获取任何开环或闭环传递函数的线性化。分析线性化模型的稳定性或时域或频域特征。用addPoint,addOpening,removePoi

2021-01-31 14:46:24 7221 1

原创 鲁棒控制--simulink不确定模型仿真

simulink仿真不确定性模型,主要学习第二个程序。mdl = "rctUncertainModel";open_system(mdl)m = 3;c = ureal('c',1,'Percentage',20);k = ureal('k',2,'Percentage',30);usys = tf(1,[m c k])ublk = strcat(mdl,"/Uncertain State Space"); % 水平串联字符串set_param(ublk,"USystem","usys");

2021-01-31 11:10:54 2193 3

原创 鲁棒控制——不确定系统表示方法(simulink)

文章目录基本表示量化未建模动力学Simulink不确定模型的线性化不确定系统表示方法,学习如何将名义模型和不确定因素组合起来,从而建立不确定模型。通过量化每个元素的不确定水平,评价整体系统的鲁棒性。分析每个不确定元素如何影响性能,并确定最坏情况的参数组合。simulink不确定性系统分析。模型不确定性包括:模型的不精确估计或者参数变化;忽略或者未知的动态特性,比如高频动态特性;环路增益或者相位的变化;运行环境的变化;非线性系统的线性化估计;测量数据的估计误差。基本表示不确定模型的属性

2021-01-30 14:14:14 2022

原创 C++学习记录--提高Ⅰ(模板)

文章目录模板基本概念案例普通函数与函数模板的区别普通函数与函数模板的调用规则具体化模板模板基本概念模板就是建立通用的模具,大大提高复用性模板的特点:C++另一种编程思想称为 泛型编程 ,主要利用的技术就是模板C++提供两种模板机制:函数模板和类模板模板不可以直接使用,它只是一个框架模板的通用并不是万能的函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表。语法:template<typename T> 函数声明或定义

2021-01-26 13:17:50 78

原创 鲁棒控制(Ⅰ)—LMI处理方法

系统的H∞范数对应于bode图中幅值曲线的峰值,而系统的H2范数则对应于bode图中幅值曲线下方的面积。H∞范数不超过一个上界,H2范数尽可能小,以保证系统对于不确定性具有鲁棒稳定性,并表现出更好的性能。在状态反馈情况下,闭环系统的H∞性能并不能通过增加控制器的阶数来加以改进,因此,系统的H∞状态反馈控制器,总是能够选择一个静态控制律。Matlab中计算Hinf最优控制器命令为:hinfsyn 或者 hinflmi。连续系统控制器求解举例:% hinflmiclear;clc;A = [0];

2021-01-17 17:34:16 5677 3

原创 鲁棒控制(Ⅱ)—车辆悬浮系统hinf设计

设计一个输出反馈系统:F = K(s)y。m1 = 1.5e3;m2 = 1e4;k1 = 5e6;k2 = 5e5;b1 = 1.7e3;b2 = 50e3;A = [0 0 1 0; 0 0 0 1; -(k1+k2)/m1 k2/m1 -(b1+b2)/m1 b2/m1; k2/m2 -k2/m2 b2/m2 -b2/m2];B = [b1/m1 0; 0 0; k1/m1-(b1*(b1+b2))/(m1*m1) -1/m1; (b

2021-01-17 17:24:04 1213 1

原创 matlab控制器参数整定方法

针对上述控制结构图,利用matlab整定参数。%% Tuning Control Systems with SYSTUNE% systuneWorkflowExample.mG = linsys;C0 = tunablePID('C','pi'); % tunable PIa = realp('a',1); % 参数化F0 = tf(a,[1 a]); % 滤波器结构AP = AnalysisPoint('u'); % 断点T0 = feedback(G*AP*C0,.

2021-01-15 19:56:04 2190

转载 C++学习记录--进阶Ⅱ(文件操作)

文章目录程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。C++中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件 - 文件以文本的ASCII码形式存储在计算机中二进制文件 - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写操作ifstream: 读操作fstream : 读写操作5.1文本文件5.1.1写文件写文件步骤如下:包含头文件#incl

2021-01-10 13:47:38 77

原创 现代控制理论(注意点)

文章目录matlab求解系统方程线性齐次状态方程的解线性非齐次状态方程的解注意点matlab求解系统方程线性齐次状态方程的解syms s t x0 tao phi phi0;A = [0 1; -2 -3];I = [1 0; 0 1];E = s * I - A;C = det(E);D = collect(inv(E));phi0 = ilaplace(D);x0 = [1; 0];x = phi0 * x0;线性非齐次状态方程的解syms s t x0 x tao phi

2020-12-31 10:10:56 560

原创 C++学习记录--进阶Ⅱ(类和对象,多态)

文章目录类和对象封装struct 和 class 的区别类和对象C++面向对象的三大特性为:封装、继承、多态。封装封装的意义:将属性和行为作为一个整体,表现生活中的事物://设计一个圆类,求圆周长//class表示设计一个类,类后面紧跟着的就是类名称const double PI = 3.14;class Circle{ //访问权限:公共权限public: //属性:半径 int m_r; //行为:获取圆周长 double CalculateCircle() {

2020-12-27 16:07:06 172

原创 matlab程序常用模板

simulink输出到工作空间,不同参数对比程序模板:close all;plot(P1);hold on;plot(P2,'--','LineWidth',1.2);legend('未补偿','精度准确');axis([1 3 480 1800])figure;hold on;plot(P1);plot(P2,'--','LineWidth',1.2);legend('未补偿','0.8倍阻尼');axis([1 3 480 1800])figure;hold on;plot(P1);pl

2020-12-24 10:51:19 612

原创 C++学习记录--进阶Ⅰ(内存,引用,函数)

内存分区模型C++程序在执行时,将内存大方向划分为4个区域:代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态变量以及常量栈区:由编译器自动分配释放,存放函数的参数值,局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,灵活编程。程序运行前在程序编译后,生成了exe可执行程序,未执行该程序前分为两个区域。代码区:存放CPU执行的机器指令。代码区是共享的,共享的目的是对于频繁

2020-12-23 11:07:16 79

原创 DOB--Q滤波器的特性

在控制系统的一般情况中,内部和外部扰动量处于低频带宽,而检测的噪声出现在高频段,该频率特性使得DOB的应用中需要引入一个低通滤波器–Q滤波器。DOB通过调节滤波器Q,使其在低频段近似为1,高频段近似为0,就可以有效地抑制系统所受的低频干扰和高频噪声。理论上,滤波器的带宽越高,DOB的抑振效果越好,但是带宽越高易造成系统不稳定。以两种滤波器为例,了解滤波特性:巴特沃斯低通滤波器Q(s)=(αβ)/[(s+α)(s+β)] Q(s) = (\alpha\beta)/[(s+\alpha)(s+\be

2020-12-08 15:37:05 896

原创 基于模型的机器人控制(思路)

现代机器人控制的基础是模型。最重要的模型是运动学模型,包括刚体动力学模型和弹性动力学模型。通过可配置的模型,有可能用同一种方法控制各种类型的机器人。ABB公司采用模型配置方法,可以控制一系列机器人。基于模型的控制包括基于模型的轨迹生成和基于模型的轴控(QuickMove)。基于模型的轨迹生成轨迹生成,通过在线机器人速度和加速度优化来获得。生成路径的任务可以表述为:必须严格遵循用户指定的路径,并且只有在机器人运动受到机器人组件的约束以机械方式或电气方式限制机器人运动的情况下,才必须降低指定速度。一些

2020-12-08 13:35:05 1180

原创 柔性关节建模

% 两种两惯量柔性关节建模的区别% 1. 阻尼等效到两端; 2. 阻尼等效到中间柔性体。Ks=5;J=0.04*0.09;B=0.03;h=1/4000;num1=[B Ks];den1=[J B Ks];y2=tf(num1,den1);num2=[Ks];den2=[J B Ks];y1=tf(num2,den2);bode(y1);hold on;bode(y2);yd1=c2d(y1,h);yd2=c2d(y2,h);figure;bode(yd1);hold on;bode(yd2

2020-12-01 16:36:45 1143

原创 C++学习记录--基础

文章目录程序流程结构选择结构--if语句三目运算符选择结构--switch语句循环语句--while循环语句--do…while循环语句--for循环嵌套循环跳转语句--break跳转语句--continue跳转语句--goto数组一维数组程序流程结构三种程序运行结构:顺序结构、选择结构、循环结构选择结构–if语句单行、多行、多条件(if…else if…else if…else)三目运算符表达式1 ? 表达式2 : 表达式3说明:如果表达式1的值为真,执行表达式2,并返回表达式2的结果;如果

2020-11-28 18:46:16 60

原创 C++学习记录--入门

文章目录变量常量数据类型整型实型(浮点型)字符型转义字符字符串类型布尔类型数据的输入运算符算术运算符递增递减运算符赋值运算符变量给一段指定的内存空间起名,方便操作这段内存。变量存在的意义:方便管理内存数据。、变量创建的语法: 数据类型 变量名 = 变量初始值;如:int a = 10;输出:cout <<"a = "<< a << endl;常量用于记录程序中不可更改的数据。1. 宏常量 #define 。2. const 修饰的变量也称为常量。标识

2020-11-28 10:26:49 79

原创 控制原理(随笔)

离散系统零阶保持器(ZOH)对系统的影响零阶保持器(ZOH)对系统的影响粗略的看,视为在系统中加了一个延迟时间为 0.5Ts 的纯延时环节。模不变,相角延迟,相位裕度有所损失,系统的稳定程度降低,动态性能指标变差。加入ZOH不影响系统的阶数,不改变开环极点,只改变开环零点。零阶保持器之所以使用广泛,是因为便于实现。计算机计算的输出会暂时存储在寄存器中,需要读取时,也是从寄存器中读取,上一拍与下一拍修改之前的信号都是定值,因此,读取时就相当于实现了零阶保持器的功能。...

2020-11-27 17:14:00 2471 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除