![Monte Carlos](/img/default-banner.jpg)
- Видео 563
- Просмотров 1 930 597
Monte Carlos
США
Добавлен 2 окт 2012
Carlos Montalvo is an Associate Professor in the Mechanical Engineering Department at the University of South Alabama. He is involved in all types of unmanned aerial vehicle research with a focus on controls of multi-body systems including meta aircraft and coordinated flight. He also has industry experience at Raytheon, Earthly Dynamics and AREAI. His basic research interests include a combination of Dynamic Simulation, Control System Design and Flight Testing all geared to improve the performance of autonomous air vehicles which include fixed wing, rotorcraft, projectile, parafoil vehicles, and multi body systems. These projects are at the intersection of flight dynamics, control and vehicle design.
South Alabama Page: www.southalabama.edu/colleges/engineering/me/montalvo.html
Personal Website: www.aerialsystems.org/
All Business Inquiries: cmontalvo251@gmail.com
Donations via Venmo: @Carlos-Montalvo-25
Donations via Paypal: paypal.me/montecarlos251
Hablo Español!
South Alabama Page: www.southalabama.edu/colleges/engineering/me/montalvo.html
Personal Website: www.aerialsystems.org/
All Business Inquiries: cmontalvo251@gmail.com
Donations via Venmo: @Carlos-Montalvo-25
Donations via Paypal: paypal.me/montecarlos251
Hablo Español!
SALT Showcase Video
In this video one of my students creates a sweet highlight reel of 2023-2024 South Alabama Launch Team (SALT) launches
Просмотров: 112
Видео
ACD Spring 2024 Highlight Reel
Просмотров 1853 месяца назад
Here are the highlights from this year's aircraft design class. We had a bunch of crashes due to wing tip stalls, poor piloting skills and some bad airframe design but over all the semester went really well.
Checking if a File Exists on CircuitPython To Log Data to Disk
Просмотров 675 месяцев назад
Here I discuss how to log data to disk on a CircuitPython microcontroller but also make sure that the data file in question is always a new file. First you need to watch my video on how to log data using 3 different methods. Specifically you want to learn about Method3 ruclips.net/video/yX0zeIfn2j4/видео.html The code I made for this video is on Github. github.com/cmontalvo251/Microcontrollers/...
Getting Heart Rate from Pulse Sensor in Thonny
Просмотров 1995 месяцев назад
In this video I use raw data from the Pulse Sensor Amped from Adafruit www.adafruit.com/product/1093 and then extract the BPM from that raw data. All code and text files can be found here: github.com/cmontalvo251/Python/tree/master/instrumentation/student_projects/Pulse
WP Control Loop - Car Physics Engine Part 2
Просмотров 856 месяцев назад
In this video I go over adding waypoint control for a simple 2D car. This is part 2 of this video series on getting a remote control car to drive waypoints. Part1: ruclips.net/video/nMbMDfeRGNE/видео.html Code: github.com/cmontalvo251/Python/blob/master/controls/simulations/car_2D_waypoint.py
Physics Engine of a 2D RC Car
Просмотров 946 месяцев назад
Here I discuss a simple 2D physics engine for a remote control car. This is part of a 2 part series where I go over the physic engine in this video and then go over the waypoint controller in the next video. Part2: ruclips.net/video/kmZ2DhOXG0k/видео.html Code: github.com/cmontalvo251/Python/blob/master/controls/simulations/car_2D_waypoint.py
Circuit Playground Bluefruit - Updating the Bootloader from Command Line
Просмотров 2187 месяцев назад
Here I explain how to update the bootloader from command line for the CircuitPlayground Bluefruit. Note you need to do this when you have version 0.4.0 or earlier.
Swizzle Stik 40 Carbon Wing Flights
Просмотров 769 месяцев назад
My students built these two identical balsa and carbon fiber wing aircraft and we flew them with varying success.
Student duct tapes iPhone to a rocket
Просмотров 2,3 тыс.10 месяцев назад
My student attached his iPhone 13 to his level 1 high powered rocket.
Python Help - 2D Euler Integration
Просмотров 148Год назад
Here I show how to integration a vector field in 2D using Euler's Method. I hope you enjoy the video. I am not planning on uploading this code as it's only ~20 lines of code.
MATLAB Help - ADCS Seminar Series Code - Adding Disturbance forces and moments to CubeSat Simulation
Просмотров 349Год назад
Here I add solar radiation pressure, atmospheric drag and magnetic dipole moment to the adcs seminar series simulation code.
MATLAB Help - ADCS Seminar Series - Speeding Up Code
Просмотров 198Год назад
In this video I just go through the code and speed it up a bit. I shave off about 12 seconds over 1 full orbit simulation so it's not great but it's a start. Note: At one point in the video I comment out real(ptp). Unfortunately this caused the simulation to go unstable and thus this has been changed and uncommented in the main branch of the code. github.com/cmontalvo251/aerospace/tree/main/adc...
Python Help - Importing and Plotting Complex Excel Spreadsheet Data Structures
Просмотров 121Год назад
Here I show how to import data from an excel spreadsheet and I run into some pretty tough issues with the data format. Here I show some interesting techniques on how to get that imported, formatted and plotted.
MATLAB Help - Plotting Functions of 3 Variables using Circles!
Просмотров 226Год назад
Here I show how to plot functions of the form w = f(x,y,z) Code from this video github.com/cmontalvo251/MATLAB/blob/master/plotting/plot3Vars.m
MATLAB Help - Adding Current Used in Reaction Wheels for CubeSAT Simulation
Просмотров 493Год назад
Here I take the ADCS Seminar Series code and compute the total current running through the reaction wheels. All code is still here: github.com/cmontalvo251/aerospace/tree/main/adcs_seminar_series
Aerodynamics - Streamline Function to Lift over a spinning Cylinder
Просмотров 329Год назад
Aerodynamics - Streamline Function to Lift over a spinning Cylinder
How to Mount an ext3/4 Linux Journaling External Harddrive to a Windows Computer
Просмотров 815Год назад
How to Mount an ext3/4 Linux Journaling External Harddrive to a Windows Computer
Python Help - Animations and Simple Game Engine
Просмотров 94Год назад
Python Help - Animations and Simple Game Engine
MATLAB Help - Least Squares Regression of a Plane
Просмотров 374Год назад
MATLAB Help - Least Squares Regression of a Plane
MATLAB Help - Newton Raphson with ChatGPT
Просмотров 219Год назад
MATLAB Help - Newton Raphson with ChatGPT
How to Download and/or Request Code - Youtube, Git, Email
Просмотров 84Год назад
How to Download and/or Request Code - RUclips, Git, Email
Nonlinear Least Squares Regression in Python
Просмотров 699Год назад
Nonlinear Least Squares Regression in Python
Aircraft Design Flight from April 30th, 2023
Просмотров 230Год назад
Aircraft Design Flight from April 30th, 2023
Aircraft Design Flights - April 23rd, 2023
Просмотров 226Год назад
Aircraft Design Flights - April 23rd, 2023
Aircraft Design Flights April 16th, 2023
Просмотров 185Год назад
Aircraft Design Flights April 16th, 2023
Using Google App Scripts in Google Sheets to Automate Your Gradebook
Просмотров 507Год назад
Using Google App Scripts in Google Sheets to Automate Your Gradebook
Using Python to Plot Dimorphis Orbit Pre and Post Impact - NASA DART MISSION
Просмотров 978Год назад
Using Python to Plot Dimorphis Orbit Pre and Post Impact - NASA DART MISSION
So I finally got it to download and activate but the info_uf2 revision is not updated. very frustrated with this board any options you can think of trying, I am out of options.
This isn't just a quick fix. I'd have to see screenshots of what you're doing and see if you're typing in the commands properly. If you'd like to email me with some screenshots and photos of your board I can try and help
Wow! Thank you!! The Adafruit directions made no sense to me!!!
Thank you
hey learned a lot, very informative video. I have had a problem while coding, i used matlab inbuilt polyfit, but that did not work out well. I was also facing problem, I was doing fitting for multiple frames in a data. so that just didn't work well. I have data set (x,y,t) for each x value I do fit curve in (y,t). any ideas how can I achieve that?
If you have a data set that's a function of time I would recommend using a runge-kutta or Euler integration scheme. I have a few videos on that if you do a search.
What software did you use to get the graph? I am using python and pycharm to work, but the only graphical software I have is gnuplot
matplotlib, it's a python library
Thank you very much! Thats exactly what i needed for a problem im facing! Can you please tell me what the forumala inv(H'*H)*H'*Z is called?
@@Guglhupfscout24 it's called the psuedo inverse.
Thanks a lot for this code.
To calculate the current in RWs, you used the MaxAlpha (rad/s^2) to get the Amps2alpha ratio and multiplied that by rw_alphas to get the current. Is there a specific reason you did not use the MaxSpeed (rad/s) to get the Amps2omega ratio and multiplied that by rw_omega to get the current.
Well torque is equal to inertia times angular acceleration. So I made an assumption that current was proportional to torque since that's energy put into the system and this proportional to the angular acceleration.
Alright, thanks for your response. Also, the attitude control demonstrated in this seminar series is only for stationary desired attitude. If we want to perform non-stationary attitude control such as nadir pointing, do we have to use a different control law/equation.
I'm pretty sure the equations are the same but you'd just have to change the commanded angle.
So compute desired quaternion everytime and convert it to Euler Angle as ptpcommand in the control block? By using angles in the control block, do we face risk of singularity issues.
Well yes. Converting from quaternions to Euler angles introduces the risk of singularity. Better to do a control scheme that creates an error signal with quaternions
To make the solar radiation part more accurate, i tried adding the solar position algorithm but i'm not able to use it properly. can you make a video on it?
Have you read my aerospace mechanics book? github.com/cmontalvo251/LaTeX/blob/master/Aerospace_Mechanics/aerospace_mechanics.pdf Chapter 7.5 goes through the math behind getting the position of Earth w.r.t the Sun. I also have a few videos on orbital elements already that help in that area.
@@CarlosMontalvo251 Hi, thanks I implemented it successfully. Also, the density model which you have used is fairly simple considering the fact that you've used LEO sats. Do you know any model / paper i can refer to for densities at medium and high earth orbit altitudes?
Unfortunately I'm not aware of any papers about density off the top of my head. I'm sure Google scholar will turn something up. Alternatively you could get a textbook on astrodynamics
This series have beem supper helpful. Any chance you could do a series on rocket stability in python?
I probably can. Can you be more specific about rocket stability? Are you talking about modeling the stability margin and the pitch of the rocket?
@@CarlosMontalvo251 Yes, I am trying to confirm stability margin of a model rocket. Its not too hard to find the stability margin in ideal conditions. If there is wind it can change the angle of attack, which would mean a new normal force and COP/stability margin. I haven't found good sources on how to calculate this new COP since most suggest basic string tests or complicated CFD models. A walk through of how perturbations can affect AOA and stability would be awesome. Modeling the rocket with disturbances would be cool but I suppose calculating the stability margin and damping coefficient is enough to ensure stable flight.
@@kinghenry238 Most of the models I use assume a center of pressure that is constant with angle of attack. Modeling the change in center of pressure is pretty difficult and I've only done with wind tunnel tests or CFD tests. You can also do live fire tests but again those are tough. For small angle of attack the center of pressure is supposed to be constant anyway. Things like Mach number and angle of attack can affect it but I don't have any theoretical equations or data on that only empirical data.
@@CarlosMontalvo251 Ok, that's good to know. I might have overthought the disturbances then. I'll try CFD out, but that is a beast in and of itself. Thank you for your response and video series, they have been helpful!
For satellite inertia (Is), shouldn't Ixx = (m/12)(Ly^2 + Lz^2) and Izz = (m/12)(Lx^2 + Ly^2). I think its flipped. Since Lz = 20cm (longest length), Izz inertia must be smaller than Ixx and Iyy. And Ixx should be equal to Iyy. Please correct me if I am wrong.
Well let's see. The x-axis goes through the front face which means you need to use the Ly and Lz side, the y-axis goes through the size face which means you need to use the Lx and Lz side and then finally the z axis goes through the top and bottom faces so that needs to be Lx and Ly so Is = (ms/12) * [Ly^2 + Lz^2 ; Lx^2 + Lz^2 ; Lx^2 + Ly^2] which means you are right! The code has been updated. Thanks for your addition.
@@CarlosMontalvo251 Thanks for considering, much appreciated!
awoooooooo
I have a question, so now when using the igrf model, is the positive z-axis considered towards earth center or away from earth center ?
It depends on your coordinate reference frame. Typically the ECI (Earth Centered Inertial) frame is with the z-axis going out of the north pole. I think you're referrring to the NED (North East Down) reference frame where the z-axis always points towards the Earth's center. I talk about a lot of these reference frames and transformations in my book. github.com/cmontalvo251/LaTeX/blob/master/Aerospace_Mechanics/aerospace_mechanics.pdf
@@CarlosMontalvo251 Thank you for your reply, sorry for the misunderstanding. So what I meant is that when you compared the NED frame with the ECI, you have added a negative sign to the NED z-axis value. However, when I went through your code on GitHub, I didn't find that same negative sign that was added in the video there. I would like to know that now when I use the NED should I add a negative sign to the z-axis or keep it as it is? PS: Thank you for writing this book, I have learnt a lot since I started reading it. Unfortunately I did not have the chance to complete it, but I will complete it once I get a chance!
@@3RDC4RD Are you saying there's an inconsistency with the video posted here and the code posted online?
@CarlosMontalvo251 yes, in the video you added a negative sign to the z-axis (NED), and in the Github code that negative sign is not present
@@3RDC4RD Hey thanks. Not sure how I missed that. I even readded the comment in there too.
Hi sir ! The algorithm failed when I tried to simulate it for a year, also with increasing numbers of orbits the satellite sprirals down
Did you lower the timestep? Sometimes the simulation won't converge if the timestep is too large
@@CarlosMontalvo251 But ode45 uses adaptive timestep right ? Do I have the control over timestep ?
Actually the error said that the timestep got so reduced, it went below permissible values and caused the algorithm to stop.
@@MrEngineer_ This simulation uses RK4 so you have to set the timestep in the main.m
My apologies. The latest version of the software uses ode45. The simulation with ode45 probably threw an error when you went too close to the center of the planet and the gravity model became too nonlinear.
Based on the navigation complimentary equation shown in your lecture 6 of ADCS seminar series, the BfieldNavPrev & pqrNavPrev should be multiplied by s and (BfieldMeasured-BiasEstimate) & (pqrMeasured-BiasEstimate) should be multiplied by (1-s). Please correct me if I'm wrong. Thank You!
You can actually go either way. You can use the form. x(i+1) = x(i) * ( 1- s ) + s * y(i) and have s go from 0 to 1 or x(i+1) = x(i) * s + ( 1 - s ) * y(i) where s goes from 1 to 0 with the same effect. Apologies for the confusion but as long as you bound s from 0 to 1 and understand that the edge cases swap when the equations change you can still use the filter in either case.
@@CarlosMontalvo251 Alright understood, Thanks for your response.
Hi. Great video! Where in the repo are these codes? Thanks!
github.com/cmontalvo251/aerospace/tree/main/adcs_seminar_series
@@CarlosMontalvo251 Thank you! Do you have any code that involves spacecraft detumblization?
@@joshuathompson6275 The code above detumbles with magnetorquers and reaction wheels.
Thank you so much for this video. It has helped tremendously for me.
🐐
Hey Do you have complete class for aeroelasticity (flutter using tools and experiments)
Unfortunately I dont. This student just did this experiment has an independent experiment.
Another comment, while initializing the velocity vector in your previous video, you added a -ive sign for the z0_dot, that should also be removed to get the shown results (3rd modification).....Overall, very informative series. Thank You!
I just checked the current source code and I think it is up to date but double check and if it's still wrong send me the line number you're referring to. github.com/cmontalvo251/aerospace/tree/main/adcs_seminar_series
@@CarlosMontalvo251 Yes, you are right. It is up-to-date. Thanks for your response.
12:44 so we have geo & heliocentric models. Is there a way to retrieve Ephemeris data using a multicentric model. Say we lived on mars im curious how those animations would look even for exoplanets & asteroids.
The model outputs the x and y coordinates in the J2000 frame including the position of Mars. So if you want to do a reference frame transfer you would just need to substract the J2000 frame positions from the Mars X/Y coordinates.
SOUND!
Where can we cross check whether the longitude, latitude, distance etc of planets we get from our program are valid or not?
Unfortunately I don't know. The JPL website maybe? ssd.jpl.nasa.gov/orbits.html
What about moving files from windows to the linux? I'm getting permissions error, did you tried doing that?
Sounds like you just need to use "sudo"
@@CarlosMontalvo251 It was folder permissions actually but thanks!
Can you provide us with the link of the igrf model?
www.mathworks.com/matlabcentral/fileexchange/34388-international-geomagnetic-reference-field-igrf-model
@@CarlosMontalvo251 🔥🔥
Thank you so much, as an engineer learning Python, this was very helpful.
Thank you very much, great video
Does it give real time positions of planet
Yes as long as you input the correct Julian Day and time
@@CarlosMontalvo251 thanks..I got them
Can you tell me how to calculate lunar nodes position in sky
@@narayanpatil4085 The moon has it's own ephemeris data. I would recommend you look that up on the JPL website ssd.jpl.nasa.gov/orbits.html
I am going over ADCS playlist and the information you present is immensely useful. Thank you for doing this
What a great way!. It worked for me and saved my life.
what is dx?
That's the distance between discretizations in the x-axis
This is awesome! I'll try to adapt it for my porpouses :) thanks
That was great , I'm totally dizzy now Thank you.
Looked flat up there
homemade rocket. to see the curvature of the earth you'd need to be at the same level as a commercial airline. Same reason why you cant see the curve while on a mountain.
One small step for iPhones. One giant crackpot conspiracy in the works for mankind.
Throwing up 🤮
Same type of problem that I am facing Bro how can I solve
Unfortunately we moved away from the arduino and to the Raspberry Pi
seems to be over compensation from PID loop, try tuning it
@@headSoup We don't have this drone anymore. This is from 2018.
E.T. iPhone home.
Cool
First ever iPhone to puke its guts out in mid air.
LOL
this is amazing content. Thank you.
Planos por favor
My student made these so I'd have to ask him for the plans if he's willing to share. I'll get back to you soon.
do we use the fractional timesteps that are in the runge kutta 4 algorithm?
Rk4 is a fixed step integrator so the timestep is constant. What do you mean by fractional?
@@CarlosMontalvo251 usually i see the runge kutta written as evaluating k2, for example, at t0+dt/2 and at y+k1*dt/2. maybe it is because k2 is already an approximation for that fractional time step?
I'm still not following. RK4 is called RK4 because it's a 4th order taylor series approximation. The 4 function calls are used to create k1,k2,k3, and k4 with "fractional" timesteps. These are on lines 65-68. If you skip to 3:10 into the video you'll see.
I had the exact same design in my mind, very well executed looking forward for further improvements, Great work 👍
I'm absolutely in love with this design, imagine a scaled up manned version. What are your thoughts?
I feel like the G's pulled during hovering to forward flight would make everyone puke. Definitely would be fit for the military but even then when you scale things up everything gets harder. Just look at the V-22 program.
But as with anything. I'd say try it and see what happens.
@@CarlosMontalvo251 haha you're probably right about g forces, it would need a more gradual transition. I am personally aware of two attempts to make a civilian tailsitter. Nasa Puffin and Zeva Aero. There is also blackfly, but it's not really a tailsitter, more of a hybrid. In my opinion, the power of a tail sitter is that it's a conventional plane essentially, it can have a normal sized wing suitable for gliding. But i haven't seen this approach used by anyone so far. There are a few concepts though, like Bell apt.
@@CarlosMontalvo251 oh, almost forgot the jetman from dubai, he had a winged jetpack. Took off vertically from his feet, and then transitioned. Would be really cool if he had a longer wing and electric motors.
hey, which MatLab add-ons will I need for these simulations?
You actually don't need any extra add ons. Just the standard MATLAB version will work.
Thank you for the quick reply and helpful content Sir. Does this apply to the other ADCS in MatLab tutorials as well?
@@de_michael1222 There is only 1 ADCS software on Github. There are multiple videos because every major edit that I've made has been done live on youtube. So if you downloaded the latest iteration of the software you wouldn't need any other packages.
@@CarlosMontalvo251 alright, thank you very much!
Thank you for the video. In the previous reactions wheels code, the angular velocities of tumbling rate reaches zero and the curve is smooth but after the addition of total current control in the code , the initial angular velocities never reaches zero. Altough they reach values close to zero but the satellite is still in tumbling state. could you please give us some insights as to why that is happening and how to completely stabilize the satellite
I assume its because of adding the disturbing forces and moments to the simulation? is It possible to fully stablize the satellite even having all the disturbing forces?
Great observation. That is a timestep issue. In the video I changed the timestep = 1.0 so the code would run faster. In order for the RK4 integrator to converge properly for attitude control you really need the timestep = 0.1 or lower. That will increase simulation time but increase accuracy and make the curves smoother as you say. Hope that helps!
@@CarlosMontalvo251 Thank you for the response Sir. I tried extremely low values but the spacecraft is still not completely detumbling.
@@SA-ys8egDo you still have sensor errors and biases turned on? Because it will never go to zero if you have errors turned on.
@@CarlosMontalvo251Sir, I will send an email to you showing plots with the same parameters but different codes. The previous code is able to detumble the satellite completely while the new code (after adding the total current calculation for reaction wheels) has chattering even if the simulation is run for 20 orbits with timestep of 0.01. And yes I turned of sensor errors biases. I also removed the affect of disturbance forces which I suspect were causing the satellite to keep tumbling but that was not case. Thank you for the response.
You can use pid controller for this it will make the dron stable
Great video! Where we can find your very well structured information from the board(behind you) with all steps and formulas?
The best place is probably here github.com/cmontalvo251/LaTeX/blob/master/Aerospace_Mechanics/aerospace_mechanics.pdf
Thanks👍