惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
N
News | PayPal Newsroom
Cloudbric
Cloudbric
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Simon Willison's Weblog
Simon Willison's Weblog
Spread Privacy
Spread Privacy
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
C
Cybersecurity and Infrastructure Security Agency CISA
H
Hackread – Cybersecurity News, Data Breaches, AI and More
P
Proofpoint News Feed
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
T
Tor Project blog
Latest news
Latest news
aimingoo的专栏
aimingoo的专栏
V2EX - 技术
V2EX - 技术
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Securelist
T
Tenable Blog
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
T
Troy Hunt's Blog
量子位
大猫的无限游戏
大猫的无限游戏
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
MongoDB | Blog
MongoDB | Blog
H
Heimdal Security Blog
D
Docker
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
G
Google Developers Blog
博客园 - 叶小钗
腾讯CDC
The Hacker News
The Hacker News
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
Project Zero
Project Zero
Martin Fowler
Martin Fowler

鸦鸦的巢穴

母欲养而猫不待 - 鸦鸦的巢穴 又活半年 - 鸦鸦的巢穴 服务器廉价续费迁移教程 - 鸦鸦的巢穴 AD原理图添加ROOM及模块复制的方法(PCB更新不删除) - 鸦鸦的巢穴 2025幸福报告 - 鸦鸦的巢穴 NAS入坑笔记 | 网盘+相册+影视库+软路由 ALL IN ONE - 鸦鸦的巢穴 迄今为止最满意的GIF录屏软件 - 鸦鸦的巢穴 沃尔沃VOLVO工厂参观日记 - 鸦鸦的巢穴 Argon主题优化 | 将说说添加到RSS - 鸦鸦的巢穴 人物速写(三):表演型人格的底层逻辑 - 鸦鸦的巢穴 人物速写(二):采样心理学与宿命心理学 - 鸦鸦的巢穴 人物速写(一):自恋型人格障碍素材合辑 - 鸦鸦的巢穴 上班真是太爽了 - 鸦鸦的巢穴 九寨沟单人行 - 鸦鸦的巢穴 最喜欢的三款Typora主题 - 鸦鸦的巢穴 一个充电宝引发的争论:先有mAh还是先有Wh - 鸦鸦的巢穴 自建Meting API修复音乐播放器 - 鸦鸦的巢穴 P2P联机游戏加速之ZeroTier方案 - 鸦鸦的巢穴 PCB进阶指南 - 鸦鸦的巢穴 运算放大器&比较器应用指南 - 鸦鸦的巢穴 页面加载速度优化指南 - 鸦鸦的巢穴 教程 | 将博客朋友圈化——仅展示最近一个月动态 - 鸦鸦的巢穴 脑电波仅展示最近一个月动态,看到这条说明已经到底啦! - 鸦鸦的巢穴 PTC Mathcad 8.0 setup.exe 打不开/无反应解决办法 Word导出PDF图片模糊解决办法 & PPT制作海报导出图片分辨率不够解决办法 - 鸦鸦的巢穴 Microsoft Word 的文艺复兴 - 鸦鸦的巢穴 Zotero+阿里云盘WebDAV+公网访问≈无限空间+全平台 Altium Designer 重拾指南 | 菜鸟救星 - 鸦鸦的巢穴 Notion也可以有#文内标签# Matlab/Simulink批量运行仿真、参数寻优
Matlab求解函数solve、vpasolve和fsolve宠幸谁 - 鸦鸦的巢穴
鸦鸦 · 2023-11-20 · via 鸦鸦的巢穴

以经典的PI补偿器求解PI参数为例:

$$
20 \lg |k_p + \frac{k_i}{j \omega_c}| = gain\_rise
$$

$$
\frac{k_i}{k_p} = \omega_z
$$

第一个方程限定了补偿器在穿越频率处的增益,第二个方程拟定了零点位置。

(如果不懂涵义也没关系,这篇文章仅讨论针对类似的非线性方程组哪种求解函数最好用。如果想捋清楚各类补偿器的设计方法,后面单独写一篇文章。)

宫斗开始

首先淘汰fzero和roots这两个比较低端的函数,据说只支持单变量求解[1]

决赛圈还剩下solvevpasolvefsolve

  • solve:符号解或数值解,无需初始值,只需把方程等号改为双等号==。用法与vpasolve基本相同,感觉更为智能。
  • vpasolve:符号解或数值解,无需初始值,只需把方程等号改为双等号==。若有符号解时比较准,数值解经常无解或错解,慎用!
  • fsolve:仅数值解,必须给初值,方程组必须以函数句柄方式调用,右端为零。数值解比较准。

注:所谓解析解就是符号解;所谓函数句柄,可以理解为指针地址。

宠幸例子

已知参数:

wc = 2 * pi * 4e3;
gain_rise = 49.7481;
wz = 2 * pi * 100;

solve用例

syms kp ki
eqns = [20*log10(abs(kp + ki/(j*wc))) == gain_rise,
    ki/kp==wz];

[ki kp]=solve(eqns);

kp=double(kp)
ki=double(ki)

结果:

kp =
  307.0926
ki =
   1.9295e+05

vpasolve用例

syms kp ki
eqns = [20*log10(abs(kp + ki/(j*wc))) == gain_rise,
    ki/kp==wz];

[ki kp]=vpasolve(eqns)

结果:

ki =
192891.70190885358092200094503597 + 4821.8329924348312217466650244155i
kp =
306.99667840202430580932484824932 + 7.6741855550958895617299121076886i

fsolve用例

syms kp ki
eq1 = 20*log10(abs(kp + ki/(1i*wc))) - gain_rise;
eq2 = ki/kp - wz;
eqns = [eq1,eq2];

fun = @(vars) double(subs(eqns, [kp, ki], vars));
initial_guess = [1, 1];
sol = fsolve(fun, initial_guess);

kp = sol(1)
ki = sol(2)

结果:

kp =
  307.0924
ki =
   1.9295e+05

冠军加冕

用法上,solvevpasolve都十分简洁,fsolve由于句柄和初值的存在显得稍稍复杂,不过可以求助ChatGPT帮你写呀!

精度上,solvefsolve的结果都可以看作是正确的,vpasolve的复数解我也不知道是什么鬼,就算仅看实部,精度也不如其他两位小主,因此打入冷宫。

速度上,solvefsolve快。但fsolve真真是个很单纯的孩子,从迭代过程来看就是粗暴求解,用以检验会比较安心,而且其他两个无解的时候fsolve可能还会有解。

我宣布,solve是本届Matlab求解函数宫斗冠军。