- 浏览: 541369 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
[img][/img]今天写的是一个简单功能的google地图小demo,因为模拟器定位的经纬度已经默认设置为了苹果公司地址,所以只能定位一个地方了。
在模拟器里有个位置坐标的设定。调试-位置-自定义。可以通过修改坐标值进行进一步测试
实现效果
[img]
[/img]
[img]
[/img]
[img]
[/img]
[img]
[/img]
实现地图定位我们需要两个类
CLLocationManager 和CLLocation
1.首先需要一个位置管理器,CLLocationManager对象locationManager,CLLocationManager *locationManager;
设置委托 locationManager.delegate = self;
2.设置精度 locationManager.desiredAccuracy = kCLLocationAccuracyBest;
desiredAccuracy类型double,因此我们可以指定他的精度为一个确却数据比如10,但是事件不能计算那么准确,或者由于其他原因都达不到我们所设置进度,因此我们指定为kCLLocationAccuracyBest表示级别最高精度,还有其他精度
kCLLocationAccuracyBestForNavigation 最高精度,这种级别用于导航程序
kCLLocationAccuracyBest 最高精度
kCLLocationAccuracyHundredMeters 精度为100米内
kCLLocationAccuracyKilometer 精度到公里范围内
kCLLocationAccuracyNearestTenMeters 精度到10米内
kCLLocationAccuracyThreeKilometers 精度到3公里范围内
3.设置距离筛选器 locationManager.distanceFilter = 100;
距离筛选器,作用是当你移动一段位移后,所以移动距离大于筛选器说设置100m时候,通知委托更新位置;
但是位置一段更新过于频繁就会消耗电池电量,我们可以返回它的默认的没有筛选器模式,使用常量kCLDistanceFilterNone;
locationManager.distanceFilterkCLDistanceFilterNone
4.然后就是启动 位置管理器进行定位[locationManager startUpdatingLocation]; 如果我们不需要继续轮询更新位置可以使用[locationManager stopUpdatingLocation];停止更新,否则应用程序打开会一直更新,这些都需要添加委托的,遵循
CLLocationManagerDelegate协议
5.为了显示确实却是进行了定位,我们获取定位的经纬度,显示到label上,然后就是用到了CLLocation类,他有五个属性
latitude经度 longitude纬度 horizontalAccuracy水平精度(map中显示的蓝色圆半径都是以它为半径的) altitude海拔高度
verticalAccuracy 竖直高度(为负值得时候表示无法确定高度)
6.显示定位的实况地图
需要设置显示区域和显示比例,他们是两个结构体,MKCoordinateSpan ,MKCoordinateRegion
MKCoordinateRegion定义
typedef struct{
CLLocationCoordinate2D center;//表示显示的中心
MKCoordinateSpan span; //表示比例
}MKCoordinateRegion;
MKCoordinateSpan定义:
typedef struct{
CLLocationDegrees latitudeDelta;//这类型在前一节中讲过了,是double型的
CLLocationDegrees longitudeDlta;
}MKCoordinateSpan;
7.通过 region.center = newLocation.coordinate;获取定位的经纬度,然后显示到MKMapView,通过
UISegmentedControl设计了一个按钮集合来切换三种不同地图
首先我们要在工程添加支持定位和显示地图的库
CoreLocation.framework 和 MapKit.framework 添加两个头文件,对应代码
通过按钮跳转视图,显示地图
切换google三种地图显示
在模拟器里有个位置坐标的设定。调试-位置-自定义。可以通过修改坐标值进行进一步测试
实现效果
[img]
[/img]
[img]
[/img]
[img]
[/img]
[img]
[/img]
实现地图定位我们需要两个类
CLLocationManager 和CLLocation
1.首先需要一个位置管理器,CLLocationManager对象locationManager,CLLocationManager *locationManager;
设置委托 locationManager.delegate = self;
2.设置精度 locationManager.desiredAccuracy = kCLLocationAccuracyBest;
desiredAccuracy类型double,因此我们可以指定他的精度为一个确却数据比如10,但是事件不能计算那么准确,或者由于其他原因都达不到我们所设置进度,因此我们指定为kCLLocationAccuracyBest表示级别最高精度,还有其他精度
kCLLocationAccuracyBestForNavigation 最高精度,这种级别用于导航程序
kCLLocationAccuracyBest 最高精度
kCLLocationAccuracyHundredMeters 精度为100米内
kCLLocationAccuracyKilometer 精度到公里范围内
kCLLocationAccuracyNearestTenMeters 精度到10米内
kCLLocationAccuracyThreeKilometers 精度到3公里范围内
3.设置距离筛选器 locationManager.distanceFilter = 100;
距离筛选器,作用是当你移动一段位移后,所以移动距离大于筛选器说设置100m时候,通知委托更新位置;
但是位置一段更新过于频繁就会消耗电池电量,我们可以返回它的默认的没有筛选器模式,使用常量kCLDistanceFilterNone;
locationManager.distanceFilterkCLDistanceFilterNone
4.然后就是启动 位置管理器进行定位[locationManager startUpdatingLocation]; 如果我们不需要继续轮询更新位置可以使用[locationManager stopUpdatingLocation];停止更新,否则应用程序打开会一直更新,这些都需要添加委托的,遵循
CLLocationManagerDelegate协议
5.为了显示确实却是进行了定位,我们获取定位的经纬度,显示到label上,然后就是用到了CLLocation类,他有五个属性
latitude经度 longitude纬度 horizontalAccuracy水平精度(map中显示的蓝色圆半径都是以它为半径的) altitude海拔高度
verticalAccuracy 竖直高度(为负值得时候表示无法确定高度)
6.显示定位的实况地图
需要设置显示区域和显示比例,他们是两个结构体,MKCoordinateSpan ,MKCoordinateRegion
MKCoordinateRegion定义
typedef struct{
CLLocationCoordinate2D center;//表示显示的中心
MKCoordinateSpan span; //表示比例
}MKCoordinateRegion;
MKCoordinateSpan定义:
typedef struct{
CLLocationDegrees latitudeDelta;//这类型在前一节中讲过了,是double型的
CLLocationDegrees longitudeDlta;
}MKCoordinateSpan;
7.通过 region.center = newLocation.coordinate;获取定位的经纬度,然后显示到MKMapView,通过
UISegmentedControl设计了一个按钮集合来切换三种不同地图
首先我们要在工程添加支持定位和显示地图的库
CoreLocation.framework 和 MapKit.framework 添加两个头文件,对应代码
#import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> #import <MapKit/MapKit.h> @interface LocationViewController : UIViewController<CLLocationManagerDelegate> @property (strong,nonatomic) CLLocationManager *locationManager; @property (strong,nonatomic) CLLocation *startPoint; @property (strong, nonatomic) IBOutlet UILabel *latitudeLabel; @property (strong, nonatomic) IBOutlet UILabel *longitudeLabel; @property (strong, nonatomic) IBOutlet UILabel *horizontalAccuracyLabel; @property (strong, nonatomic) IBOutlet UILabel *altitudeLabel; @property (strong, nonatomic) IBOutlet UILabel *verticalAccuracyLabel; @property (strong, nonatomic) IBOutlet UILabel *distanceTraveledLabel; @property (strong, nonatomic) MKMapView *mapView; @property (strong, nonatomic) UISegmentedControl *mapSegmentedControl; - (IBAction)mapViewSwitcher:(id)sender; -(void) selectedMapType:(id)sender; @end
- (void)viewDidLoad { [super viewDidLoad]; locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; // 设置位置精度 locationManager.desiredAccuracy = kCLLocationAccuracyBest; // 距离过滤,表示在地图上每隔100更新一次定位 locationManager.distanceFilter = 100; // 启动位置管理器,进行定位服务 [locationManager startUpdatingLocation]; // 设置mapSegmentedControl按钮样式和显示按钮显示文字 NSArray *mapItems = [[NSArray alloc] initWithObjects:@"街道地图",@"卫星地图",@"混合地图", nil]; mapSegmentedControl = [[UISegmentedControl alloc] initWithItems:mapItems]; mapSegmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; mapSegmentedControl.frame = CGRectMake(0, 430, 180, 30); // 根据索引值,表示mapSegmentedControl默认响应哪个 mapSegmentedControl.selectedSegmentIndex = 0; // 给mapSegmentedContol添加响应方法 [mapSegmentedControl addTarget:self action:@selector(selectedMapType:) forControlEvents:UIControlEventValueChanged]; }
#pragma mark - #pragma mark CLLocationManagerDelegate Methods //获取位置信息 -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { if (startPoint == nil) { startPoint=newLocation; } // %g表示浮点数 \u00B0表示是转换字符,度的表示 // 显示经度,将经度信息显示到Label上 latitudeLabel.text = [NSString stringWithFormat:@"%g\u00B0",newLocation.coordinate.latitude]; //显示纬度 longitudeLabel.text = [NSString stringWithFormat:@"%g\u00B0",newLocation.coordinate.longitude]; // 水平经度,也就是显示经纬度的经度 horizontalAccuracyLabel.text = [NSString stringWithFormat:@"%gm",newLocation.horizontalAccuracy]; //表示海拔 altitudeLabel.text = [NSString stringWithFormat:@"%gm",newLocation.altitude]; // 垂直经度 verticalAccuracyLabel.text = [NSString stringWithFormat:@"%gm",newLocation.verticalAccuracy]; // CLLocation属性CLLocationDistance的对象计算两个位置间的距离 CLLocationDistance distance = [newLocation distanceFromLocation:startPoint]; // 将distance显示到Label上 distanceTraveledLabel.text = [NSString stringWithFormat:@"%gm",distance]; // 显示比例,MKCoordinateSpan类型的结构。 它有两个程序叫做 latitudeDelta and longitudeDelta。 这两个程序被用来设定地图的缩放级别——在center周围应该显示多大的区域。 MKCoordinateSpan span; span.latitudeDelta=0.05; span.longitudeDelta=0.05; MKCoordinateRegion region; // 获取定位的经纬度 region.center = newLocation.coordinate; // 显示区域 region.span = span; [mapView setRegion:region animated:YES]; }
//当设备无法定位当前我位置时候调用此方法 -(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { NSString *errorType = (error.code == kCLErrorDenied)?@"Access Denied" : @"Unknown Error"; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error getting Location" message:errorType delegate:nil cancelButtonTitle:@"oKay" otherButtonTitles: nil]; [alert show]; }
通过按钮跳转视图,显示地图
- (IBAction)mapViewSwitcher:(id)sender { [UIView beginAnimations:@"Curl" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:1.25]; [UIView setAnimationTransition:UIViewAnimationOptionTransitionCurlUp forView:self.view cache:YES]; mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; // 显示用户位置 mapView.showsUserLocation = YES; // mapView.mapType = MKMapTypeSatellite; /* 设置地图类型 mapView.mapType = MKMapTypeStandard; 标准街道地图 mapView.mapType = MKMapTypeSatellite; 卫星地图 mapView.mapType = MKMapTypeHybrid; 混合地图 */ [self.view addSubview:mapView]; [mapView addSubview:mapSegmentedControl]; [UIView commitAnimations]; }
切换google三种地图显示
-(void)selectedMapType:(id)sender { UISegmentedControl *control = (UISegmentedControl *)sender; if (mapSegmentedControl) { if (control.selectedSegmentIndex == 0) { [UIView beginAnimations:@"Curl" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:1.25]; [UIView setAnimationTransition:UIViewAnimationOptionTransitionCurlUp forView:self.view cache:YES]; mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; // 显示用户位置 mapView.showsUserLocation = YES; mapView.mapType = MKMapTypeStandard; [self.view addSubview:mapView]; [mapView addSubview:mapSegmentedControl]; [UIView commitAnimations]; NSLog(@"----0-->%d",mapSegmentedControl.selectedSegmentIndex); } else if (control.selectedSegmentIndex==1) { [UIView beginAnimations:@"Curl" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:1.25]; [UIView setAnimationTransition:UIViewAnimationOptionTransitionCurlUp forView:self.view cache:YES]; mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; // 显示用户位置 mapView.showsUserLocation = YES; mapView.mapType = MKMapTypeSatellite; // mapView.mapType = MKMapTypeSatellite; [self.view addSubview:mapView]; [mapView addSubview:mapSegmentedControl]; [UIView commitAnimations]; NSLog(@"----1-->%d",mapSegmentedControl.selectedSegmentIndex); } else if (control.selectedSegmentIndex == 2) { [UIView beginAnimations:@"Curl" context:nil]; [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; [UIView setAnimationDuration:1.25]; [UIView setAnimationTransition:UIViewAnimationOptionTransitionCurlUp forView:self.view cache:YES]; mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; // 显示用户位置 mapView.showsUserLocation = YES; mapView.mapType = MKMapTypeHybrid; // mapView.mapType = MKMapTypeSatellite; [self.view addSubview:mapView]; [mapView addSubview:mapSegmentedControl]; [UIView commitAnimations]; NSLog(@"----2-->%d",mapSegmentedControl.selectedSegmentIndex); } } }
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 894为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 1018今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 716有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1286看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 822在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 841本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 1025通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1144这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1190我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1089本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1313先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1125感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1069本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1185本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 930在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1759本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1199今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1376文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 566先看一下效果图: [img] ... -
iphone开发之适配iphone5
2013-06-05 11:15 1118iphone5出来了,从不用适配的我们也要像android一样 ...
相关推荐
基于模拟退火算法与A*算法融合的送餐机器人多目标点路径规划策略,多目标点路径规划---模拟 火算法+A*算法 送餐机器人多目标点路径规划,室内AGV路径规划。 基于模拟 火算法融合A*算法的移动机器人路径规划 1,从厨房出发,移动到多个目标点,最后返回厨房。 2,采用A*算法规划两点间的距离,然后依据规划路径距离模拟 火算法运算全过程最短距离。 旅行商的室内规划应用 ,多目标点路径规划; 模拟退火算法; A*算法; 送餐机器人; 室内AGV路径规划; 移动机器人路径规划; 厨房出发; 最短距离; 旅行商应用。,基于模拟退火算法与A*算法融合的送餐机器人多目标点路径规划系统
"谐波抑制Matlab Simulink仿真实践:有源无源混合型(PPF、APF)滤波效果对比报告",谐波抑制matlab simulink仿真,包含有源无源混合(ppf、apf,混合型)效果好可参考,有报告,下图为ppf滤波前后对比 ,谐波抑制; MATLAB Simulink仿真; 有源无源混合滤波; PPF与APF混合型; 滤波效果; 报告对比,Matlab Simulink仿真:混合型谐波抑制技术报告
线上一流课程教学辅助系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
沉浸式戏曲文化体验系统 免费JAVA毕业设计 2024成品源码+论文+录屏+启动教程 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
基于Matlab GUI界面的工件尺寸测量系统:数字图像处理技术在机械零件测量中的应用,- 标题:基于Matlab的工件测量系统 - 关键词:matlab GUI界面 工件尺寸测量 圆 长方形 直径 周长 数字图像处理 - 步骤:打开图像 选择标签 灰度化 滤波(中值,均值,高斯) 二值化 边缘检测 尺寸测量 结果绘制在在GUI上 - 简述:使用matlab数字图像处理技术,处理锯片,垫片,螺丝等机械零件的尺寸,只要包含半径(内径和外径),周长,长宽等,并在原图上进行绘制,并展示在界面上。 ,Matlab; GUI界面; 图像处理; 尺寸测量; 圆; 长方形; 半径; 周长; 边缘检测; 机械零件,"基于Matlab GUI界面的工件尺寸测量系统"
FDTD COMSOL技术下的超结构与超表面光吸收与分光滤波模型:一维至三维SPP偏振模型的自研与文献参考,FDTD COMSOL现有MIM超结构模型,超表面超吸收分光滤波SPP模型(一维光栅,二维光栅,三维超表面,偏振模型),介质超表面BIC模型等都是自己做的,文献参考, ,关键词:FDTD;COMSOL;MIM超结构模型;超表面超吸收分光滤波SPP模型;一维光栅;二维光栅;三维超表面;偏振模型;介质超表面BIC模型;文献参考,自研MIM超结构及多类超表面光学模型集
"金豺优化算法在冷热电联供系统优化调度中的应用:基于MATLAB平台的仿真与实证研究",金豺优化算法(2022年)冷热电联优化调度 说明书MATLAB代码:基于金豺优化算法冷热电联优化调度 关键词: 冷热电三联供 金豺优化算法 仿真平台:MATLAB 平台采用金豺优化算法实现求解优势:代码注释详实,适合参考学习,程序非常精品,请仔细辨识 主要内容:代码构建了含冷、热、电负荷的冷热电联供型系统优化调度模型,考虑了各出力源出力成本及环境污染治理成本、分时电价,考虑了光伏、风机、燃气轮机、燃料电池、电制冷机、电锅炉、余热回收以及蓄电池、蓄热装置、蓄冷装置等资源,并且考虑与上级电网的购电,考虑了燃机出力的非线性,实现CCHP系统的经济运行,求解效果极佳,具体可以看图 ,冷热电三联供;金豺优化算法;MATLAB平台;系统优化调度模型;资源利用;经济运行;求解效果极佳;CCHP系统;非线性问题;详实注释。,《基于金豺优化算法的冷热电联供系统MATLAB仿真优化调度说明书》
,永磁同步电机伺服控制仿真三环PI参数自整定 Matlab仿真模型 1.模型简介 模型为永磁同步电机伺服控制仿真,采用 Matlab R2018a Simulink搭建。 模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、位置环、速度环、电流环等模块,其中,SVPWM、Clark、Park、Ipark模块采用Matlab funtion编写,其与C语言编程较为接近,容易进行实物移植。 模型均采用离散化仿真,其效果更接近实际数字控制系统。 2.算法简介 伺服控制由位置环、速度环、电流环三环结构构成,其中,电流环采用PI控制,并具有电流环解耦功能;转速环采用抗积分饱和PI控制;位置环采用P+前馈的复合控制,能够更好地跟踪指令信号。 本仿真中最大的亮点是三环PI参数自整定,只需输入正确的电机参数(电阻、电感、转动惯量等参数),无需手动调节PI参数,能够节省调试时间。 3.仿真效果 位置响应波形,如下图所示。 转速响应波形,如下图所示。 转矩电流响应波形,如下图所示。 4. 可提供模型
基于西门子PLC与组态王技术的锅炉控制系统设计与应用,13基于西门子PLC和组态王锅炉控制系统 ,基于西门子PLC; 锅炉控制系统; 组态王; 自动化控制,基于西门子PLC与组态王锅炉控制系统研究
转子动力学与模态分析:临界转速计算与稳定状态下的轴心轨迹分析,圆盘质量不平衡条件下的振动响应及操作视频解析。,转子动力学,模态分析求临界转速,稳定状态下转子轴心轨迹,圆盘质量不平衡条件下振动响应+操作视频。 ,转子动力学;模态分析;临界转速;稳定状态;轴心轨迹;质量不平衡;振动响应;操作视频。,转子动力学分析:模态与振动响应研究视频
一阶直线倒立摆非线性动力学模型的MATLAB Simulink仿真研究:模型推导、S-Function实现与离散PID控制的测试服务,一阶直线倒立摆MATLAB Simulink仿真 (1)模型推导 + 仿真工程 (2)讲解服务 主要保留模型的非线性动力学特性,即不在平衡点做线性化处理; (1)MathType 详细推导二阶非线性微分方程 (2)S-Function 实现非线性连续状态空间模型 (3)测试离散PID控制倒立摆重心变化适应性 #倒立摆 #MATLAB #Simulink #离散控制 #S-Function ,一阶直线倒立摆; MATLAB Simulink 仿真; 模型推导与仿真工程; 非线性动力学特性; MathType 推导; S-Function 实现; 离散PID控制; 重心变化适应性。,一阶直线倒立摆非线性动力学MATLAB Simulink仿真研究
基于AHP-CRITIC组合变权与指标劣化度修正的赋权方法研究,38考虑劣化度APH-CRITIC组合变权 组合变权赋权方法,基于AHP和改进CRITIC计算主客观权重,引入指标劣化度构造变权函数对综合权重进行修正,还方法可以捕捉指标时序的劣化程度,实现数据的有效跟踪,评价更加合理。 可根据需求进行改进。 ,关键词:组合变权赋权方法;AHP;CRITIC;指标劣化度;变权函数;时序劣化程度;数据跟踪;评价合理。,基于AHP-CRITIC组合变权法:综合主客观权重与指标劣化度评价
基于两并联虚拟阻抗下垂控制的微电网有功功率共享技术研究及其应用效果分析——有参考文献支撑,微电网,下垂控制,两并联阻抗下垂控制,实现了有功功率共享,效果好,有参考文献。 ,微电网;下垂控制;两并联虚拟阻抗下垂控制;有功功率共享;参考文献,微电网两并联虚拟阻抗下垂控制技术实现有功共享,效果显著,有参考文献支持。
MATLAB仿真湍流相位屏相位结构函数:功率谱反演法及其低频信息补偿优化研究,MATLAB仿真湍流相位屏相位结构函数 功率谱反演法 补偿低频信息达到与理论更好的拟合程度 ,MATLAB仿真; 湍流相位屏; 相位结构函数; 功率谱反演法; 低频信息补偿; 理论拟合,MATLAB仿真湍流相位屏结构与功率谱反演法优化研究
棋盘设计: 创建一个 15x15 的棋盘,用户可以点击每个格子放置棋子。 棋子颜色: 黑方和白方棋子通过 CSS 样式显示为圆形。 胜利检测: 检查横向、纵向和对角线的五子连珠以判断胜利。 游戏重置: 游戏可以重置,重新开始。 重新开始按钮: 点击后重置游戏状态,清空棋盘。 退出游戏按钮: 点击后弹出确认对话框,确认后尝试关闭窗口。
基于f(x,y,z,t)的高斯烟团模型纯Python代码实现:大气稳定度计算、坐标转换与扩散系数分析,三维浓度叠加值的计算研究,基于f(x,y,z,t)的高斯烟团模型纯Python代码实现(包涵大气稳定度计算、坐标转,扩散系数以及三维坐标系内浓度叠加值) ,核心关键词:f(x,y,z,t)高斯烟团模型; 大气稳定度计算; 坐标转换; 扩散系数; 三维坐标系内浓度叠加值; 纯Python代码实现;,Python实现高斯烟团模型的大气扩散浓度计算代码
基于ADRC的主动悬架控制技术:设计观测器与非线性误差反馈控制器的优化研究,基于ADRC的主动悬架控制: 1.设计观测器 2.非线性误差反馈控制器。 相同参数下,优于pid的调节效果。 并且可查看观测器对比被控对象效果模型绝对正确 参考文献(仅用于学术交流) ,基于ADRC的主动悬架控制; 观测器设计; 非线性误差反馈控制器; 调节效果优于PID; 观测器对比被控对象效果模型绝对正确,基于ADRC的主动悬架:观测器设计与非线性误差反馈控制
matlab实现CNN时序预测完整程序+数据
基于视频分析的地 震检测.pdf
烟花代码编程python满屏。编程实现python代码烟花满屏燃放效果。这是一个用 Python 和 Pygame 实现烟花满屏燃放效果的代码,通过定义 Firework 和 Particle 类,模拟烟花的上升和爆炸过程。烟花从屏幕底部随机位置升起,达到一定高度后爆炸,生成大量彩色粒子向四周扩散。粒子具有随机的速度、颜色和生命周期,随着时间逐渐消失。