LAN-Cruising

本文介绍了轮胎压力监测系统如何通过RF发射机提高卡车的安全性和效率,并探讨了现代汽车内部网络的发展,包括无线技术的应用,如蓝牙、DSRC及Wi-Fi,以及它们如何改善驾驶体验。

LAN-Cruising

 

The wheel hasn’t changed much over time apart from the addition of a tyre, and it’s this that most seriously affects its efficiency: a 10 per cent drop in optimum tyre pressure can easily add 10 per cent to the fuel consumption of the engine driving them.

  So critical is tyre performance to road transport costs that engineers at Volvo Truck have developed an RF transmitter for each tyre on its massive trucks to send constant information to an in-dash display to warn drivers when any of up to 50 tyres are at anything other than perfect pressure.

  A quarter of truck breakdowns are caused by tyre failure, starting as slow leaks and sometimes ending in explosion but certainly adding to rolling resistance and reduced life of expensive rubber.

  The matchbox-sized transmitters are fixed next to the valve and connected by a tiny tube to send a burst of eight readings every 15 minutes to a receiver and processor bolted to the chassis.

  The processor sifts reports from each wheel to find the most accurate average, signalling an errant tyre on a schematic of the wheel configuration on an LCD screen in the dash.

  The system’s CPU is one of 25 in the vehicle, together providing far more computing firepower than for the Apollo 13 landings.

  They control pretty well every function in the vehicle other than driving it: engine performance, brake pressure, gear changes and transmission management, air conditioning, and GPS-enabled locators.

  While on-board computers have been increasingly gaining new tasks in trucks for nearly a decade, wireless networking has steadily replaced complex wiring looms to get information to the driver’s cab and beyond.

  Already 30 per cent of the cost of a new car is in the electronics: the chips, wires and networks that support features ranging from automatic door locks to anti-lock brakes to airbag deployment.

  As automotive electronics become more complex, car manufacturers are borrowing a page from the network industry, relying on shared networks and standard protocols to support internal communications between control systems. They’re also turning to industry standards such as Bluetooth and Wi-Fi to support links to external systems that provide traffic, weather, entertainment and other information.

  Today’s cars have half a dozen different proprietary networks that carry messages from control systems to the devices being operated. Until recently, each car manufacturer and car model had its own network parts. These are hardened, automotive-specific networks with ultra-reliable electronic components that can withstand vibration and operate in extreme heat and cold.

  The latest trend is toward standardisation so car manufacturers can save money on components and software development.

  Companies are converging on several standards for internal networks that address different speed requirements. At the same time carmakers are looking to extend the use of those networks to replace the spaghetti of wire used to support functions such as turning on the engine and operating lights.

  More carmakers are going wireless to support a host of new navigation and safety services.

  Bluetooth is the technology of choice to support mobile phones. The car industry is developing a special profile of the Bluetooth standard - dubbed Bluetooth Handsfree 2.0 - that will link a built-in microphone in the car to any mobile phone without requiring a docking station, allowing for hands-free calling.

  Longer term, car manufacturers plan to use Bluetooth to support services such as remote vehicle diagnostics, advanced safety features and vehicle-to-vehicle communications.

  But Bluetooth is only one of the technologies that are emerging to connect the computer-based car to the outside world. The rising demand for in-vehicle entertainment services has carmakers looking at everything from satellite links to Dedicated Short Range Communications (DSRC) and Wi-Fi.

  On the horizon are real-time news, information and entertainment services that are integrated with in-vehicle entertainment systems. The most promising way to deliver these services is digital satellite radio. With improvements in compression techniques and smaller antennas, digital satellite also could deliver streaming video.

  Another technology that could bring high-speed, two-way communications to automobiles is DSRC. DSRC was designed specifically for the transportation industry to complement cellular communications, supporting 6 to 54Mbit/sec wireless data transfer rates. Mercedes-Benz has started shipping cars with DSRC support in Germany.

  Further out on the horizon is in-vehicle support for Wi-Fi technology. By around 2006, some car manufacturers will be looking to install self-contained Wi-Fi to allow users to load music and files into the car. Users could download files and other content to the car such as traffic reports or news.

  But use of Wi-Fi for Internet access while cars are in motion is still just a pipe dream today. You’d need to have Wi-Fi hot spots along the highway. That won’t happen anytime soon.

  局域网巡航

  车轮自增加了轮胎以来没有多大的变化,正是轮胎对(汽车)效率影响最大:如果轮胎压力比最佳压力低10%,消耗驱动轮子转动的燃油就增加10%。

  轮胎性能对道路运输的成本非常关键,所以Volve卡车公司的工程师们给其重型卡车的每个轮胎开发了射频发射机,不断向仪表显示板发送信息,当轮胎(最多50个轮胎)不在最佳压力时,给司机报警。

  四分之一的卡车故障是由轮胎的毛病引起的,从慢撒气开始到有时轮胎爆炸为止,都会增加轮子滚动阻力,降低昂贵的橡胶(轮胎)的寿命。

  火柴盒大小的发射机紧挨阀门安装,并用一根细管连接,每15分钟向固定在底盘上的接收机和处理器发送8个读数的脉冲串。

  处理器审查每个轮子送来的报告,算出最精确的平均压力,在仪表板LCD显示屏的轮子配置示意图上指示出有问题的轮胎。

  此系统的CPU是车上25个CPU中的1个,它们一起提供的计算能力远远超过当年阿波罗 13登月的计算能力。

  它们精确地控制着除驾驶以外的一切功能:引擎性能、刹车压力、挡位变化和传动管理、空调以及GPS精确定位器等。

  近十年来在车载计算机完成的任务越来越多的同时,无线网络稳步地替代了复杂的连线系统,由它们向驾驶室和其他地方提供信息。

  新车成本中30%是电子设备:芯片、连线和网络,它们支持从自动门锁到防抱死刹车和气囊张开等功能。

  由于汽车电子设备变得越来越复杂,汽车制造商借鉴网络行业,依靠共享的网络和标准协议来支持控制系统之间的内部通信。他们也转向行业标准,如蓝牙和Wi-Fi,支持与提供交通、气象、娱乐和其他信息的外部系统的连接。

  今天的汽车拥有近半打的专有网络,将信息从控制系统传送到受它们控制的设备。直至最近,每家汽车制造商和每个汽车型号都有自己的网络部件。它们是加固的、特定汽车的网络,拥有极可靠的电子元器件,能经受住震动和在极端热与冷的环境中工作。

  最新的趋势是标准化,从而让汽车制造商可以节省元器件和软件的开发费用。

  在要解决不同速度要求的内部网络方面,各公司已集中到几个标准上。同时,汽车制造商期待着扩大这些网络的应用,替代那些支持诸如引擎发动和开灯等功能的横七竖八的连线。

  更多的汽车制造商想用无线技术,支持导航、安全服务等多种新功能。

  蓝牙是一项支持移动电话的技术选择。汽车行业正在开发一项特别的蓝牙标准——蓝牙Handsfree 2.0,将汽车的内装式麦克风在不需要机座的情况下与任何移动电话相连,允许不用手就能打电话。

  从更长远看,汽车制造商计划利用蓝牙支持诸如远程车辆诊断、高级安全特性和车与车通信等服务。

  但是,蓝牙仅是连接基于计算机的汽车与外部世界多种新兴技术中的一项。车内娱乐服务需求的高涨,使汽车制造商关注从卫星链路到专用短距离通信(RSRC)和Wi-Fi的所有技术。

  即将来到的是实时的新闻、信息和娱乐服务,它们与车内娱乐系统合为一体。提供这些服务最有希望的方法是数字卫星无线电。随着压缩技术和更小天线的改进,数字卫星无线电还能提供流式视频。

  另一项将能给汽车带来高速双向通信能力的技术是DSRC。DSRC是专门为运输业设计的,作为蜂窝通信的补充,支持6兆位至54兆位/秒的无线数据传输率。奔驰公司已开始在德国交付支持DSRC的轿车。

  车内支持Wi-Fi的技术也初露端倪。到2006年,有些汽车制造商将考虑安装无需外界帮助的Wi-Fi设备,让用户将音乐和文件装入汽车。用户可以将文件和其他内容(如交通报道或新闻)下载到汽车。

  但是,在汽车行进中利用Wi-Fi上网在今天看来还是白日做梦。你需要沿公路铺有Wi-Fi热点。这不是一蹴而就的事。  

%% 五一黄金周停车位需求分析 clear; clc; close all; %% 模拟数据生成(实际应用时替换为真实数据) rng(2024); % 设置随机种子保证可重复性 num_vehicles = 5000; % 五一期间景区总车辆数 start_time = datetime('2024-05-01 08:00:00'); end_time = datetime('2024-05-05 22:00:00'); total_minutes = minutes(end_time - start_time); % 生成车辆通行记录 vehicle_data = table(); vehicle_data.LicensePlate = randi([10000, 99999], num_vehicles, 1); % 车牌号 vehicle_data.Timestamp = start_time + minutes(randi(total_minutes, num_vehicles, 1)); vehicle_data.Location = randi([1, 20], num_vehicles, 1); % 20个监控点位置 vehicle_data.Speed = randi([5, 60], num_vehicles, 1); % 车速(km/h) % 添加巡游车辆特征(约20%的车辆为巡游车辆) cruising_vehicles = unique(randi([10000, 99999], round(num_vehicles*0.2), 1)); is_cruising = ismember(vehicle_data.LicensePlate, cruising_vehicles); % 为巡游车辆添加特征:多次出现、低速行驶、在特定区域活动 for i = 1:length(cruising_vehicles) plate = cruising_vehicles(i); idx = find(vehicle_data.LicensePlate == plate); % 增加记录次数 (4-10次) num_records = randi([4, 10]); if length(idx) < num_records new_records = table(); new_records.LicensePlate = repmat(plate, num_records-length(idx), 1); new_records.Timestamp = vehicle_data.Timestamp(idx(1)) + minutes(randi([1, 30], num_records-length(idx), 1)); new_records.Location = randi([1, 8], num_records-length(idx), 1); % 在核心区域1-8活动 new_records.Speed = randi([5, 20], num_records-length(idx), 1); % 低速行驶 vehicle_data = [vehicle_data; new_records]; else vehicle_data.Speed(idx) = randi([5, 20], length(idx), 1); vehicle_data.Location(idx) = randi([1, 8], length(idx), 1); end end % 按时间排序 vehicle_data = sortrows(vehicle_data, 'Timestamp'); %% 1. 巡游车辆判别 % 参数设置 time_threshold = 30; % 30分钟内多次出现 min_occurrences = 3; % 至少出现3次 speed_threshold = 20; % 速度低于20km/h视为低速 core_area = [1, 2, 3, 4, 5, 6, 7, 8]; % 景区核心区域 % 按车牌分组分析 unique_plates = unique(vehicle_data.LicensePlate); is_cruising = false(size(unique_plates)); cruising_details = cell(size(unique_plates)); fprintf('开始巡游车辆判别...\n'); for i = 1:length(unique_plates) plate = unique_plates(i); records = vehicle_data(vehicle_data.LicensePlate == plate, :); % 筛选在核心区域的记录 core_records = records(ismember(records.Location, core_area), :); if height(core_records) < min_occurrences continue; % 不满足最小出现次数 end % 按时间排序 core_records = sortrows(core_records, 'Timestamp'); % 检查时间窗口内的出现频率 time_diffs = minutes(diff(core_records.Timestamp)); time_window = minutes(core_records.Timestamp(end) - core_records.Timestamp(1)); % 巡游特征1: 短时间内多次出现 if time_window <= time_threshold && height(core_records) >= min_occurrences is_cruising(i) = true; cruising_details{i} = core_records; continue; end % 巡游特征2: 低速行驶且在特定区域来回 if mean(core_records.Speed) < speed_threshold % 检查位置变化模式(是否来回移动) locations = core_records.Location; direction_changes = sum(abs(diff(locations)) > 1); if direction_changes >= 2 % 有两次以上方向变化 is_cruising(i) = true; cruising_details{i} = core_records; end end end % 提取巡游车辆数据 cruising_idx = find(is_cruising); cruising_plates = unique_plates(cruising_idx); cruising_data = vehicle_data(ismember(vehicle_data.LicensePlate, cruising_plates), :); fprintf('巡游车辆判别完成: 共识别出 %d 辆巡游车辆 (占总车辆数 %.2f%%)\n', ... length(cruising_plates), length(cruising_plates)/length(unique_plates)*100); %% 2. 停车位需求估算 % 参数设置 avg_parking_duration = hours(2.5); % 平均停车时长2.5小时 analysis_start = datetime('2024-05-01 08:00:00'); analysis_end = datetime('2024-05-05 22:00:00'); time_interval = minutes(15); % 15分钟间隔 % 创建时间序列 time_bins = analysis_start:time_interval:analysis_end; cruising_count = zeros(size(time_bins)); parking_demand = zeros(size(time_bins)); % 计算每小时巡游车辆数 fprintf('计算停车位需求...\n'); for i = 1:length(time_bins)-1 % 当前时间段内处于巡游状态的车辆 for j = 1:length(cruising_details) if isempty(cruising_details{j}), continue; end records = cruising_details{j}; % 检查车辆在当前时间段是否处于巡游状态 if any(records.Timestamp >= time_bins(i) & records.Timestamp < time_bins(i+1)) cruising_count(i) = cruising_count(i) + 1; end end % 估算停车需求(考虑周转率) % 周转率 = 时间段长度 / 平均停车时长 turnover_rate = hours(time_interval) / hours(avg_parking_duration); parking_demand(i) = cruising_count(i) * turnover_rate; end % 找到需求高峰 [peak_demand, peak_idx] = max(parking_demand); peak_time = time_bins(peak_idx); fprintf('停车位需求分析结果:\n'); fprintf('高峰时段: %s\n', datestr(peak_time)); fprintf('最大巡游车辆数: %d 辆\n', max(cruising_count)); fprintf('高峰停车位需求: %.1f 个\n', peak_demand); fprintf('平均停车时长: %.1f 小时\n', hours(avg_parking_duration)); %% 3. 结果可视化 % 巡游车辆特征分析 figure('Position', [100, 100, 1200, 800]); subplot(2, 2, 1); % 随机选择几辆巡游车辆展示轨迹 sample_plates = cruising_plates(randperm(length(cruising_plates), min(5, length(cruising_plates)))); colors = lines(length(sample_plates)); hold on; for i = 1:length(sample_plates) plate = sample_plates(i); records = vehicle_data(vehicle_data.LicensePlate == plate, :); plot(records.Timestamp, records.Location, 'o-', 'Color', colors(i, :), 'LineWidth', 1.5); end title('巡游车辆时空轨迹'); xlabel('时间'); ylabel('监控点位置'); legend(cellstr(num2str(sample_plates)), 'Location', 'eastoutside'); grid on; hold off; % 巡游车辆分布 subplot(2, 2, 2); histogram([cruising_data.Speed], 'BinWidth', 5); title('巡游车辆速度分布'); xlabel('速度 (km/h)'); ylabel('频数'); xline(speed_threshold, 'r--', 'LineWidth', 2); text(speed_threshold+2, 100, '阈值', 'Color', 'r'); grid on; % 时间分布 subplot(2, 2, 3); hourly_counts = zeros(24, 1); for i = 1:24 hour_start = analysis_start + hours(i-1); hour_end = hour_start + hours(1); hourly_counts(i) = sum(cruising_data.Timestamp >= hour_start & cruising_data.Timestamp < hour_end); end bar(0:23, hourly_counts); title('巡游车辆时间分布'); xlabel('小时'); ylabel('巡游车辆数'); grid on; % 停车位需求分析 subplot(2, 2, 4); plot(time_bins(1:end-1), parking_demand(1:end-1), 'LineWidth', 2); hold on; plot(peak_time, peak_demand, 'ro', 'MarkerSize', 10, 'LineWidth', 2); text(peak_time, peak_demand+5, sprintf('高峰需求: %.1f', peak_demand), 'Color', 'r'); title('停车位需求变化趋势'); xlabel('时间'); ylabel('临时停车位需求估计'); grid on; %% 4. 输出优化结果 fprintf('\n===== 停车位需求优化结果 =====\n'); fprintf('基于遗传算法的停车位需求优化:\n'); % 遗传算法参数 options = optimoptions('ga', ... 'Display', 'iter', ... 'CreationFcn', @gacreationuniform, ... 'CrossoverFcn', @crossoverscattered, ... 'SelectionFcn', @selectionstochunif, ... 'MutationFcn', @mutationadaptfeasible, ... 'MaxGenerations', 50, ... 'PopulationSize', 100); % 定义优化问题 nvars = 3; % 优化变量: [time_threshold, min_occurrences, avg_parking_duration_hours] lb = [10, 2, 1]; % 下限 ub = [60, 6, 4]; % 上限 % 目标函数: 最小化临时停车位需求 objfun = @(x) estimate_parking_demand(x, vehicle_data, core_area, time_interval, analysis_start, analysis_end); % 运行遗传算法 [x_opt, fval] = ga(objfun, nvars, [], [], [], [], lb, ub, [], options); % 应用优化参数 time_threshold_opt = x_opt(1); min_occurrences_opt = round(x_opt(2)); avg_parking_duration_opt = hours(x_opt(3)); fprintf('\n优化参数结果:\n'); fprintf('最佳时间阈值: %.1f 分钟\n', time_threshold_opt); fprintf('最佳最小出现次数: %d 次\n', min_occurrences_opt); fprintf('最佳平均停车时长: %.1f 小时\n', hours(avg_parking_duration_opt)); % 使用优化参数重新计算需求 [~, peak_demand_opt] = estimate_parking_demand(x_opt, vehicle_data, core_area, time_interval, analysis_start, analysis_end); fprintf('优化后高峰停车位需求: %.1f 个\n', peak_demand_opt); %% 停车位需求估计函数 function [total_demand, peak_demand] = estimate_parking_demand(params, vehicle_data, core_area, time_interval, start_time, end_time) % 解析参数 time_threshold = params(1); % 分钟 min_occurrences = round(params(2)); avg_parking_duration = hours(params(3)); % 小时 % 按车牌分组分析 unique_plates = unique(vehicle_data.LicensePlate); cruising_details = cell(size(unique_plates)); % 识别巡游车辆 for i = 1:length(unique_plates) plate = unique_plates(i); records = vehicle_data(vehicle_data.LicensePlate == plate, :); % 筛选在核心区域的记录 core_records = records(ismember(records.Location, core_area), :); if height(core_records) < min_occurrences continue; end % 按时间排序 core_records = sortrows(core_records, 'Timestamp'); time_window = minutes(core_records.Timestamp(end) - core_records.Timestamp(1)); % 检查巡游条件 if time_window <= time_threshold cruising_details{i} = core_records; end end % 创建时间序列 time_bins = start_time:time_interval:end_time; cruising_count = zeros(size(time_bins)); % 计算每个时间段巡游车辆数 for i = 1:length(time_bins)-1 for j = 1:length(cruising_details) if isempty(cruising_details{j}), continue; end records = cruising_details{j}; if any(records.Timestamp >= time_bins(i) & records.Timestamp < time_bins(i+1)) cruising_count(i) = cruising_count(i) + 1; end end end % 估算停车需求 turnover_rate = hours(time_interval) / hours(avg_parking_duration); parking_demand = cruising_count * turnover_rate; peak_demand = max(parking_demand); total_demand = peak_demand; % 返回高峰需求作为目标函数值 end索引超过数组元素的数量。索引不能超过 0。 出错 untitled547 (第 32 行) new_records.Timestamp = vehicle_data.Timestamp(idx(1)) + minutes(randi([1, 30], num_records-length(idx), 1));
07-19
[printer] kinematics: # The type of printer in use. This option may be one of: cartesian, # corexy, corexz, hybrid_corexy, hybrid_corexz, rotary_delta, delta, # deltesian, polar, winch, or none. This parameter must be specified. max_velocity: # Maximum velocity (in mm/s) of the toolhead (relative to the # print). This parameter must be specified. max_accel: # Maximum acceleration (in mm/s^2) of the toolhead (relative to the # print). Although this parameter is described as a "maximum" # acceleration, in practice most moves that accelerate or decelerate # will do so at the rate specified here. The value specified here # may be changed at runtime using the SET_VELOCITY_LIMIT command. # This parameter must be specified. #minimum_cruise_ratio: 0.5 # Most moves will accelerate to a cruising speed, travel at that # cruising speed, and then decelerate. However, some moves that # travel a short distance could nominally accelerate and then # immediately decelerate. This option reduces the top speed of these # moves to ensure there is always a minimum distance traveled at a # cruising speed. That is, it enforces a minimum distance traveled # at cruising speed relative to the total distance traveled. It is # intended to reduce the top speed of short zigzag moves (and thus # reduce printer vibration from these moves). For example, a # minimum_cruise_ratio of 0.5 would ensure that a standalone 1.5mm # move would have a minimum cruising distance of 0.75mm. Specify a # ratio of 0.0 to disable this feature (there would be no minimum # cruising distance enforced between acceleration and deceleration). # The value specified here may be changed at runtime using the # SET_VELOCITY_LIMIT command. The default is 0.5. #square_corner_velocity: 5.0 # The maximum velocity (in mm/s) that the toolhead may travel a 90 # degree corner at. A non-zero value can reduce changes in extruder # flow rates by enabling instantaneous velocity changes of the # toolhead during cornering. This value configures the internal # centripetal velocity cornering algorithm; corners with angles # larger than 90 degrees will have a higher cornering velocity while # corners with angles less than 90 degrees will have a lower # cornering velocity. If this is set to zero then the toolhead will # decelerate to zero at each corner. The value specified here may be # changed at runtime using the SET_VELOCITY_LIMIT command. The # default is 5mm/s. #max_accel_to_decel: # This parameter is deprecated and should no longer be used. 翻译
07-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值