- 博客(15)
- 收藏
- 关注
原创 【无标题】
在仿真时,如果不限制输出,那么控制器可能会产生非常大的输出来使控制器有很好的性能,但是在实际的机械系统中,关节所使用的驱动器如电机的输出是有力矩限制的,没有办法产生非常大的力矩来驱动机构运动。至此,我们的simulink模型已经搭建完成,此时若直接运行系统,会发现机器人的实际位置与期望值相差甚远,原因在于控制器的参数并不匹配当前系统,因此需要调节控制器参数来使控制器性能表现较好。本节所采用的模型基于simscape搭建的ABB 120六轴机械臂模型,其模型细节如下,模型输入为关节力矩,输出为关节位置。
2024-07-01 03:02:49 515
原创 Matlab Simscape导入urdf创建机器人模型-以ABB六轴机器人为例
URDF(Unified Robot Description Format,统一机器人描述格式)是一种用于描述机器人模型的XML格式文件。今天以ABB六轴机器人为例,使用Matlab Simscape导入urdf文件来创建机器人模型。URDF(Unified Robot Description Format,统一机器人描述格式)是一种用于描述机器人模型的XML格式文件。今天以ABB六轴机器人为例,使用Matlab Simscape导入urdf文件来创建机器人模型。先来预览下最终效果:01。
2024-06-25 05:18:39 1581
原创 Matlab SimScape & Robotics System Toolbox二连杆机器人系统建模
将上述系统创建为一个子系统,并命名为Robot,然后我们来给机器人定义一个简单的输入。现在需要给关节提供输入,在simscape模型中,其模型连接与基础simulink模型中的连接不同,所以需要将simscape模型中的信号转换为simulink信号,此处需要用到PS-Simulink/Simulink-PS converter。新增一个转换模块后,双击设置。接下来是法兰,若想要添加法兰,需要先添加一个固定关节,此处添加的是Weld Joint,最后再添加末端执行器并定义其尺寸和坐标,便得到最终的模型了。
2024-06-24 04:30:07 1377
原创 LQR优化控制
有了这个矩阵,我们就可以将 Q 矩阵中的相应值做得很大,从而将目标锁定在误差非常小的状态上,而将我们不太关心的状态的相应值做得很小。但是,状态可以是负值也可以是正值,我们不希望负值从总成本中减去,因此我们要对数值进行平方,以确保它是正值,,以保证对较大错误的惩罚比对较小错误的惩罚更大。极点配置中,控制器中的每个状态都作为反馈,然后乘以增益矩阵K,假如控制器是可控且可观的,我们可以把闭环极点放在我们选择的任何地方,然后把参考项缩放来确保没有稳态跟随误差。实现方式是一样的,但我们选择 K 的方式不同。
2024-06-10 04:19:29 1435
原创 工业六轴机器人DH模型建立及matlab robotics工具箱举例
确定原点 (o_i),使其位于 (z_i) 和 (z_{i-1}) 的公共垂线上。如果 (z_i) 和 (z_{i-1}) 平行,则将 (o_i) 置于 (z_i) 上的任意位置处。沿 (z_{i-1}) 和 (z_i) 之间的公共垂线方向通过 (o_i) 确定 (x_i),或者如果 (z_i) 与 (z_{i-1}) 相交,则沿 (z_{i-1} - z_i) 平面中的法线方向确定 (x_i)。连杆转角(alpha_i):从 (z_{i-1}) 旋转到 (z_i) 的角度,绕(x_i)轴正向旋转为正。
2024-05-28 05:08:41 1078
原创 状态空间方程 - 极点配置1
极点配置(Pole Placement)是控制理论中的一种设计方法,用于通过适当选择控制器增益,使得闭环系统的极点(也即系统特征方程的根)位于预定的位置,从而达到所需的动态性能和稳定性要求。我们可以通过极点配置的方法来计算出适当的增益矩阵,以保证系统的稳定性,而参考值的缩放则用于确保稳态误差性能是可接受的。A 矩阵的特征值就是系统的极点,而极点的位置决定了线性系统的稳定性。将 A 矩阵写成对角线形式后,我们不难发现,剩下的是一组一阶微分方程,其中每个状态的导数只受该状态的影响,不受其他影响。
2024-05-22 01:02:03 2719
原创 Dymola2023安装
在官方说明里提到,Visual Studio 2019有四种选择,因为我电脑上已经有高版本Visual Studio,只想安装生成工具,所以选择了Visual Studio 2019 Build Tools安装,而只需勾选C++ build tools和C++/CLI即可。安装完成后,若没有license,则Dymola界面会提示使用版本,试用版本只能运行简单模型,若想使用所有功能,则还需要license。在安装时需要注意Libraries是默认不安装的,如有需要,可以单击选择本地安装。
2024-05-12 21:01:19 1841
原创 状态空间方程 - MATLAB举例
从上述输出结果可以看出,两个不同状态表述的状态空间方程对应的传递函数是一样的,也即,两者表述的都是同一个系统,只是不同的表示形式而已。当我们对状态空间方程进行对角化时,我们实际上是在进行相似变换。着上篇关于状态空间方程的介绍,今天我们使用MATLAB来举个例子。首先要问,这个传递函数是怎么得到的呢?
2024-05-11 04:58:35 1177
原创 状态空间方程
这两个模型表示的是完全相同的系统,我们只是为状态向量选择了不同的坐标,不同的基础。从上述微分方程可以看出,系统的加速度是当前状态(位置)的方程,如果这一动态系统有初始能量,因为其状态和状态导数之间存在关系,它会一直持续运动。这样做的好处是,我们能够了解这些内部状态是如何变化和相互关联的,能量是如何移动的,我们还能使用线性代数的强大工具来分析和求解方程。如果我们通过分析系统的状态和其状态导数之间的关系来看能量变化,我们可以对系统的稳定性做出这样的判断:如果能量随着时间的推移而耗散,那么系统就是稳定的。
2024-05-10 00:54:29 1734 1
原创 嵌入式系统原理之Boot Loader
Boot Loader就是在操作系统内核运行之前运行的一段小程序。其作用为:初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核准备好正确的环境。Boot Loader通常不是通用的。系统上电或复位后,系统将首先执行Boot Loader程序。固态存储设备的典型空间分配结构如下图所示,主要包括BootLoader、启动参数、内核以及根文件系统。...
2018-09-18 10:25:30 894
转载 嵌入式系统原理之中断
中断是一种硬件机制,用于通知CPU有个异步事件发生了。当微处理器检测到某个中断请求引脚上有信号时,微处理器就会停止当前正在执行的应用程序,CPU保存部分(或全部)现场即部分或全部寄存器的值,跳转到中断服务程序ISR。 先占个坑,有空再写。。。...
2018-09-17 15:24:37 1825
原创 嵌入式系统原理之基础知识
嵌入式系统是一种以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。现今所说的嵌入式系统一般指嵌入式计算机系统,主要包括四部分:硬件层、中间层、系统软件层和应用层。1.1 硬件层硬件层是指除被控对象之外的嵌入式系统要完成其功能所具备的各种设备。1.2 中间层介于硬件层和系统软件之间,将硬件细节进行屏蔽,便于...
2018-09-16 22:05:13 2244
转载 ZigBee的基本概念
1、基本概念ZigBee是基于IEEE802.15.4标准的低功耗局域网协议。根据国际标准规定,ZigBee技术是一种短距离、低功耗的无线通信技术。这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(bee)是靠飞翔和“嗡嗡”(zig)地抖动翅膀的“舞蹈”来与同伴传递花粉所在方位信息,也就是说蜜蜂依靠这样的方式构成了群体中的通信网络。其特点是近距离、低复杂度、自组织、低功耗、低数据速率。主要...
2018-09-13 11:04:42 3529
原创 主分区、扩展分区与逻辑分区
在磁盘的第一扇区中,主要记录了主引导分区和磁盘分区表的信息。其中磁盘分区表一共有四组记录区,容量为64bytes。四组记录区可以分别是主分区或扩展分区,也即主分区数量+扩展分区数量《=4。但是磁盘的分区不止是4,当磁盘需要更多分区时,可以将扩展分区继续切割,切割出来的分区即为逻辑分区。需要注意的是,受到操作系统的限制,扩展分区最多只有一个,且不可格式化。...
2018-09-10 15:07:48 364
原创 开启我的CSDN博客之旅
今天开始在CSDN上开始我的博客之旅。我会陆续记录一些自己学习的心得。内容可能会包括Linux、嵌入式系统、单片机、FPGA等等,emmm,可能还会有机器人相关的(老本行...)...之前自己一直太懒,学到的东西都不懂总结,现在想想,也许总结能起到事半功倍的效果呢。希望自己能一直坚持下去。...
2018-09-10 13:55:34 200
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人