How to Plot(Time, Voltage) so that transient is captured for different inputs
Show older comments
Hi, im working on some university coursework and am trying to do something with my plots. Id like someone to tell me if what im trying to do is possible, and if it is, how to do it?
The coursework is based on 2nd order ODE's. not using a numerical solver, I need to write a script which allows a user to input values for R, L & C, solves the 2nd order ODE, tells the user if the system is Under, Critically or Over damped and then plots voltage against time. (All of which i have already done).
My problem starts here; If the user is inputting different values each time, the plot will be different (voltage & time). the voltage on the Y axis automatically sets its own limits. However time along the x axis doesnt. This is because my voltage equation requires me to input time as a array.
Question: is it possible to write a script that changes the maximum point on the x axis (time) so that the graph captures the full transient?
See the attached figures, 'Good' shows the type of outcome im looking for, 'Bad' shows what im trying to stop happening when the user puts in different values to what i tested with.
1 Comment
dpb
on 9 Nov 2019
How do you set what the transient time length is?
Just use xlim to set the range you want...altho we'd have to see how you're doing the plots to see why the autoscaling isn't working for both axes; normally would expect it to do it automagically.
Accepted Answer
More Answers (1)
ISIAKA SHUAIBU
on 20 Jul 2022
0 votes
[time,voltage] = ode45(odefun,tspan,v0); % etc, whatever your ode is.
tConst = 2*R*C; % assuming parallel
tMultiple = 4;
figure
plot(time,voltage)
set(ga,'XLim',[0 tMultiple*tConst])
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!