为了解决电机传统直接转矩控制方法中存在转矩和磁链脉动大的问题,本文在研究异步发电机、正弦脉宽调制(SVPWM)、及直接转矩控制算法的基础上,提出了改进型异步发电机直接转矩控制算法。利用Matlab/Simulink仿真平台搭建了异步发电机直接转矩控制算法系统仿真模型,包括电机模块、测量模块、逆变模块、速度和转矩计算调节模块等,并进行系统的仿真分析。从结果可知,与传统异步发电机直接转矩控制算法相比较,改进型直接转矩控制系统控制精度高明显提高、响应速度得到改善、鲁棒特性好,证明了该控制算法的有效性与可行性。
2024-03-03 20:06:51 3.36MB
1
针对异步电机直接转矩控制系统转矩和定子磁链的脉动问题,设计了基于电压空间矢量脉宽调制(SVPWM)策略的异步电机直接转矩控制系统的模型和实验装置与基于离散空间电压矢量调制(DSVM)的方法并在MATLAB/SIMULINK环境下对其进行了仿真。仿真结果表明,这2种方法都可以明显减小转矩和磁链脉动,改善系统的动、静态性能,并且响应速度快、运行平稳。
1
目前所有的日志记录方式采用的都是同步的方式,即直接将日志写入文件。每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的方式,通过不让主线程去写日志文件而减少磁盘IO,避免并发下造成线程阻塞,从而减少不必要的性能损耗。
2024-02-26 11:06:42 214KB spring boot java spring
1
淘宝的页面很复杂,如果使用分析ajax或者js的方式,很麻烦 抓取淘宝‘美食’上面的所有食品信息 spider.py #encoding:utf8 import re from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.supp
2024-02-07 00:10:22 56KB
1
多线程异步加载大批量数据到Datagridview中,没次加载1000条数据。 引用DLL,调用方法: string sql = "select top {0} * from {2} where FItemID not in (select top {1} FItemID from {2})"; string tbName = "b_material"; Dictionary dic = new Dictionary(); dic.Add("sql", sql); dic.Add("tbName", tbName); dic.Add("sqlConn", "server=192.168.1.254;user=sa;pwd='';database=APS20091223114023"); DgvShowPager d = new DgvShowPager(this.dataGridView1, dic); d.ShowDataPager(); 不明白的可以加我QQ:253874510
1
异步电机滑模控制仿真模型
2024-01-26 15:27:51 39KB 异步电机 滑模控制
1
上传项目不支持Firefox,提示代码附件太大(1.4M),我写了30多分钟的描述全没了,太坑爹了。 10分有点贵,绝对原创,共2个代码文件300多行,下载请谨慎。你下载了,若绝对不爽在评论中说出来,不要让其他同学上当,如果觉得还可以也请留言。 代码采用多工作者多线程执行任务。通过暴露的方法往工作者传递消息,然后采用事件回调返回处理结果,实现的事件有OnThreadComplete,OnAddedTask,OnStart,OnSuccess,OnFailure,OnTimeout。 事件回调支持同步或异步,每工作者可以指定执行超时时间,避免线程阻塞死掉。队列采用线程安全的BlockingCollection,每组工作者用一个队列。委托采用Func来定义的,没有采用传统且不太好理解的Delegate。这让代码减少很多,也更容易理解。多线程应该采用消息中心来交换数据,这样就规避了线程同步交互,等待,阻塞等等,全部是异步调用,全部是接收消息工作,然后产生消息,线程间没有耦合,消息中心有很多成熟的方案如RabbitMQ, Redis(里面有简单的消息交换),微软有消息云服务等。如果应用不复杂,可以采用DB做个简单的消息中心,建议采用HTTP接口来获取与写入消息,方便将来升级重构消息中心。 开发环境VS2012,Framework4.0,代码注释量很大,如果你高兴这代码你可以随意蹂躏,如果你有建设性意见请告诉我。 下面是部分测试代码: //发送消息方法容器 var msgContainer = new Hashtable(); //创建并启动工作者 foreach (var key in workers.Keys) { //创建工作者 //启动5个线程,异步事件回调,方法执行20秒超时,程序跑起来有100个线程,由于引入超时控制,实际线程将达100+50 //下面的20个工作组,有5个是超时的,主要测试OnTimeout事件,你可以设置seleep的时间来控制 //我把sleep的时间设置的有点长,方便你测试 //测试的时候你会看见有异常,那是应为Timeout我采用的是Thread.Abort方法,这样才出发了ontimeout事件 var worker = new Sehui.Worker(5, key.ToString(), (Func)workers[key], false, new TimeSpan(0, 0, 20)); worker.OnStart += worker_OnEvent; worker.OnSuccess += worker_OnEvent; worker.OnFailure += worker_OnEvent; worker.OnTimeout += worker_OnEvent; //启动工作者 worker.Start(); //将增加消息方法放到Hashtable中 //这里我是偷懒,下面可以用循环的方式往线程中add message msgContainer.Add(key.ToString(), new Func(worker.AddTask)); } //向20个工作者发送消息,每个工作者发送20条消息 for (var i = 0; i < 20; i++) { for (var k = 0; k < 20; k++) { ((Func)msgContainer["SyncDb" + k])("[Work " + k + "] Message " + i); Console.WriteLine("send msg to worker{0},msgid:{1}", k, i); } }
2024-01-25 05:05:28 1.56MB Thread Func Delegate 异步事件
1
目前任务需要做一个界面程序,PyQt是非常方便的选择,QT丰富的控件以及python方便的编程。近期遇到界面中执行一些后台任务时界面卡死的情况,解决了在这里记录下。 PyQt PyQt简介 PyQt是Qt的python接口,PyQt的文档较少,但接口和函数可以完全参照Qt,继承了Qt中大量的控件以及信号机制,十分方便。以下简介一个基本的PyQt程序。 – 需要导入的类主要来自三个包 – from PyQt5.QtWidgets import 常用的控件 – PyQt5.QtCore 核心功能类,如QT,QThread,pyqtSignal – PyQt5.QtGui UI类,如QFont –
2024-01-23 00:02:54 61KB pyqt python python函数
1
易语言同步异步套接字模块源码,同步异步套接字模块,Call,取字节集指针,异步客户_初始,异步客户_销毁,异步客户_连接,异步客户_断开,异步客户_发送数据,异步客户_取回数据,异步客户_回调函数,同步客户_初始,同步客户_销毁,同步客户_连接,同步客户_断开,同步客户
2024-01-13 08:19:13 9KB 同步异步套接字模块 Call
1
VC6.0/2013下CAsyncSocket类异步实现服务器与客户端网络通信,Server支持多客户端并发 访问,支持大数据包传输。简单的现程安全队列ThreadSafeQueue;CServerSocket为服务端监听Socket类,CConnectSocket为连接至服务器的客户端Socket类;并发访问时只要封包大于1M以上数据包,性能基本可达到100M/S,完成普通的C/S服务完全没问题。本Demo基本上只需增加自己的数据处理就可直接应用于实际项目。
2024-01-10 21:36:32 152KB CAsyncSocket 多客户端并发
1