- 浏览: 962210 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
Io (Input,output)流 1.Io流用来处理设备之间的数据传输,java对数据的传输是通过流的方式,java用于操作流的对象在Io包中,按流操作数据分为两种:字节流,字符流 按流的流向:输入流,输出流 如果是音频文件、图片、歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点. 字节流可用于任何类型的对象,包括二进制对象,而字符流只能处理字符或者字符串; 2. 字节流提供了处理任何类型的IO操作的功能,但它不能直接处理Unicode字符,而字符流就可以。 Io流基类: 1.字节流的抽象基类: InputStream,OutputStream 子类FileInputStream 字符流的基类: Reader,Writer 子类FileReader 处理文本文件用字符流 FileReader, FileWriter 图片属于二进制数据用 InputStream ,OutputStream 装饰模式: bufferReader(增强,可以一次读一行) fileReader(一次读一个) 装饰设计模式:当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的对象,并提供加强功能 那么自定义的该类成为装饰类 装饰设计模式: 当想要对已有的对象进行功能增强时, 可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。 那么自定义的该类称为装饰类。 装饰与继承的区别: 装饰模式比继承要灵活。避免了继承体系臃肿。 而且降低了类于类之间的关系。 多态::“一个接口,多种实现”,就是同一种事物表现出的多种形态。 有Stream 的是字节流 二进制转十进制 InputStreamReader 将字节流转换为字符流 OutputStreamWriter 将字符流转换为字节流 内部类可以访问外部类的对象 线程互斥一定是同一个对象 外部类怎样调用类部类的方法 AtomicInteger 任何线程死了,怎样再启动 ReadWriteLock ReentrantReadWriteLock Condition 线程的同步,安全,什么时候用线程异步 MyReader//专门用于读取数据的类。 |--MyTextReader |--MyBufferTextReader |--MyMediaReader |--MyBufferMediaReader |--MyDataReader |--MyBufferDataReader class MyBufferReader { MyBufferReader(MyTextReader text) {} MyBufferReader(MyMediaReader media) {} } 上面这个类扩展性很差。 找到其参数的共同类型。通过多态的形式。可以提高扩展性。 class MyBufferReader extends MyReader { private MyReader r; MyBufferReader(MyReader r) {} } MyReader//专门用于读取数据的类。 |--MyTextReader |--MyMediaReader |--MyDataReader |--MyBufferReader 以前是通过继承将每一个子类都具备缓冲功能。 那么继承体系会复杂,并不利于扩展。 现在优化思想。单独描述一下缓冲内容。 将需要被缓冲的对象。传递进来。也就是,谁需要被缓冲,谁就作为参数传递给缓冲区。 这样继承体系就变得很简单。优化了体系结构。 装饰模式比继承要灵活。避免了继承体系臃肿。 而且降低了类于类之间的关系。 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强功能。 所以装饰类和被装饰类通常是都属于一个体系中的。 装饰类通常会通过构造方法接收被装饰的对象。 并基于被装饰的对象的功能,提供更强的功能。 装饰与继承的区别: 装饰模式比继承要灵活。避免了继承体系臃肿。 而且降低了类于类之间的关系。 有Stream 的是字节流 二进制转十进制 InputStreamReader 将字节流转换为字符流 OutputStreamWriter 将字符流转换为字节流 字符流和字节流: 字节流两个基类: InputStream OutputStream FileWriter fw = new FileWriter("c:\\demo.txt"); //刷新流对象中的缓冲中的数据。 //将数据刷到目的地中。 //fw.flush(); //关闭流资源,但是关闭之前会刷新一次内部的缓冲中的数据。 //将数据刷到目的地中。 //和flush区别:flush刷新后,流可以继续使用,close刷新后,会将流关闭。 字符流两个基类: Reader Writer //字符流的操作 public static void copy_2() { FileWriter fw = null; FileReader fr = null; try { fw = new FileWriter("c:\\SystemDemo_copy.txt"); fr = new FileReader("c:\\SystemDemo.java"); char[] buf = new char[1024]; int len = 0; while((len=fr.read(buf))!=-1) { fw.write(buf,0,len); } } catch (IOException e) { throw new RuntimeException("读写失败"); } finally { if(fr!=null) try { fr.close(); } catch (IOException e) { } if(fw!=null) try { fw.close(); } catch (IOException e) { } } } 递归要注意: 1,限定条件。 2,要注意递归的次数。尽量避免内存溢出。 递归例题: public static void showDir(File dir,int level) { System.out.println(getLevel(level)+dir.getName()); level++; File[] files = dir.listFiles(); for(int x=0; x<files.length; x++) { if(files[x].isDirectory()) showDir(files[x],level); else System.out.println(getLevel(level)+files[x]); } } public static int getSum(int n) { if(n==1) return 1; return n+getSum(n-1); } String str = new String(buf,0,len); /*====第十三题================================== 找出一个整数数组{2,4,1,4,3,2,4,3,2}出现次数最多的数。 */ class Test13 { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); int[] arr = {2,4,1,4,3,2,4,3,2,4}; int count = 0; int maxcount = 1; for(int x=0; x<arr.length; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[x]==arr[y]) count++; } if(count>maxcount) { sb.delete(0,sb.length()); sb.append(arr[x]+" "); maxcount = count; } else if(count==maxcount) { sb.append(arr[x]+" "); } count = 0; } System.out.println(sb); } } 在流操作规律讲解时: 源设备, 键盘 System.in,硬盘 FileStream,内存 ArrayStream。 目的设备: 控制台 System.out,硬盘FileStream,内存 ArrayStream。 编码:字符串变成字节数组。 解码:字节数组变成字符串。 String-->byte[]; str.getBytes(charsetName); byte[] -->String: new String(byte[],charsetName); 用流的读写思想来操作数据。 流应用的小结: 1.流是用来处理数据的 2.处理数据时,一定要明确数据源,与数据目的地 流操作的基本规律: 最痛苦的就是流对象有很多,不知道该用哪一个。 通过三个明确来完成。 1,明确源和目的。 源:输入流。InputStream Reader 目的:输出流。OutputStream Writer。 2,操作的数据是否是纯文本。 是:字符流。 不是:字节流。 3,当体系明确后,在明确要使用哪个具体的对象。 通过设备来进行区分: 源设备:内存,硬盘。键盘 目的设备:内存,硬盘,控制台。 1,将一个文本文件中数据存储到另一个文件中。复制文件。 源:因为是源,所以使用读取流。InputStream Reader 是不是操作文本文件。 是!这时就可以选择Reader 这样体系就明确了。 接下来明确要使用该体系中的哪个对象。 明确设备:硬盘。上一个文件。 Reader体系中可以操作文件的对象是 FileReader 是否需要提高效率:是!。加入Reader体系中缓冲区 BufferedReader. FileReader fr = new FileReader("a.txt"); BufferedReader bufr = new BufferedReader(fr); 目的:OutputStream Writer 是否是纯文本。 是!Writer。 设备:硬盘,一个文件。 Writer体系中可以操作文件的对象FileWriter。 是否需要提高效率:是!。加入Writer体系中缓冲区 BufferedWriter FileWriter fw = new FileWriter("b.txt"); BufferedWriter bufw = new BufferedWriter(fw); ************** 扩展一下,想要把录入的数据按照指定的编码表(utf-8),将数据存到文件中。 目的:OutputStream Writer 是否是存文本?是!Writer。 设备:硬盘。一个文件。使用 FileWriter。 但是FileWriter是使用的默认编码表。GBK. 但是存储时,需要加入指定编码表utf-8。而指定的编码表只有转换流可以指定。 所以要使用的对象是OutputStreamWriter。 而该转换流对象要接收一个字节输出流。而且还可以操作的文件的字节输出流。FileOutputStream,FileInputStream(两个转换流) 要下载图片,文本时一般要用到转换流(FileInputStream,FileOutputStream) OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("d.txt"),"UTF-8"); 需要高效吗?需要。 BufferedWriter bufw = new BufferedWriter(osw); 所以,记住。转换流什么使用。字符和字节之间的桥梁,通常,涉及到字符编码转换时, 需要用到转换流。 -----------------------------------网络编程-------------------------------------------- 1.网络模型:osi参考模型,Tcp/Ip参考模型 2.网络通讯要素:1.Ip地址,端口号,传输协议(常用协议,TCP,UDP) UDP: 1.将数据与源的目的封装在数据包中,不需要建立连接 2.每个数据包的大小限制在64k内 3.不需要建立连接,速度快 4.因无连接,是不可靠协议 TCP: 1.建立连接形成传输数据的通道 2.在连接中进行大数据传输 3.通过三次完成连接,是可靠协议 4.必须建立连接,效率低 (1).Socket: 1.Socket是为网络服务的一种机制 2.通信的两端都有Socket 3.网络通信就是Socket通信 4.数据在两个Socket间通过IO传输 (2)UDP传输 1.DatagramSocket与DatagramPacket 2.建立发送端,接受端 3建立数据包 4.调用Socket的发送接受方法 5.关闭Socket 在发送端,要在数据包对象中明确目的地 IP及端口。 DatagramSocket ds = new DatagramSocket(); byte[] by = “hello,udp”.getBytes(); DatagramPacket dp = new DatagramPacket(by,0,by.length, InetAddress.getByName(“127.0.0.1”),10000); ds.send(dp); ds.close(); 在接收端,要指定监听的端口。 DatagramSocket ds = new DatagramSocket(10000); byte[] by = new byte[1024]; DatagramPacket dp = new DatagramPacket(by,by.length); ds.receive(dp); String str = new String(dp.getData(),0,dp.getLength()); System.out.println(str+"--"+dp.getAddress()); ds.close(); TCP传输 1. Socket和ServerSocket 2. 建立客户端和服务器端 3. 建立连接后,通过Socket中的IO流进行数 据的传输 4. 关闭socket 基本思路(客户端) 1. 客户端需要明确服务器的ip地址以及端口,这样才 可以去试着建立连接,如果连接失败,会出现异 常。 2. 连接成功,说明客户端与服务端建立了通道,那么 通过IO流就可以进行数据的传输,而Socket对象已 经提供了输入流和输出流对象,通过 getInputStream(),getOutputStream()获取即可。 3. 与服务端通讯结束后,关闭Socket。 基本思路(服务端) 1. 服务端需要明确它要处理的数据是从哪个 端口进入的。 2. 当有客户端访问时,要明确是哪个客户 端,可通过accept()获取已连接的客户端 对象,并通过该对象与客户端通过IO流进 行数据传输。 3. 当该客户端访问结束,关闭该客户端。 客户端 1. 通过Socket建立对象并指定要连接的服务 端主机以及端口。 Socket s = new Socket(“192.168.1.1”,9999); OutputStream out = s.getOutputStream(); out.write(“hello”.getBytes()); s.close(); 服务端 ? 建立服务端需要监听一个端口 ServerSocket ss = new ServerSocket(9999); Socket s = ss.accept (); InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int num = in.read(buf); String str = new String(buf,0,num); System.out.println(s.getInetAddress().toString()+”:”+str); s.close(); ss.close(); Tcp传输最容易出现的问题 1. 客户端连接上服务端,两端都在等待,没 有任何数据传输。 2. 通过例程分析: 3. 因为read方法或者readLine方法是阻塞式。 4. 解决办法: 自定义结束标记 使用shutdownInput,shutdownOutput方法。 package cn.itcast.day23; 1.(网络编程Socket)综合例题: /* 编写一个聊天程序。 有收数据的部分,和发数据的部分。 这两部分需要同时执行。 那就需要用到多线程技术。 一个线程控制收,一个线程控制发。 因为收和发动作是不一致的,所以要定义两个run方法。 而且这两个方法要封装到不同的类中。 */ import java.io.*; import java.net.*; class Send implements Runnable { private DatagramSocket ds; public Send(DatagramSocket ds) { this.ds = ds; } public void run() { try { BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in)); String line = null; while((line=bufr.readLine())!=null) { byte[] buf = line.getBytes(); DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.255"),10002); ds.send(dp); if("886".equals(line)) break; } } catch (Exception e) { throw new RuntimeException("发送端失败"); } } } class Rece implements Runnable { private DatagramSocket ds; public Rece(DatagramSocket ds) { this.ds = ds; } public void run() { try { while(true) { byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf,buf.length); ds.receive(dp); String ip = dp.getAddress().getHostAddress(); String data = new String(dp.getData(),0,dp.getLength()); if("886".equals(data)) { System.out.println(ip+"....离开聊天室"); break; } System.out.println(ip+":"+data); } } catch (Exception e) { throw new RuntimeException("接收端失败"); } } } class ChatDemo { public static void main(String[] args) throws Exception { DatagramSocket sendSocket = new DatagramSocket(); DatagramSocket receSocket = new DatagramSocket(10002); new Thread(new Send(sendSocket)).start(); new Thread(new Rece(receSocket)).start(); } } /*====第十三题================================== 找出一个整数数组{2,4,1,4,3,2,4,3,2}出现次数最多的数。 */ class Test13 { public static void main(String[] args) { StringBuilder sb = new StringBuilder(); int[] arr = {2,4,4,4,3,2,4,3,3,4}; int count = 0; int maxcount = 1; for(int x=0; x<arr.length; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[x]==arr[y]) count++; } if(count>maxcount) { sb.delete(0,sb.length()); sb.append(arr[x]+" "); maxcount = count; } else if(count==maxcount) { sb.append(arr[x]+" "); } count = 0; } System.out.println(sb); } } /*====第十六题================================== 已知文件a.txt文件中的内容为“bcdeadferwplkou”, 请编写程序读取该文件内容,并按照自然顺序排序后输出到b.txt文件中。 即b.txt中的文件内容应为“abcd…………..”这样的顺序。 */ import java.io.*; import java.util.*; class Test16 { public static void main(String[] args) throws Exception { /* BufferedReader bufr = new BufferedReader(new FileReader("a.txt")); String line = bufr.readLine(); char[] arr = line.toCharArray(); Arrays.sort(arr); BufferedWriter bufw = new BufferedWriter(new FileWriter("b.txt")); bufw.write(arr); bufw.close(); bufr.close(); */ writeFile(); } public static void writeFile()throws Exception { FileReader fr = new FileReader("a.txt"); CharArrayWriter chw = new CharArrayWriter(); int ch = 0; while((ch=fr.read())!=-1) { if(ch=='\r' || ch=='\n') continue; chw.write(ch); } char[] arr = chw.toCharArray(); Arrays.sort(arr); FileWriter fw = new FileWriter("b.txt"); fw.write(arr); fw.close(); fw.close(); } } package cn.itcast.day24; /*====第十八题================================== 在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。 但对应的字节数不同,一个汉字占两个字节。 定义一个方法,按照最大的字节数来取子串。 如:对于“ab你好”,如果取三个字节,那么子串就是ab与“你”字的半个, 那么半个就要舍弃。如果去四个字节就是“ab你”,取五个字节还是“ab你”. 思路: 汉字的默认编码gbk。 所以一个汉字两个字节。都是负数。 只有判断最后一个字节是否是负数。 如果是,就往前继续看有多少负数。如果是偶数个,不舍弃。 如果是奇数个,即舍弃最后一个字节。 步骤: 1,将字符串变成字节数组。 2,定义计数器,记录负数的个数。 3,在通过计数器的奇偶来判断是否舍弃。 */ class Test18 { public static void main(String[] args) { String s = cutString("abc你好kk谢谢",7); System.out.println(s); } public static String cutString(String str,int len) { byte[] arr = str.getBytes(); int count = 0; for(int x = len-1; x>=0; x--) { if(arr[x]<0) { count++; } else break; } if(count%2==0) return new String(arr,0,len); else return new String(arr,0,len-1); } } package cn.itcast.day24; /* 需求:上传图片。 */ /* 客户端。 1,服务端点。 2,读取客户端已有的图片数据。 3,通过socket 输出流将数据发给服务端。 4,读取服务端反馈信息。 5,关闭。 */ import java.io.*; import java.net.*; class PicClient { public static void main(String[] args)throws Exception { Socket s = new Socket("192.168.1.254",10007); FileInputStream fis = new FileInputStream("c:\\1.bmp"); OutputStream out = s.getOutputStream(); byte[] buf = new byte[1024]; int len = 0; while((len=fis.read(buf))!=-1) { out.write(buf,0,len); } //告诉服务端数据已写完 s.shutdownOutput(); InputStream in = s.getInputStream(); byte[] bufIn = new byte[1024]; int num = in.read(bufIn); System.out.println(new String(bufIn,0,num)); fis.close(); s.close(); } } /* 服务端 */ class PicServer { public static void main(String[] args) throws Exception { ServerSocket ss = new ServerSocket(10007); Socket s = ss.accept(); InputStream in = s.getInputStream(); FileOutputStream fos = new FileOutputStream("server.bmp"); byte[] buf = new byte[1024]; int len = 0; while((len=in.read(buf))!=-1) { fos.write(buf,0,len); } OutputStream out = s.getOutputStream(); out.write("上传成功".getBytes()); fos.close(); s.close(); ss.close(); } } -------------------------------------URL的使用------------------------------------- URL url = new URL("http://www.sina.com.cn/"); URLConnection conn = url.openConnection(); //System.out.println(conn); InputStream in = conn.getInputStream(); byte[] buf = new byte[1024]; int len = in.read(buf); System.out.println(new String(buf,0,len));
相关推荐
"H6逆变器拓扑:离网并网仿真模型研究,支持多模式功率调节与共模电流抑制",#H6逆变器拓扑并离网仿真模型 逆变器拓扑为:h6逆变器拓扑。 仿真说明: 1.离网时支持非单位功率因数负载。 2.并网时支持功率因数调节。 3.具有共模电流抑制能力(共模电压稳定在Udc 2)。 4.有两种滤波器版本(LC LCL)。 5.LC版本下,参考电流20A时所对应的电流THD约为1%。 此外,采用PR单环控制,具有sogipll锁相环,lcl滤波器。 注:(V0001) Plecs版本4.7.3及以上 ,H6逆变器拓扑;离网仿真;并网仿真;非单位功率因数负载;功率因数调节;共模电流抑制;共模电压稳定;滤波器版本;LC LCL滤波器;PR单环控制;sogipll锁相环;Plecs版本4.7.3,H6逆变器拓扑的并离网仿真模型
大厂PFC与全桥LLC集成变频控制的两相交错TCM图腾柱PWM代码实现方法及优化策略,大厂量产的两相交错TCM图腾柱变频控制PFC+全桥LLC源代码 PFC可通过变频控制实现软开关 ,两相交错TCM; 图腾柱变频控制; PFC; 全桥LLC; 软开关。,大厂高频两相交错TCM图腾柱PFC+全桥LLC变频控制源代码
台达PLC高效自动追剪系统:自动计算,稳定运行,可靠编程的自动化解决方案,台达PLC追剪追剪追剪加+剪切 ,编码器追踪送料速度和送料长度,程序可设置滚轮直径,编码器分辨率,电机分辨率及丝杠导程。 根据输入参数自动计算。 程序带手动正反转,自动追剪切断,带手动复位及回原点,调节方便。 实用已在机床上稳定运行两年,程序成熟可靠,程序是我自己写的算法,时请认准我本人,其他人均为盗版,盗版需谨慎。 台达plc,触摸屏用中达一体机触摸屏。 ,核心关键词:台达PLC;追剪;编码器追踪;送料速度和送料长度;程序设置;滚轮直径;电机分辨率;丝杠导程;自动计算;手动正反转;自动追剪切断;手动复位;回原点;程序成熟可靠;中达一体机触摸屏。,"台达PLC自动化追剪系统:精确编码追踪与手动控制集成"
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
# 基于Arduino的BSides Cheltenham 2024 UFO徽章系统 ## 项目简介 这是一个为BSides Cheltenham 2024定制的UFO徽章系统项目。项目包含电路板设计、Arduino代码以及配件清单等。通过此项目,参与者可以制作自己的专属徽章,体验科技与传统结合的乐趣。 ## 项目的主要特性和功能 1. 电路板设计使用Eagle工具设计的电路板,包括PCB文件和元件布局。 2. Arduino代码提供基于ATTiny402微控制器的Arduino代码,用于驱动徽章的硬件功能。 3. 定制设计文件上传了原始矢量设计文件,可根据需要进行修改和个性化定制。 4. 可定制化强可以通过简单的修改代码和更换硬件实现多种功能,比如加入LED灯显示效果、按键交互等。 ## 安装使用步骤 以下步骤假设用户已经下载了本项目的源码文件 1. 获取源码文件下载项目源码文件并解压。
基于西门子S7-200 PLC与组态王软件的洗衣机控制系统设计优化方案 No.710,No.710 基于西门子S7-200 PLC和组态王组态洗衣机控制系统设计 ,基于西门子S7-200 PLC; 洗衣机控制系统设计; 组态王组态; 控制系统设计。,西门子PLC与组态王洗衣控制系统的设计与实施。
2024免费毕业设计成品,包括源码+数据库+往届论文资料 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
"西门子224XP与昆仑通态触摸屏结合的螺杆式空压机工频运行系统:程序注释详尽,直接应用于工程实践的变频机替代方案",螺杆式空压机工频运行,变频机不能用使用西门子224xp 十昆仑通态触摸屏,程序有注释,可直接用于工程 ,螺杆式空压机; 工频运行; 变频机; 不可用; 西门子224xp; 昆仑通态触摸屏; 程序注释; 工程使用,"西门子224XP+昆仑通态触摸屏:螺杆空压机工频运行程序"
基于CNN-BiLSTM-SE注意力机制的时序预测模型:MATLAB环境下的数据回归分析与应用评估,基于卷积神经网络-双向长短时记忆网络结合SE注意力机制的时间序列预测(CNN-BiLSTM-SE) 基于MATLAB环境 替自己的数据即可 基本流程:首先通过卷积神经网络CNN进行特征提取,然后通过通道注意力机制SE对不同的特征赋予不同的权重,最后通过双向长短时记忆网络BiLSTM进行时间序列预测 数据回归预测评价指标为RMSE MAE MBE R2 ,核心关键词:卷积神经网络(CNN); 双向长短时记忆网络(BiLSTM); SE注意力机制; 时间序列预测; MATLAB环境; 特征提取; 权重赋予; 数据回归预测; 评价指标(RMSE、MAE、MBE、R2)。,CNN-BiLSTM-SE注意力机制:MATLAB环境下的时间序列预测基本流程
"MATLAB R2018A中基于超高斯全自动组织图像盲彩色反卷积方法研究——一种下采样预设值优化策略及参数设定",MATLAB环境下基于超高斯全自动组织图像盲彩色反卷积方法 算法运行环境为MATLAB R2018A,压缩包=数据+代码+参考。 opts.prescale = 1; %% downsampling opts.xk_iter = 5; %% the iterations opts.k_thresh = 1 20; opts.kernel_size = 51; ,MATLAB;超高斯全自动组织图像盲彩色反卷积方法;R2018A;压缩包;参数设置;opts.prescale;opts.xk_iter;opts.k_thresh;opts.kernel_size,MATLAB超高斯图像盲彩色反卷积算法v1.0
基于Omron PLC与MCGS组态的5层电梯控制系统优化设计:细节分析与工程实现,No.778 基于Omron欧姆龙PLC和MCGS组态5层五层电梯控制系统设计 ,基于Omron PLC; MCGS组态; 5层电梯; 控制系统设计,Omron PLC与MCGS组态五层电梯控制系统设计
"风能储能协同运行模型:永磁风机与储能系统的高效整合及控制策略研究【含详细参数选择与建模过程参考】",风力发电+储能并网协同运行模型【含个人笔记、参数选择参考资料】 包含永磁风机发电机、储能系统、单极单相并离网逆变器及其各自控制系统(也可以按照需求改为三相并网) 永磁直驱风机:机侧变流器采用转速外环电流内环的双闭环控制策略,爬山搜索法实现最大功率点跟踪控制。 储能电池采用buck-boost双向DCDC变器 控制策略采用电压外环电流内环双闭环控制 稳定直流母线电压400V恒定,电压纹波<1% 逆变并网采用单极调制,开关损耗大幅降低 逆变器采用电网电压前馈、电流环、锁相环控制,对于电网中含有的三次谐波有明显的抗干扰效果。 并网电流THD低至1.39%,满足并网要求 附带参考资料、建模过程参考文件夹(万字以上),含参数计算,亦有本人笔记,整理不易 ,风力发电; 储能并网; 永磁风机发电机; 控制系统; 储能系统; DCDC变换器; 电压控制; 逆变并网; 谐波抗干扰; 参数选择。,"协同运行模型:永磁风机储能系统及其控制系统设计与参数选择参考"
"X00133土壤侵蚀分析:R语言源码、数据集与效果图综合展示",X00133-土壤侵蚀数据分析R语言源码,数据集,和效果图 ,X00133;土壤侵蚀数据分析;R语言源码;数据集;效果图,"R语言源码分析X00133土壤侵蚀数据集与效果图展示"
MAC电脑QT安装资源包(一)
锂枝晶生长与隔膜特性研究:隔膜厚度和表面涂层对应力的补充影响分析,相场锂枝晶-隔膜厚度和表面涂层对枝晶生长影响(补充应力) 参考文献:Influences of Separator Thickness and Surface Coating on Lithium Dendrite Growth: A Phase-Field Study ,相场锂枝晶;隔膜厚度;表面涂层;应力;枝晶生长,相场研究:隔膜厚度与表面涂层对应力下锂枝晶生长的影响
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于三菱PLC与MCGS组态技术的自动门控制系统设计策略与应用,No.1074 基于三菱PLC和MCGS组态的自动门控制系统的设计 ,三菱PLC; MCGS组态; 自动门控制系统; 设计; 编号1074,基于三菱PLC与MCGS组态的自动门系统设计No.1074