bv=c/r+(par-c/r)*(1+r)^(-2*t)
时间: 2024-02-01 08:12:11 浏览: 76
这是一个公式,可用于计算一笔投资的未来价值。其中,参数含义如下:
- b:未来价值(也称为终值或成本)
- c:当前价值(也称为现值或投资额)
- r:年复合增长率
- t:投资期限(以年为单位)
- par:投资的本金
该公式基于复合利率的概念,表示一个投资在未来的价值,其中包含了年复合增长率和投资期限的影响。
相关问题
import re import subprocess import requests import json from pprint import pprint url = "https://www.bilibili.com/video/BV1fi4y1K7Na/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=4545a0e83c576b93b1abd0ca4e16ab4d" headers = { "referer": "https://www.bilibili.com/", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36", "cookie":"i-wanna-go-back=-1; _uuid=C106610D104-6D27-6584-66E1-FCDE2859156A75277infoc; FEED_LIVE_VERSION=V8; home_feed_column=5; buvid3=D2AE610A6-6EE7-B48E-10C51-9E8269B10C88776898infoc; header_theme_version=CLOSE; DedeUserID=1852701166; DedeUserID__ckMd5=ac9474243bdd3627; nostalgia_conf=-1; CURRENT_PID=e16a0380-e1cd-11ed-a872-2f97008834b2; rpdid=|(k|k~u|)RY)0J'uY)kkl|m)m; b_ut=5; browser_resolution=1482-792; CURRENT_BLACKGAP=0; buvid_fp_plain=undefined; CURRENT_FNVAL=4048; b_nut=1683881044; hit-new-style-dyn=1; hit-dyn-v2=1; SESSDATA=3e3851ea%2C1704423625%2C1959b%2A72SteLEoaNhz8Q6ifKiYFGRpSBjpMp2TG-QWAao2iv2yR5ci81QOokmXevCx102rLpwUc9qgAAQgA; bili_jct=2ea1af9f8ae6f19867c8cd3dc1bfd047; fingerprint=dd5c1878758a4b317420b66dad49b677; b_lsid=97F1E5C5_1894440C9F1; buvid4=9D5A25A5-A648-0805-4C59-8178C4E4362B31067-023042319-0THAXXn9jKfRyf3rDh/fQA%3D%3D; buvid_fp=dd5c1878758a4b317420b66dad49b677; sid=7i4lnopc; bp_video_offset_1852701166=817021346575810700; PVID=1" } response = requests.get(url, headers=headers) name = re.findall('"title":"(.*?)"',response.text)[0].replace(' ','') html_data = re.findall('<script>window.__playinfo__=(.*?)</script>',response.text)[0] json_data = json.loads(html_data) #print(name) # print(html_data) # print(json_data) # pprint(json_data) audio_url = json_data['data']['dash']['audio'][0]['baseUrl'] video_url = json_data['data']['dash']['video'][0]['baseUrl'] # print(audio_url) # print(video_url) audio_content = requests.get(url=audio_url,headers=headers).content video_content = requests.get(url=video_url,headers=headers).content with open("D:\\study\\B站\\素材\\" + name + ".mp3", mode="wb") as audio: audio.write(audio_content) with open("D:\\study\\B站\\素材\\" + name + ".mp4", mode="wb") as video: video.write(video_content) cmd = f'ffmpeg -i D:\\study\\B站\\素材\\{name}.mp4 -i D:\\study\\B站\\素材\\{name}.mp3 -c:a aac -strict experimental D:\\study\\B站\\视频1080P\\{name}output.mp4' subprocess.run(cmd)
这段代码看起来是从Bilibili网站上下载视频和音频,并将它们合并为一个输出视频文件。代码中使用了requests库发送HTTP请求获取网页内容,使用re库进行正则表达式匹配提取视频标题和播放信息,使用json库解析JSON数据,然后使用subprocess库调用ffmpeg命令将音频和视频合并。
你有什么问题吗?
滑模控制器为: u_i=-h_1sign(σ)-h_2σ-a-bv-cv^2-(m_igsinθ+600/R+0.0013L_s)
好的,如果您的滑模控制器为:
```
u_i = -h_1*sign(sigma) - h_2*sigma - a - b*v - c*v^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls)
```
其中 `i` 表示列车的编号,`sigma` 表示当前位置偏差,`v` 表示当前速度,`theta` 表示坡度,`m` 表示列车重量,`Ls` 表示列车长度,`R` 表示列车半径,`g` 表示重力加速度,`a`、`b`、`c`、`h_1`、`h_2` 表示待调参数。那么可以将代码修改为以下形式:
```
clc;
clear all;
% 系统参数
m = 50000; % 质量
k1 = 200000; % 弹簧刚度
k2 = 18000; % 减震器刚度
c1 = 1000; % 弹簧阻尼
c2 = 5000; % 减震器阻尼
R = 0.5; % 列车半径
Ls = 20; % 列车长度
g = 9.81; % 重力加速度
a = 100; % 待调参数
b = 10; % 待调参数
c = 0.1; % 待调参数
h1 = 100; % 待调参数
h2 = 10; % 待调参数
% 参考轨道
xr = 10*sin(0:0.1:10); % 期望位移
dxr = diff(xr)/0.1; % 期望速度
ddxr = diff(dxr)/0.1; % 期望加速度
% 初值
x1_0 = [0; 0]; % 列车1的初值
x2_0 = [-5; 0]; % 列车2的初值
x3_0 = [-10; 0]; % 列车3的初值
% 控制器
u1 = 0; % 控制量1
u2 = 0; % 控制量2
u3 = 0; % 控制量3
for i=1:length(xr)-1
% 列车1的控制
x1 = [x1_0(1); x1_0(2)];
e1 = x1(1) - xr(i);
de1 = x1(2) - dxr(i);
u1 = -h1*sign(e1) - h2*de1 - a - b*x1(2) - c*x1(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x1_0 = x1_0 + ts*[0 1; -k1/m -c1/m]*x1_0 + ts*[0; 1/m]*u1;
% 列车2的控制
x2 = [x2_0(1); x2_0(2)];
e2 = x2(1) - xr(i);
de2 = x2(2) - dxr(i);
u2 = -h1*sign(e2) - h2*de2 - a - b*x2(2) - c*x2(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x2_0 = x2_0 + ts*[0 1; -k1/m -c1/m]*x2_0 + ts*[0; 1/m]*(u2 - u1);
% 列车3的控制
x3 = [x3_0(1); x3_0(2)];
e3 = x3(1) - xr(i);
de3 = x3(2) - dxr(i);
u3 = -h1*sign(e3) - h2*de3 - a - b*x3(2) - c*x3(2)^2 - (m*g*sin(theta) + 600/R + 0.0013*Ls);
x3_0 = x3_0 + ts*[0 1; -k1/m -c1/m]*x3_0 + ts*[0; 1/m]*(u3 - u2);
end
% 画出实际运动轨迹和期望轨迹的对比图
figure;
plot(0:ts:TT-ts, x1(1,:), 'r', 0:ts:TT-ts, x2(1,:), 'g', 0:ts:TT-ts, x3(1,:), 'b', 0:ts:TT-ts, xr(1:end-1), 'k');
xlabel('时间');
ylabel('位移');
legend('列车1', '列车2', '列车3', '期望位移');
```
在这段代码中,我们根据您提供的滑模控制器公式,将控制器部分的代码进行修改。在控制器中,我们计算出当前位置偏差 `e` 和当前速度偏差 `de`,然后根据滑模控制器公式计算出控制量 `u`。在代码中,我们使用了待调参数 `a`、`b`、`c`、`h1`、`h2`,您可以根据具体场景进行调整。同时,在计算控制量时,我们还考虑了列车的重力、空气阻力和曲线半径等因素。最后,画出实际运动轨迹和期望轨迹之间的对比图。
请根据您的具体应用场景,对代码进行修改和调整,以满足您的要求。
阅读全文