matlab
啤酒我可以喝一件
我又回来了ヾ(^∇^)
展开
-
matlab2020b安装
https://www.bilibili.com/read/cv7697570转载 2020-10-28 09:01:55 · 2459 阅读 · 0 评论 -
如何用matlab书写并绘制分段函数
https://zhidao.baidu.com/question/1608111302022361787.html或者也可以自己书写脚本,分段依次往数组里填充数据原创 2020-08-20 17:34:16 · 3266 阅读 · 2 评论 -
simulink中使用memory模块实现变量的累加和
在离散系统中,我们经常会遇到需要存储上一时刻的变量。比如y(k-1),然后用在当前时刻的运算里,这个时候我们就需要一个模块能够存储上一时刻的y(k-1),这个模块就是memory模块。一个很典型的例子就是用memory模块实现一个离散变量从初始时刻到现在时刻的累加和:说明:这个模型的memory模块在第一时刻存储的为0,在第二时刻存储的是y(1),在第三时刻存储的是y(2)+y(1),。。。。。。这样结合求和模块就实现了累加和功能。补充,我们可以用这个模块模拟simulink中的离散积分器模块:上原创 2020-05-22 10:33:46 · 31784 阅读 · 6 评论 -
simulink中的state place模块的使用
我们知道,state place模块输入的为u,输出的y,并且我们需要在模块参数中设置ABCD以及初始状态x的值(初始状态x的值一般为0):但我们经常使用状态空间不太在意y输出为多少,我们往往需要的是x状态的值,包括我们做飞控时我们所需要的飞机状态信息都在x中,所以我们希望state place输出x,方法就是把c设为单位矩阵,d设为0,这样的y=cx+du=x,这样我们就达到目的了,然后在接一...原创 2020-04-23 16:15:53 · 5333 阅读 · 6 评论 -
matlab的scope示波器模块补充
1.如果我们想在一个scope里面显示多个信号,可以将多个信号用mux连载一起在传入scope,也可以在scope设置里面设置输入信号数目:2.当scope输入多个信号时,默认的是在一个图中叠加显示多个信号,我们可以设置scope的布局来实现一个scope分开显示多个信号:...原创 2020-04-12 16:59:48 · 2981 阅读 · 0 评论 -
matlab中的plot补充
以前在用plot时,只知道变量之间维数要相同,比如t和y都必须为ab,其实这是不准确的,今天才发现,二者之间不是维数相同,而是列数相同,比如t为1100,而y可以为n*100,只要列数相同就行,这样画出来的图就为n条线,也就是先画y的第一排数据,在华第二排的数据,依次类推。。。例子:t=1:100x=ones(1,100)x=[x;2*ones(1,100)]plot(t,x)axis...原创 2020-04-08 16:53:15 · 260 阅读 · 0 评论 -
matlab中的pause函数
一般情况下pause(a)表示程序暂停a秒后继续执行,但有时候也存在这种情况,程序中只有pause;并没有参数a,这样的意思是程序暂停,按任意键程序继续执行。...原创 2020-04-06 11:43:41 · 2334 阅读 · 0 评论 -
matlab2020安装
前言:这里之所以要安装最新的2020版本,是因为matlab中的硬件支持工具是随着版本变化而变化的,所以要升级matlab版本MATLAB R2020a v9.8.0 最新中文版 64位百度网盘链接后期提供!在文件替换那一步容易出现问题,仔细查看安装教程。点我查看安装教程</ a>天翼云盘链接:https://cloud.189.cn/t/jm6fEvyIF7Jv不限速下...原创 2020-04-04 16:52:35 · 29555 阅读 · 18 评论 -
matlab中如何标记点
我们可以用plot或line来画线,但是拐点没有标记,如果我们需要标记拐点,可以用:text(x(p),y(p),'o','color','g'));这里o表示标注的形状,也可以用*、^等比较好看的符号哟。'g’表示的是颜色。...原创 2020-03-14 14:26:21 · 13159 阅读 · 1 评论 -
matlab中的min函数
如果一个矩阵c为xy那么[a,b]=min( c)返回的a为c中每一列最小的元素组成的集合,b为每一列中最小元素所在的行数组成的集合。显然这种方式不方便,我们希望直接返回所有元素中的最小值以及他的位置(下标或者索引值),因此我们就会想要如果一个矩阵为一个列矩阵,那么a只有一个数,b也只有一个数,这就达到目的了,所以我们的思路就是把一个xy的矩阵变为列矩阵,方法就是简单一句话:c( : )这句话就...原创 2020-03-14 12:02:55 · 4097 阅读 · 0 评论 -
matlab中矩阵的下标值和索引值
我们知道,如果我们想要获取一个矩阵里面的元素,可以用下标值,另外我们也可以用索引值。比如:C = [0 2 4 6; 8 10 12 14; 16 18 20 22];如果我们想要读取8,我们可以用C(2,1),我们也可以用C(2),一个矩阵的索引值从1开始,按照每一列的顺序往下数,比如矩阵c里面的0的索引值为1,8的索引值为2,16的索引值为3,2的索引值为4,依...原创 2020-03-14 11:18:10 · 14578 阅读 · 0 评论 -
matlab中的colormap说明
问题引出:之前我们提出过,用imread命令可以读取图片转换为matlab矩阵,这是一个3维矩阵,存储了颜色信息,我们可以用imshow函数读取这个三维矩阵来还原图片。那么我们是否可以用一个二维矩阵来存储有颜色的图片呢?可以,这时就会用到colarmap。我们知道,当map矩阵为2维矩阵时,用imshow函数读取这个二维矩阵只能识别里面的0和1,即只能显示出黑和白两种颜色,如果想要显示更多颜色...原创 2020-03-10 19:15:44 · 1585 阅读 · 0 评论 -
关于matlab中自定义函数名字与变量重名的情况
如果运行程序提示:下标索引必须为正整数类型或逻辑类型此时就要考虑是这个问题:max= max(B);如上面代码,函数名和变量名重名,第一次执行时,由于工作区没有max变量,max变量会被赋值。但是循环第二次执行max(B)这句话时,计算机就混混乱,因为他不知道你这里的max到底是要用变量还是用函数。所以会报错因此注意:绝对不要出现和自定义函数重名的变量...原创 2020-03-09 16:27:23 · 4736 阅读 · 2 评论 -
matlab中&和&& |和||的区别
首先我们知道,当我们在比较两个标量的逻辑值时,1为真,0为假。但当我们在比较两个向量/矩阵时,就没有这么简单了。并不是简单的返回0或1,而是一个一个比较里面的数,获得真假值组成一个新的矩阵。所以矩阵与矩阵求逻辑值,返回依然为矩阵,里面的元素是对应元素比较的逻辑值。例子:1 == 1 返回值为真(1)1 == 0 返回值为假(0)[1 1] == [1 1] 返回值为【真 真】,即【1 1】...原创 2020-03-09 12:27:20 · 15542 阅读 · 1 评论 -
matlab如何做出动画效果
我们知道,在一个脚本中如果多次执行画图命令比如line和plot,最后执行脚本出来的的是最终的结果,看不到化的过程,加入我们想要看到这个过程,就需要在每一个执行画图命令后写上m(i)=getframe;i=i+1;区别可以看下面的代码:t=0:pi/20:2*pi;i=1;for a=1:0.1:5x=a*sin(t);y=a*cos(t);line(x,y);m(i)=ge...原创 2020-03-08 18:10:51 · 1875 阅读 · 1 评论 -
matlab画三维曲线图
plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。例子:t=0:pi/1000:2*pi;x=sin(t);y=cos(t);z=3*ones(1,2001);x1=zeros(1,2001);y1=ones...原创 2020-02-19 17:08:31 · 3338 阅读 · 0 评论 -
simulink中各个模块及元器件的详细介绍(持续更新)
1.关于mux和bus图中上面的为mux,下面的为bus(总线),关于他们两个的区别见我之前的一篇博客:https://blog.csdn.net/zouxu634866/article/details/103469800这里补充一点:mux是将多路同类型信号变成一股信号,或者说向量,此时产生了新的信号,该信号以向量形式存在。而bus可以将不同类型的信号变成一股,但此时没有新的信号产生...原创 2020-02-15 20:25:57 · 28759 阅读 · 1 评论 -
卡尔曼滤波的matlab实现
理论部分见以前的博客。代码:%kalman filter%x=Ax+B(u+w)%y=cx+D+vclear all;close all;%对象的连续模型(传递函数)sys=tf([133],[1,25,0]);%对象的连续模型离散化ts=0.001;dsys=c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');%对象的连续状态空...原创 2019-12-30 10:41:29 · 2766 阅读 · 4 评论 -
微分先行PID控制器的实现
理论部分参考:https://blog.csdn.net/foxclever/article/details/80633275这里附上写的matlab程序:clear all;close all;%获取控制对象离散化模型ts = 20; %采样时间sys = tf([1],[60,1],'inputdelay',80);dsys = c2d(sys,ts,'zoh');[num...原创 2019-12-27 13:07:12 · 4626 阅读 · 2 评论 -
重要改正:前面的matlab程序存在重大问题
这一篇博客非常重要,因为這篇博客是为了纠正之前的几篇关于pid的matlab编程的错误错误之处:1.每一次的采样周期内,也就是每一次的for循环内,反馈的信号在时序上应该是属于这一次采样周期的,也就是反馈的信号应该是属于本次循环。之前的犯的错误就是每一次采样周期(for循环)内都是将上一次采样周期(for循环)内的输出作为反馈信号然后进行求差值,这是不对的。在程序上的体现就是:erro=y...原创 2019-12-16 12:10:53 · 245 阅读 · 0 评论 -
增量式数字pid的matlab实现
前言:之前写过一个c++的增量式数字pid,其原理参考之前的博客,这里只是用matlab实现一下https://blog.csdn.net/zouxu634866/article/details/79798477clear all;close all;%获取离散化模型ts = 0.001; %采样时间sys = tf([400],[1,50,0]);dsys = c2d(s...原创 2019-12-13 10:45:24 · 1233 阅读 · 0 评论 -
数字式pid控制器matlab实现
前言:这是针对数字离散系统的pid控制,采用m语言编写。重点掌握里面的数字式pid书写方法以及系统离散化的方法。clear all;close all;%获取离散化模型ts = 0.001; %采样时间sys = tf([523500],[1,87.35,10470,0]);dsys = c2d(sys,ts,'z');[num,den]=tfdata(dsys,'v');%...原创 2019-12-12 21:20:21 · 6133 阅读 · 5 评论 -
matlab中离散信号模型
前言:我们在maylab中最常用的是一个对象的传递函数,当我们在离散系统里时,我们需要将这个传递函数离散化,也就是将拉普拉斯变化为z,所以这一篇博客介绍如何获得一个对象的离散模型。方法1:如果已经知道了,我们只需要在simulink库中选取discrete transfer function并修改参数就行。如图:方法2:如果我们只知道这个对象的传递函数,那么我们可以在命令行中用命令来获取它...原创 2019-12-12 12:20:53 · 3118 阅读 · 0 评论 -
关于simulink中的函数function模块
前言:我们前面提到过当遇到库中没有我们需要的模块时,我们可以自己书写s函数,其实s函数是一个比较高端的工具,是用来书写一些比较复杂的模块,而遇到一些简单的模块,我们可以用库里面的fcn模块和matlab function模块这两个模块形式如图:点开这些模块:fcn模块最简单,直接在对话框中输入简单的函数表达输入输出的关系。而matlab function模块会显示一个文本,需要你去书写一...原创 2019-12-12 11:43:56 · 55034 阅读 · 6 评论 -
simulink中S函数的书写规则
这一部分参考:如何构建s函数:https://blog.csdn.net/peixianlyc/article/details/84034583如何书写s函数:http://blog.sina.com.cn/s/blog_4fa8810401012uq9.html一、如何构建s函数S函数即系统函数System Function的意思,在研究中,有时需要用到复杂的算法设计等,而这...转载 2019-12-11 10:08:12 · 4642 阅读 · 0 评论 -
matlab中的mux和bus
这一部分详细的说明见:http://www.360doc.com/content/10/1226/19/4146412_81542619.shtml这里简单来说就是:mux是将相同类型的多路信号凝成一股线,这些信号并没有想加,依然为相互独立的,只不过为了好看简洁另外易于同时操作,而bus也是将多路信号凝成一股线,只不过可以为不同类型的信号...原创 2019-12-10 10:07:23 · 4501 阅读 · 0 评论 -
重拾matlab,持续更新
因为最近要开始用matlab画图了,所以重新学习一下已经忘的差不多的matlab,持续更新,把遇到的不熟悉的记录下来以便今后查阅原创 2019-12-09 18:13:45 · 694 阅读 · 1 评论