
matlab
文章平均质量分 51
xxx
qq_41955225
这个作者很懒,什么都没留下…
展开
-
Matlab-mex
有个老模型采用的是matlab2011b版本建模,当时是32位系统,mex生成的可执行程序是*.mexw32的,随着电脑的升级,变成了64位系统,因此报出无法找到s-fun的错误;(1)安装VS2008(对应Matlab2011b版本),注意VS的版本一定更要比matlab的版本低,否则无法识别。(2)设置mex参数:(3)编译 出现这种情况是无法找到xx_xy_us函数对应的文件办法:将对应的文件拷贝到同一目录下,同时加入编译,xx_xy_u函数被包含在xx_fxpt_simu.c中。顺利编译原创 2022-07-14 17:34:26 · 901 阅读 · 1 评论 -
Matlab-句柄图形
句柄图形是对底层图形函数集合的总称,它实际上进行生成图形的工作。可以利用它对图象或图片的外观进行控制。1 对象句柄每个图像由一个独一无二的名字,叫句柄(为整数或实数)。创建句柄Hnd1:%数据准备x=-pi:0.1:pi;y=sin(x);%创建一个曲线Hnd1=plot(x,y, 'LineWidth', 2)1.1 检测任意一个对象的属性value = get(handle, 'PropertyName'); value = get(handle); 返回这个对原创 2022-04-21 16:12:02 · 2031 阅读 · 0 评论 -
Matlab-结构数组
1 认识结构数组结构也是一种数据类型,它的每一个元素都有一个名字。称结构中的元素为域。类似与C语言中的结构体。2 创建两种方法:(1)用赋值语句创建(2)用函数 struct 函数进行创建2.1 赋值语句创建student.name="Li Ming";student.addr="123 Street";student.city='ShangHai';student.zip="123456";student.age=23;结果:>> stude原创 2022-04-18 15:29:26 · 10404 阅读 · 1 评论 -
Matlab_单元阵列cell
1 定义单元阵列是 MATLAB 中特殊一种数组,它的元素被称为单元(cells),它可以存储其它类型的 MATLAB 数组。一个单元阵列的每一个元素都是一个指针,指向其他的数据结构,而这些数据结构可以是不同的数据类型。访问:a(1,1):单元索引,是一个数据结构a{1,1}: 内容索引,反映的是数据结构 a(1,1)内容>> a(1,1) ans = [3x3 double] >> a{1,1} ans = 1 3 -7 2 0 6原创 2022-04-18 14:09:26 · 5221 阅读 · 0 评论 -
Matlab-稀疏矩阵
稀疏矩阵:指一个很大的矩阵,且大多数的元素为 0。目的:当矩阵中存在大量元素为0时,通过创建稀疏矩阵可以减少全矩阵的存储空间和运算量。1 创建方法1:通过sparse创建a = eye(5) %建立对角矩阵as = sparse(a)%转化为稀疏矩阵 whos结果:>> a = 1 0 0 0 0 0 1 0 0 0 0 0 1 0原创 2022-04-15 14:02:37 · 4010 阅读 · 0 评论 -
Matlab-多维数组
数组的创建原创 2022-04-14 12:28:52 · 463 阅读 · 0 评论 -
Matlab_字符(串)操作(函数)
一个 MATLAB 字符串是一个 char 型数组。每一个字型占两个字节。示例:%定义字符串变量str='hEllo12';str2='123321.12';str3='lo'str4='hell'str5='h e l l o '%%%转换为数值型%将参数y转为双精度浮点类型,如果y是字符,将返回字符的ASCII码值double_ASCII=double(str)%字符串转换为ASCLL码abs_ASCII=abs(str)%字符串转换为数值str2n...原创 2022-04-14 11:20:48 · 5073 阅读 · 0 评论 -
Matlab-函数集合
1 排序函数(1)函数ssort.m %选择性排序 %a:入数组 %out:输出从小到大排序完成的数组function out=ssort(a) nvals=size(a,2);%获取数组元素个数 %选择性排序 for ii=1:nvals-1 %查找最小的数的下标iptr iptr=ii; for jj=ii+1:nvals if a(jj)<a(iptr) .原创 2022-04-13 13:06:19 · 354 阅读 · 0 评论 -
Matlab-函数编写规则
Matlab的函数编写需要注意的是.m的文件名需要与内部的函数名保持一致,否则会报出未定义函数或变量的错误1 笛卡尔坐标系转换成极坐标函数编写:rect2polar.m:笛卡尔坐标系转换成极坐标%%%笛卡尔坐标系转换成极坐标% Define variables: % r --Length of polar vector % theta --Angle of vector in degrees % x --x-position of point % y ...原创 2022-04-13 11:28:04 · 12327 阅读 · 0 评论 -
Matlab-plot_part1
1 XY轴上下限控制2 在同一坐标系内画出多个图象采用hold on,hold off3 创建多个图象采用figure(n)4 子图像采用subplot(m,n,p):这个命令在当前图象窗口创建了 m×n 个子图象,按 m 行,n 列排列,并选择子图象 p来接受当前所有画图命令例如:subplot(2,3,4)将会创建 6 个子图象,而且 subplot 4 是当前子图象5 对画线的增强控制采用 plot(x,y,'PropertyName',value,......原创 2022-04-07 10:36:07 · 1343 阅读 · 1 评论 -
Matlab-关系运算符&逻辑函数
1 关系运算符2 逻辑运算符3 逻辑函数参考《Matlab编程》翻译 2022-04-07 10:02:17 · 272 阅读 · 0 评论 -
Matlab-文件读写操作
1 save命令保存当前 MATLAB 工作区内的数据到一个硬盘文件格式:save filename var1 var2 var3filename 代表你要保存变量的那个文件,var1,var2 等是要保存的变量。在默认情况下,这个这个文件的扩展名为‘mat’,我们称之为 MAT 文件。如果在 filename 后面无变量,则工作区的所有内容将会被保存。可以创建.mat文件,也可以创建.dat文件% create an input array from 0 to 10x=0:0.原创 2022-04-06 13:02:39 · 6479 阅读 · 0 评论 -
Matlab-变量&赋值&显示
本文主要介绍:(1)变量赋值(2)变量访问(3)变量值改变(4)变量格式化(5)变量显示1 数组赋值>> x=(1:2:5)*2x = 2 6 10>> c=[1,2,3;4,5,6]c = 1 2 3 4 5 6>> x=[(1:2:5)*2]'x = 2 6 10>> xx=[x,x]xx =原创 2022-04-06 10:23:28 · 14261 阅读 · 1 评论 -
Matlab-命令
序号 命令 说明 1 help 得到matlab的帮助手册 2 help+函数 得到函数的帮助 3 lookfor+函数 匹配函数的总结信息 4 demo 运行Matlab内建示例 5 clc 清空命令窗口内容 6 clear 清空工作区 7 Ctrl+c 强制结束当前的(循环)运算 8 ! 给计算机操作系统发送一个命令,相当于在CMD中输入命令 9原创 2022-03-30 09:16:56 · 151 阅读 · 0 评论 -
MATLAB-SIMULINK 知识点
1 annotation使用通过annotation加入回调函数可以实现按钮功能建立模型:拖入annotation属性设置:效果:实现Kp_s和Ki_s的赋值此功能也可以通过Callback Button实现:2 if-else使用建立模型:第一个和第二个if子模块中各有振幅对应1和2的sine函数,第三个为Uniform Random Number函数; 参数设置运行结果3 switch-case对于枚举型的...原创 2022-02-21 09:42:32 · 573 阅读 · 0 评论 -
MATLAB-APP编程
1 设计新建APP,加入标签,编辑字段,按钮等控件,并按要求命名2 回调函数 % Button pushed function: CheckGuessResultButton function CheckGuessResultButtonPushed(app, event) if app.My_NumberEditField.Value==app.Guess_numberEditField.Value ..原创 2022-02-16 13:13:34 · 1017 阅读 · 0 评论 -
MATLAB-SIMULINK-二极管搭建整流电路(2)
1 建立模型2 参数设置3 仿真结果原创 2022-02-15 18:04:18 · 5157 阅读 · 0 评论 -
MATLAB-SIMULINK-二极管搭建整流电路(1)
1 模型搭建2 参数设置3 仿真结果原创 2022-02-15 16:39:02 · 8727 阅读 · 1 评论 -
MATLAB-S-function实现PID
1 建立模型2 模型参数设置注意设置0.001s的延时,因为s-fun中是0.01的步长3 s-function代码%函数的总入口,收到信号后,首先进入这个函数.这个函数包含一个switch语句,根据情况进入不同的子函数function [sys,x0,str,ts] = exp_pidf(t,x,u,flag)switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, s..原创 2022-02-14 16:22:30 · 6290 阅读 · 1 评论 -
MATLAB-Interpreted MATLAB Function实现PID
1 建立模型2 参数设置在MATLAB function参数中填入.m文件:Interpreted_MATLAB_FC.m3 Interpreted_MATLAB_FC.m代码%u(1)为时间,u(2)为误差,y为输出function y = pidsimf(u)persistent errori error_1 %定义持久性变量t=u(1);%clock输入if t==0%初始化 errori=0; error_1=0;endkp=20;ki=原创 2022-02-14 15:43:47 · 3518 阅读 · 0 评论 -
MATLAB-基于传递函数的PID控制系统仿真
1 简介 ode45,常微分方程的数值求解。MATLAB提供了求常微分方程数值解的函数。当难以求得微分方程的解析解时,可以求其数值解(解析解就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值;数值解就是用数值方法求出近似解,给出一系列对应的自变量和解)。 Matlab中求微分方程数值解的函数有七个:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb 。 ode是Matlab专门用于解微分方程的功能函数。...原创 2022-02-14 13:44:12 · 4402 阅读 · 1 评论 -
MATLAB-增量式PID的实现&Simulink PID实现
增量式PID介绍比例P : e(k)-e(k-1) 这次误差-上次误差积分I : e(i) 误差微分D : e(k) - 2e(k-1)+e(k-2) 这次误差-2*上次误差+上上次误差du为增量,error前3偏差计算出来即可算出du;相对于位置式PID要稳定一些代码:%增量式PIDclc % 清屏clear all; % 删除workplace变量close all; % 关掉显示图形窗口%% %建立传递函数ts=0.001; %采样时间sys=tf(40.原创 2022-02-13 18:47:27 · 14450 阅读 · 6 评论 -
Matlab-Simulink_代码操作
建立系统如下:test.slx1 获取参数%% 打开系统,获取系统中模块参数clc,clear,close allopen_system('test.slx');%打开当前路径下的仿真系统get_param('test/Sine Wave','Amplitude')%获取振幅get_param('test/Sine Wave','Sampletime')%获取采样时间ysw1 = sprintf('\n');%对于名字为两行的情况,先将回车付给字符串ysw1get_param原创 2022-02-11 12:35:28 · 2443 阅读 · 0 评论 -
Matlab-Simulink_信号和系统模块
1 Bus Selector模块Bus Selector模块接受来自mux模块或者其他Bus Selector模块的信号,Bus Selector只有一个输入端口,输出端口取决于sine wave12幅值设为2:2Bus Creator模块创建Bus输出信号,可供其它Bus模块调用可以设定输入信号个数;如果在Selcted signals列表选中的输出信号不是Bus Selector模块的输入,则信号将以“???”显示3 Mux模块该模块将多个输...原创 2022-02-10 14:38:19 · 6313 阅读 · 0 评论 -
Matlab-Simulink_非线性模块组
1 Backlash模块实现输入和输出变化同步,当输入量改变方向时,输入的初始变量对输出没有影响。Deadband width:死区宽度Initial output:初始输出值(1)分离模式:输入信号不控制输出,输出保持为常数(2)正向模式:输出=输入-死区宽度*0.5(3)负向模式:输出=输入+死区宽度*0.5sine wave5的幅值设为2,运行结果如下: 输入 输出 输入-输出 正向 0.199667 0 0.19966.原创 2022-02-10 11:50:54 · 5282 阅读 · 0 评论 -
Matlab-Simulink_自定义函数
1 Fcn模块Fcn 模块将指定的数学表达式应用于其输入2MATLAB Function模块使用 MATLAB Function 模块可以编写用于 Simulink® 模型的 MATLAB® 函数。双击MATLAB Function模块可以进行函数编辑。3S-Function模块可以通过编写M文件供S-Function调用;点击edit可以打开函数文件S-function内部函数介绍[sys,x0,str,ts] = functionName...原创 2022-02-09 16:30:50 · 22635 阅读 · 0 评论 -
Matlab-Simulink_查表模块
1 一维查表(1-D Lookup Table)table data:y值-输出值breakpoints1:x值-输入值sine wave6的采样时间设为0.1s,运行结果2 二维查表(2-D Lookup Table)默认的算法是线性算法table data:z值,查表后输出值breakpoints1:u2,x坐标breakpoints2:u1,y坐标参考资料《MATLAB_SIMULINK系统仿真》...原创 2022-02-09 11:04:57 · 8877 阅读 · 5 评论 -
Matlab-Simulink_离散模块
1 Discrete Transfer Fcn模块2Discrete Filter模块可以实现无线冲激响应(IIR)和邮箱冲激响应(FIR)的滤波器。3Unit Delay模块系统的输出延迟一个采样周期,通过sample time设置采样周期,比如设置为0.3s4Memory模块将前一个集成步的输入作为输出,相当于对前一个集成步内的输入进行采样保持。Sine Wave2的采样时间设为0.1s,运行结果如下:...原创 2022-02-08 18:38:22 · 10360 阅读 · 0 评论 -
Matlab-Simulink_连续模块
1 Derivative模块对输入求导数2 Integrator模块对输入求积分3 Transfer Fcn模块传递函数y(s)为系统输出,u(s)为系统输入4 transport delay模块用于延时系统的输入5 Zero-Pole模块表征一个以Laplace算子s为变量的零点、极点和增益的系统6State-Space模块表征一个控制系统的状态空间,表达式如下:A...原创 2022-02-07 15:57:57 · 6553 阅读 · 0 评论 -
Matlab-Simulink_信号源模块
1 时间模块(clock和digitial clock模块)22 生成正态分布的随机数Band-Limited White Noise3 产生频率随时间线性增加的正弦信号(调频信号)Chirp Signal主要用于非线性系统的普分析,且以矢量或标量输出。4 矩形波发生器(PWM)(Pulse Generator)可以设置振幅,周期,占空比,相位延时产生5 产生服从正态分布的随机信号(Random Number)可...原创 2022-02-07 14:21:18 · 7441 阅读 · 0 评论 -
MATLAB-Simulink_入门
1 新手入门PID控制系统2 触发子系统设计子系统:子系统参数设置:运行结果:3 使能触发子系统设计子系统:合理设置参数后仿真结果:4 封装(Mask Subsystem)模型概览:Mask Subsystem参数设置:-设定模块名称和外观-输入变量的值和提示-初始化参数-对应该封装的help和说明文字运行结果:-双击Masksystem模块,弹出...原创 2022-02-07 13:26:02 · 1570 阅读 · 0 评论 -
Matlab-plot_part2
1 曲线图绘制X=0:0.2:10;Y=rand(51,1);%返回一个 51×1 的随机数矩阵figureplot(X,Y,"bo-")xlabel('X-lable')ylabel('Y-lable')x = linspace(-2*pi,2*pi);y1 = sin(x);y2 = cos(x);figureplot(x,y1,'r--o',x,y2,'b*')2 绘制网络图(1)点阵图,plot指令a=-0.98;b=0.98;c=-2;d=2;n=10原创 2022-02-02 16:36:17 · 1432 阅读 · 0 评论 -
Matlab编程-if,switch,for,while,try catch
if,switch,for语句用法%if elsea=2if a==1 b=0else b=1end%switch-caseswitch a case 1 c=0 otherwise c=1end%for循环d=0for i=1:3 d=d+1 if d==2 e=1 return end end原创 2022-02-01 20:24:03 · 1336 阅读 · 0 评论 -
MATLAB编程-excel文件操作
matlab编程文件操作原创 2022-01-11 16:15:04 · 6548 阅读 · 1 评论