iπ弟弟
野生程序喵,阿里云弹性计算后端开发工程师。
Github: https://github.com/ZYunfeii
展开
-
【电传课福利】各种电机(直流、交流)控制(矢量,双闭环)simulink模型大放送
文章目录写在前面SPWM异步电机矢量控制电流滞环矢量控制SVPWM矢量控制直流电机双闭环控制传递函数模型半实物模型End写在前面今天看了看电脑原来对文件,发现之前上过一门电传课,学的时候做了很多很多模型(当时还觉得挺有意思…),想着以后也用不着了,就直接挂上来…模型都是调好的,且还比较美观。SPWM异步电机矢量控制这个模型严格按照教材搭建,网上应该是没有的。链接:https://download.csdn.net/download/weixin_43145941/18274044电流滞环矢量原创 2021-04-30 17:25:26 · 1470 阅读 · 3 评论 -
高斯伪谱C++封装库开源!
这个库在你下载它的那一时刻起不再依赖任何其他代码,直接可用来构建C++的最优控制问题并进行求解。我还写了一个visual studio使用该库的demo项目,供学习。原创 2024-02-07 16:20:43 · 1875 阅读 · 0 评论 -
轨迹跟踪算法:L1非线性跟踪算法演示(附matlab simple demo)
概览L1算法的核心公式只有一个:ascmd=2V2L1sinηa_{s_{\mathrm{cmd}}}=2 \frac{V^{2}}{L_{1}} \sin \etaascmd=2L1V2sinη其中符号解释如下图:一句话解释:L1跟踪算法解出了一个横向加速度作用于对象,输入为对象当前的速度矢量、与对象相距L1的待跟踪轨迹上的参考点。至于η\etaη是根据参考点位置和对象位置以及对象速度矢量来计算的。用L1来做跟踪的关键是如何求取待跟踪轨迹上的一点,该点到对象的位置距离恰好为L1。L1原创 2021-10-05 16:32:00 · 3049 阅读 · 2 评论 -
BackStepping反步控制的一个二阶实例推导附带Simulink模型验证
Backstepping基础这一部分强烈建议自己拿出一张草稿纸推一推这篇博客的内容:backsteppingbackstepping的思想正如其名字,反推,将一个高阶系统分解成无数个一阶系统,对每一个一阶系统利用Lyapunov函数找到一个参考输入,而这个输入则是下一个一阶系统的状态变量,下一个一阶系统有了其状态变量的参考值,再利用Lyapunov函数又可以找到一个参考输入,而这个输入则又是下一个一阶系统的状态变量…如此迭代下去,直至推到输入u(最后一个一阶系统)。结合下面这个SISO系统理解我上面说的原创 2020-11-15 17:39:23 · 3205 阅读 · 27 评论 -
滑模控制二阶系统实例(5mins理解入门,附带MATLAB实现)
问题设想一个在一维空间的物块,在其上施加一个力f,物块会运动:显然这是一个二阶系统,选取状态变量x1x_1x1为位移,x2x_2x2为速度,则有:x1˙=x2x2˙=f/m=u\dot{x_1}=x_2\\\dot{x_2}=f/m=ux1˙=x2x2˙=f/m=u其中uuu定义为输入,mmm为物块的质量。又已知:x1(0)=1x2(0)=0x_1(0) = 1\\x_2(0)=0x1(0)=1x2(0)=0设计一个滑模控制器将其控制到原点。设计滑模面和控制率滑模面其实就原创 2020-09-24 17:06:56 · 17595 阅读 · 11 评论 -
卡尔曼滤波算法的原理以及其在一个预测问题中的应用(MATLAB)
原理Kalman filter algorithm的核心就是五大公式,这五大公式包含了测量值,先验值,后验值。先验值其实就是根据系统模型算出来的近似值(建模存在不准确问题),而同时我们利用检测设备还可以测得一个测量值,现在问题就是如何将这两个值进行数据融合,计算出一个在该时刻的后验值,这个后验值需满足误差方差最小原则(此时最靠近真实值)。Kalman滤波算法是经过严密推导的数学最优化问题,这里不再推导,给出最终算法的5大公式:公式中X^1,k−\hat{X}^-_{1,k}X^1,k−为先验位置,X原创 2020-09-01 20:08:42 · 2527 阅读 · 0 评论 -
2020北航自动化研究生夏令营笔试相轨迹题分析与解答
相轨迹是什么相轨迹就是一个系统中信号(一般两个)随时间的变化轨迹图(一般二维),相轨迹一般用于分析二阶及以下系统的动态过程。对于二阶系统,总可以写成如下形式:x¨=f(x,x˙)\ddot{x}=f(x,\dot{x})x¨=f(x,x˙)选取信号:x1=x˙x2=xx_1=\dot{x}\\x_2=xx1=x˙x2=x则相轨迹为x1x_1x1与x2x_2x2的二维曲线,其中x1x_1x1为纵坐标,x2x_2x2为横坐标。相轨迹的绘制一般手绘采用等斜线法,对于系统:x¨=f(x原创 2020-08-04 19:53:06 · 382 阅读 · 3 评论 -
状态空间系统不完全可控的极点配置
例子如果我们鉴别这个系统的能控性很容易得到其不可控。rank(ctrb(A,B))结果为2<4,系统不完全能控。如果想任意配置极点的先决条件是系统完全能控,如果不完全能控,也不是说不能配置极点,只是存在不可控极点而已,下面寻找不可控极点。解决方案能控性jordan标准型变化准备利用jordan能控性判据,先找到变换矩阵。A = [0 1 0 0;0 0 -1 0;0 0 0...原创 2020-04-11 21:49:44 · 8746 阅读 · 4 评论 -
如何理解李雅普诺夫第二方法第三条件等高线闭合
李雅普诺夫第二方法第三条件lim∣∣x∞∣∣V(x,t)=∞lim_{||x\infty||}V(x,t)=\inftylim∣∣x∞∣∣V(x,t)=∞这句话的意思是选定函数V在x趋于无穷的任意形式下都要趋于无穷,满足这点再加上李雅普诺夫第二方法前两个条件即原函数正定,一阶导负定即可推出全局稳定。另外一种表述这种表述是从等高线来说的,其实它的意思是一样的。因为正定函数未必能定义x的一种...原创 2020-04-01 13:01:33 · 813 阅读 · 0 评论 -
能控性与能观性的几种判据以及各自标准型转化
代码(MATLAB)这几种判据是互推的,MATLAB也有ctrb函数构造,另外,能控和能观是对偶的。线性定常系统Gram判断能观测function key = Gram_control(A,B)A = sym(A);B = sym(B);key = 0;[n,mu] = size(A);syms t;phi = expm(-A*t);w = int(phi*B*B'*phi',...原创 2020-03-24 23:04:54 · 6507 阅读 · 1 评论 -
PSO粒子群算法调节PID控制器参数
概述PSO(粒子群算法)在处理连续问题上有着较强的能力,因此很适合用来做参数优化,而PID控制器由三个参数组成,它们分别是:Kp、Ki、KdK_p、K_i、K_dKp、Ki、Kd我们可以把PID控制器当做一个“黑箱”,输入为这三个参数,输出为响应曲线,我们要做的就是优化这个响应曲线。而一个控制效果好的PID控制器应针对不同类型输入都有较快的响应速度,较小的超调以及稳态误差。因此我们将经...原创 2020-03-09 19:05:41 · 14684 阅读 · 11 评论 -
现控计控中基于留数法Z变换与Z反变换的MATLAB实现
Z变换其实在控制领域,无论是拉氏变换还是z变换,它们最开始的目的都是为了简化问题分析。在对被控对象建模过程中会出现高阶微分方程,而要在时域直接求解它们是很难的,因此对于连续系统我们采用拉氏变换讲问题转换到S域,而对离散系统考虑将问题牵引到Z域,在做了这样的处理后,问题逐渐变为了代数问题,我们在这两个域做分析和设计,最后通过各自的反变换即可回到时域。但现在随着计算机的发展,直接在时域进行求解也成为...原创 2020-03-09 14:06:00 · 4183 阅读 · 0 评论