有一个大迟滞延迟系统,分子是0.98,分母是28s+1,延迟时间是12秒,请根据该系统在MATLAB平台设计模糊控制
时间: 2023-03-15 10:53:57 浏览: 68
根据给定的延迟系统,我们可以使用MATLAB来设计模糊控制程序,即计算出模糊控制系统的模糊控制规则。首先,我们可以使用MATLAB来计算模糊控制规则,即根据给定的延迟系统,计算出延迟时间为t=12秒,分子为0.98,分母为28s的模糊控制规则。然后,使用MATLAB的模糊控制函数来实现模糊控制系统,使用模糊控制函数来控制系统的状态,从而达到控制系统延迟时间的目的。
相关问题
为什么你给我的修改exe文件的图标的代码的作用是提取图标,请告诉我正确修改exe文件的图标的代码
修改exe文件的图标需要使用资源编辑器,以下是基于Python的修改exe文件图标的代码示例:
```python
import struct
# 定义PE文件头偏移量常量
IMAGE_DOS_HEADER_OFFSET = 0
IMAGE_NT_HEADERS_OFFSET = 60
IMAGE_OPTIONAL_HEADER_OFFSET = 24
IMAGE_OPTIONAL_HEADER_SIZE_OFFSET = 20
IMAGE_DATA_DIRECTORY_OFFSET = 96
IMAGE_RESOURCE_DIRECTORY_OFFSET = 128
# 定义PE文件资源项常量
RT_ICON = 3
ICON_SIZE = 256
# 定义PE文件头结构体
class IMAGE_DOS_HEADER(struct.Struct):
_fields_ = [
('e_magic', struct.pack('H', 0)),
('e_cblp', struct.pack('H', 0)),
('e_cp', struct.pack('H', 0)),
('e_crlc', struct.pack('H', 0)),
('e_cparhdr', struct.pack('H', 0)),
('e_minalloc', struct.pack('H', 0)),
('e_maxalloc', struct.pack('H', 0)),
('e_ss', struct.pack('H', 0)),
('e_sp', struct.pack('H', 0)),
('e_csum', struct.pack('H', 0)),
('e_ip', struct.pack('H', 0)),
('e_cs', struct.pack('H', 0)),
('e_lfarlc', struct.pack('H', 0)),
('e_ovno', struct.pack('H', 0)),
('e_res', struct.pack('16s', b'')),
('e_oemid', struct.pack('H', 0)),
('e_oeminfo', struct.pack('H', 0)),
('e_res2', struct.pack('20s', b'')),
('e_lfanew', struct.pack('I', 0))
]
# 定义PE文件NT头结构体
class IMAGE_NT_HEADERS(struct.Struct):
_fields_ = [
('Signature', struct.pack('I', 0)),
('FileHeader', struct.pack('14s', b'')),
('OptionalHeader', struct.pack('28s', b''))
]
# 定义PE文件可选头结构体
class IMAGE_OPTIONAL_HEADER(struct.Struct):
_fields_ = [
('Magic', struct.pack('H', 0)),
('MajorLinkerVersion', struct.pack('B', 0)),
('MinorLinkerVersion', struct.pack('B', 0)),
('SizeOfCode', struct.pack('I', 0)),
('SizeOfInitializedData', struct.pack('I', 0)),
('SizeOfUninitializedData', struct.pack('I', 0)),
('AddressOfEntryPoint', struct.pack('I', 0)),
('BaseOfCode', struct.pack('I', 0)),
('ImageBase', struct.pack('I', 0)),
('SectionAlignment', struct.pack('I', 0)),
('FileAlignment', struct.pack('I', 0)),
('MajorOperatingSystemVersion', struct.pack('H', 0)),
('MinorOperatingSystemVersion', struct.pack('H', 0)),
('MajorImageVersion', struct.pack('H', 0)),
('MinorImageVersion', struct.pack('H', 0)),
('MajorSubsystemVersion', struct.pack('H', 0)),
('MinorSubsystemVersion', struct.pack('H', 0)),
('Win32VersionValue', struct.pack('I', 0)),
('SizeOfImage', struct.pack('I', 0)),
('SizeOfHeaders', struct.pack('I', 0)),
('CheckSum', struct.pack('I', 0)),
('Subsystem', struct.pack('H', 0)),
('DllCharacteristics', struct.pack('H', 0)),
('SizeOfStackReserve', struct.pack('I', 0)),
('SizeOfStackCommit', struct.pack('I', 0)),
('SizeOfHeapReserve', struct.pack('I', 0)),
('SizeOfHeapCommit', struct.pack('I', 0)),
('LoaderFlags', struct.pack('I', 0)),
('NumberOfRvaAndSizes', struct.pack('I', 0)),
('DataDirectory', struct.pack('128s', b''))
]
# 定义PE文件数据目录结构体
class IMAGE_DATA_DIRECTORY(struct.Struct):
_fields_ = [
('VirtualAddress', struct.pack('I', 0)),
('Size', struct.pack('I', 0))
]
# 定义PE文件数据块结构体
class IMAGE_RESOURCE_DIRECTORY(struct.Struct):
_fields_ = [
('Characteristics', struct.pack('I', 0)),
('TimeDateStamp', struct.pack('I', 0)),
('MajorVersion', struct.pack('H', 0)),
('MinorVersion', struct.pack('H', 0)),
('NumberOfNamedEntries', struct.pack('H', 0)),
('NumberOfIdEntries', struct.pack('H', 0))
]
# 定义PE文件资源项结构体
class IMAGE_RESOURCE_DIRECTORY_ENTRY(struct.Struct):
_fields_ = [
('Name', struct.pack('I', 0)),
('OffsetToData', struct.pack('I', 0))
]
# 定义PE文件资源数据块结构体
class IMAGE_RESOURCE_DATA_ENTRY(struct.Struct):
_fields_ = [
('OffsetToData', struct.pack('I', 0)),
('Size', struct.pack('I', 0)),
('CodePage', struct.pack('I', 0)),
('Reserved', struct.pack('I', 0))
]
def update_icon(exe_path, icon_path):
# 打开exe文件
with open(exe_path, 'rb') as f:
data = f.read()
# 获取PE文件头偏移量
e_lfanew = struct.unpack('I', data[IMAGE_DOS_HEADER_OFFSET + 60:IMAGE_DOS_HEADER_OFFSET + 64])[0]
# 获取PE文件NT头
nt_header = data[e_lfanew:e_lfanew + IMAGE_NT_HEADERS_OFFSET]
# 获取PE文件可选头大小
optional_header_size = struct.unpack('H', nt_header[IMAGE_OPTIONAL_HEADER_OFFSET:IMAGE_OPTIONAL_HEADER_OFFSET + 2])[0]
# 获取PE文件可选头
optional_header = data[e_lfanew + IMAGE_NT_HEADERS_OFFSET:e_lfanew + IMAGE_NT_HEADERS_OFFSET + optional_header_size]
# 获取PE文件数据目录
data_directory = optional_header[IMAGE_DATA_DIRECTORY_OFFSET:IMAGE_DATA_DIRECTORY_OFFSET + 8]
# 获取PE文件数据块
resource_directory_data = data[e_lfanew + struct.unpack('I', data_directory[IMAGE_RESOURCE_DIRECTORY_OFFSET:IMAGE_RESOURCE_DIRECTORY_OFFSET + 4])[0]:]
# 获取PE文件资源目录
resource_directory = IMAGE_RESOURCE_DIRECTORY(resource_directory_data[:struct.calcsize(IMAGE_RESOURCE_DIRECTORY._format)])
# 获取PE文件资源项
resource_directory_entries = []
for i in range(struct.unpack('H', resource_directory.NumberOfIdEntries)[0] + struct.unpack('H', resource_directory.NumberOfNamedEntries)[0]):
entry_data = resource_directory_data[struct.calcsize(IMAGE_RESOURCE_DIRECTORY._format) + i * struct.calcsize(IMAGE_RESOURCE_DIRECTORY_ENTRY._format):]
entry = IMAGE_RESOURCE_DIRECTORY_ENTRY(entry_data[:struct.calcsize(IMAGE_RESOURCE_DIRECTORY_ENTRY._format)])
resource_directory_entries.append(entry)
# 获取PE文件资源数据块
resource_data_entries = []
for entry in resource_directory_entries:
resource_data_entry_data = resource_directory_data[struct.unpack('I', entry.OffsetToData)[0]:]
resource_data_entry = IMAGE_RESOURCE_DATA_ENTRY(resource_data_entry_data[:struct.calcsize(IMAGE_RESOURCE_DATA_ENTRY._format)])
resource_data_entries.append(resource_data_entry)
# 获取PE文件图标资源项
icon_resource_index = -1
for i in range(len(resource_directory_entries)):
if struct.unpack('I', resource_directory_entries[i].Name)[0] == RT_ICON:
icon_resource_index = i
break
# 获取PE文件图标资源数据块
icon_resource_data_entry = resource_data_entries[icon_resource_index]
icon_resource_data = data[e_lfanew + struct.unpack('I', icon_resource_data_entry.OffsetToData)[0]:e_lfanew + struct.unpack('I', icon_resource_data_entry.OffsetToData)[0] + struct.unpack('I', icon_resource_data_entry.Size)[0]]
# 获取PE文件图标数
icon_count = struct.unpack('H', icon_resource_data[4:6])[0]
# 获取PE文件图标信息
icon_info_size = struct.unpack('H', icon_resource_data[0:2])[0]
icon_info = icon_resource_data[6:6 + icon_count * 16]
# 获取PE文件图标数据
icon_data = icon_resource_data[6 + icon_count * 16:]
icon_data_offset = []
for i in range(icon_count):
icon_data_offset.append(struct.unpack('I', icon_info[i * 16 + 12:i * 16 + 16])[0])
# 加载新图标
with open(icon_path, 'rb') as f:
new_icon_data = f.read()
# 替换PE文件图标
new_icon_data_size = len(new_icon_data)
if new_icon_data_size == ICON_SIZE * ICON_SIZE * 4:
for i in range(icon_count):
icon_data_size = struct.unpack('I', icon_data[icon_data_offset[i]:icon_data_offset[i] + 4])[0]
if icon_data_size == ICON_SIZE * ICON_SIZE * 4:
icon_data = icon_data[:icon_data_offset[i] + 6] + new_icon_data + icon_data[icon_data_offset[i] + 6 + icon_data_size:]
break
# 更新PE文件数据块大小
icon_resource_data_entry.Size = struct.pack('I', len(icon_resource_data) - struct.calcsize(IMAGE_RESOURCE_DATA_ENTRY._format) + len(icon_data))
# 更新PE文件数据块偏移量
offset = struct.unpack('I', data_directory[IMAGE_RESOURCE_DIRECTORY_OFFSET:IMAGE_RESOURCE_DIRECTORY_OFFSET + 4])[0] + struct.unpack('I', resource_directory_entries[icon_resource_index].OffsetToData)[0]
data = data[:e_lfanew + offset] + icon_data + data[e_lfanew + offset + len(icon_data):]
# 写入修改后的exe文件
with open(exe_path, 'wb') as f:
f.write(data)
```
这段代码可以打开exe文件,找到exe文件的图标资源,替换成新的图标,并将修改后的内容写回exe文件。
请编写一个html实现太阳系运动效果
好的,我可以回答这个问题。以下是一个简单的HTML代码,可以实现太阳系的运动效果:
```
<!DOCTYPE html>
<html>
<head>
<title>太阳系运动效果</title>
<style>
body {
background-color: black;
}
.sun {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100px;
height: 100px;
border-radius: 50%;
background-color: yellow;
box-shadow: 0 0 50px 10px yellow;
}
.planet {
position: absolute;
top: 50%;
left: 50%;
transform-origin: top left;
width: 20px;
height: 20px;
border-radius: 50%;
background-color: white;
box-shadow: 0 0 10px 5px white;
}
.mercury {
animation: mercury-orbit 4s linear infinite;
}
.venus {
animation: venus-orbit 8s linear infinite;
}
.earth {
animation: earth-orbit 12s linear infinite;
}
.mars {
animation: mars-orbit 16s linear infinite;
}
.jupiter {
animation: jupiter-orbit 20s linear infinite;
}
.saturn {
animation: saturn-orbit 24s linear infinite;
}
.uranus {
animation: uranus-orbit 28s linear infinite;
}
.neptune {
animation: neptune-orbit 32s linear infinite;
}
@keyframes mercury-orbit {
from {
transform: rotate(0deg) translateX(50px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(50px) rotate(-360deg);
}
}
@keyframes venus-orbit {
from {
transform: rotate(0deg) translateX(80px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(80px) rotate(-360deg);
}
}
@keyframes earth-orbit {
from {
transform: rotate(0deg) translateX(110px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(110px) rotate(-360deg);
}
}
@keyframes mars-orbit {
from {
transform: rotate(0deg) translateX(140px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(140px) rotate(-360deg);
}
}
@keyframes jupiter-orbit {
from {
transform: rotate(0deg) translateX(170px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(170px) rotate(-360deg);
}
}
@keyframes saturn-orbit {
from {
transform: rotate(0deg) translateX(200px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(200px) rotate(-360deg);
}
}
@keyframes uranus-orbit {
from {
transform: rotate(0deg) translateX(230px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(230px) rotate(-360deg);
}
}
@keyframes neptune-orbit {
from {
transform: rotate(0deg) translateX(260px) rotate(0deg);
}
to {
transform: rotate(360deg) translateX(260px) rotate(-360deg);
}
}
</style>
</head>
<body>
<div class="sun"></div>
<div class="planet mercury"></div>
<div class="planet venus"></div>
<div class="planet earth"></div>
<div class="planet mars"></div>
<div class="planet jupiter"></div>
<div class="planet saturn"></div>
<div class="planet uranus"></div>
<div class="planet neptune"></div>
</body>
</html>
```
这段代码使用了CSS的动画和变换功能,通过给每个行星添加不同的动画,实现了太阳系行星的运动效果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)