Simulink/Matlab
文章平均质量分 61
Simulink/Matlab
Zhao-Jichao
这个作者很懒,什么都没留下…
展开
-
【Matlab】状态空间模型的极点配置法 place() 函数
极点配置法的Matlab实现原创 2022-08-30 11:22:37 · 1501 阅读 · 0 评论 -
【Matlab】状态空间模型的最小化实现 minreal() 函数
输出系统具有最小阶数和与原始模型系统相同的响应特性,因此又称为系统的最小实现。原创 2022-08-30 09:49:54 · 3747 阅读 · 0 评论 -
【Matlab】LMI 求解器快速入门,常用指令
文章目录例题问题解决代码代码解析setlmis([])lmivar()lmiterm()getlmisfeasp / mincx / gevpdec2mat()参考例题首先以段广仁老师的一个例题作为问题切入点。问题给定矩阵A1=[−121−3],A2=[−0.81.51.3−2.7],A3=[−1.40.90.7−2.0],A_1 = \left[\begin{matrix}-1 & 2 \\1 & -3 \\\end{matrix}\right],A_2 = \left原创 2022-03-25 19:37:12 · 3705 阅读 · 0 评论 -
【Matlab】利用 LMI 解矩阵不等式方程
利用 LMI 工具箱解如下矩阵不等式:PA+ATP−PBBTP+βP<0(1)PA + A^\text{T}P - P B B^\text{T} P + \beta P < 0\tag{1}PA+ATP−PBBTP+βP<0(1)等价于如下矩阵形式:(ATP+PA+βP−PBBTP−I)<0(2)\left(\begin{matrix}A^\text{T}P + PA +\beta P & -PB \\B^\text{T}P & -I \\\end{ma原创 2022-03-25 14:42:59 · 10330 阅读 · 2 评论 -
【Matlab】绘制热力图和三维热力图
文章目录cdata = [1 2 3 4 5; 5 4 3 2 1; 1 2 3 4 5; 5 4 3 2 1; 1 2 3 4 5];xvalues = {'1x', '2x', '3x', '4x', '5x'};yvalues = {'1y', '2y', '3y', '4y', '5y'};h = heatmap(xvalues, yvalues, cdata);clc;clear;close all;% 定义点(x,y,z)x = randn(50,1);xmax =原创 2021-10-03 08:46:22 · 35516 阅读 · 5 评论 -
【Matlab】解个微分方程
v˙l=alv˙f=−0.1+5∗vf+0.25∗vf2mD˙=vl−vf\begin{aligned}& \dot{v}_l = a_l \\& \dot{v}_f = -\frac{0.1 + 5*v_f + 0.25 * v_f^2}{m} \\& \dot{D} = v_l - v_f \\\end{aligned}v˙l=alv˙f=−m0.1+5∗vf+0.25∗vf2D˙=vl−vf%% Solve Differential Equati.原创 2021-07-18 11:18:32 · 448 阅读 · 0 评论 -
【Matlab】判断矩阵是否奇异
奇异矩阵判断方法首先,看这个矩阵是不是方阵(即行数和列数相等的矩阵。 … 然后,再看此矩阵的行列式|A|是否等于0,若等于0,称矩阵A为奇异矩阵;若不等于0,称矩阵A为非奇异矩阵。求矩阵行列式d = det(A)det矩阵行列式s = svd(A)svd奇异值分解...原创 2021-07-06 10:11:26 · 5941 阅读 · 0 评论 -
【Matlab】dde23解时滞时延微分方程
具有常时滞的 DDERef: 时滞微分方程 — 示例原创 2021-07-05 14:27:45 · 4712 阅读 · 5 评论 -
【Matlab】判断矩阵是否正定
友情链接:【数理知识】标量函数、二次型函数、矩阵、正定负定半正定半负定虽然使用 eig 来计算所有特征值并检查其值效率较低,但是这种方法更灵活,因为您也可以用它来检查矩阵是否为对称半正定矩阵。不过,对于小矩阵来说,检查矩阵是否为对称正定矩阵的这两种方法的计算时间之间的差异可以忽略。此方法要求您在执行测试之前,先使用 issymmetric 来检查矩阵是否对称(如果矩阵不对称,则不需要计算特征值)。tf = issymmetric(A)tf = logical 1d = eig(A)d原创 2021-07-02 16:57:47 · 11296 阅读 · 0 评论 -
【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
针对黎卡提方程PA+ATP−PBR−1BTP+Q=0P A + A^T P - P B R^{-1} B^T P + Q = 0PA+ATP−PBR−1BTP+Q=0A = [0 0; 1 0];B = [1; 0];Q = [0 0; 0 1];R = 1/4;[P,l,g] = care(A, B, Q, R)结果P = 0.5000 0.5000 0.5000 1.0000l = -1.0000 + 1.0000i -1.000原创 2021-07-02 10:13:07 · 7610 阅读 · 1 评论 -
【Matlab】求解积分方程的数值解
求方程J=tf+12∫0tfu2(t)dtJ = t_f + \frac{1}{2} \int_{0}^{t_f} u^2(t) dtJ=tf+21∫0tfu2(t)dt的数值元算结果。其中 u(t)=0.4276t−1.6897u(t) = 0.4276 t - 1.6897u(t)=0.4276t−1.6897fun = @(t) 1/2*0.4276*t+-1.6897;q = tf + integral(fun,0,tf)其中,fun 表示被积函数,0 和 tf 表示被积范围原创 2021-06-30 19:03:26 · 1926 阅读 · 0 评论 -
【Matlab】解多元方程 以三元方程为例 使用 solve 函数
Solve Multivariate Equations and Assign Outputs to Variables解多重方程组并且赋值给输出变量解如下系统方程:2u2+v2=02u^2 + v^2 = 02u2+v2=0u−v=1u - v = 1u−v=1超过一个变量时,制定变量的顺序定义了求解器 solver 返回结果的顺序。syms u veqns = [2*u^2 + v^2 == 0, u - v == 1];vars = [v u];[solv, solu] = solv原创 2021-06-25 08:20:44 · 18083 阅读 · 0 评论 -
【Matlab】图添加箭头指示
Matlab 图添加箭头指示在图上加箭头的函数有 annotation(),quiver()annotation()函数(1) annotation(annotation_type)以指定的对象类型,使用默认属性值建立注释对象。(2) annotation(‘line’,x,y)建立从 x 到 y 的线注释对象。(3) annotation(‘arrow’,x,y)建立从 x 到 y 的箭头注释对象。(4) annotation(‘doublearrow’,x,y)建立从 x 到 y 的原创 2021-03-18 09:41:39 · 5554 阅读 · 0 评论 -
【Matlab】子图添加子序号 (a) (b) (c) 及调整子图间距边距 科研绘图
子图添加序号1. matlab中subplot子图使用title函数title('(a)','position',[-4,38],'FontSize',16);2. 使用xlabel函数3. 使用text函数Ref: Matlab使用subplot绘制子图时编号(a)(b)©(d)修改字体set(gca,'FontName','Times New Roman');子图调整边距...原创 2021-03-08 11:47:04 · 13367 阅读 · 0 评论 -
【Matlab】绘制不同颜色线条
function color = getColor(value, min, max) cmap = get(groot,'defaultfigurecolormap'); [m, ~] = size(cmap); row = round((value/(max-min))*(m-1)) + 1; color = cmap(row, :); end原理就是从colormap里面均匀的取颜色。比如,把colormap分成1~10份,取第四种颜色,可以如下操作使用时:>> getC原创 2021-02-22 11:46:36 · 3912 阅读 · 0 评论 -
【Matlab】绘制3D 3维图
3D绘图命令命令 plot3:命令 stem3:命令 plot3:plot3(tout,Xdata,Ydata)命令 stem3:stem3(tout,Xdata,Ydata)Ref: Matlab 应用之绘制三维图形(基础篇)原创 2020-12-16 15:21:48 · 853 阅读 · 0 评论 -
【Matlab】访问提取时序数据
使用 ToWorkspace 工具从 Simulink 直接转移过来的数据为时序数据,可以直接使用 plot(X) 绘图,如下图所示。但无法直接与列向量数据放在一起画图,因此需要先进行数据的提取。访问 timeseries 数据样本全页折叠语法tsdata = getdatasamples(ts, ind)说明tsdata = getdatasamples(ts,ind) 返回对应于 ind 中索引的 timeseries 对象 ts 的数据。tsdata 中的数据对应于 ts.time(ind原创 2020-12-16 15:15:39 · 6071 阅读 · 0 评论 -
【Matlab 控制】批量修改大型 Simulink 模型中模块的属性
批量修改大型 Simulink 模型中模块的属性一、通过Simulink自带的搜索二、通过命令行进行搜索替换在大型Simulink建模中,需要进行某个模块的属性修改是很麻烦的事情,除非您对整个模型相当了解,并且能够快速定位每一个模块。但是在团队合作中,您不可能对所有模型都很了解。比如在飞机仿真建模过程中,其中的气动库计算需要使用到大量的查表(Lookup Table)插值模块,如果想一次性修改所有 Lookup Table 的 Index Search Method 参数。关于飞机的东西不能说的太多,你原创 2020-12-15 09:01:42 · 6711 阅读 · 1 评论 -
【Matlab 控制】利用 Matlab Function 绘制分段函数
利用 Switch block利用 Matlab Function blockfunction [mean, stdev] = fcn(vals)% #codegen% calculates a statistical mean and a standard% deviation for the values in valslen = length(vals);mean = avg(vals, len);stdev = mean+1;coder.extrinsic('plot')原创 2020-12-11 22:27:13 · 3023 阅读 · 0 评论 -
【Matlab 控制】利用 XY Graph 画图
使用 XY Graph 绘制圆原创 2020-12-11 22:08:15 · 5182 阅读 · 0 评论 -
【Matlab 控制】利用 Simulink 对微分代数方程建模
From: 对微分代数方程建模Simulink 设计图结果图 Simulink Data Inspector原创 2020-12-11 11:54:49 · 2845 阅读 · 0 评论 -
【Matlab 控制】自动小车仿真
s = drivingScenario('SampleTime', 0.05);% Add road roadCenters = [0 0; 10 0; 40 20; 50 20]; % mroadWidth = 5; % mroad(s, roadCenters, roadWidth)plot(s)% Add vehicleegoCar = vehicle(s);waypoints = roadCenters; % mspeed = 13.89; % m/strajectory(e原创 2020-12-01 21:26:33 · 7599 阅读 · 2 评论 -
【Matlab 控制】解方程solve() 或代入函数求值 eval() subs()
解方程用 solve()syms xeqn=sin(x)==1;solve(eqn,x)得出方程结果ans =pi/2From: MATLAB的solve函数代入求值用 eval() 或 subs()From: Matlab进行表达式求值(含参变量代入求值)原创 2020-11-25 12:14:56 · 15712 阅读 · 1 评论 -
【Matlab 控制】模仿绘制动态图像 保存动态图 GIF
模仿绘制动态图像clc;cleara=[1 2 3 4 5 6 7 8 9 ];b=[2 4 8 16 30 40 50 80 90];for i=1:length(a) plot(a(i),b(i),'>'); axis([0, 20, 0, 100]); hold on pause(0.1)endclc;cleara=[1 2 3 4 5 6 7 8 9 ];b=[2 4 8 16 30 40 50 80 90];for i=1:length(a)原创 2020-11-24 16:49:01 · 1135 阅读 · 0 评论 -
【Matlab 控制】微分方程 ode45() 求解并绘制曲线
Matlab 微分方程求解并绘制曲线1. 用 dsolve() 求解>> clear>> clc>> syms y(t)>> Dy = diff(y,1) Dy(t) = diff(y(t), t) >> y=dsolve(Dy==y-2*t/y,y(0)==1) y = (2*t + 1)^(1/2) >> t=0:0.1:4;>> y=eval(y);>> plot(t,原创 2020-11-02 23:18:45 · 86943 阅读 · 14 评论 -
目录-《Matlab/Simulink与控制系统仿真》程序指令总结
差分 差分方程差分 差分方程1. 差分1.1 前向差分(默认)1.2 后向差分1.3 中心差分2. 差分方程差分 差分方程1. 差分差分(difference)又名差分函数或差分运算,差分的结果反映了离散量之间的一种变化,是研究离散数学的一种工具。它将原函数 f(x)f(x)f(x) 映射到 f(x+a)−f(x+b)f(x+a)-f(x+b)f(x+a)−f(x+b) 。差分运算,相应于微分运算,是微积分中重要的一个概念。总而言之,差分对应离散,微分对应连续。差分又分为前向差分、向后差分及中心原创 2020-11-10 17:34:48 · 2137 阅读 · 0 评论 -
P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample13. 最优控制系统书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》13. 最优控制系统lqr() lqr2() lqry() 求解连续系统线性二次型最优控制问题的函数dlqr() dlqry() 求解离散系统线性二次型最优控制...原创 2020-11-10 10:31:51 · 3166 阅读 · 0 评论 -
P12 离散控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample12. 离散控制系统表12.11 离散系统时域响应函数书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》12. 离散控制系统表12.11 离散系统时域响应函数函数名调用格式功能说明dstepdstep(dnum, dden, n)求离散系统单位阶跃响应dimpu原创 2020-11-09 15:58:07 · 987 阅读 · 0 评论 -
P11 非线性系统-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample11. 非线性系统书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》11. 非线性系统ode45() 求解微分方程odefun tspan t0 tfinal...原创 2020-11-09 15:57:15 · 2558 阅读 · 2 评论 -
P10 线性系统状态空间设计-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample10. 线性系统状态空间设计书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》10. 线性系统状态空间设计...原创 2020-11-09 15:47:00 · 798 阅读 · 0 评论 -
P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample9. 线性系统状态空间分析书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》9. 线性系统状态空间分析canon() 将系统直接转化为对角型的函数ss2ss() 进行状态空间表达式的线性变换的函数ctrb() 求取系统可控判别矩阵的函数obsv() 求取系统可观判别矩阵的函数ctrbf(原创 2020-11-09 15:09:37 · 1385 阅读 · 0 评论 -
P8 控制系统校正与综合-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample8. 控制系统校正与综合书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》8. 控制系统校正与综合...原创 2020-11-09 15:08:26 · 1155 阅读 · 0 评论 -
P7 频域分析法-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample7. 频域分析法书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》7. 频域分析法nyquist() Nyquist 曲线绘制函数bode() Bode 图绘制函数nichols() Nichols 曲线绘制函数ngrid() 绘制等 M 圆和等 N 圆的函数margin 计算系统稳定裕原创 2020-11-09 14:57:48 · 1624 阅读 · 0 评论 -
P6 根轨迹分析法-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample6. 根轨迹分析法书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》6. 根轨迹分析法原创 2020-11-09 13:53:57 · 2788 阅读 · 1 评论 -
P5 Matlab/Simulink 在时域分析中的应用-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample5. Matlab/Simulink 在时域分析中的应用书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》5. Matlab/Simulink 在时域分析中的应用step() 单位阶跃响应函数impulse() 单位脉冲响应函数initial() 零输入响应函数lsim() 任意输入响应函原创 2020-11-09 13:52:45 · 2511 阅读 · 0 评论 -
P4 控制系统数学模型-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample4. 控制系统数学模型表4.4 模型转换函数书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》4. 控制系统数学模型ode23 微分方程求解ode45 微分方程求解num 分子多项式den 分母多项式conv() 多项式乘法函数roots() 多项式求根函数poly() 由根创建多项原创 2020-11-09 13:51:23 · 2775 阅读 · 0 评论 -
P3 Simulink仿真-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample3. Simulink 仿真书中详细实例代码可见:GithubMatlab_Simulink_BookExample图书:《Matlab/Simulink与控制系统仿真》3. Simulink 仿真原创 2020-11-09 13:49:10 · 588 阅读 · 0 评论 -
P2 Matlab计算基础-《Matlab/Simulink与控制系统仿真》程序指令总结
《Matlab/Simulink与控制系统仿真》程序指令总结Matlab_Simulink_BookExample2. Matlab 计算基础表2.1 Matlab 常用文件管理命令表2.2 Matlab 常用帮助命令表2.3 Matlab 默认常量表2.4 Matlab 的数据显示格式表2.5 Matlab 常用特殊矩阵生成函数表2.6 矩阵基本运算表2.7 常用矩阵函数运算表2.8 常用矩阵分解运算函数表2.9 关系运算符表2.10 逻辑运算符表2.11 关系运算函数表2.12 逻辑运算函数2.6 符号原创 2020-11-08 18:26:29 · 922 阅读 · 2 评论 -
【Matlab 控制】绘制盖尔圆
Matlab 绘制盖尔圆根据输入矩阵,绘制盖尔圆clear;clc;% 利用矩阵(方阵)绘制盖尔圆% 圆盘中心是对角线元素% 圆盘半径是每行元素总和% 缺点:只能计算实数,虽然写了复数,但还需要调试% 待求矩阵A = [0.90, 0.01, 0.12; 0.01, 0.80, 0.13; 0.01, 0.02, 0.40;];n = size(A);nRow = n(1);nCol = n(2);% 提取圆心i = 1;while (i<=nR原创 2020-11-04 15:47:01 · 2207 阅读 · 2 评论 -
【Matlab 控制】构建系统,绘制零极点
Matlab 构建系统 绘制零极点>> num0 = 5*[1 5 6]; den0 = [1 6 10 8]; % 描述闭环传递函数的分子、分母多项式>> sys0 = tf(num0, den0) % 高阶系统建模sys0 = 5 s^2 + 25 s + 30 ---------------------- s^3 + 6 s^2 + 10 s + 8 Continuous-time transfer function.>> den原创 2020-11-01 14:47:20 · 6337 阅读 · 2 评论