- 浏览: 70919 次
- 性别:
- 来自: 沈阳
-
文章分类
最新评论
1、数据流重导向
标准输入(stdin) :代码为 0 ,使用 < 或 << ;
标准输出(stdout):代码为 1 ,使用 > 或 >> ;
标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
一串指令的最左边一定是指令,而在 >,2>,< 右边的,必须是档案或装置才行!
• 1> :是将正确的数据输出到指定的地方去
• 2> :是将错误的数据输出到指定的地方去
[dmtsai@linux ~]$ find /home -name testing > list_right 2> list_error
如果我只要正确的数据,错误的信息我不要了。
[dmtsai@linux ~]$ find /home -name testing > list_right 2> /dev/null
如果我要将数据都写到同一个档案中。
[dmtsai@linux ~]$ find /home -name testing > list 2> list <==错误写法
[dmtsai@linux ~]$ find /home -name testing > list 2>&1 <==正确写法
那个 < 又是什么呀!?
[root@linux ~]# cat > catfile
testing
cat file test
<==这里按下 [ctrl]+d 结束输入来离开!
[root@linux ~]# cat > catfile < somefile
[root@linux ~]# cat > catfile <<eof
> This is a test testing
> OK now stop
> eof <==输入这个玩意儿,嘿!立刻就结束了!
[root@linux ~]# sync; sync; shutdown -h now
当前面的指令执行结果为正确 (例如:仅有 standard output 时),就可以接着执行后续的指令, 否则就予以略过!
[root@linux ~]# ls /tmp && touch /tmp/testingagin
那个 || 刚好完全跟 && 相反,当前一个指令有错误时,在 || 后面的指令才会被执行!
[root@linux ~]# ls /tmp/vbirding || touch /tmp/vbirding
以 ls 测试 /tmp/vbirding 是否存在,若存在则显示 "exist" ,若不存在,则显示 "not exist"!
ls /tmp/vbirding && echo "exist" || echo "not exist"
2、一些基本的管线命令指令介绍:
撷取命令: cut, grep
• cut
[root@linux ~]# cut -d'分隔字符' -f fields
[root@linux ~]# cut -c 字符区间
参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
• grep
[root@linux ~]# grep [-acinv] '搜寻字符串' filename
参数:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
排序命令: sort, wc, uniq
• sort
[root@linux ~]# sort [-fbMnrtuk] [file or stdin]
参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是 tab 键;
-k :以那个区间 (field) 来进行排序的意思;
• uniq
[root@linux ~]# uniq [-ic]
参数:
-i :忽略大小写字符的不同;
-c :进行计数
• wc
[root@linux ~]# wc [-lwm]
参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
范例二:我知道使用 last 可以输出登入者,但是 last 最后两行并非账号内容,
那么请问,我该如何以一行指令串取得这个月份登入系统的总人次?
[root@linux ~]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l
# 由于 last 会输出空白行与 wtmp 字样在最底下两行,因此,我利用
# grep 取出非空白行,以及去除 wtmp 那一行,在计算行数,就能够了解啰!
双向重导向: tee
[root@linux ~]# tee [-a] file
参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
字符转换命令: tr, col, join, paste, expand
• tr
[root@linux ~]# tr [-ds] SET1 ...
参数:
-d :删除讯息当中的 SET1 这个字符串;
-s :取代掉重复的字符!
DOS下面会自动在每行行为加入^M这个断行符号,这个时候我们可以使用这个tr来将^M去除。^M可以使用\r来替代
cat /etc/passwd | tr -d '\r' >/root/passwd.linux
• col
[root@linux ~]# col [-x]
参数:
-x :将 tab 键转换成对等的空格键
• join
[root@linux ~]# join [-ti12] file1 file2
参数:
-t :join 预设以空格符分隔数据,并且比对『第一个字段』的数据,
如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i :忽略大小写的差异;
-1 :这个是数字的 1 ,代表『第一个档案要用那个字段来分析』的意思;
-2 :代表『第二个档案要用那个字段来分析』的意思。
范例一:用 root 的身份,将 /etc/passwd 与 /etc/shadow 相关数据整合成一栏
[root@linux ~]# join -t ':' /etc/passwd /etc/shadow
范例二:我们知道 /etc/passwd 第四个字段是 GID ,那个 GID 记录在
/etc/group 当中的第三个字段,请问如何将两个档案整合?
[root@linux ~]# join -t ':' -1 4 /etc/passwd -2 3 /etc/group
• paste
[root@linux ~]# paste [-d] file1 file2
参数:
-d :后面可以接分隔字符。预设是以 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示来自 standard input 的资料的意思。
范例一:将 /etc/passwd 与 /etc/shadow 同一行贴在一起
[root@linux ~]# paste /etc/passwd /etc/shadow
范例二:先将 /etc/group 读出(用 cat),然后与范例一贴上一起!且仅取出前三行
[root@linux ~]# cat /etc/group|paste /etc/passwd /etc/shadow -|head -n 3
• expand
这玩意儿就是在将 [tab] 按键转成空格键
分割命令: split
[root@linux ~]# split [-bl] file PREFIX
参数:
-b :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;
-l :以行数来进行分割。
我的/etc/termcap七百多k,若想分成300KB一个文件怎么办?
cd /tmp;split -b 300k /etc/termcap termcap
ll -l termcap*
......termcapaa
......termcapab
如何将上面的小文件合成一个文件
cat termcap* >>tercapback
将使用ls -al /输出 的信息中,每10行记录成一个文件
ls -al / |split -l 10 - lsroot
结果
wc -l lsroot*
.........
参数代换: xargs
范例一:将 /etc/passwd 内的第一栏取出,仅取三行,使用 finger 这个指令将每个
账号内容秀出来
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs finger
范例二:同上,但是每次执行 finger 时,都要询问使用者是否动作?
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs -p finger
范例三:将所有的 /etc/passwd 内的账号都以 finger 查阅,但一次仅查阅五个账号
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -n 5 finger
范例四:同上,但是当分析到 lp 就结束这串指令?
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -e'lp' finger
关于减号 - 的用途
[root@linux ~]# tar -cvf - /home | tar -xvf -
上面这个例子是说:『我将 /home 里面的档案给他打包,但打包的数据不是纪录到档案,而是传送到 stdout; 经过管线后,将 tar -cvf - /home 传送给后面的 tar -xvf - 』。后面的这个 - 则是取用前一个指令的 stdout, 因此,我们就不需要使用 file 了!这是很常见的例子喔!注意注意!
标准输入(stdin) :代码为 0 ,使用 < 或 << ;
标准输出(stdout):代码为 1 ,使用 > 或 >> ;
标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
一串指令的最左边一定是指令,而在 >,2>,< 右边的,必须是档案或装置才行!
• 1> :是将正确的数据输出到指定的地方去
• 2> :是将错误的数据输出到指定的地方去
[dmtsai@linux ~]$ find /home -name testing > list_right 2> list_error
如果我只要正确的数据,错误的信息我不要了。
[dmtsai@linux ~]$ find /home -name testing > list_right 2> /dev/null
如果我要将数据都写到同一个档案中。
[dmtsai@linux ~]$ find /home -name testing > list 2> list <==错误写法
[dmtsai@linux ~]$ find /home -name testing > list 2>&1 <==正确写法
那个 < 又是什么呀!?
[root@linux ~]# cat > catfile
testing
cat file test
<==这里按下 [ctrl]+d 结束输入来离开!
[root@linux ~]# cat > catfile < somefile
[root@linux ~]# cat > catfile <<eof
> This is a test testing
> OK now stop
> eof <==输入这个玩意儿,嘿!立刻就结束了!
[root@linux ~]# sync; sync; shutdown -h now
当前面的指令执行结果为正确 (例如:仅有 standard output 时),就可以接着执行后续的指令, 否则就予以略过!
[root@linux ~]# ls /tmp && touch /tmp/testingagin
那个 || 刚好完全跟 && 相反,当前一个指令有错误时,在 || 后面的指令才会被执行!
[root@linux ~]# ls /tmp/vbirding || touch /tmp/vbirding
以 ls 测试 /tmp/vbirding 是否存在,若存在则显示 "exist" ,若不存在,则显示 "not exist"!
ls /tmp/vbirding && echo "exist" || echo "not exist"
2、一些基本的管线命令指令介绍:
撷取命令: cut, grep
• cut
[root@linux ~]# cut -d'分隔字符' -f fields
[root@linux ~]# cut -c 字符区间
参数:
-d :后面接分隔字符。与 -f 一起使用;
-f :依据 -d 的分隔字符将一段讯息分割成为数段,用 -f 取出第几段的意思;
-c :以字符 (characters) 的单位取出固定字符区间;
• grep
[root@linux ~]# grep [-acinv] '搜寻字符串' filename
参数:
-a :将 binary 档案以 text 档案的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
排序命令: sort, wc, uniq
• sort
[root@linux ~]# sort [-fbMnrtuk] [file or stdin]
参数:
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(预设是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是 tab 键;
-k :以那个区间 (field) 来进行排序的意思;
• uniq
[root@linux ~]# uniq [-ic]
参数:
-i :忽略大小写字符的不同;
-c :进行计数
• wc
[root@linux ~]# wc [-lwm]
参数:
-l :仅列出行;
-w :仅列出多少字(英文单字);
-m :多少字符;
范例二:我知道使用 last 可以输出登入者,但是 last 最后两行并非账号内容,
那么请问,我该如何以一行指令串取得这个月份登入系统的总人次?
[root@linux ~]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l
# 由于 last 会输出空白行与 wtmp 字样在最底下两行,因此,我利用
# grep 取出非空白行,以及去除 wtmp 那一行,在计算行数,就能够了解啰!
双向重导向: tee
[root@linux ~]# tee [-a] file
参数:
-a :以累加 (append) 的方式,将数据加入 file 当中!
字符转换命令: tr, col, join, paste, expand
• tr
[root@linux ~]# tr [-ds] SET1 ...
参数:
-d :删除讯息当中的 SET1 这个字符串;
-s :取代掉重复的字符!
DOS下面会自动在每行行为加入^M这个断行符号,这个时候我们可以使用这个tr来将^M去除。^M可以使用\r来替代
cat /etc/passwd | tr -d '\r' >/root/passwd.linux
• col
[root@linux ~]# col [-x]
参数:
-x :将 tab 键转换成对等的空格键
• join
[root@linux ~]# join [-ti12] file1 file2
参数:
-t :join 预设以空格符分隔数据,并且比对『第一个字段』的数据,
如果两个档案相同,则将两笔数据联成一行,且第一个字段放在第一个!
-i :忽略大小写的差异;
-1 :这个是数字的 1 ,代表『第一个档案要用那个字段来分析』的意思;
-2 :代表『第二个档案要用那个字段来分析』的意思。
范例一:用 root 的身份,将 /etc/passwd 与 /etc/shadow 相关数据整合成一栏
[root@linux ~]# join -t ':' /etc/passwd /etc/shadow
范例二:我们知道 /etc/passwd 第四个字段是 GID ,那个 GID 记录在
/etc/group 当中的第三个字段,请问如何将两个档案整合?
[root@linux ~]# join -t ':' -1 4 /etc/passwd -2 3 /etc/group
• paste
[root@linux ~]# paste [-d] file1 file2
参数:
-d :后面可以接分隔字符。预设是以 [tab] 来分隔的!
- :如果 file 部分写成 - ,表示来自 standard input 的资料的意思。
范例一:将 /etc/passwd 与 /etc/shadow 同一行贴在一起
[root@linux ~]# paste /etc/passwd /etc/shadow
范例二:先将 /etc/group 读出(用 cat),然后与范例一贴上一起!且仅取出前三行
[root@linux ~]# cat /etc/group|paste /etc/passwd /etc/shadow -|head -n 3
• expand
这玩意儿就是在将 [tab] 按键转成空格键
分割命令: split
[root@linux ~]# split [-bl] file PREFIX
参数:
-b :后面可接欲分割成的档案大小,可加单位,例如 b, k, m 等;
-l :以行数来进行分割。
我的/etc/termcap七百多k,若想分成300KB一个文件怎么办?
cd /tmp;split -b 300k /etc/termcap termcap
ll -l termcap*
......termcapaa
......termcapab
如何将上面的小文件合成一个文件
cat termcap* >>tercapback
将使用ls -al /输出 的信息中,每10行记录成一个文件
ls -al / |split -l 10 - lsroot
结果
wc -l lsroot*
.........
参数代换: xargs
范例一:将 /etc/passwd 内的第一栏取出,仅取三行,使用 finger 这个指令将每个
账号内容秀出来
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs finger
范例二:同上,但是每次执行 finger 时,都要询问使用者是否动作?
[root@linux ~]# cut -d':' -f1 < /etc/passwd |head -n 3| xargs -p finger
范例三:将所有的 /etc/passwd 内的账号都以 finger 查阅,但一次仅查阅五个账号
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -n 5 finger
范例四:同上,但是当分析到 lp 就结束这串指令?
[root@linux ~]# cut -d':' -f1 < /etc/passwd | xargs -p -e'lp' finger
关于减号 - 的用途
[root@linux ~]# tar -cvf - /home | tar -xvf -
上面这个例子是说:『我将 /home 里面的档案给他打包,但打包的数据不是纪录到档案,而是传送到 stdout; 经过管线后,将 tar -cvf - /home 传送给后面的 tar -xvf - 』。后面的这个 - 则是取用前一个指令的 stdout, 因此,我们就不需要使用 file 了!这是很常见的例子喔!注意注意!
发表评论
-
shell命令集
2016-03-16 10:36 4031、给一个变量赋值,用let,如: let num=1 ... -
Linux常用命令(4)
2016-03-16 09:51 5971、查看命令所在具体位置 which 文件 2、查看环 ... -
red hat的经验总结1
2016-01-13 16:44 5241、system-config-date 进入日期界面 2、在 ... -
SUSE服务启动顺序
2015-10-27 14:57 746SUSE 服务启动顺序的问 ... -
linux core文件的设置
2015-06-26 11:01 2442L一、前言: 有的程序可 ... -
linux字符集
2015-06-10 15:58 505一·查看字符集 字符集在系统中体现形式是一个环境变量,以Cen ... -
SAMBA配置(转)
2015-06-10 15:20 661Samba配置文件常用参数 ... -
Linux xargs命令
2015-03-02 16:41 665xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个 ... -
LINUX任务(jobs)详解(转载)
2015-03-01 14:34 623在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台。 ... -
很精彩的linux命令(转载)
2015-03-01 14:32 650博客分类: linux运维shell基础/命令/语法 1.按 ... -
Linux运维常用命令 (转载)
2015-03-01 14:27 8281 删除0字节文件 find-type f -size 0 ... -
shell编程之cut
2015-03-01 14:21 671cut用法 博客分类: shell基础/命令/语法 li ... -
Linux常用命令(3)
2015-02-27 16:29 6281、命令别名设置 alias,unalias ... -
vi 小技巧
2015-02-27 15:41 736vi可以同时编辑多个文件,多个文件间可以切换,并复制内容 如: ... -
Linux常用命令(2)
2014-12-01 16:06 7301、文件系统开机挂载配 ... -
Linux常用命令(1)
2014-11-12 16:18 4401、欢迎文字 /etc/issue 2、查看目前支持语言及 ... -
Linux 网桥配置命令:brctl(转)
2014-11-06 14:48 3890linux brctl Linux网关模式 ... -
Linux下创建光盘ISO文件
2014-11-06 14:40 705dd if=/dev/scd0 of=/1.iso -
Centos经验总结
2014-11-05 10:50 734centos查看系统版本 lsb_release -a ce ...
相关推荐
《鸟哥的Linux私房菜》是一本针对Linux初学者的经典教材,旨在为读者提供全面而深入的Linux基础知识。本书内容覆盖广泛,包括从计算机基础知识到Linux操作系统的核心概念,再到实际操作技能的培养,旨在帮助读者顺利...
在Linux中,Shell不仅是一个命令执行环境,它还提供了丰富的功能,如变量设定、数据流重定向、命令别名、历史命令记录等。 1. **硬件、核心与 Shell** 在计算机系统中,硬件执行实际的物理操作,而内核(Kernel)...
本书由国际发展研究中心(IDRC)和东南亚研究院(ISEAS)联合出版,旨在探讨亚洲背景下电子商务的发展与实践。IDRC自1970年起,致力于通过科学技术解决发展中国家的社会、经济和环境问题。书中详细介绍了IDRC的ICT4D项目,以及如何通过项目如Acacia、泛亚网络和泛美项目,在非洲、亚洲和拉丁美洲推动信息通信技术(ICTs)的影响力。特别强调了IDRC在弥合数字鸿沟方面所作出的贡献,如美洲连通性研究所和非洲连通性项目。ISEAS作为东南亚区域研究中心,专注于研究该地区的发展趋势,其出版物广泛传播东南亚的研究成果。本书还收录了电子商务在亚洲不同国家的具体案例研究,包括小型工匠和开发组织的电子商务行动研究、通过互联网直接营销手工艺品、电子营销人员的创新方法以及越南电子商务发展的政策影响。
少儿编程scratch项目源代码文件案例素材-Leap On.zip
内容概要:本文详细介绍了ANSYS Maxwell电磁仿真软件在高速无刷电机(特别是吸尘器电机)设计中的应用。主要内容涵盖电机设计中的常见挑战及其解决方案,如定子槽开口设计、气隙磁密控制、Halbach阵列的应用、定子斜槽角度选择、散热设计以及PWM控制策略等。文中通过具体实例展示了如何利用Maxwell进行参数化扫描、瞬态场仿真、温度场耦合仿真等操作,从而优化电机性能并提高效率。此外,还讨论了仿真与实际情况之间的差异及应对措施。 适合人群:从事电机设计、电磁仿真及相关领域的工程师和技术人员。 使用场景及目标:适用于希望深入了解高速无刷电机设计原理及优化方法的专业人士。目标是在实际项目中运用Maxwell电磁仿真工具,解决设计难题,提升产品性能。 其他说明:文章强调了仿真并非万能,但合理的仿真手段能够极大促进产品研发进程。文中提供了多个实用的Python和MATLAB脚本示例,帮助读者更好地理解和应用相关技术。
这是我记录的第一篇笔记和博客,我现在大一下,我想以此为契机激励自己记笔记,加深对特定知识的印象!目前我在学习黑马的Java,同时期也会学一些数据结构和相关算法,我也会将这部分笔记上传。最后我想说的是一些最近的感想 1.不要美化你没走过的路 2.来都来了那就坚持走下去,不给自己留遗憾!!
内容概要:本文详细介绍了如何利用Matlab构建并训练双输入深度学习模型,特别是针对不同长度的一维序列数据(如时序信号及其FFT频谱)。首先,作者展示了如何生成用于实验的仿真数据,接着深入探讨了网络架构的设计思路,包括采用CNN-LSTM处理时序特征以及纯CNN提取频域特征的方式。文中强调了数据预处理的重要性,如归一化处理,并提供了具体的训练选项设置方法。此外,还分享了一些实用的小贴士,如如何正确地进行模型评估和调整网络结构以适应不同的应用场景。最后,作者提到了一些常见的错误及解决办法,帮助读者避开潜在的陷阱。 适合人群:对深度学习感兴趣的科研工作者、研究生及以上水平的学生,尤其是那些希望将理论应用于实践的人群。 使用场景及目标:适用于需要同时处理多种类型数据的研究项目,如机械故障诊断、情感分析等领域。通过本教程的学习,读者能够掌握构建高效双输入深度学习模型的方法,从而提高数据分析的效果。 其他说明:本文不仅提供完整的代码示例,还包括了许多实践经验分享,有助于初学者更好地理解和应用所学知识。
内容概要:本文详细介绍了使用COMSOL进行三相电力变压器温度场与流体场耦合计算的具体步骤和技术要点。首先讨论了变压器温升问题的重要性和现有仿真与实测数据之间的偏差,接着阐述了电磁-热-流三场耦合建模的难点及其解决方法。文中提供了关键的材料属性设置代码,如变压器油的密度和粘度随温度变化的关系表达式,并强调了网格划分、求解器配置以及后处理阶段需要注意的技术细节。此外,还分享了一些实用的经验和技巧,例如采用分离式步进求解策略、优化网格划分方式等,确保模型能够顺利收敛并获得精确的结果。最后,作者推荐了几种常用的湍流模型,并给出了具体的参数设置建议。 适用人群:从事电力系统设计、变压器制造及相关领域的工程师和技术人员,特别是那些希望深入了解COMSOL软件在复杂多物理场耦合计算方面应用的人群。 使用场景及目标:适用于需要对变压器内部温度分布和油流情况进行精确模拟的研究或工程项目。主要目的是提高仿真精度,使仿真结果更加贴近实际情况,从而指导产品设计和优化运行参数。 其他说明:文中不仅包含了详细的理论解释和技术指导,还提供了一些实际案例供读者参考。对于初学者来说,可以从简单的单相变压器开始练习,逐步掌握复杂的三相变压器建模技能。同时,作者提醒读者要注意单位的一致性和材料属性的准确性,这是避免许多常见错误的关键所在。
PSD信号处理电路(PCB 原理图 封装库)亲测可用.zip
少儿编程scratch项目源代码文件案例素材-3D游戏.zip
信号分析,可导入外部信号文件 分析信号合成频率。 也可设置信号频率合成信号源。 信号合成,可导入外部频率文件 合成信号数据。也可调整频率数值合成信号源。 应用于通信领域, 光学领域,声波领域,信号和频率通过图形进行展示,所见所得,
少儿编程scratch项目源代码文件案例素材-3D 汽车.zip
内容概要:本文详细介绍了永磁同步电机(PMSM)基于磁场定向控制(FOC)的四种不同控制策略及其Simulink仿真模型。首先,经典双闭环PI控制提供了稳定的基础控制方式,适用于大多数应用场景。其次,电流滞环控制采用Bang-Bang控制策略,虽然响应速度快但能耗较高。第三种方法是滑模转速控制,利用非线性切换函数提高系统的抗扰动能力,但在稳态时存在轻微抖振。最后,PR控制在静止坐标系上实现了高精度的电流跟踪,特别适合固定频率应用。每种控制方法都有详细的参数设定和仿真波形展示,帮助读者深入理解各控制策略的特点和适用范围。 适合人群:从事电机控制系统研究与开发的技术人员,尤其是有一定MATLAB/Simulink基础的研发人员。 使用场景及目标:①掌握永磁同步电机FOC控制的基本原理和技术细节;②通过具体实例和仿真模型验证不同控制策略的效果;③选择最适合特定应用场景的控制方法并进行优化。 其他说明:文中还提到了一些实用技巧,如参数调整的经验法则、常见问题的解决方案以及仿真环境配置注意事项。附带的参考文献有助于进一步深入了解相关理论背景。
内容概要:本文详细介绍了利用模型预测控制(MPC)实现无人艇分布式编队协同控制的方法和技术。首先,通过简化的动力学模型和MATLAB代码展示了无人艇的基本行为预测。接着,深入探讨了编队协同控制的关键要素,包括代价函数的设计、信息交换机制以及分布式MPC的具体实现步骤。文中还提供了具体的Python代码示例,涵盖了从单个无人艇的动力学建模到多智能体之间的协作控制。此外,作者分享了一些实用技巧,如如何处理通信延迟、传感器噪声等问题,并展示了仿真效果,证明了所提出方法的有效性和鲁棒性。 适合人群:对无人艇编队控制、模型预测控制(MPC)、分布式系统感兴趣的科研人员、工程师及高校学生。 使用场景及目标:适用于研究和开发无人艇编队控制系统,特别是希望通过分布式控制实现高效、灵活的编队任务。目标是在复杂的海洋环境中,使无人艇能够自主完成编队、跟踪指定路径并应对各种干扰因素。 其他说明:文中提供的代码片段和理论解释有助于理解和实现无人艇编队控制的实际应用。建议读者在实验过程中结合实际情况进行参数调整和优化。
内容概要:本文详细介绍了两种成熟的220V转12V工业电源设计方案,分别是6W和12W的反激式电源设计。文中不仅提供了详细的电路设计参数,如变压器绕制方法、元件选择、PCB布局技巧,还分享了许多实用的经验和技术细节,确保设计方案能够顺利通过相关认证。同时,文章对比了两种方案的成本和性能差异,帮助读者在实际应用中做出合适的选择。 适合人群:从事电源设计的工程师,尤其是对220V转12V工业电源设计感兴趣的初学者和有一定经验的研发人员。 使用场景及目标:适用于需要将220V交流电转换为12V直流电的应用场合,如工业设备、智能家居、医疗设备等。目标是提供高效、稳定且成本可控的电源解决方案。 其他说明:文章强调了变压器设计和EMI测试中的注意事项,以及如何在保证性能的前提下降低成本。此外,还提到了一些常见的认证问题及其解决办法。
内容概要:本文探讨了基于储能电站服务的冷热微网系统双层优化模型,旨在解决储能配置和运行调度在不同时间尺度下的优化问题。文中首先介绍了双层规划模型的构建,上层负责长时间尺度的储能配置,涉及储能系统的容量、充放电功率等关键参数;下层则专注于短时间尺度的微网优化运行,涵盖太阳能、风力发电等能源设备的功率输出。接着,文章阐述了如何通过KKT条件将双层模型转化为单层模型,并使用大M法将其线性化处理,以便于求解。最后,通过使用Gurobi等求解器进行求解,实现了储能系统的优化配置和高效运行。 适合人群:从事能源领域的研究人员和技术人员,尤其是对储能系统和微网优化感兴趣的读者。 使用场景及目标:适用于需要优化储能配置和微网运行的企业或研究机构,目标是提高能源利用效率,降低成本,促进可持续能源的发展。 其他说明:文章提供了详细的Python代码示例,帮助读者理解和实现双层优化模型的具体步骤。此外,还讨论了一些实际应用中的注意事项,如大M值的选择和求解器的配置等。
内容概要:本文介绍了永磁同步电机(PMSM)的最大转矩电流比(MTPA)控制和弱磁控制的MATLAB/Simulink仿真模型及其设计原理。首先阐述了这两种控制方式的背景和技术意义,接着详细解释了MTPA控制和弱磁控制的具体实现方法,包括关键公式和代码片段。然后展示了如何在Simulink中构建完整的仿真模型,涵盖各个控制模块的搭建,如电流环、速度环的PI调节器等。最后通过仿真结果分析验证了所提出的控制策略的有效性和优越性。 适合人群:从事电机控制系统研究的技术人员、高校相关专业师生、对永磁同步电机控制感兴趣的工程技术人员。 使用场景及目标:适用于需要深入了解并掌握永磁同步电机高性能控制技术的研究人员,帮助他们理解和实现高效的电机控制策略,特别是在工业自动化、电动汽车等领域。 其他说明:文中提供了详细的代码示例和仿真波形图,有助于读者更好地理解和复现实验结果。同时指出了调试过程中可能遇到的问题及解决方案,便于初学者避免常见错误。
内容概要:本文详细介绍了利用Matlab/Simulink进行异步电机调速仿真的具体实现方法。首先探讨了最经典的恒压频比(V/F)开环控制系统,通过设置三相电源模块、V/F控制器和SVPWM逆变器,实现了电压和频率的线性增长,展示了开环系统在不同负载情况下的性能特点。接着引入了更为复杂的转差频率闭环控制方案,通过加入转速外环和转差频率内环,以及PID调节器,显著提高了系统的稳定性,特别是在负载突变时的表现。最后讨论了SVPWM控制的优势,强调其在改善电压波形质量和降低谐波方面的优越性。 适合人群:从事电机控制领域的研究人员和技术人员,尤其是有一定Matlab/Simulink基础的工程师。 使用场景及目标:适用于需要深入了解异步电机调速原理和仿真实现的研究项目。主要目标是掌握V/F开环和转差频率闭环两种控制方式的具体实现步骤,理解各自的特点和应用场景,同时学会优化系统参数以提高性能。 其他说明:文中提供了详细的代码片段和仿真技巧,帮助读者更好地理解和应用相关理论。建议读者在实践中结合实际硬件参数进行调整,确保仿真结果的准确性。